Rivet::PID Namespace Reference


Classes

class  ParticleNameMap

Typedefs

typedef std::map< int,
std::string > 
ParticleIdMap
typedef std::map< std::string,
int > 
ParticleLookupMap

Enumerations

enum  location {
  nj = 1, nq3, nq2, nq1,
  nl, nr, n, n8,
  n9, n10
}

Functions

unsigned short digit (location loc, const int &pid)
 return the digit at a named location in the PID
int fundamentalID (const int &pid)
 extract fundamental ID (1-100) if this is a "fundamental" particle
int extraBits (const int &pid)
 if this is a fundamental particle, does it have a valid antiparticle?
int Z (const int &pid)
int A (const int &pid)
int lambda (const int &pid)
ParticleNameMap const & ParticleNameInit ()
void writeParticleNameLine (int i, std::ostream &os)
ParticleNameMap const & getParticleNameMap ()
bool validParticleName (const int &pid)
bool validParticleName (const std::string &s)
std::string particleName (const int &pid)
int particleName (const std::string &s)
void listParticleNames (std::ostream &os)
PID operations on Rivet::Particle wrapper
int abspid (const int &pid)
 absolute value of particle ID
bool isValid (const int &pid)
 is this a valid ID?
bool isMeson (const int &pid)
 is this a valid meson ID?
bool isBaryon (const int &pid)
 is this a valid baryon ID?
bool isDiQuark (const int &pid)
 is this a valid diquark ID?
bool isHadron (const int &pid)
 is this a valid hadron ID?
bool isLepton (const int &pid)
 is this a valid lepton ID?
bool isNucleus (const int &pid)
 is this a valid ion ID?
bool isPentaquark (const int &pid)
 is this a valid pentaquark ID?
bool isSUSY (const int &pid)
 is this a valid SUSY ID?
bool isRhadron (const int &pid)
 is this a valid R-hadron ID?
bool hasUp (const int &pid)
 does this particle contain an up quark?
bool hasDown (const int &pid)
 does this particle contain a down quark?
bool hasStrange (const int &pid)
 does this particle contain a strange quark?
bool hasCharm (const int &pid)
 does this particle contain a charm quark?
bool hasBottom (const int &pid)
 does this particle contain a bottom quark?
bool hasTop (const int &pid)
 does this particle contain a top quark?
int jSpin (const int &pid)
 jSpin returns 2J+1, where J is the total spin
int sSpin (const int &pid)
 sSpin returns 2S+1, where S is the spin
int lSpin (const int &pid)
 lSpin returns 2L+1, where L is the orbital angular momentum
int threeCharge (const int &pid)
 return 3 times the charge (3 x quark charge is an int)
double charge (const int &pid)
 return 3 times the charge (3 x quark charge is an int)
PID operations on Rivet::Particle wrapper
int abspid (const Particle &p)
 absolute value of particle ID
bool isMeson (const Particle &p)
 is this a valid meson ID?
bool isBaryon (const Particle &p)
 is this a valid baryon ID?
bool isDiQuark (const Particle &p)
 is this a valid diquark ID?
bool isHadron (const Particle &p)
 is this a valid hadron ID?
bool isLepton (const Particle &p)
 is this a valid lepton ID?
bool isNucleus (const Particle &p)
 is this a valid ion ID?
bool isPentaquark (const Particle &p)
 is this a valid pentaquark ID?
bool isSUSY (const Particle &p)
 is this a valid SUSY ID?
bool isRhadron (const Particle &p)
 is this a valid R-hadron ID?
bool hasUp (const Particle &p)
 does this particle contain an up quark?
bool hasDown (const Particle &p)
 does this particle contain a down quark?
bool hasStrange (const Particle &p)
 does this particle contain a strange quark?
bool hasCharm (const Particle &p)
 does this particle contain a charm quark?
bool hasBottom (const Particle &p)
 does this particle contain a bottom quark?
bool hasTop (const Particle &p)
 does this particle contain a top quark?
int jSpin (const Particle &p)
 jSpin returns 2J+1, where J is the total spin
int sSpin (const Particle &p)
 sSpin returns 2S+1, where S is the spin
int lSpin (const Particle &p)
 lSpin returns 2L+1, where L is the orbital angular momentum
int threeCharge (const Particle &p)
 return 3 times the charge (3 x quark charge is an int)
double charge (const Particle &p)
 return 3 times the charge (3 x quark charge is an int)

Typedef Documentation

typedef std::map< int, std::string > ParticleIdMap

Definition at line 34 of file ParticleName.cc.

typedef std::map< std::string, int > ParticleLookupMap

Definition at line 35 of file ParticleName.cc.


Enumeration Type Documentation

enum location

PID digits (base 10) are: n nr nl nq1 nq2 nq3 nj The location enum provides a convenient index into the PID.

Enumerator:
nj 
nq3 
nq2 
nq1 
nl 
nr 
n 
n8 
n9 
n10 

Definition at line 19 of file ParticleIdUtils.cc.

00019 { nj=1, nq3, nq2, nq1, nl, nr, n, n8, n9, n10 };


Function Documentation

int Rivet::PID::A ( const int &  pid  ) 

Definition at line 79 of file ParticleIdUtils.cc.

References abspid(), and isNucleus().

Referenced by Rivet::diagonalize().

00080     {
00081         // a proton can also be a Hydrogen nucleus
00082         if( abspid(pid) == 2212 ) { return 1; }
00083         if( isNucleus(pid) ) return (abspid(pid)/10)%1000;
00084         return 0;
00085     }

int Rivet::PID::abspid ( const Particle &  p  )  [inline]

absolute value of particle ID

if this is a nucleus (ion), get A Ion numbers are +/- 10LZZZAAAI. if this is a nucleus (ion), get Z Ion numbers are +/- 10LZZZAAAI. if this is a nucleus (ion), get nLambda Ion numbers are +/- 10LZZZAAAI.

Definition at line 116 of file ParticleIdUtils.hh.

References abspid(), and Particle::pdgId().

00116 { return abspid(p.pdgId()); }

int abspid ( const int &  pid  ) 

absolute value of particle ID

Definition at line 35 of file ParticleIdUtils.cc.

Referenced by A(), abspid(), digit(), extraBits(), fundamentalID(), isBaryon(), isDiQuark(), isMeson(), isNucleus(), jSpin(), lambda(), threeCharge(), and Z().

00036     {
00037       return (pid < 0) ? -pid : pid;
00038     }

double Rivet::PID::charge ( const Particle &  p  )  [inline]

return 3 times the charge (3 x quark charge is an int)

Definition at line 160 of file ParticleIdUtils.hh.

References threeCharge().

00160 { return 3.0 * threeCharge(p); }

double Rivet::PID::charge ( const int &  pid  )  [inline]

return 3 times the charge (3 x quark charge is an int)

Definition at line 91 of file ParticleIdUtils.hh.

References threeCharge().

Referenced by threeCharge().

00091 { return 3.0 * threeCharge(pid); }

unsigned short digit ( location  loc,
const int &  pid 
)

return the digit at a named location in the PID

Definition at line 47 of file ParticleIdUtils.cc.

References abspid().

Referenced by fundamentalID(), hasBottom(), hasCharm(), hasDown(), hasStrange(), hasTop(), hasUp(), isBaryon(), isDiQuark(), isMeson(), isNucleus(), isPentaquark(), isRhadron(), isSUSY(), lambda(), lSpin(), sSpin(), and threeCharge().

00048     {
00049         //  PID digits (base 10) are: n nr nl nq1 nq2 nq3 nj
00050         //  the location enum provides a convenient index into the PID
00051         int numerator = (int) std::pow(10.0,(loc-1));
00052         return (abspid(pid)/numerator)%10;
00053     }

int extraBits ( const int &  pid  ) 

if this is a fundamental particle, does it have a valid antiparticle?

returns everything beyond the 7th digit (e.g. outside the standard numbering scheme)

Definition at line 41 of file ParticleIdUtils.cc.

References abspid().

Referenced by fundamentalID(), hasBottom(), hasCharm(), hasDown(), hasStrange(), hasTop(), hasUp(), isBaryon(), isDiQuark(), isHadron(), isLepton(), isMeson(), isPentaquark(), isRhadron(), isSUSY(), isValid(), jSpin(), and threeCharge().

00042     {
00043         return abspid(pid)/10000000;
00044     }

int fundamentalID ( const int &  pid  ) 

extract fundamental ID (1-100) if this is a "fundamental" particle

Definition at line 57 of file ParticleIdUtils.cc.

References abspid(), digit(), extraBits(), nq1, and nq2.

Referenced by hasBottom(), hasCharm(), hasDown(), hasStrange(), hasTop(), hasUp(), isBaryon(), isDiQuark(), isLepton(), isMeson(), isSUSY(), isValid(), jSpin(), and threeCharge().

00058     {
00059         if( extraBits(pid) > 0 ) return 0;
00060         if( digit(nq2,pid) == 0 && digit(nq1,pid) == 0) {
00061             return abspid(pid)%10000;
00062         } else if( abspid(pid) <= 100 ) {
00063             return abspid(pid);
00064         } else {
00065             return 0;
00066         }
00067     }

ParticleNameMap const& Rivet::PID::getParticleNameMap (  ) 

Definition at line 1632 of file ParticleName.cc.

References ParticleNameInit().

Referenced by particleName(), and validParticleName().

01633 {
01634   static  ParticleNameMap const &  pmap = ParticleNameInit();
01635   return pmap;
01636 }  // getPartcleIdMap()

bool Rivet::PID::hasBottom ( const Particle &  p  )  [inline]

does this particle contain a bottom quark?

Definition at line 146 of file ParticleIdUtils.hh.

References hasBottom(), and Particle::pdgId().

00146 { return hasBottom(p.pdgId()); }

bool hasBottom ( const int &  pid  ) 

does this particle contain a bottom quark?

Definition at line 318 of file ParticleIdUtils.cc.

References digit(), extraBits(), fundamentalID(), nq1, nq2, and nq3.

Referenced by hasBottom().

00319     {
00320         if( extraBits(pid) > 0 ) { return false; }
00321         if( fundamentalID(pid) > 0 ) { return false; }
00322         if( digit(nq3,pid) == 5 || digit(nq2,pid) == 5 || digit(nq1,pid) == 5 ) { return true; }
00323         return false;
00324     }

bool Rivet::PID::hasCharm ( const Particle &  p  )  [inline]

does this particle contain a charm quark?

Definition at line 144 of file ParticleIdUtils.hh.

References hasCharm(), and Particle::pdgId().

00144 { return hasCharm(p.pdgId()); }

bool hasCharm ( const int &  pid  ) 

does this particle contain a charm quark?

Definition at line 310 of file ParticleIdUtils.cc.

References digit(), extraBits(), fundamentalID(), nq1, nq2, and nq3.

Referenced by hasCharm().

00311     {
00312         if( extraBits(pid) > 0 ) { return false; }
00313         if( fundamentalID(pid) > 0 ) { return false; }
00314         if( digit(nq3,pid) == 4 || digit(nq2,pid) == 4 || digit(nq1,pid) == 4 ) { return true; }
00315         return false;
00316     }

bool Rivet::PID::hasDown ( const Particle &  p  )  [inline]

does this particle contain a down quark?

Definition at line 140 of file ParticleIdUtils.hh.

References hasDown(), and Particle::pdgId().

00140 { return hasDown(p.pdgId()); }

bool hasDown ( const int &  pid  ) 

does this particle contain a down quark?

Definition at line 294 of file ParticleIdUtils.cc.

References digit(), extraBits(), fundamentalID(), nq1, nq2, and nq3.

Referenced by hasDown().

00295     {
00296         if( extraBits(pid) > 0 ) { return false; }
00297         if( fundamentalID(pid) > 0 ) { return false; }
00298         if( digit(nq3,pid) == 1 || digit(nq2,pid) == 1 || digit(nq1,pid) == 1 ) { return true; }
00299         return false;
00300     }

bool Rivet::PID::hasStrange ( const Particle &  p  )  [inline]

does this particle contain a strange quark?

Definition at line 142 of file ParticleIdUtils.hh.

References hasStrange(), and Particle::pdgId().

00142 { return hasStrange(p.pdgId()); }

bool hasStrange ( const int &  pid  ) 

does this particle contain a strange quark?

Definition at line 302 of file ParticleIdUtils.cc.

References digit(), extraBits(), fundamentalID(), nq1, nq2, and nq3.

Referenced by hasStrange().

00303     {
00304         if( extraBits(pid) > 0 ) { return false; }
00305         if( fundamentalID(pid) > 0 ) { return false; }
00306         if( digit(nq3,pid) == 3 || digit(nq2,pid) == 3 || digit(nq1,pid) == 3 ) { return true; }
00307         return false;
00308     }

bool Rivet::PID::hasTop ( const Particle &  p  )  [inline]

does this particle contain a top quark?

Definition at line 148 of file ParticleIdUtils.hh.

References hasTop(), and Particle::pdgId().

00148 { return hasTop(p.pdgId()); }

bool hasTop ( const int &  pid  ) 

does this particle contain a top quark?

Definition at line 326 of file ParticleIdUtils.cc.

References digit(), extraBits(), fundamentalID(), nq1, nq2, and nq3.

Referenced by hasTop().

00327     {
00328         if( extraBits(pid) > 0 ) { return false; }
00329         if( fundamentalID(pid) > 0 ) { return false; }
00330         if( digit(nq3,pid) == 6 || digit(nq2,pid) == 6 || digit(nq1,pid) == 6 ) { return true; }
00331         return false;
00332     }

bool Rivet::PID::hasUp ( const Particle &  p  )  [inline]

does this particle contain an up quark?

Definition at line 138 of file ParticleIdUtils.hh.

References hasUp(), and Particle::pdgId().

00138 { return hasUp(p.pdgId()); }

bool hasUp ( const int &  pid  ) 

does this particle contain an up quark?

Definition at line 286 of file ParticleIdUtils.cc.

References digit(), extraBits(), fundamentalID(), nq1, nq2, and nq3.

Referenced by hasUp().

00287     {
00288         if( extraBits(pid) > 0 ) { return false; }
00289         if( fundamentalID(pid) > 0 ) { return false; }
00290         if( digit(nq3,pid) == 2 || digit(nq2,pid) == 2 || digit(nq1,pid) == 2 ) { return true; }
00291         return false;
00292     }

bool Rivet::PID::isBaryon ( const Particle &  p  )  [inline]

is this a valid baryon ID?

Definition at line 121 of file ParticleIdUtils.hh.

References isBaryon(), and Particle::pdgId().

00121 { return isBaryon(p.pdgId()); }

bool isBaryon ( const int &  pid  ) 

is this a valid baryon ID?

Definition at line 169 of file ParticleIdUtils.cc.

References abspid(), digit(), extraBits(), fundamentalID(), nj, nq1, nq2, and nq3.

Referenced by isBaryon(), isHadron(), isValid(), and threeCharge().

00170     {
00171         if( extraBits(pid) > 0 ) { return false; }
00172         if( abspid(pid) <= 100 ) { return false; }
00173         if( fundamentalID(pid) <= 100 && fundamentalID(pid) > 0 ) { return false; }
00174         if( abspid(pid) == 2110 || abspid(pid) == 2210 ) { return true; }
00175         if(    digit(nj,pid) > 0  && digit(nq3,pid) > 0
00176             && digit(nq2,pid) > 0 && digit(nq1,pid) > 0 ) { return true; }
00177         return false;
00178     }

bool Rivet::PID::isDiQuark ( const Particle &  p  )  [inline]

is this a valid diquark ID?

Definition at line 123 of file ParticleIdUtils.hh.

References isDiQuark(), and Particle::pdgId().

00123 { return isDiQuark(p.pdgId()); }

bool isDiQuark ( const int &  pid  ) 

is this a valid diquark ID?

Definition at line 181 of file ParticleIdUtils.cc.

References abspid(), digit(), extraBits(), fundamentalID(), nj, nq1, nq2, and nq3.

Referenced by isDiQuark(), isValid(), and threeCharge().

00182     {
00183         if( extraBits(pid) > 0 ) { return false; }
00184         if( abspid(pid) <= 100 ) { return false; }
00185         if( fundamentalID(pid) <= 100 && fundamentalID(pid) > 0 ) { return false; }
00186         if(    digit(nj,pid) > 0  && digit(nq3,pid) == 0
00187             && digit(nq2,pid) > 0 && digit(nq1,pid) > 0 ) {  // diquark signature
00188            // EvtGen uses the diquarks for quark pairs, so, for instance,
00189            //   5501 is a valid "diquark" for EvtGen
00190            //if( digit(nj) == 1 && digit(nq2) == digit(nq1) ) {     // illegal
00191            //   return false;
00192            //} else {
00193               return true;
00194            //}
00195         }
00196         return false;
00197     }

bool Rivet::PID::isHadron ( const Particle &  p  )  [inline]

is this a valid hadron ID?

Definition at line 125 of file ParticleIdUtils.hh.

References isHadron(), and Particle::pdgId().

Referenced by Rivet::hadronFilter(), and DISKinematics::project().

00125 { return isHadron(p.pdgId()); }

bool isHadron ( const int &  pid  ) 

is this a valid hadron ID?

Definition at line 200 of file ParticleIdUtils.cc.

References extraBits(), isBaryon(), isMeson(), and isPentaquark().

Referenced by isHadron(), and Multiplicity::project().

00201     {
00202         if( extraBits(pid) > 0 ) { return false; }
00203         if( isMeson(pid) )   { return true; }
00204         if( isBaryon(pid) )  { return true; }
00205         if( isPentaquark(pid) ) { return true; }
00206         return false;
00207     }

bool Rivet::PID::isLepton ( const Particle &  p  )  [inline]

is this a valid lepton ID?

Definition at line 127 of file ParticleIdUtils.hh.

References isLepton(), and Particle::pdgId().

Referenced by DISLepton::project().

00127 { return isLepton(p.pdgId()); }

bool isLepton ( const int &  pid  ) 

is this a valid lepton ID?

Definition at line 209 of file ParticleIdUtils.cc.

References extraBits(), and fundamentalID().

Referenced by isLepton(), and ChargedLeptons::project().

00210     {
00211         if( extraBits(pid) > 0 ) { return false; }
00212         if( fundamentalID(pid) >= 11 && fundamentalID(pid) <= 18 ) { return true; }
00213         return false;
00214     }

bool Rivet::PID::isMeson ( const Particle &  p  )  [inline]

is this a valid meson ID?

Definition at line 119 of file ParticleIdUtils.hh.

References isMeson(), and Particle::pdgId().

00119 { return isMeson(p.pdgId()); }

bool isMeson ( const int &  pid  ) 

is this a valid meson ID?

Definition at line 145 of file ParticleIdUtils.cc.

References abspid(), digit(), extraBits(), fundamentalID(), nj, nq1, nq2, and nq3.

Referenced by isHadron(), isMeson(), isValid(), lSpin(), sSpin(), and threeCharge().

00146     {
00147         if( extraBits(pid) > 0 ) { return false; }
00148         if( abspid(pid) <= 100 ) { return false; }
00149         if( fundamentalID(pid) <= 100 && fundamentalID(pid) > 0 ) { return false; }
00150         int aid = abspid(pid);
00151         if( aid == 130 || aid == 310 || aid == 210 ) { return true; }
00152         // EvtGen uses some odd numbers
00153         if( aid == 150 || aid == 350 || aid == 510 || aid == 530 ) { return true; }
00154         // pomeron, etc.
00155         if( pid == 110 || pid == 990 || pid == 9990 ) { return true; }
00156         if(    digit(nj,pid) > 0 && digit(nq3,pid) > 0
00157             && digit(nq2,pid) > 0 && digit(nq1,pid) == 0 ) {
00158             // check for illegal antiparticles
00159             if( digit(nq3,pid) == digit(nq2,pid) && pid < 0 ) {
00160                 return false;
00161             } else {
00162                 return true;
00163             }
00164         }
00165         return false;
00166     }

bool Rivet::PID::isNucleus ( const Particle &  p  )  [inline]

is this a valid ion ID?

Definition at line 129 of file ParticleIdUtils.hh.

References isNucleus(), and Particle::pdgId().

00129 { return isNucleus(p.pdgId()); }

bool isNucleus ( const int &  pid  ) 

is this a valid ion ID?

Definition at line 223 of file ParticleIdUtils.cc.

References abspid(), digit(), n10, and n9.

Referenced by A(), isNucleus(), isValid(), lambda(), and Z().

00224     {
00225          // a proton can also be a Hydrogen nucleus
00226          if( abspid(pid) == 2212 ) { return true; }
00227          // new standard: +/- 10LZZZAAAI
00228          if( ( digit(n10,pid) == 1 ) && ( digit(n9,pid) == 0 ) ) {
00229             // charge should always be less than or equal to baryon number
00230         // the following line is A >= Z
00231             if( (abspid(pid)/10)%1000 >= (abspid(pid)/10000)%1000 ) { return true; }
00232          }
00233          return false;
00234     }

bool Rivet::PID::isPentaquark ( const Particle &  p  )  [inline]

is this a valid pentaquark ID?

Definition at line 131 of file ParticleIdUtils.hh.

References isPentaquark(), and Particle::pdgId().

00131 { return isPentaquark(p.pdgId()); }

bool isPentaquark ( const int &  pid  ) 

is this a valid pentaquark ID?

Definition at line 237 of file ParticleIdUtils.cc.

References digit(), extraBits(), n, nj, nl, nq1, nq2, nq3, and nr.

Referenced by isHadron(), isPentaquark(), and isValid().

00238     {
00239         // a pentaquark is of the form 9abcdej,
00240         // where j is the spin and a, b, c, d, and e are quarks
00241         if( extraBits(pid) > 0 ) { return false; }
00242         if( digit(n,pid) != 9 )  { return false; }
00243         if( digit(nr,pid) == 9 || digit(nr,pid) == 0 )  { return false; }
00244         if( digit(nj,pid) == 9 || digit(nl,pid) == 0 )  { return false; }
00245         if( digit(nq1,pid) == 0 )  { return false; }
00246         if( digit(nq2,pid) == 0 )  { return false; }
00247         if( digit(nq3,pid) == 0 )  { return false; }
00248         if( digit(nj,pid) == 0 )  { return false; }
00249         // check ordering
00250         if( digit(nq2,pid) > digit(nq1,pid) )  { return false; }
00251         if( digit(nq1,pid) > digit(nl,pid) )  { return false; }
00252         if( digit(nl,pid) > digit(nr,pid) )  { return false; }
00253         return true;
00254     }

bool Rivet::PID::isRhadron ( const Particle &  p  )  [inline]

is this a valid R-hadron ID?

Definition at line 135 of file ParticleIdUtils.hh.

References isRhadron(), and Particle::pdgId().

00135 { return isRhadron(p.pdgId()); }

bool isRhadron ( const int &  pid  ) 

is this a valid R-hadron ID?

Definition at line 269 of file ParticleIdUtils.cc.

References digit(), extraBits(), isSUSY(), n, nj, nq2, nq3, and nr.

Referenced by isRhadron(), and isValid().

00270     {
00271         // an R-hadron is of the form 10abcdj,
00272         // where j is the spin and a, b, c, and d are quarks or gluons
00273         if( extraBits(pid) > 0 ) { return false; }
00274         if( digit(n,pid) != 1 )  { return false; }
00275         if( digit(nr,pid) != 0 )  { return false; }
00276         // make sure this isn't a SUSY particle
00277         if( isSUSY(pid) ) { return false; }
00278         // All R-hadrons have at least 3 core digits
00279         if( digit(nq2,pid) == 0 )  { return false; }
00280         if( digit(nq3,pid) == 0 )  { return false; }
00281         if( digit(nj,pid) == 0 )  { return false; }
00282         return true;
00283     }

bool Rivet::PID::isSUSY ( const Particle &  p  )  [inline]

is this a valid SUSY ID?

Definition at line 133 of file ParticleIdUtils.hh.

References isSUSY(), and Particle::pdgId().

00133 { return isSUSY(p.pdgId()); }

bool isSUSY ( const int &  pid  ) 

is this a valid SUSY ID?

Definition at line 257 of file ParticleIdUtils.cc.

References digit(), extraBits(), fundamentalID(), n, and nr.

Referenced by isRhadron(), isSUSY(), and isValid().

00258     {
00259         // fundamental SUSY particles have n = 1 or 2
00260         if( extraBits(pid) > 0 ) { return false; }
00261         if( digit(n,pid) != 1 && digit(n,pid) != 2 )  { return false; }
00262         if( digit(nr,pid) != 0 )  { return false; }
00263         // check fundamental part
00264         if( fundamentalID(pid) == 0 )  { return false; }
00265         return true;
00266     }

bool isValid ( const int &  pid  ) 

is this a valid ID?

Definition at line 102 of file ParticleIdUtils.cc.

References extraBits(), fundamentalID(), isBaryon(), isDiQuark(), isMeson(), isNucleus(), isPentaquark(), isRhadron(), and isSUSY().

00103     {
00104         if( extraBits(pid) > 0 ) {
00105             if( isNucleus(pid) )   { return true; }
00106             return false;
00107         }
00108         if( isSUSY(pid) ) { return true; }
00109         if( isRhadron(pid) ) { return true; }
00110         // Meson signature
00111         if( isMeson(pid) )   { return true; }
00112         // Baryon signature
00113         if( isBaryon(pid) )  { return true; }
00114         // DiQuark signature
00115         if( isDiQuark(pid) ) { return true; }
00116         // fundamental particle
00117         if( fundamentalID(pid) > 0 ) {
00118           if(pid > 0 ) {
00119             return true;
00120           } else {
00121             // AB - disabled this to remove need for PID -> name lookup.
00122             //if( hasFundamentalAnti(pid) ) { return true; }
00123             return false;
00124           }
00125         }
00126         // pentaquark
00127         if( isPentaquark(pid) ) { return true; }
00128         // don't recognize this number
00129         return false;
00130     }

int Rivet::PID::jSpin ( const Particle &  p  )  [inline]

jSpin returns 2J+1, where J is the total spin

Definition at line 151 of file ParticleIdUtils.hh.

References jSpin(), and Particle::pdgId().

00151 { return jSpin(p.pdgId()); }

int jSpin ( const int &  pid  ) 

jSpin returns 2J+1, where J is the total spin

Definition at line 337 of file ParticleIdUtils.cc.

References abspid(), extraBits(), and fundamentalID().

Referenced by jSpin().

00338     {
00339         if( fundamentalID(pid) > 0 ) {
00340         // some of these are known
00341         int fund = fundamentalID(pid);
00342         if( fund > 0 && fund < 7 ) return 2;
00343         if( fund == 9 ) return 3;
00344         if( fund > 10 && fund < 17 ) return 2;
00345         if( fund > 20 && fund < 25 ) return 3;
00346             return 0;
00347         } else if( extraBits(pid) > 0 ) {
00348             return 0;
00349         }
00350         return abspid(pid)%10;
00351     }

int Rivet::PID::lambda ( const int &  pid  ) 

Definition at line 89 of file ParticleIdUtils.cc.

References abspid(), digit(), isNucleus(), and n8.

00090     {
00091         // a proton can also be a Hydrogen nucleus
00092         if( abspid(pid) == 2212 ) { return 0; }
00093         if( isNucleus(pid) ) return digit(n8,pid);
00094         return 0;
00095     }

void Rivet::PID::listParticleNames ( std::ostream &  os  ) 

Definition at line 1679 of file ParticleName.cc.

References Rivet::m, n, and writeParticleNameLine().

01680 {
01681   //writeVersion( os );
01682     os << "     HepPID Particle List" << std::endl;
01683     os << std::endl;
01684 
01685     // simple: static  PartcleIdMap const &  pmap = getPartcleIdMap();
01686     // simple: for( PartcleIdMap::const_iterator cit = pmap.begin(), mend = pmap.end();
01687     // simple:                                 cit != mend;
01688     // simple:            ++cit ) {
01689     // simple: os << "  PDT number: " ;
01690     // simple: os.width(12);
01691     // simple: os << cit->first << "  PDT name: " << cit->second << std::endl;
01692     // simple: }
01693     int id, i, j, q1, q2, q3, l, m, n;
01694     // special cases
01695     for( id=1; id<101; ++id) {
01696         writeParticleNameLine(  id, os );
01697         writeParticleNameLine( -id, os );
01698     }
01699     for( i=11; i<1000; ++i) {
01700         id = i*10;
01701         writeParticleNameLine(  id, os );
01702         writeParticleNameLine( -id, os );
01703     }
01704     // SUSY
01705     for( n=1; n<3; ++n) {
01706     for( q1=0; q1<10; ++q1) {
01707         for( j=0; j<10; ++j) {
01708         id = 1000000*n+10*q1+j;
01709             writeParticleNameLine(  id, os );
01710             writeParticleNameLine( -id, os );
01711         }
01712     }
01713     }
01714     // technicolor, etc.
01715     for( n=3; n<6; ++n) {
01716         for( q2=0; q2<10; ++q2) {
01717         for( q1=0; q1<10; ++q1) {
01718             for( j=0; j<10; ++j) {
01719             for( m=0; m<10; ++m) {
01720                 for( l=0; l<7; ++l) {
01721                 id = 1000000*n+100000*m+10000*l+100*q2+10*q1+j;
01722                     writeParticleNameLine(  id, os );
01723                     writeParticleNameLine( -id, os );
01724             }
01725             }
01726         }
01727         }
01728     }
01729     }
01730     // R-hadrons
01731     for( q3=0; q3<10; ++q3) {
01732     for( q2=1; q2<10; ++q2) {
01733         for( q1=1; q1<10; ++q1) {
01734         for( j=1; j<5; ++j) {
01735             id = 1000000+1000*q3+100*q2+10*q1+j;
01736                 writeParticleNameLine( id, os );
01737             if(q3 > 0 ) id = 1000000+90000+1000*q3+100*q2+10*q1+j;
01738                 writeParticleNameLine( id, os );
01739         }
01740         }
01741     }
01742     }
01743     // miscellaneous generator particles
01744     for( l=0; l<9; ++l) {
01745     for( i=1; i<100; ++i) {
01746         id = 9900000+10000*l+i;
01747             writeParticleNameLine(  id, os );
01748             writeParticleNameLine( -id, os );
01749     }
01750         for( q3=0; q3<10; ++q3) {
01751             for( q2=1; q2<10; ++q2) {
01752         for( q1=1; q1<10; ++q1) {
01753                 for( j=0; j<10; ++j) {
01754             id = 9900000+10000*l+1000*q3+100*q2+10*q1+j;
01755                 writeParticleNameLine(  id, os );
01756                 writeParticleNameLine( -id, os );
01757             }
01758         }
01759         }
01760     }
01761     }
01762     // diquark
01763     for( i=11; i<100; ++i) {
01764         for( j=0; j<10; ++j) {
01765             id = 100*i+j;
01766             writeParticleNameLine(  id, os );
01767             writeParticleNameLine( -id, os );
01768     }
01769     }
01770     // mesons
01771     for( q2=1; q2<10; ++q2) {
01772     for( q1=1; q1<10; ++q1) {
01773         for( j=1; j<10; ++j) {
01774         for( m=0; m<9; ++m) {
01775             for( l=0; l<10; ++l) {
01776             id = 100000*m+10000*l+100*q2+10*q1+j;
01777                 writeParticleNameLine(  id, os );
01778                 writeParticleNameLine( -id, os );
01779             id = 9000000+100000*m+10000*l+100*q2+10*q1+j;
01780                 writeParticleNameLine(  id, os );
01781                 writeParticleNameLine( -id, os );
01782             }
01783         }
01784         }
01785     }
01786     }
01787     // baryons
01788     for( q3=1; q3<10; ++q3) {
01789     for( q2=1; q2<10; ++q2) {
01790         for( q1=1; q1<10; ++q1) {
01791         for( j=1; j<10; ++j) {
01792             for( m=0; m<9; ++m) {
01793             id = 10000*m+1000*q3+100*q2+10*q1+j;
01794                 writeParticleNameLine(  id, os );
01795                 writeParticleNameLine( -id, os );
01796             }
01797         }
01798         }
01799     }
01800     }
01801     // pentaquarks
01802     for( l=1; l<9; ++l ) {
01803         for ( m=1; m<9; ++m ) {
01804         for( q3=1; q3<9; ++q3) {
01805         for( q2=1; q2<9; ++q2) {
01806             for( q1=1; q1<9; ++q1) {
01807             id = 9*1000000+l*100000+m*10000+1000*q3+100*q2+10*q1+2;
01808                 writeParticleNameLine(  id, os );
01809                 writeParticleNameLine( -id, os );
01810             }
01811         }
01812         }
01813         }
01814     }
01815     // ions
01816     for( i=1; i<3; ++i) {
01817     for( m=1; m<5; ++m) {
01818         id = 1000000000+10*m+10000*i;
01819             writeParticleNameLine(  id, os );
01820             writeParticleNameLine( -id, os );
01821     }
01822     }
01823     return;
01824 }  // listParticleNames()

int Rivet::PID::lSpin ( const Particle &  p  )  [inline]

lSpin returns 2L+1, where L is the orbital angular momentum

Definition at line 155 of file ParticleIdUtils.hh.

References lSpin(), and Particle::pdgId().

00155 { return lSpin(p.pdgId()); }

int lSpin ( const int &  pid  ) 

lSpin returns 2L+1, where L is the orbital angular momentum

Definition at line 378 of file ParticleIdUtils.cc.

References digit(), isMeson(), n, nj, and nl.

Referenced by lSpin().

00379     {
00380         if( !isMeson(pid) ) { return 0; }
00381         int inl = digit(nl,pid);
00382         //int tent = digit(n,pid);
00383         int js = digit(nj,pid);
00384         if( digit(n,pid) == 9 ) { return 0; }   // tentative ID
00385         if( inl == 0 && js == 3 ) {
00386             return 0;
00387         } else if( inl == 0 && js == 5 ) {
00388             return 1;
00389         } else if( inl == 0 && js == 7 ) {
00390             return 2;
00391         } else if( inl == 0 && js == 9 ) {
00392             return 3;
00393         } else if( inl == 0  && js == 1 ) {
00394             return 0;
00395         } else if( inl == 1  && js == 3 ) {
00396             return 1;
00397         } else if( inl == 1  && js == 5 ) {
00398             return 2;
00399         } else if( inl == 1  && js == 7 ) {
00400             return 3;
00401         } else if( inl == 1  && js == 9 ) {
00402             return 4;
00403         } else if( inl == 2  && js == 3 ) {
00404             return 1;
00405         } else if( inl == 2  && js == 5 ) {
00406             return 2;
00407         } else if( inl == 2  && js == 7 ) {
00408             return 3;
00409         } else if( inl == 2  && js == 9 ) {
00410             return 4;
00411         } else if( inl == 1  && js == 1 ) {
00412             return 1;
00413         } else if( inl == 3  && js == 3 ) {
00414             return 2;
00415         } else if( inl == 3  && js == 5 ) {
00416             return 3;
00417         } else if( inl == 3  && js == 7 ) {
00418             return 4;
00419         } else if( inl == 3  && js == 9 ) {
00420             return 5;
00421         }
00422         // default to zero
00423         return 0;
00424     }

int Rivet::PID::particleName ( const std::string &  s  ) 

Definition at line 1667 of file ParticleName.cc.

References ParticleNameMap::endLookupMap(), ParticleNameMap::findString(), and getParticleNameMap().

01668 {
01669     static  ParticleNameMap const &  pmap = getParticleNameMap();
01670     ParticleNameMap::nameIterator const cit = pmap.findString( s );
01671     return ( cit == pmap.endLookupMap() )
01672          ? 0
01673      : cit->second;
01674 }  // particleName()

std::string Rivet::PID::particleName ( const int &  pid  ) 

Definition at line 1657 of file ParticleName.cc.

References ParticleNameMap::end(), ParticleNameMap::find(), and getParticleNameMap().

Referenced by writeParticleNameLine().

01658 {
01659     static  ParticleNameMap const &  pmap = getParticleNameMap();
01660 
01661     ParticleNameMap::idIterator const cit = pmap.find( pid );
01662     return ( cit == pmap.end() )
01663          ? std::string("not defined")
01664      : cit->second;
01665 }  // particleName()

ParticleNameMap const& Rivet::PID::@247::ParticleNameInit (  )  [static]

Definition at line 76 of file ParticleName.cc.

References Rivet::m.

Referenced by getParticleNameMap().

00077 {
00078 
00079   ParticleIdMap  m;
00080   ParticleLookupMap nameMap;
00081 
00082   static const struct {
00083       int pid;
00084       const char* pname;
00085   } SNames[] = {
00086       {          0, "" },
00087       {          1, "d" },
00088       {         -1, "d~" },
00089       {          2, "u" },
00090       {         -2, "u~" },
00091       {          3, "s" },
00092       {         -3, "s~" },
00093       {          4, "c" },
00094       {         -4, "c~" },
00095       {          5, "b" },
00096       {         -5, "b~" },
00097       {          6, "t" },
00098       {         -6, "t~" },
00099       {          7, "b'" },
00100       {         -7, "b'~" },
00101       {          8, "t'" },
00102       {         -8, "t'~" },
00103       {         11, "e^-" },
00104       {        -11, "e^+" },
00105       {         12, "nu_e" },
00106       {        -12, "nu_e~" },
00107       {         13, "mu^-" },
00108       {        -13, "mu^+" },
00109       {         14, "nu_mu" },
00110       {        -14, "nu_mu~" },
00111       {         15, "tau^-" },
00112       {        -15, "tau^+" },
00113       {         16, "nu_tau" },
00114       {        -16, "nu_tau~" },
00115       {         17, "tau'^-" },
00116       {        -17, "tau'^+" },
00117       {         18, "nu_tau'" },
00118       {        -18, "nu_tau'~" },
00119       {         21, "g" },
00120       {         22, "gamma" },
00121       {      10022, "virtual-photon" },
00122       {      20022, "Cerenkov-radiation" },
00123       {         23, "Z^0" },
00124       {         24, "W^+" },
00125       {        -24, "W^-" },
00126       {         25, "H_1^0" },
00127       {         32, "Z_2^0" },
00128       {         33, "Z_3^0" },
00129       {         34, "W_2^+" },
00130       {        -34, "W_2^-" },
00131       {         35, "H_2^0" },
00132       {         36, "H_3^0" },
00133       {         37, "H^+" },
00134       {        -37, "H^-" },
00135       {         39, "G"  },
00136       {         41, "R^0" },
00137       {        -41, "R~^0" },
00138       {         42, "LQ_c" },
00139       {        -42, "LQ_c~" },
00140       {         51, "H_L^0" },
00141       {         52, "H_1^++" },
00142       {        -52, "H_1^--" },
00143       {         53, "H_2^+" },
00144       {        -53, "H_2^-" },
00145       {         54, "H_2^++" },
00146       {        -54, "H_2^--" },
00147       {         55, "H_4^0" },
00148       {        -55, "H_4~^0" },
00149       {         81, "generator-specific+81" },
00150       {         82, "generator-specific+82" },
00151       {         83, "generator-specific+83" },
00152       {         84, "generator-specific+84" },
00153       {         85, "generator-specific+85" },
00154       {         86, "generator-specific+86" },
00155       {         87, "generator-specific+87" },
00156       {         88, "generator-specific+88" },
00157       {         89, "generator-specific+89" },
00158       {         90, "generator-specific+90" },
00159       {         91, "generator-specific+91" },
00160       {         92, "generator-specific+92" },
00161       {         93, "generator-specific+93" },
00162       {         94, "generator-specific+94" },
00163       {         95, "generator-specific+95" },
00164       {         96, "generator-specific+96" },
00165       {         97, "generator-specific+97" },
00166       {         98, "generator-specific+98" },
00167       {         99, "generator-specific+99" },
00168       {        -81, "generator-specific-81" },
00169       {        -82, "generator-specific-82" },
00170       {        -83, "generator-specific-83" },
00171       {        -84, "generator-specific-84" },
00172       {        -85, "generator-specific-85" },
00173       {        -86, "generator-specific-86" },
00174       {        -87, "generator-specific-87" },
00175       {        -88, "generator-specific-88" },
00176       {        -89, "generator-specific-89" },
00177       {        -90, "generator-specific-90" },
00178       {        -91, "generator-specific-91" },
00179       {        -92, "generator-specific-92" },
00180       {        -93, "generator-specific-93" },
00181       {        -94, "generator-specific-94" },
00182       {        -95, "generator-specific-95" },
00183       {        -96, "generator-specific-96" },
00184       {        -97, "generator-specific-97" },
00185       {        -98, "generator-specific-98" },
00186       {        -99, "generator-specific-99" },
00187       {        100, "generator-specific+100" },
00188       {       -100, "generator-specific-100" },
00189       {        101, "geantino" },
00190       {        102, "charged-geantino" },
00191       {        110, "reggeon" },
00192       {        130, "K_L^0" },
00193       {        310, "K_S^0" },
00194       {        990, "pomeron" },
00195       {       9990, "odderon" },
00196       {    1000001, "susy-d_L" },
00197       {   -1000001, "susy-d_L~" },
00198       {    1000002, "susy-u_L" },
00199       {   -1000002, "susy-u_L~" },
00200       {    1000003, "susy-s_L" },
00201       {   -1000003, "susy-s_L~" },
00202       {    1000004, "susy-c_L" },
00203       {   -1000004, "susy-c_L~" },
00204       {    1000005, "susy-b_1" },
00205       {   -1000005, "susy-b_1~" },
00206       {    1000006, "susy-t_1" },
00207       {   -1000006, "susy-t_1~" },
00208       {    1000011, "susy-e_L^-" },
00209       {   -1000011, "susy-e_L^+" },
00210       {    1000012, "susy-nu_eL" },
00211       {   -1000012, "susy-nu_eL~" },
00212       {    1000013, "susy-mu_L^-" },
00213       {   -1000013, "susy-mu_L^+" },
00214       {    1000014, "susy-nu_muL" },
00215       {   -1000014, "susy-nu_muL~" },
00216       {    1000015, "susy-tau_L^-" },
00217       {   -1000015, "susy-tau_L^+" },
00218       {    1000016, "susy-nu_tauL" },
00219       {   -1000016, "susy-nu_tauL~" },
00220       {    1000021, "gluino" },
00221       {    1000022, "susy-chi_1^0" },
00222       {    1000023, "susy-chi_2^0" },
00223       {    1000024, "susy-chi_1^+" },
00224       {   -1000024, "susy-chi_1^-" },
00225       {    1000025, "susy-chi_3^0" },
00226       {    1000035, "susy-chi_4^0" },
00227       {    1000037, "susy-chi_2^+" },
00228       {   -1000037, "susy-chi_2^-" },
00229       {    1000039, "gravitino" },
00230       {    2000001, "susy-d_R" },
00231       {   -2000001, "susy-d_R~" },
00232       {    2000002, "susy-u_R" },
00233       {   -2000002, "susy-u_R~" },
00234       {    2000003, "susy-s_R" },
00235       {   -2000003, "susy-s_R~" },
00236       {    2000004, "susy-c_R" },
00237       {   -2000004, "susy-c_R~" },
00238       {    2000005, "susy-b_R" },
00239       {   -2000005, "susy-b_R~" },
00240       {    2000006, "susy-t_R" },
00241       {   -2000006, "susy-t_R~" },
00242       {    2000011, "susy-e_R^-" },
00243       {   -2000011, "susy-e_R^+" },
00244       {    2000012, "susy-nu_eR" },
00245       {   -2000012, "susy-nu_eR~" },
00246       {    2000013, "susy-mu_R^-" },
00247       {   -2000013, "susy-mu_R^+" },
00248       {    2000014, "susy-nu_muR" },
00249       {   -2000014, "susy-nu_muR~" },
00250       {    2000015, "susy-tau_R^-" },
00251       {   -2000015, "susy-tau_R^+" },
00252       {    2000016, "susy-nu_tauR" },
00253       {   -2000016, "susy-nu_tauR~" },
00254       {    3100021, "V8_tech" },
00255       {   -3100021, "V8_tech" },
00256       {    3000111, "pi_tech^0" },
00257       {    3060111, "pi_tech_22_1" },
00258       {    3160111, "pi_tech_22_8" },
00259       {    3000113, "rho_tech^0" },
00260       {    3130113, "rho_tech_11" },
00261       {    3140113, "rho_tech_12" },
00262       {    3150113, "rho_tech_21" },
00263       {    3160113, "rho_tech_22" },
00264       {    3000211, "pi_tech^+" },
00265       {   -3000211, "pi_tech^-" },
00266       {    3000213, "rho_tech^+" },
00267       {   -3000213, "rho_tech^-" },
00268       {    3000221, "pi'_tech" },
00269       {    3100221, "eta_tech" },
00270       {    3000223, "omega_tech" },
00271       {    4000001, "d*" },
00272       {   -4000001, "d*~" },
00273       {    4000002, "u*" },
00274       {   -4000002, "u*~" },
00275       {    4000011, "e*^-" },
00276       {   -4000011, "e*^+" },
00277       {    4000012, "nu*_e" },
00278       {   -4000012, "nu*_e~" },
00279       {    4000039, "G*" },
00280       {   -4000039, "G*~" },
00281       {    9900012, "nu_Re" },
00282       {   -9900012, "nu_Re~" },
00283       {    9900014, "nu_Rmu" },
00284       {   -9900014, "nu_Rmu~" },
00285       {    9900016, "nu_Rtau" },
00286       {   -9900016, "nu_Rtau~" },
00287       {    9900023, "Z_R^0" },
00288       {   -9900023, "Z_R~^0" },
00289       {    9900024, "W_R^+" },
00290       {   -9900024, "W_R^-" },
00291       {    9900041, "H_L^++" },
00292       {   -9900041, "H_L^--" },
00293       {    9900042, "H_R^++" },
00294       {   -9900042, "H_R^--" },
00295       {    9910113, "rho_diffr^0" },
00296       {    9910211, "pi_diffr^+" },
00297       {   -9910211, "pi_diffr^-" },
00298       {    9910223, "omega_diffr" },
00299       {    9910333, "phi_diffr" },
00300       {    9910443, "psi_diffr" },
00301       {    9912112, "n_diffr^0" },
00302       {   -9912112, "n_diffr~^0" },
00303       {    9912212, "p_diffr^+" },
00304       {   -9912212, "p_diffr~^-" },
00305       {    9920022, "remnant photon" },
00306       {    9922212, "remnant nucleon" },
00307       {   -9922212, "remnant nucleon~" },
00308       {    9900441, "cc~[1S08]" },
00309       {    9910441, "cc~[3P08]" },
00310       {    9900443, "cc~[3S18]" },
00311       {    9900551, "bb~[1S08]" },
00312       {    9910551, "bb~[3P08]" },
00313       {    9900553, "bb~[3S18]" },
00314       {       1103, "dd_1" },
00315       {      -1103, "dd_1~" },
00316       {       2101, "ud_0" },
00317       {      -2101, "ud_0~" },
00318       {       2103, "ud_1" },
00319       {      -2103, "ud_1~" },
00320       {       2203, "uu_1" },
00321       {      -2203, "uu_1~" },
00322       {       3101, "sd_0" },
00323       {      -3101, "sd_0~" },
00324       {       3103, "sd_1" },
00325       {      -3103, "sd_1~" },
00326       {       3201, "su_0" },
00327       {      -3201, "su_0~" },
00328       {       3203, "su_1" },
00329       {      -3203, "su_1~" },
00330       {       3303, "ss_1" },
00331       {      -3303, "ss_1~" },
00332       {       4101, "cd_0" },
00333       {      -4101, "cd_0~" },
00334       {       4103, "cd_1" },
00335       {      -4103, "cd_1~" },
00336       {       4201, "cu_0" },
00337       {      -4201, "cu_0~" },
00338       {       4203, "cu_1" },
00339       {      -4203, "cu_1~" },
00340       {       4301, "cs_0" },
00341       {      -4301, "cs_0~" },
00342       {       4303, "cs_1" },
00343       {      -4303, "cs_1~" },
00344       {       4403, "cc_1" },
00345       {      -4403, "cc_1~" },
00346       {       5101, "bd_0" },
00347       {      -5101, "bd_0~" },
00348       {       5103, "bd_1" },
00349       {      -5103, "bd_1~" },
00350       {       5201, "bu_0" },
00351       {      -5201, "bu_0~" },
00352       {       5203, "bu_1" },
00353       {      -5203, "bu_1~" },
00354       {       5301, "bs_0" },
00355       {      -5301, "bs_0~" },
00356       {       5303, "bs_1" },
00357       {      -5303, "bs_1~" },
00358       {       5401, "bc_0" },
00359       {      -5401, "bc_0~" },
00360       {       5403, "bc_1" },
00361       {      -5403, "bc_1~" },
00362       {       5503, "bb_1" },
00363       {      -5503, "bb_1~" },
00364       {       6101, "td_0" },
00365       {      -6101, "td_0~" },
00366       {       6103, "td_1" },
00367       {      -6103, "td_1~" },
00368       {       6201, "tu_0" },
00369       {      -6201, "tu_0~" },
00370       {       6203, "tu_1" },
00371       {      -6203, "tu_1~" },
00372       {       6301, "ts_0" },
00373       {      -6301, "ts_0~" },
00374       {       6303, "ts_1" },
00375       {      -6303, "ts_1~" },
00376       {       6401, "tc_0" },
00377       {      -6401, "tc_0~" },
00378       {       6403, "tc_1" },
00379       {      -6403, "tc_1~" },
00380       {       6501, "tb_0" },
00381       {      -6501, "tb_0~" },
00382       {       6503, "tb_1" },
00383       {      -6503, "tb_1~" },
00384       {       6603, "tt_1" },
00385       {      -6603, "tt_1~" },
00386       {       7101, "b'd_0" },
00387       {      -7101, "b'd_0~" },
00388       {       7103, "b'd_1" },
00389       {      -7103, "b'd_1~" },
00390       {       7201, "b'u_0" },
00391       {      -7201, "b'u_0~" },
00392       {       7203, "b'u_1" },
00393       {      -7203, "b'u_1~" },
00394       {       7301, "b's_0" },
00395       {      -7301, "b's_0~" },
00396       {       7303, "b's_1" },
00397       {      -7303, "b's_1~" },
00398       {       7401, "b'c_0" },
00399       {      -7401, "b'c_0~" },
00400       {       7403, "b'c_1" },
00401       {      -7403, "b'c_1~" },
00402       {       7501, "b'b_0" },
00403       {      -7501, "b'b_0~" },
00404       {       7503, "b'b_1" },
00405       {      -7503, "b'b_1~" },
00406       {       7601, "b't_0" },
00407       {      -7601, "b't_0~" },
00408       {       7603, "b't_1" },
00409       {      -7603, "b't_1~" },
00410       {       7703, "b'b'_1" },
00411       {      -7703, "b'b'_1~" },
00412       {       8101, "t'd_0" },
00413       {      -8101, "t'd_0~" },
00414       {       8103, "t'd_1" },
00415       {      -8103, "t'd_1~" },
00416       {       8201, "t'u_0" },
00417       {      -8201, "t'u_0~" },
00418       {       8203, "t'u_1" },
00419       {      -8203, "t'u_1~" },
00420       {       8301, "t's_0" },
00421       {      -8301, "t's_0~" },
00422       {       8303, "t's_1" },
00423       {      -8303, "t's_1~" },
00424       {       8401, "t'c_0" },
00425       {      -8401, "t'c_0~" },
00426       {       8403, "t'c_1" },
00427       {      -8403, "t'c_1~" },
00428       {       8501, "t'b_0" },
00429       {      -8501, "t'b_0~" },
00430       {       8503, "t'b_1" },
00431       {      -8503, "t'b_1~" },
00432       {       8601, "t't_0" },
00433       {      -8601, "t't_0~" },
00434       {       8603, "t't_1" },
00435       {      -8603, "t't_1~" },
00436       {       8701, "t'b'_0" },
00437       {      -8701, "t'b'_0~" },
00438       {       8703, "t'b'_1" },
00439       {      -8703, "t'b'_1~" },
00440       {       8803, "t't'_1" },
00441       {      -8803, "t't'_1~" },
00442       {        111, "pi^0" },
00443       {    9000111, "a_0(980)^0" },
00444       {      10111, "a_0(1450)^0" },
00445       {     100111, "pi(1300)^0" },
00446       {    9010111, "pi(1800)^0" },
00447       {        113, "rho(770)^0" },
00448       {      10113, "b_1(1235)^0" },
00449       {      20113, "a_1(1260)^0" },
00450       {    9000113, "pi_1(1400)^0" },
00451       {     100113, "rho(1450)^0" },
00452       {    9010113, "pi_1(1600)^0" },
00453       {    9020113, "a_1(1640)^0" },
00454       {      30113, "rho(1700)^0" },
00455       {    9030113, "rho(1900)^0" },
00456       {    9040113, "rho(2150)^0" },
00457       {        115, "a_2(1320)^0" },
00458       {      10115, "pi_2(1670)^0" },
00459       {    9000115, "a_2(1700)^0" },
00460       {    9010115, "pi_2(2100)^0" },
00461       {        117, "rho_3(1690)^0" },
00462       {    9000117, "rho_3(1990)^0" },
00463       {    9010117, "rho_3(2250)^0" },
00464       {        119, "a_4(2040)^0" },
00465       {        211, "pi^+" },
00466       {       -211, "pi^-" },
00467       {    9000211, "a_0(980)^+" },
00468       {   -9000211, "a_0(980)^-" },
00469       {      10211, "a_0(1450)^+" },
00470       {     -10211, "a_0(1450)^-" },
00471       {     100211, "pi(1300)^+" },
00472       {    -100211, "pi(1300)^-" },
00473       {    9010211, "pi(1800)^+" },
00474       {   -9010211, "pi(1800)^-" },
00475       {        213, "rho(770)^+" },
00476       {       -213, "rho(770)^-" },
00477       {      10213, "b_1(1235)^+" },
00478       {     -10213, "b_1(1235)^-" },
00479       {      20213, "a_1(1260)^+" },
00480       {     -20213, "a_1(1260)^-" },
00481       {    9000213, "pi_1(1400)^+" },
00482       {   -9000213, "pi_1(1400)^-" },
00483       {     100213, "rho(1450)^+" },
00484       {    -100213, "rho(1450)^-" },
00485       {    9010213, "pi_1(1600)^+" },
00486       {   -9010213, "pi_1(1600)^-" },
00487       {    9020213, "a_1(1640)^+" },
00488       {   -9020213, "a_1(1640)^-" },
00489       {      30213, "rho(1700)^+" },
00490       {     -30213, "rho(1700)^-" },
00491       {    9030213, "rho(1900)^+" },
00492       {   -9030213, "rho(1900)^-" },
00493       {    9040213, "rho(2150)^+" },
00494       {   -9040213, "rho(2150)^-" },
00495       {        215, "a_2(1320)^+" },
00496       {       -215, "a_2(1320)^-" },
00497       {      10215, "pi_2(1670)^+" },
00498       {     -10215, "pi_2(1670)^-" },
00499       {    9000215, "a_2(1700)^+" },
00500       {   -9000215, "a_2(1700)^-" },
00501       {    9010215, "pi_2(2100)^+" },
00502       {   -9010215, "pi_2(2100)^-" },
00503       {        217, "rho_3(1690)^+" },
00504       {       -217, "rho_3(1690)^-" },
00505       {    9000217, "rho_3(1990)^+" },
00506       {   -9000217, "rho_3(1990)^-" },
00507       {    9010217, "rho_3(2250)^+" },
00508       {   -9010217, "rho_3(2250)^-" },
00509       {        219, "a_4(2040)^+" },
00510       {       -219, "a_4(2040)^-" },
00511       {        221, "eta" },
00512       {    9000221, "f_0(600)" },
00513       {      10221, "f_0(1370)" },
00514       {    9010221, "f_0(980)" },
00515       {    9020221, "eta(1405)" },
00516       {    9030221, "f_0(1500)" },
00517       {    9040221, "eta(1760)" },
00518       {    9050221, "f_0(2020)" },
00519       {    9060221, "f_0(2100)" },
00520       {    9070221, "f_0(2200)" },
00521       {    9080221, "eta(2225)" },
00522       {     100221, "eta(1295)" },
00523       {        331, "eta'(958)" },
00524       {      10331, "f_0(1710)" },
00525       {     100331, "eta(1475)" },
00526       {        223, "omega(782)" },
00527       {    9000223, "f_1(1510)" },
00528       {    9010223, "h_1(1595)" },
00529       {      10223, "h_1(1170)" },
00530       {      20223, "f_1(1285)" },
00531       {      30223, "omega(1650)" },
00532       {     100223, "omega(1420)" },
00533       {        333, "phi(1020)" },
00534       {      10333, "h_1(1380)" },
00535       {      20333, "f_1(1420)" },
00536       {     100333, "phi(1680)" },
00537       {        225, "f_2(1270)" },
00538       {    9000225, "f_2(1430)" },
00539       {      10225, "eta_2(1645)" },
00540       {    9010225, "f_2(1565)" },
00541       {    9020225, "f_2(1640)" },
00542       {    9030225, "f_2(1810)" },
00543       {    9040225, "f_2(1910)" },
00544       {    9050225, "f_2(1950)" },
00545       {    9060225, "f_2(2010)" },
00546       {    9070225, "f_2(2150)" },
00547       {    9080225, "f_2(2300)" },
00548       {    9090225, "f_2(2340)" },
00549       {        335, "f'_2(1525)" },
00550       {      10335, "eta_2(1870)" },
00551       {        227, "omega_3(1670)" },
00552       {        337, "phi_3(1850)" },
00553       {        229, "f_4(2050)" },
00554       {    9000229, "f_J(2220)" },
00555       {    9010229, "f_4(2300)" },
00556       {        311, "K^0" },
00557       {       -311, "K~^0" },
00558       {    9000311, "K*_0(800)^0" },
00559       {   -9000311, "K*_0(800)~^0" },
00560       {      10311, "K*_0(1430)^0" },
00561       {     -10311, "K*_0(1430)~^0" },
00562       {     100311, "K(1460)^0" },
00563       {    -100311, "K(1460)~^0" },
00564       {    9010311, "K(1830)^0" },
00565       {   -9010311, "K(1830)~^0" },
00566       {    9020311, "K*_0(1950)^0" },
00567       {   -9020311, "K*_0(1950)~^0" },
00568       {        321, "K^+" },
00569       {       -321, "K^-" },
00570       {    9000321, "K*_0(800)^+" },
00571       {   -9000321, "K*_0(800)^-" },
00572       {      10321, "K*_0(1430)^+" },
00573       {     -10321, "K*_0(1430)^-" },
00574       {     100321, "K(1460)^+" },
00575       {    -100321, "K(1460)^-" },
00576       {    9010321, "K(1830)^+" },
00577       {   -9010321, "K(1830)^-" },
00578       {    9020321, "K*_0(1950)^+" },
00579       {   -9020321, "K*_0(1950)^-" },
00580       {        313, "K*(892)^0" },
00581       {       -313, "K*(892)~^0" },
00582       {      10313, "K_1(1270)^0" },
00583       {     -10313, "K_1(1270)~^0" },
00584       {      20313, "K_1(1400)^0" },
00585       {     -20313, "K_1(1400)~^0" },
00586       {      30313, "K*(1680)^0" },
00587       {     -30313, "K*(1680)~^0" },
00588       {     100313, "K*(1410)^0" },
00589       {    -100313, "K*(1410)~^0" },
00590       {    9000313, "K_1(1650)^0" },
00591       {   -9000313, "K_1(1650)~^0" },
00592       {        323, "K*(892)^+" },
00593       {       -323, "K*(892)^-" },
00594       {      10323, "K_1(1270)^+" },
00595       {     -10323, "K_1(1270)^-" },
00596       {      20323, "K_1(1400)^+" },
00597       {     -20323, "K_1(1400)^-" },
00598       {      30323, "K*(1680)^+" },
00599       {     -30323, "K*(1680)^-" },
00600       {     100323, "K*(1410)^+" },
00601       {    -100323, "K*(1410)^-" },
00602       {    9000323, "K_1(1650)^+" },
00603       {   -9000323, "K_1(1650)^-" },
00604       {        315, "K*_2(1430)^0" },
00605       {       -315, "K*_2(1430)~^0" },
00606       {    9000315, "K_2(1580)^0" },
00607       {   -9000315, "K_2(1580)~^0" },
00608       {      10315, "K_2(1770)^0" },
00609       {     -10315, "K_2(1770)~^0" },
00610       {    9010315, "K*_2(1980)^0" },
00611       {   -9010315, "K*_2(1980)~^0" },
00612       {    9020315, "K_2(2250)^0" },
00613       {   -9020315, "K_2(2250)~^0" },
00614       {      20315, "K_2(1820)^0" },
00615       {     -20315, "K_2(1820)~^0" },
00616       {        325, "K*_2(1430)^+" },
00617       {       -325, "K*_2(1430)^-" },
00618       {    9000325, "K_2(1580)^+" },
00619       {   -9000325, "K_2(1580)^-" },
00620       {      10325, "K_2(1770)^+" },
00621       {     -10325, "K_2(1770)^-" },
00622       {    9010325, "K*_2(1980)^+" },
00623       {   -9010325, "K*_2(1980)^-" },
00624       {    9020325, "K_2(2250)^+" },
00625       {   -9020325, "K_2(2250)^-" },
00626       {      20325, "K_2(1820)^+" },
00627       {     -20325, "K_2(1820)^-" },
00628       {     100325, "K_2(1980)^+" },
00629       {    -100325, "K_2(1980)^-" },
00630       {        317, "K*_3(1780)^0" },
00631       {       -317, "K*_3(1780)~^0" },
00632       {    9010317, "K_3(2320)^0" },
00633       {   -9010317, "K_3(2320)~^0" },
00634       {        327, "K*_3(1780)^+" },
00635       {       -327, "K*_3(1780)^-" },
00636       {    9010327, "K_3(2320)^+" },
00637       {   -9010327, "K_3(2320)^-" },
00638       {        319, "K*_4(2045)^0" },
00639       {       -319, "K*_4(2045)~^0" },
00640       {    9000319, "K_4(2500)^0" },
00641       {   -9000319, "K_4(2500)~^0" },
00642       {        329, "K*_4(2045)^+" },
00643       {       -329, "K*_4(2045)^-" },
00644       {    9000329, "K_4(2500)^+" },
00645       {   -9000329, "K_4(2500)^-" },
00646       {        411, "D^+" },
00647       {       -411, "D^-" },
00648       {      10411, "D*_0(2400)^+" },
00649       {     -10411, "D*_0(2400)^-" },
00650       {     100411, "D(2S)^+" },
00651       {    -100411, "D(2S)^-" },
00652       {        413, "D*(2010)^+" },
00653       {       -413, "D*(2010)^-" },
00654       {      10413, "D_1(2420)^+" },
00655       {     -10413, "D_1(2420)^-" },
00656       {      20413, "D_1(H)^+" },
00657       {     -20413, "D_1(H)^-" },
00658       {     100413, "D*(2S)^+" },
00659       {    -100413, "D*(2S)^+" },
00660       {        415, "D*_2(2460)^+" },
00661       {       -415, "D*_2(2460)^-" },
00662       {        421, "D^0" },
00663       {       -421, "D~^0" },
00664       {      10421, "D*_0(2400)^0" },
00665       {     -10421, "D*_0(2400)~^0" },
00666       {     100421, "D(2S)^0" },
00667       {    -100421, "D(2S)~^0" },
00668       {        423, "D*(2007)^0" },
00669       {       -423, "D*(2007)~^0" },
00670       {      10423, "D_1(2420)^0" },
00671       {     -10423, "D_1(2420)~^0" },
00672       {      20423, "D_1(2430)^0" },
00673       {     -20423, "D_1(2430)~^0" },
00674       {     100423, "D*(2S)^0" },
00675       {    -100423, "D*(2S)~^0" },
00676       {        425, "D*_2(2460)^0" },
00677       {       -425, "D*_2(2460)~^0" },
00678       {        431, "D_s^+" },
00679       {       -431, "D_s^-" },
00680       {      10431, "D*_s0(2317)^+" },
00681       {     -10431, "D*_s0(2317)^-" },
00682       {        433, "D*_s^+" },
00683       {       -433, "D*_s^-" },
00684       {      10433, "D_s1(2536)^+" },
00685       {     -10433, "D_s1(2536)^-" },
00686       {      20433, "D_s1(2460)^+" },
00687       {     -20433, "D_s1(2460)^-" },
00688       {        435, "D*_s2(2573)^+" },
00689       {       -435, "D*_s2(2573)^-" },
00690       {        441, "eta_c(1S)" },
00691       {      10441, "chi_c0(1P)" },
00692       {     100441, "eta_c(2S)" },
00693       {        443, "J/psi(1S)" },
00694       {    9000443, "psi(4040)" },
00695       {      10443, "hc(1P)" },
00696       {    9010443, "psi(4160)" },
00697       {      20443, "chi_c1(1P)" },
00698       {    9020443, "psi(4415)" },
00699       {      30443, "psi(3770)" },
00700       {     100443, "psi(2S)" },
00701       {        445, "chi_c2(1P)" },
00702       {     100445, "chi_c2(2P)" },
00703       {        511, "B^0" },
00704       {       -511, "B~^0" },
00705       {      10511, "B*_0^0" },
00706       {     -10511, "B*_0~^0" },
00707       {        513, "B*^0" },
00708       {       -513, "B*~^0" },
00709       {      10513, "B_1(L)^0" },
00710       {     -10513, "B_1(L)~^0" },
00711       {      20513, "B_1(H)^0" },
00712       {     -20513, "B_1(H)~^0" },
00713       {        515, "B*_2^0" },
00714       {       -515, "B*_2~^0" },
00715       {        521, "B^+" },
00716       {       -521, "B^-" },
00717       {      10521, "B*_0^+" },
00718       {     -10521, "B*_0^-" },
00719       {        523, "B*^+" },
00720       {       -523, "B*^-" },
00721       {      10523, "B_1(L)^+" },
00722       {     -10523, "B_1(L)^-" },
00723       {      20523, "B_1(H)^+" },
00724       {     -20523, "B_1(H)^-" },
00725       {        525, "B*_2^+" },
00726       {       -525, "B*_2^-" },
00727       {        531, "B_s^0" },
00728       {       -531, "B_s~^0" },
00729       {      10531, "B*_s0^0" },
00730       {     -10531, "B*_s0~^0" },
00731       {        533, "B*_s^0" },
00732       {       -533, "B*_s~^0" },
00733       {      10533, "B_s1(L)^0" },
00734       {     -10533, "B_s1(L)~^0" },
00735       {      20533, "B_s1(H)^0" },
00736       {     -20533, "B_s1(H)~^0" },
00737       {        535, "B*_s2^0" },
00738       {       -535, "B*_s2~^0" },
00739       {        541, "B_c^+" },
00740       {       -541, "B_c^-" },
00741       {      10541, "B*_c0^+" },
00742       {     -10541, "B*_c0^-" },
00743       {        543, "B*_c^+" },
00744       {       -543, "B*_c^-" },
00745       {      10543, "B_c1(L)^+" },
00746       {     -10543, "B_c1(L)^-" },
00747       {      20543, "B_c1(H)^+" },
00748       {     -20543, "B_c1(H)^-" },
00749       {        545, "B*_c2^+" },
00750       {       -545, "B*_c2^-" },
00751       {        551, "eta_b(1S)" },
00752       {      10551, "chi_b0(1P)" },
00753       {     100551, "eta_b(2S)" },
00754       {     110551, "chi_b0(2P)" },
00755       {     200551, "eta_b(3S)" },
00756       {     210551, "chi_b0(3P)" },
00757       {        553, "Upsilon(1S)" },
00758       {    9000553, "Upsilon(10860)" },
00759       {      10553, "h_b(1P)" },
00760       {    9010553, "Upsilon(11020)" },
00761       {      20553, "chi_b1(1P)" },
00762       {    9020553, "Upsilon(7S)" },
00763       {      30553, "Upsilon_1(1D)" },
00764       {     100553, "Upsilon(2S)" },
00765       {     110553, "h_b(2P)" },
00766       {     120553, "chi_b1(2P)" },
00767       {     130553, "Upsilon_1(2D)" },
00768       {     200553, "Upsilon(3S)" },
00769       {     210553, "h_b(3P)" },
00770       {     220553, "chi_b1(3P)" },
00771       {     300553, "Upsilon(4S)" },
00772       {        555, "chi_b2(1P)" },
00773       {      10555, "eta_b2(1D)" },
00774       {      20555, "Upsilon_2(1D)" },
00775       {     100555, "chi_b2(2P)" },
00776       {     110555, "eta_b2(2D)" },
00777       {     120555, "Upsilon_2(2D)" },
00778       {     200555, "chi_b2(3P)" },
00779       {        557, "Upsilon_3(1D)" },
00780       {     100557, "Upsilon_3(2D)" },
00781       {        611, "T^+" },
00782       {       -611, "T^-" },
00783       {        613, "T*^+" },
00784       {       -613, "T*^-" },
00785       {        621, "T^0" },
00786       {       -621, "T~^0" },
00787       {        623, "T*^0" },
00788       {       -623, "T*~^0" },
00789       {        631, "T_s^+" },
00790       {       -631, "T_s^-" },
00791       {        633, "T*_s^+" },
00792       {       -633, "T*_s^-" },
00793       {        641, "T_c^0" },
00794       {       -641, "T_c~^0" },
00795       {        643, "T*_c^0" },
00796       {       -643, "T*_c~^0" },
00797       {        651, "T_b^+" },
00798       {       -651, "T_b^-" },
00799       {        653, "T*_b^+" },
00800       {       -653, "T*_b^-" },
00801       {        661, "eta_t" },
00802       {        663, "theta" },
00803       {        711, "L^0" },
00804       {       -711, "L~^0" },
00805       {        713, "L*^0" },
00806       {       -713, "L*~^0" },
00807       {        721, "L^-" },
00808       {       -721, "L^+" },
00809       {        723, "L*^-" },
00810       {       -723, "L*^+" },
00811       {        731, "L_s^0" },
00812       {       -731, "L_s~^0" },
00813       {        733, "L*_s^0" },
00814       {       -733, "L*_s~^0" },
00815       {        741, "L_c^-" },
00816       {       -741, "L_c^+" },
00817       {        743, "L*_c^-" },
00818       {       -743, "L*_c^+" },
00819       {        751, "L_b^0" },
00820       {       -751, "L_b~^0" },
00821       {        753, "L*_b^0" },
00822       {       -753, "L*_b~^0" },
00823       {        761, "L_t^-" },
00824       {       -761, "L_t^+" },
00825       {        763, "L*_t^-" },
00826       {       -763, "L*_t^+" },
00827       {        771, "eta_l" },
00828       {        773, "theta_l" },
00829       {        811, "H^+" },
00830       {       -811, "H^-" },
00831       {        813, "H*^+" },
00832       {       -813, "H*^-" },
00833       {        821, "H^0" },
00834       {       -821, "H~^0" },
00835       {        823, "H*^0" },
00836       {       -823, "H*~^0" },
00837       {        831, "H_s^+" },
00838       {       -831, "H_s^-" },
00839       {        833, "H*_s^+" },
00840       {       -833, "H*_s^-" },
00841       {        841, "H_c^0" },
00842       {       -841, "H_c~^0" },
00843       {        843, "H*_c^0" },
00844       {       -843, "H*_c~^0" },
00845       {        851, "H_b^+" },
00846       {       -851, "H_b^-" },
00847       {        853, "H*_b^+" },
00848       {       -853, "H*_b^-" },
00849       {        861, "H_t^0" },
00850       {       -861, "H_t~^0" },
00851       {        863, "H*_t^0" },
00852       {       -863, "H*_t~^0" },
00853       {        871, "H_l^+" },
00854       {       -871, "H_l^-" },
00855       {        873, "H*_l^+" },
00856       {       -873, "H*_l^-" },
00857       {        881, "eta_h" },
00858       {        883, "theta_H" },
00859       {       2112, "n^0" },
00860       {      -2112, "n~^0" },
00861       {       2212, "p^+" },
00862       {      -2212, "p~^-" },
00863     {        12212,        "N(1440)^+"},
00864     {        12112,        "N(1440)^0"},
00865     {        22212,        "N(1535)^+"},
00866     {        22112,        "N(1535)^0"},
00867     {        32212,        "N(1650)^+"},
00868     {        32112,        "N(1650)^0"},
00869     {        42212,        "N(1710)^+"},
00870     {        42112,        "N(1710)^0"},
00871     {         1214,         "N(1520)^0"},
00872     {         2124,         "N(1520)^+"},
00873     {        21214,        "N(1700)^0"},
00874     {        22124,        "N(1700)^+"},
00875     {        31214,        "N(1720)^0"},
00876     {        32124,        "N(1720)^+"},
00877     {         2116,         "N(1675)^0"},
00878     {         2216,         "N(1675)^+"},
00879     {        12116,        "N(1680)^0"},
00880     {        12216,        "N(1680)^+"},
00881     {         1218,         "N(2190)^0"},
00882     {         2128,        "N(2190)^+" },
00883       {       1114, "Delta^-" },
00884       {      -1114, "Delta~^+" },
00885       {       2114, "Delta^0" },
00886       {      -2114, "Delta~^0" },
00887       {       2214, "Delta^+" },
00888       {      -2214, "Delta~^-" },
00889       {       2224, "Delta^++" },
00890       {      -2224, "Delta~^--" },
00891     {        31114,   "Delta(1600)^-"      },
00892     {        32114,   "Delta(1600)^0"      },
00893     {        32214,    "Delta(1600)^+"     },
00894     {        32224,     "Delta(1600)^++"    },
00895     {         1112,    "Delta(1620)^-"     },
00896     {         1212,    "Delta(1620)^0"     },
00897     {         2122,    "Delta(1620)^+"     },
00898     {         2222,     "Delta(1620)^++"    },
00899     {        11114,     "Delta(1700)^-"    },
00900     {        12114,     "Delta(1700)^0"    },
00901     {        12214,     "Delta(1700)^+"    },
00902     {        12224,      "Delta(1700)^++"   },
00903     {         1116,     "Delta(1905)^-"    },
00904     {         1216,     "Delta(1905)^0"    },
00905     {         2126,     "Delta(1905)^+"    },
00906     {         2226,      "Delta(1905)^++"   },
00907     {        21112,    "Delta(1910)^-"    },
00908     {        21212,     "Delta(1910)^0"   },
00909     {        22122,     "Delta(1910)^+"   },
00910     {        22222,     "Delta(1910)^++"   },
00911     {        21114,    "Delta(1920)^-"    },
00912     {        22114,     "Delta(1920)^0"   },
00913     {        22214,     "Delta(1920)^+"   },
00914     {        22224,    "Delta(1920)^++"    },
00915     {        11116,    "Delta(1930)^-"    },
00916     {        11216,     "Delta(1930)^0"   },
00917     {        12126,     "Delta(1930)^+"   },
00918     {        12226,     "Delta(1930)^++"   },
00919     {         1118,     "Delta(1950)^-"    },
00920     {         2118,      "Delta(1950)^0"   },
00921     {         2218,      "Delta(1950)^+"   },
00922     {         2228,     "Delta(1950)^++"    },
00923       {       3122, "Lambda^0" },
00924       {      -3122, "Lambda~^0" },
00925       {      13122, "Lambda(1405)^0" },
00926       {     -13122, "Lambda~(1405)^0" },
00927       {      23122, "Lambda(1600)^0" },
00928       {     -23122, "Lambda~(1600)^0" },
00929       {      33122, "Lambda(1670)^0" },
00930       {     -33122, "Lambda~(1670)^0" },
00931       {      43122, "Lambda(1800)^0" },
00932       {     -43122, "Lambda~(1800)^0" },
00933       {      53122, "Lambda(1810)^0" },
00934       {     -53122, "Lambda~(1810)^0" },
00935       {       3124, "Lambda(1520)^0" },
00936       {      -3124, "Lambda~(1520)^0" },
00937       {      13124, "Lambda(1690)^0" },
00938       {     -13124, "Lambda~(1690)^0" },
00939       {      23124, "Lambda(1890)^0" },
00940       {     -23124, "Lambda~(1890)^0" },
00941       {       3126, "Lambda(1820)^0" },
00942       {      -3126, "Lambda~(1820)^0" },
00943       {      13126, "Lambda(1830)^0" },
00944       {     -13126, "Lambda~(1830)^0" },
00945       {      23126, "Lambda(2110)^0" },
00946       {     -23126, "Lambda~(2110)^0" },
00947       {       3128, "Lambda(2100)^0" },
00948       {      -3128, "Lambda~(2100)^0" },
00949       {       3112, "Sigma^-" },
00950       {      -3112, "Sigma~^+" },
00951       {       3212, "Sigma^0" },
00952       {      -3212, "Sigma~^0" },
00953       {       3222, "Sigma^+" },
00954       {      -3222, "Sigma~^-" },
00955       {      13222, "Sigma(1660)^+" },
00956       {     -13222, "Sigma~(1660)^+" },
00957       {      13212, "Sigma(1660)^0" },
00958       {     -13212, "Sigma~(1660)^0" },
00959       {      13112, "Sigma(1660)^-" },
00960       {     -13112, "Sigma~(1660)^-" },
00961       {      23112, "Sigma(1750)^-" },
00962       {     -23112, "Sigma~(1750)^-" },
00963       {      23212, "Sigma(1750)^0" },
00964       {     -23212, "Sigma~(1750)^0" },
00965       {      23222, "Sigma(1750)^+" },
00966       {     -23222, "Sigma~(1750)^+" },
00967       {       3114, "Sigma*^-" },
00968       {      -3114, "Sigma*~^+" },
00969       {       3214, "Sigma*^0" },
00970       {      -3214, "Sigma*~^0" },
00971       {       3224, "Sigma*^+" },
00972       {      -3224, "Sigma*~^-" },
00973       {      13224, "Sigma(1670)^+" },
00974       {     -13224, "Sigma~(1670)^+" },
00975       {      13214, "Sigma(1670)^0" },
00976       {     -13214, "Sigma~(1670)^0" },
00977       {      13114, "Sigma(1670)^-" },
00978       {     -13114, "Sigma~(1670)^-" },
00979       {      23224, "Sigma(1940)^+" },
00980       {     -23224, "Sigma~(1940)^+" },
00981       {      23214, "Sigma(1940)^0" },
00982       {     -23214, "Sigma~(1940)^0" },
00983       {      23114, "Sigma(1940)^-" },
00984       {     -23114, "Sigma~(1940)^-" },
00985       {       3226, "Sigma(1775)^+" },
00986       {      -3226, "Sigma~(1775)^+" },
00987       {       3216, "Sigma(1775)^0" },
00988       {      -3216, "Sigma~(1775)^0" },
00989       {       3116, "Sigma(1775)^-" },
00990       {      -3116, "Sigma~(1775)^-" },
00991       {      13226, "Sigma(1915)^+" },
00992       {     -13226, "Sigma~(1915)^+" },
00993       {      13216, "Sigma(1915)^0" },
00994       {     -13216, "Sigma~(1915)^0" },
00995       {      13116, "Sigma(1915)^-" },
00996       {     -13116, "Sigma~(1915)^-" },
00997       {       3228, "Sigma(2030)^+" },
00998       {      -3228, "Sigma~(2030)^+" },
00999       {       3218, "Sigma(2030)^0" },
01000       {      -3218, "Sigma~(2030)^0" },
01001       {       3118, "Sigma(2030)^-" },
01002       {      -3118, "Sigma~(2030)^-" },
01003       {       3312, "Xi^-" },
01004       {      -3312, "Xi~^+" },
01005       {       3322, "Xi^0" },
01006       {      -3322, "Xi~^0" },
01007       {       3314, "Xi*^-" },
01008       {      -3314, "Xi*~^+" },
01009       {       3324, "Xi*^0" },
01010       {      -3324, "Xi*~^0" },
01011       {      13314, "Xi(1820)^-" },
01012       {     -13314, "Xi(1820)~^+" },
01013       {      13324, "Xi(1820)^0" },
01014       {     -13324, "Xi(1820)~^0" },
01015       {       3334, "Omega^-" },
01016       {      -3334, "Omega~^+" },
01017       {       4112, "Sigma_c^0" },
01018       {      -4112, "Sigma_c~^0" },
01019       {       4114, "Sigma*_c^0" },
01020       {      -4114, "Sigma*_c~^0" },
01021       {       4122, "Lambda_c^+" },
01022       {      -4122, "Lambda_c~^-" },
01023       {      14122, "Lambda_c(2593)^+" },
01024       {     -14122, "Lambda_c~(2593)^-" },
01025       {      14124, "Lambda_c(2625)^+" },
01026       {     -14124, "Lambda_c~(2625)^-" },
01027       {       4132, "Xi_c^0" },
01028       {      -4132, "Xi_c~^0" },
01029       {       4212, "Sigma_c^+" },
01030       {      -4212, "Sigma_c~^-" },
01031       {       4214, "Sigma*_c^+" },
01032       {      -4214, "Sigma*_c~^-" },
01033       {       4222, "Sigma_c^++" },
01034       {      -4222, "Sigma_c~^--" },
01035       {       4224, "Sigma*_c^++" },
01036       {      -4224, "Sigma*_c~^--" },
01037       {       4232, "Xi_c^+" },
01038       {      -4232, "Xi_c~^-" },
01039       {       4312, "Xi'_c^0" },
01040       {      -4312, "Xi'_c~^0" },
01041       {       4314, "Xi*_c^0" },
01042       {      -4314, "Xi*_c~^0" },
01043       {       4322, "Xi'_c^+" },
01044       {      -4322, "Xi'_c~^-" },
01045       {       4324, "Xi*_c^+" },
01046       {      -4324, "Xi*_c~^-" },
01047       {       4332, "Omega_c^0" },
01048       {      -4332, "Omega_c~^0" },
01049       {       4334, "Omega*_c^0" },
01050       {      -4334, "Omega*_c~^0" },
01051       {       4412, "Xi_cc^+" },
01052       {      -4412, "Xi_cc~^-" },
01053       {       4414, "Xi*_cc^+" },
01054       {      -4414, "Xi*_cc~^-" },
01055       {       4422, "Xi_cc^++" },
01056       {      -4422, "Xi_cc~^--" },
01057       {       4424, "Xi*_cc^++" },
01058       {      -4424, "Xi*_cc~^--" },
01059       {       4432, "Omega_cc^+" },
01060       {      -4432, "Omega_cc~^-" },
01061       {       4434, "Omega*_cc^+" },
01062       {      -4434, "Omega*_cc~^-" },
01063       {       4444, "Omega*_ccc^++" },
01064       {      -4444, "Omega*_ccc~^--" },
01065       {       5112, "Sigma_b^-" },
01066       {      -5112, "Sigma_b~^+" },
01067       {       5114, "Sigma*_b^-" },
01068       {      -5114, "Sigma*_b~^+" },
01069       {       5122, "Lambda_b^0" },
01070       {      -5122, "Lambda_b~^0" },
01071       {       5132, "Xi_b^-" },
01072       {      -5132, "Xi_b~^+" },
01073       {       5142, "Xi_bc^0" },
01074       {      -5142, "Xi_bc~^0" },
01075       {       5212, "Sigma_b^0" },
01076       {      -5212, "Sigma_b~^0" },
01077       {       5214, "Sigma*_b^0" },
01078       {      -5214, "Sigma*_b~^0" },
01079       {       5222, "Sigma_b^+" },
01080       {      -5222, "Sigma_b~^-" },
01081       {       5224, "Sigma*_b^+" },
01082       {      -5224, "Sigma*_b~^-" },
01083       {       5232, "Xi_b^0" },
01084       {      -5232, "Xi_b~^0" },
01085       {       5242, "Xi_bc^+" },
01086       {      -5242, "Xi_bc~^-" },
01087       {       5312, "Xi'_b^-" },
01088       {      -5312, "Xi'_b~^+" },
01089       {       5314, "Xi*_b^-" },
01090       {      -5314, "Xi*_b~^+" },
01091       {       5322, "Xi'_b^0" },
01092       {      -5322, "Xi'_b~^0" },
01093       {       5324, "Xi*_b^0" },
01094       {      -5324, "Xi*_b~^0" },
01095       {       5332, "Omega_b^-" },
01096       {      -5332, "Omega_b~^+" },
01097       {       5334, "Omega*_b^-" },
01098       {      -5334, "Omega*_b~^+" },
01099       {       5342, "Omega_bc^0" },
01100       {      -5342, "Omega_bc~^0" },
01101       {       5412, "Xi'_bc^0" },
01102       {      -5412, "Xi'_bc~^0" },
01103       {       5414, "Xi*_bc^0" },
01104       {      -5414, "Xi*_bc~^0" },
01105       {       5422, "Xi'_bc^+" },
01106       {      -5422, "Xi'_bc~^-" },
01107       {       5424, "Xi*_bc^+" },
01108       {      -5424, "Xi*_bc~^-" },
01109       {       5432, "Omega'_bc^0" },
01110       {      -5432, "Omega'_bc~^0" },
01111       {       5434, "Omega*_bc^0" },
01112       {      -5434, "Omega*_bc~^0" },
01113       {       5442, "Omega_bcc^+" },
01114       {      -5442, "Omega_bcc~^-" },
01115       {       5444, "Omega*_bcc^+" },
01116       {      -5444, "Omega*_bcc~^-" },
01117       {       5512, "Xi_bb^-" },
01118       {      -5512, "Xi_bb~^+" },
01119       {       5514, "Xi*_bb^-" },
01120       {      -5514, "Xi*_bb~^+" },
01121       {       5522, "Xi_bb^0" },
01122       {      -5522, "Xi_bb~^0" },
01123       {       5524, "Xi*_bb^0" },
01124       {      -5524, "Xi*_bb~^0" },
01125       {       5532, "Omega_bb^-" },
01126       {      -5532, "Omega_bb~^+" },
01127       {       5534, "Omega*_bb^-" },
01128       {      -5534, "Omega*_bb~^+" },
01129       {       5542, "Omega_bbc^0" },
01130       {      -5542, "Omega_bbc~^0" },
01131       {       5544, "Omega*_bbc^0" },
01132       {      -5544, "Omega*_bbc~^0" },
01133       {       5554, "Omega*_bbb^-" },
01134       {      -5554, "Omega*_bbb~^+" },
01135       {       6112, "Sigma_t^0" },
01136       {      -6112, "Sigma_t~^0" },
01137       {       6114, "Sigma*_t^0" },
01138       {      -6114, "Sigma*_t~^0" },
01139       {       6122, "Lambda_t^+" },
01140       {      -6122, "Lambda_t~^-" },
01141       {       6132, "Xi_t^0" },
01142       {      -6132, "Xi_t~^0" },
01143       {       6142, "Xi_tc^+" },
01144       {      -6142, "Xi_tc~^-" },
01145       {       6152, "Xi_tb^0" },
01146       {      -6152, "Xi_tb~^0" },
01147       {       6212, "Sigma_t^+" },
01148       {      -6212, "Sigma_t~^-" },
01149       {       6214, "Sigma*_t^+" },
01150       {      -6214, "Sigma*_t~^-" },
01151       {       6222, "Sigma_t^++" },
01152       {      -6222, "Sigma_t~^--" },
01153       {       6224, "Sigma*_t^++" },
01154       {      -6224, "Sigma*_t~^--" },
01155       {       6232, "Xi_t^+" },
01156       {      -6232, "Xi_t~^-" },
01157       {       6242, "Xi_tc^++" },
01158       {      -6242, "Xi_tc~^--" },
01159       {       6252, "Xi_tb^+" },
01160       {      -6252, "Xi_tb~^-" },
01161       {       6312, "Xi'_t^0" },
01162       {      -6312, "Xi'_t~^0" },
01163       {       6314, "Xi*_t^0" },
01164       {      -6314, "Xi*_t~^0" },
01165       {       6322, "Xi'_t^+" },
01166       {      -6322, "Xi'_t~^-" },
01167       {       6324, "Xi*_t^+" },
01168       {      -6324, "Xi*_t~^-" },
01169       {       6332, "Omega_t^0" },
01170       {      -6332, "Omega_t~^0" },
01171       {       6334, "Omega*_t^0" },
01172       {      -6334, "Omega*_t~^0" },
01173       {       6342, "Omega_tc^+" },
01174       {      -6342, "Omega_tc~^-" },
01175       {       6352, "Omega_tb^0" },
01176       {      -6352, "Omega_tb~^0" },
01177       {       6412, "Xi'_tc^+" },
01178       {      -6412, "Xi'_tc~^-" },
01179       {       6414, "Xi*_tc^+" },
01180       {      -6414, "Xi*_tc~^-" },
01181       {       6422, "Xi'_tc^++" },
01182       {      -6422, "Xi'_tc~^--" },
01183       {       6424, "Xi*_tc^++" },
01184       {      -6424, "Xi*_tc~^--" },
01185       {       6432, "Omega'_tc^+" },
01186       {      -6432, "Omega'_tc~^-" },
01187       {       6434, "Omega*_tc^+" },
01188       {      -6434, "Omega*_tc~^-" },
01189       {       6442, "Omega_tcc^++" },
01190       {      -6442, "Omega_tcc~^--" },
01191       {       6444, "Omega*_tcc^++" },
01192       {      -6444, "Omega*_tcc~^--" },
01193       {       6452, "Omega_tbc^+" },
01194       {      -6452, "Omega_tbc~^-" },
01195       {       6512, "Xi'_tb^0" },
01196       {      -6512, "Xi'_tb~^0" },
01197       {       6514, "Xi*_tb^0" },
01198       {      -6514, "Xi*_tb~^0" },
01199       {       6522, "Xi'_tb^+" },
01200       {      -6522, "Xi'_tb~^-" },
01201       {       6524, "Xi*_tb^+" },
01202       {      -6524, "Xi*_tb~^-" },
01203       {       6532, "Omega'_tb^0" },
01204       {      -6532, "Omega'_tb~^0" },
01205       {       6534, "Omega*_tb^0" },
01206       {      -6534, "Omega*_tb~^0" },
01207       {       6542, "Omega'_tbc^+" },
01208       {      -6542, "Omega'_tbc~^-" },
01209       {       6544, "Omega*_tbc^+" },
01210       {      -6544, "Omega*_tbc~^-" },
01211       {       6552, "Omega_tbb^0" },
01212       {      -6552, "Omega_tbb~^0" },
01213       {       6554, "Omega*_tbb^0" },
01214       {      -6554, "Omega*_tbb~^0" },
01215       {       6612, "Xi_tt^+" },
01216       {      -6612, "Xi_tt~^-" },
01217       {       6614, "Xi*_tt^+" },
01218       {      -6614, "Xi*_tt~^-" },
01219       {       6622, "Xi_tt^++" },
01220       {      -6622, "Xi_tt~^--" },
01221       {       6624, "Xi*_tt^++" },
01222       {      -6624, "Xi*_tt~^--" },
01223       {       6632, "Omega_tt^+" },
01224       {      -6632, "Omega_tt~^-" },
01225       {       6634, "Omega*_tt^+" },
01226       {      -6634, "Omega*_tt~^-" },
01227       {       6642, "Omega_ttc^++" },
01228       {      -6642, "Omega_ttc~^--" },
01229       {       6644, "Omega*_ttc^++" },
01230       {      -6644, "Omega*_ttc~^--" },
01231       {       6652, "Omega_ttb^+" },
01232       {      -6652, "Omega_ttb~^-" },
01233       {       6654, "Omega*_ttb^+" },
01234       {      -6654, "Omega*_ttb~^-" },
01235       {       6664, "Omega*_ttt^++" },
01236       {      -6664, "Omega*_ttt~^--" },
01237       {       7112, "Sigma_b'^-" },
01238       {      -7112, "Sigma_b'~^+" },
01239       {       7114, "Sigma*_b'^-" },
01240       {      -7114, "Sigma*_b'~^+" },
01241       {       7122, "Lambda_b'^0" },
01242       {      -7122, "Lambda_b'~^0" },
01243       {       7132, "Xi_b'^-" },
01244       {      -7132, "Xi_b'~^+" },
01245       {       7142, "Xi_b'c^0" },
01246       {      -7142, "Xi_b'c~^0" },
01247       {       7152, "Xi_b'b^-" },
01248       {      -7152, "Xi_b'b~^+" },
01249       {       7162, "Xi_b't^0" },
01250       {      -7162, "Xi_b't~^0" },
01251       {       7212, "Sigma_b'^0" },
01252       {      -7212, "Sigma_b'~^0" },
01253       {       7214, "Sigma*_b'^0" },
01254       {      -7214, "Sigma*_b'~^0" },
01255       {       7222, "Sigma_b'^+" },
01256       {      -7222, "Sigma_b'~^-" },
01257       {       7224, "Sigma*_b'^+" },
01258       {      -7224, "Sigma*_b'~^-" },
01259       {       7232, "Xi_b'^0" },
01260       {      -7232, "Xi_b'~^0" },
01261       {       7242, "Xi_b'c^+" },
01262       {      -7242, "Xi_b'c~^-" },
01263       {       7252, "Xi_b'b^0" },
01264       {      -7252, "Xi_b'b~^0" },
01265       {       7262, "Xi_b't^+" },
01266       {      -7262, "Xi_b't~^-" },
01267       {       7312, "Xi'_b'^-" },
01268       {      -7312, "Xi'_b'~^+" },
01269       {       7314, "Xi*_b'^-" },
01270       {      -7314, "Xi*_b'~^+" },
01271       {       7322, "Xi'_b'^0" },
01272       {      -7322, "Xi'_b'~^0" },
01273       {       7324, "Xi*_b'^0" },
01274       {      -7324, "Xi*_b'~^0" },
01275       {       7332, "Omega'_b'^-" },
01276       {      -7332, "Omega'_b'~^+" },
01277       {       7334, "Omega*_b'^-" },
01278       {      -7334, "Omega*_b'~^+" },
01279       {       7342, "Omega_b'c^0" },
01280       {      -7342, "Omega_b'c~^0" },
01281       {       7352, "Omega_b'b^-" },
01282       {      -7352, "Omega_b'b~^+" },
01283       {       7362, "Omega_b't^0" },
01284       {      -7362, "Omega_b't~^0" },
01285       {       7412, "Xi'_b'c^0" },
01286       {      -7412, "Xi'_b'c~^0" },
01287       {       7414, "Xi*_b'c^0" },
01288       {      -7414, "Xi*_b'c~^0" },
01289       {       7422, "Xi'_b'c^+" },
01290       {      -7422, "Xi'_b'c~^-" },
01291       {       7424, "Xi*_b'c^+" },
01292       {      -7424, "Xi*_b'c~^-" },
01293       {       7432, "Omega'_b'c^0" },
01294       {      -7432, "Omega'_b'c~^0" },
01295       {       7434, "Omega*_b'c^0" },
01296       {      -7434, "Omega*_b'c~^0" },
01297       {       7442, "Omega'_b'cc^+" },
01298       {      -7442, "Omega'_b'cc~^-" },
01299       {       7444, "Omega*_b'cc^+" },
01300       {      -7444, "Omega*_b'cc~^-" },
01301       {       7452, "Omega_b'bc^0" },
01302       {      -7452, "Omega_b'bc~^0" },
01303       {       7462, "Omega_b'tc^+" },
01304       {      -7462, "Omega_b'tc~^-" },
01305       {       7512, "Xi'_b'b^-" },
01306       {      -7512, "Xi'_b'b~^+" },
01307       {       7514, "Xi*_b'b^-" },
01308       {      -7514, "Xi*_b'b~^+" },
01309       {       7522, "Xi'_b'b^0" },
01310       {      -7522, "Xi'_b'b~^0" },
01311       {       7524, "Xi*_b'b^0" },
01312       {      -7524, "Xi*_b'b~^0" },
01313       {       7532, "Omega'_b'b^-" },
01314       {      -7532, "Omega'_b'b~^+" },
01315       {       7534, "Omega*_b'b^-" },
01316       {      -7534, "Omega*_b'b~^+" },
01317       {       7542, "Omega'_b'bc^0" },
01318       {      -7542, "Omega'_b'bc~^0" },
01319       {       7544, "Omega*_b'bc^0" },
01320       {      -7544, "Omega*_b'bc~^0" },
01321       {       7552, "Omega'_b'bb^-" },
01322       {      -7552, "Omega'_b'bb~^+" },
01323       {       7554, "Omega*_b'bb^-" },
01324       {      -7554, "Omega*_b'bb~^+" },
01325       {       7562, "Omega_b'tb^0" },
01326       {      -7562, "Omega_b'tb~^0" },
01327       {       7612, "Xi'_b't^0" },
01328       {      -7612, "Xi'_b't~^0" },
01329       {       7614, "Xi*_b't^0" },
01330       {      -7614, "Xi*_b't~^0" },
01331       {       7622, "Xi'_b't^+" },
01332       {      -7622, "Xi'_b't~^-" },
01333       {       7624, "Xi*_b't^+" },
01334       {      -7624, "Xi*_b't~^-" },
01335       {       7632, "Omega'_b't^0" },
01336       {      -7632, "Omega'_b't~^0" },
01337       {       7634, "Omega*_b't^0" },
01338       {      -7634, "Omega*_b't~^0" },
01339       {       7642, "Omega'_b'tc^+" },
01340       {      -7642, "Omega'_b'tc~^-" },
01341       {       7644, "Omega*_b'tc^+" },
01342       {      -7644, "Omega*_b'tc~^-" },
01343       {       7652, "Omega'_b'tb^0" },
01344       {      -7652, "Omega'_b'tb~^0" },
01345       {       7654, "Omega*_b'tb^0" },
01346       {      -7654, "Omega*_b'tb~^0" },
01347       {       7662, "Omega'_b'tt^+" },
01348       {      -7662, "Omega'_b'tt~^-" },
01349       {       7664, "Omega*_b'tt^+" },
01350       {      -7664, "Omega*_b'tt~^-" },
01351       {       7712, "Xi'_b'b'^-" },
01352       {      -7712, "Xi'_b'b'~^+" },
01353       {       7714, "Xi*_b'b'^-" },
01354       {      -7714, "Xi*_b'b'~^+" },
01355       {       7722, "Xi'_b'b'^0" },
01356       {      -7722, "Xi'_b'b'~^0" },
01357       {       7724, "Xi*_b'b'^0" },
01358       {      -7724, "Xi*_b'b'~^0" },
01359       {       7732, "Omega'_b'b'^-" },
01360       {      -7732, "Omega'_b'b'~^+" },
01361       {       7734, "Omega*_b'b'^-" },
01362       {      -7734, "Omega*_b'b'~^+" },
01363       {       7742, "Omega'_b'b'c^0" },
01364       {      -7742, "Omega'_b'b'c~^0" },
01365       {       7744, "Omega*_b'b'c^0" },
01366       {      -7744, "Omega*_b'b'c~^0" },
01367       {       7752, "Omega'_b'b'b^-" },
01368       {      -7752, "Omega'_b'b'b~^+" },
01369       {       7754, "Omega*_b'b'b^-" },
01370       {      -7754, "Omega*_b'b'b~^+" },
01371       {       7762, "Omega'_b'b't^0" },
01372       {      -7762, "Omega'_b'b't~^0" },
01373       {       7764, "Omega*_b'b't^0" },
01374       {      -7764, "Omega*_b'b't~^0" },
01375       {       7774, "Omega*_b'b'b'^-" },
01376       {      -7774, "Omega*_b'b'b'~^+" },
01377       {       8112, "Sigma_t'^0" },
01378       {      -8112, "Sigma_t'~^0" },
01379       {       8114, "Sigma*_t'^0" },
01380       {      -8114, "Sigma*_t'~^0" },
01381       {       8122, "Lambda_t'^+" },
01382       {      -8122, "Lambda_t'~^-" },
01383       {       8132, "Xi_t'^0" },
01384       {      -8132, "Xi_t'~^0" },
01385       {       8142, "Xi_t'c^+" },
01386       {      -8142, "Xi_t'c~^-" },
01387       {       8152, "Xi_t'b^0" },
01388       {      -8152, "Xi_t'b~^0" },
01389       {       8162, "Xi_t't^+" },
01390       {      -8162, "Xi_t't~^-" },
01391       {       8172, "Xi_t'b'^0" },
01392       {      -8172, "Xi_t'b'~^0" },
01393       {       8212, "Sigma_t'^+" },
01394       {      -8212, "Sigma_t'~^-" },
01395       {       8214, "Sigma*_t'^+" },
01396       {      -8214, "Sigma*_t'~^-" },
01397       {       8222, "Sigma_t'^++" },
01398       {      -8222, "Sigma_t'~^--" },
01399       {       8224, "Sigma*_t'^++" },
01400       {      -8224, "Sigma*_t'~^--" },
01401       {       8232, "Xi_t'^+" },
01402       {      -8232, "Xi_t'~^-" },
01403       {       8242, "Xi_t'c^++" },
01404       {      -8242, "Xi_t'c~^--" },
01405       {       8252, "Xi_t'b^+" },
01406       {      -8252, "Xi_t'b~^-" },
01407       {       8262, "Xi_t't^++" },
01408       {      -8262, "Xi_t't~^--" },
01409       {       8272, "Xi_t'b'^+" },
01410       {      -8272, "Xi_t'b'~^-" },
01411       {       8312, "Xi'_t'^0" },
01412       {      -8312, "Xi'_t'~^0" },
01413       {       8314, "Xi*_t'^0" },
01414       {      -8314, "Xi*_t'~^0" },
01415       {       8322, "Xi'_t'^+" },
01416       {      -8322, "Xi'_t'~^-" },
01417       {       8324, "Xi*_t'^+" },
01418       {      -8324, "Xi*_t'~^-" },
01419       {       8332, "Omega'_t'^0" },
01420       {      -8332, "Omega'_t'~^0" },
01421       {       8334, "Omega*_t'^0" },
01422       {      -8334, "Omega*_t'~^0" },
01423       {       8342, "Omega_t'c^+" },
01424       {      -8342, "Omega_t'c~^-" },
01425       {       8352, "Omega_t'b^0" },
01426       {      -8352, "Omega_t'b~^0" },
01427       {       8362, "Omega_t't^+" },
01428       {      -8362, "Omega_t't~^-" },
01429       {       8372, "Omega_t'b'^0" },
01430       {      -8372, "Omega_t'b'~^0" },
01431       {       8412, "Xi'_t'c^+" },
01432       {      -8412, "Xi'_t'c~^-" },
01433       {       8414, "Xi*_t'c^+" },
01434       {      -8414, "Xi*_t'c~^-" },
01435       {       8422, "Xi'_t'c^++" },
01436       {      -8422, "Xi'_t'c~^--" },
01437       {       8424, "Xi*_t'c^++" },
01438       {      -8424, "Xi*_t'c~^--" },
01439       {       8432, "Omega'_t'c^+" },
01440       {      -8432, "Omega'_t'c~^-" },
01441       {       8434, "Omega*_t'c^+" },
01442       {      -8434, "Omega*_t'c~^-" },
01443       {       8442, "Omega'_t'cc^++" },
01444       {      -8442, "Omega'_t'cc~^--" },
01445       {       8444, "Omega*_t'cc^++" },
01446       {      -8444, "Omega*_t'cc~^--" },
01447       {       8452, "Omega_t'bc^+" },
01448       {      -8452, "Omega_t'bc~^-" },
01449       {       8462, "Omega_t'tc^++" },
01450       {      -8462, "Omega_t'tc~^--" },
01451       {       8472, "Omega_t'b'c ^+" },
01452       {      -8472, "Omega_t'b'c ~^-" },
01453       {       8512, "Xi'_t'b^0" },
01454       {      -8512, "Xi'_t'b~^0" },
01455       {       8514, "Xi*_t'b^0" },
01456       {      -8514, "Xi*_t'b~^0" },
01457       {       8522, "Xi'_t'b^+" },
01458       {      -8522, "Xi'_t'b~^-" },
01459       {       8524, "Xi*_t'b^+" },
01460       {      -8524, "Xi*_t'b~^-" },
01461       {       8532, "Omega'_t'b^0" },
01462       {      -8532, "Omega'_t'b~^0" },
01463       {       8534, "Omega*_t'b^0" },
01464       {      -8534, "Omega*_t'b~^0" },
01465       {       8542, "Omega'_t'bc^+" },
01466       {      -8542, "Omega'_t'bc~^-" },
01467       {       8544, "Omega*_t'bc^+" },
01468       {      -8544, "Omega*_t'bc~^-" },
01469       {       8552, "Omega'_t'bb^0" },
01470       {      -8552, "Omega'_t'bb~^0" },
01471       {       8554, "Omega*_t'bb^0" },
01472       {      -8554, "Omega*_t'bb~^0" },
01473       {       8562, "Omega_t'tb^+" },
01474       {      -8562, "Omega_t'tb~^-" },
01475       {       8572, "Omega_t'b'b ^0" },
01476       {      -8572, "Omega_t'b'b ~^0" },
01477       {       8612, "Xi'_t't^+" },
01478       {      -8612, "Xi'_t't~^-" },
01479       {       8614, "Xi*_t't^+" },
01480       {      -8614, "Xi*_t't~^-" },
01481       {       8622, "Xi'_t't^++" },
01482       {      -8622, "Xi'_t't~^--" },
01483       {       8624, "Xi*_t't^++" },
01484       {      -8624, "Xi*_t't~^--" },
01485       {       8632, "Omega'_t't^+" },
01486       {      -8632, "Omega'_t't~^-" },
01487       {       8634, "Omega*_t't^+" },
01488       {      -8634, "Omega*_t't~^-" },
01489       {       8642, "Omega'_t'tc^++" },
01490       {      -8642, "Omega'_t'tc~^--" },
01491       {       8644, "Omega*_t'tc^++" },
01492       {      -8644, "Omega*_t'tc~^--" },
01493       {       8652, "Omega'_t'tb^+" },
01494       {      -8652, "Omega'_t'tb~^-" },
01495       {       8654, "Omega*_t'tb^+" },
01496       {      -8654, "Omega*_t'tb~^-" },
01497       {       8662, "Omega'_t'tt^++" },
01498       {      -8662, "Omega'_t'tt~^--" },
01499       {       8664, "Omega*_t'tt^++" },
01500       {      -8664, "Omega*_t'tt~^--" },
01501       {       8672, "Omega_t'b't ^+" },
01502       {      -8672, "Omega_t'b't ~^-" },
01503       {       8712, "Xi'_t'b'^0" },
01504       {      -8712, "Xi'_t'b'~^0" },
01505       {       8714, "Xi*_t'b'^0" },
01506       {      -8714, "Xi*_t'b'~^0" },
01507       {       8722, "Xi'_t'b'^+" },
01508       {      -8722, "Xi'_t'b'~^-" },
01509       {       8724, "Xi*_t'b'^+" },
01510       {      -8724, "Xi*_t'b'~^-" },
01511       {       8732, "Omega'_t'b'^0" },
01512       {      -8732, "Omega'_t'b'~^0" },
01513       {       8734, "Omega*_t'b'^0" },
01514       {      -8734, "Omega*_t'b'~^0" },
01515       {       8742, "Omega'_t'b'c^+" },
01516       {      -8742, "Omega'_t'b'c~^-" },
01517       {       8744, "Omega*_t'b'c^+" },
01518       {      -8744, "Omega*_t'b'c~^-" },
01519       {       8752, "Omega'_t'b'b^0" },
01520       {      -8752, "Omega'_t'b'b~^0" },
01521       {       8754, "Omega*_t'b'b^0" },
01522       {      -8754, "Omega*_t'b'b~^0" },
01523       {       8762, "Omega'_t'b't^+" },
01524       {      -8762, "Omega'_t'b't~^-" },
01525       {       8764, "Omega*_t'b't^+" },
01526       {      -8764, "Omega*_t'b't~^-" },
01527       {       8772, "Omega'_t'b'b'^0" },
01528       {      -8772, "Omega'_t'b'b'~^0" },
01529       {       8774, "Omega*_t'b'b'^0" },
01530       {      -8774, "Omega*_t'b'b'~^0" },
01531       {       8812, "Xi'_t't'^+" },
01532       {      -8812, "Xi'_t't'~^-" },
01533       {       8814, "Xi*_t't'^+" },
01534       {      -8814, "Xi*_t't'~^-" },
01535       {       8822, "Xi'_t't'^++" },
01536       {      -8822, "Xi'_t't'~^--" },
01537       {       8824, "Xi*_t't'^++" },
01538       {      -8824, "Xi*_t't'~^--" },
01539       {       8832, "Omega'_t't'^+" },
01540       {      -8832, "Omega'_t't'~^-" },
01541       {       8834, "Omega*_t't'^+" },
01542       {      -8834, "Omega*_t't'~^-" },
01543       {       8842, "Omega'_t't'c^++" },
01544       {      -8842, "Omega'_t't'c~^--" },
01545       {       8844, "Omega*_t't'c^++" },
01546       {      -8844, "Omega*_t't'c~^--" },
01547       {       8852, "Omega'_t't'b^+" },
01548       {      -8852, "Omega'_t't'b~^-" },
01549       {       8854, "Omega*_t't'b^+" },
01550       {      -8854, "Omega*_t't'b~^-" },
01551       {       8862, "Omega'_t't't^++" },
01552       {      -8862, "Omega'_t't't~^--" },
01553       {       8864, "Omega*_t't't^++" },
01554       {      -8864, "Omega*_t't't~^--" },
01555       {       8872, "Omega'_t't'b'^+" },
01556       {      -8872, "Omega'_t't'b'~^-" },
01557       {       8874, "Omega*_t't'b'^+" },
01558       {      -8874, "Omega*_t't'b'~^-" },
01559       {       8884, "Omega*_t't't'^++" },
01560       {      -8884, "Omega*_t't't'~^--" },
01561       {    9221132, "Theta^+" },
01562       {    9331122, "Phi^--" },
01563       {    1000993, "R_~gg^0" },
01564       {    1009113, "R_~gd~d^0" },
01565       {    1009213, "R_~gu~d^+" },
01566       {    1009223, "R_~gu~u^0" },
01567       {    1009313, "R_~gd~s^0" },
01568       {    1009323, "R_~gu~s^+" },
01569       {    1009333, "R_~gs~s^0" },
01570       {    1091114, "R_~gddd^-" },
01571       {    1092114, "R_~gudd^0" },
01572       {    1092214, "R_~guud^+" },
01573       {    1092224, "R_~guuu^++" },
01574       {    1093114, "R_~gsdd^-" },
01575       {    1093214, "R_~gsud^0" },
01576       {    1093224, "R_~gsuu^+" },
01577       {    1093314, "R_~gssd^-" },
01578       {    1093324, "R_~gssu^0" },
01579       {    1093334, "R_~gsss^-" },
01580       {    1000612, "R_~t_1~d^+" },
01581       {    1000622, "R_~t_1~u^0" },
01582       {    1000632, "R_~t_1~s^+" },
01583       {    1000642, "R_~t_1~c^0" },
01584       {    1000652, "R_~t_1~b^+" },
01585       {    1006113, "R_~t_1dd_1^0" },
01586       {    1006211, "R_~t_1ud_0^+" },
01587       {    1006213, "R_~t_1ud_1^+" },
01588       {    1006223, "R_~t_1uu_1^++" },
01589       {    1006311, "R_~t_1sd_0^0" },
01590       {    1006313, "R_~t_1sd_1^0" },
01591       {    1006321, "R_~t_1su_0^+" },
01592       {    1006323, "R_~t_1su_1^+" },
01593       {    1006333, "R_~t_1ss_1^0" },
01594       { 1000010010, "Hydrogen" },
01595       { 1000010020, "Deuterium" },
01596       {-1000010020, "Anti-Deuterium" },
01597       { 1000010030, "Tritium" },
01598       {-1000010030, "Anti-Tritium" },
01599       { 1000020030, "He3" },
01600       {-1000020030, "Anti-He3" },
01601       { 1000020040, "Alpha-(He4)" },
01602       {-1000020040, "Anti-Alpha-(He4)" }
01603   };
01604 
01605   int lnames = sizeof(SNames)/sizeof(SNames[0]);
01606   for( int k=0; k!=lnames; ++k) {
01607       m.insert( std::make_pair( SNames[k].pid, std::string(SNames[k].pname)) );
01608       nameMap.insert( std::make_pair( std::string(SNames[k].pname), SNames[k].pid ) );
01609   }
01610   static ParticleNameMap mymaps(m,nameMap);
01611 
01612   return mymaps;
01613 }  // ParticleNameInit()

int Rivet::PID::sSpin ( const Particle &  p  )  [inline]

sSpin returns 2S+1, where S is the spin

Definition at line 153 of file ParticleIdUtils.hh.

References Particle::pdgId(), and sSpin().

00153 { return sSpin(p.pdgId()); }

int sSpin ( const int &  pid  ) 

sSpin returns 2S+1, where S is the spin

Definition at line 353 of file ParticleIdUtils.cc.

References digit(), isMeson(), n, nj, and nl.

Referenced by sSpin().

00354     {
00355         if( !isMeson(pid) ) { return 0; }
00356         int inl = digit(nl,pid);
00357         //int tent = digit(n,pid);
00358         int js = digit(nj,pid);
00359         if( digit(n,pid) == 9 ) { return 0; }   // tentative ID
00360         //if( tent == 9 ) { return 0; } // tentative assignment
00361         if( inl == 0 && js >= 3 ) {
00362             return 1;
00363         } else if( inl == 0  && js == 1 ) {
00364             return 0;
00365         } else if( inl == 1  && js >= 3 ) {
00366             return 0;
00367         } else if( inl == 2  && js >= 3 ) {
00368             return 1;
00369         } else if( inl == 1  && js == 1 ) {
00370             return 1;
00371         } else if( inl == 3  && js >= 3 ) {
00372             return 1;
00373         }
00374         // default to zero
00375         return 0;
00376     }

int Rivet::PID::threeCharge ( const Particle &  p  )  [inline]

int threeCharge ( const int &  pid  ) 

return 3 times the charge (3 x quark charge is an int)

Definition at line 427 of file ParticleIdUtils.cc.

References abspid(), charge(), digit(), extraBits(), fundamentalID(), isBaryon(), isDiQuark(), isMeson(), nj, nq1, nq2, and nq3.

Referenced by MC_SUSY::analyze(), H1_1994_S2919893::analyze(), D0_2010_S8570965::analyze(), charge(), ZFinder::project(), WFinder::project(), NeutralFinalState::project(), ClusteredPhotons::project(), and threeCharge().

00428     {
00429         int charge=0;
00430         int ida, sid;
00431         unsigned short q1, q2, q3;
00432         static int ch100[100] = { -1, 2,-1, 2,-1, 2,-1, 2, 0, 0,
00433                            -3, 0,-3, 0,-3, 0,-3, 0, 0, 0,
00434                             0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
00435                             0, 0, 0, 3, 0, 0, 3, 0, 0, 0,
00436                             0, -1, 0, 0, 0, 0, 0, 0, 0, 0,
00437                             0, 6, 3, 6, 0, 0, 0, 0, 0, 0,
00438                             0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00439                             0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00440                             0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00441                             0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
00442         q1 = digit(nq1,pid);
00443         q2 = digit(nq2,pid);
00444         q3 = digit(nq3,pid);
00445         ida = abspid(pid);
00446         sid = fundamentalID(pid);
00447         if( ida == 0 || extraBits(pid) > 0 ) {      // ion or illegal
00448             return 0;
00449         } else if( sid > 0 && sid <= 100 ) {    // use table
00450             charge = ch100[sid-1];
00451             if(ida==1000017 || ida==1000018) { charge = 0; }
00452             if(ida==1000034 || ida==1000052) { charge = 0; }
00453             if(ida==1000053 || ida==1000054) { charge = 0; }
00454             if(ida==5100061 || ida==5100062) { charge = 6; }
00455         } else if( digit(nj,pid) == 0 ) {       // KL, Ks, or undefined
00456             return 0;
00457         } else if( isMeson(pid) ) {         // mesons
00458                 if( q2 == 3 || q2 == 5 ) {
00459                     charge = ch100[q3-1] - ch100[q2-1];
00460                 } else {
00461                     charge = ch100[q2-1] - ch100[q3-1];
00462                 }
00463         } else if( isDiQuark(pid) ) {           // diquarks
00464             charge = ch100[q2-1] + ch100[q1-1];
00465         } else if( isBaryon(pid) ) {            // baryons
00466             charge = ch100[q3-1] + ch100[q2-1] + ch100[q1-1];
00467         } else {        // unknown
00468             return 0;
00469         }
00470         if( charge == 0 ) {
00471             return 0;
00472         } else if( pid < 0 ) {
00473             charge = -charge;
00474         }
00475         return charge;
00476     }

bool Rivet::PID::validParticleName ( const std::string &  s  ) 

Definition at line 1648 of file ParticleName.cc.

References ParticleNameMap::endLookupMap(), ParticleNameMap::findString(), and getParticleNameMap().

01649 {
01650     static  ParticleNameMap const &  pmap = getParticleNameMap();
01651     ParticleNameMap::nameIterator const cit = pmap.findString( s );
01652     return ( cit == pmap.endLookupMap() )
01653          ? false
01654      : true;
01655 }  // validParticleName()

bool Rivet::PID::validParticleName ( const int &  pid  ) 

Definition at line 1638 of file ParticleName.cc.

References ParticleNameMap::end(), ParticleNameMap::find(), and getParticleNameMap().

Referenced by writeParticleNameLine().

01639 {
01640     static  ParticleNameMap const &  pmap = getParticleNameMap();
01641 
01642     ParticleNameMap::idIterator const cit = pmap.find( pid );
01643     return ( cit == pmap.end() )
01644          ? false
01645      : true;
01646 }  // validParticleName()

void Rivet::PID::@247::writeParticleNameLine ( int  i,
std::ostream &  os 
) [static]

Definition at line 1615 of file ParticleName.cc.

References particleName(), and validParticleName().

Referenced by listParticleNames().

01616 {
01617     if ( validParticleName( i ) ) {
01618         std::string pn = particleName( i );
01619     os << "  PDT number: " ;
01620     os.width(12);
01621     os << i << "  PDT name: " << pn << std::endl;
01622 
01623     }
01624     return;
01625 }  // writeParticleNameLine()

int Rivet::PID::Z ( const int &  pid  ) 

Definition at line 70 of file ParticleIdUtils.cc.

References abspid(), and isNucleus().

Referenced by ZFinder::project().

00071     {
00072         // a proton can also be a Hydrogen nucleus
00073         if( abspid(pid) == 2212 ) { return 1; }
00074         if( isNucleus(pid) ) return (abspid(pid)/10000)%1000;
00075         return 0;
00076     }