1 #ifndef __JAANET__JPDB__
2 #define __JAANET__JPDB__
17 #include "TDatabasePDG.h"
18 #include "TParticlePDG.h"
19 #include "TCollection.h"
20 #include "THashList.h"
28 namespace JPP {
using namespace JAANET; }
82 return out << setw(32) << left << particle.
name <<
" "
83 << setw( 6) << right << particle.
pdg <<
" "
84 << setw( 6) << right << particle.
geant <<
" "
103 #define MAKE_PARTICLE(PDG, GEANT, MASS) JParticle(#PDG, PDG, GEANT, MASS)
133 TDatabasePDG::Instance()->ReadPDGTable();
135 TIter next(TDatabasePDG::Instance()->ParticleList());
137 while (TParticlePDG* p = (TParticlePDG*) next()) {
139 const JParticle particle(p->GetName(), p->PdgCode(), convertPDGtoGEANT(p->PdgCode()), p->Mass());
141 pdb.push_back(particle);
172 if (p != this->end())
210 return TDatabasePDG::Instance()->ConvertPdgToGeant3(pdg);
238 if (p != this->end())
256 out << setw(32) << left <<
"particle" <<
" "
257 << setw( 6) << right <<
"PDG" <<
" "
258 << setw( 6) << right <<
"GEANT" <<
" "
259 << setw(12) << right <<
"Mass [GeV]" << endl;
261 for (JPDB::const_iterator i = pdb.begin(); i != pdb.end(); ++i) {
std::string name
name of particle
JPredicate< JResult_t T::*, JComparison::eq > make_predicate(JResult_t T::*member, const JResult_t value)
Helper method to create predicate for data member.
static int convertPDGtoGEANT(const int pdg)
Retrieve GEANT code for a given PDG code.
const JParticle & getGEANT(const int geant) const
Get particle corresponding to given GEANT code.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
const JParticle & getPDG(const int pdg) const
Get particle corresponding to given PDG code.
JParticle()
Default constructor.
Auxiliary data structure for floating point format specification.
JPDB()
Default constructor.
static const JPDB & getInstance()
Get particle data book.
bool hasGEANT(const int geant) const
Check if PDB has particle corresponding to given GEANT code.
friend std::ostream & operator<<(std::ostream &out, const JPDB &pdb)
Print particle data book.
Auxiliary class to handle particle name, codes and mass.
bool hasPDG(const int pdg) const
Check if PDB has particle corresponding to given PDG code.
double mass
mass of particle [GeV]
friend std::ostream & operator<<(std::ostream &out, const JParticle &particle)
Print particle.
int geant
GEANT code of particle.
Definition of particle types.
int pdg
PDG code of particle.
JParticle(const std::string &name, const int pdg, const int geant, const double mass)
Constructor.