#ifndef ROOT_TDatabasePDG
#define ROOT_TDatabasePDG
#ifndef ROOT_TParticlePDG
#include "TParticlePDG.h"
#endif
#ifndef ROOT_TParticleClassPDG
#include "TParticleClassPDG.h"
#endif
class THashList;
class TDatabasePDG: public TNamed {
protected:
static TDatabasePDG *fgInstance;
THashList* fParticleList;
TObjArray* fListOfClasses;
TDatabasePDG(const TDatabasePDG& db)
: TNamed(db), fParticleList(db.fParticleList),
fListOfClasses(db.fListOfClasses) { }
TDatabasePDG& operator=(const TDatabasePDG& db)
{if(this!=&db) {TNamed::operator=(db); fParticleList=db.fParticleList;
fListOfClasses=db.fListOfClasses;} return *this;}
public:
TDatabasePDG();
virtual ~TDatabasePDG();
static TDatabasePDG* Instance();
virtual TParticlePDG* AddParticle(const char* Name,
const char* Title,
Double_t Mass,
Bool_t Stable,
Double_t DecayWidth,
Double_t Charge,
const char* ParticleClass,
Int_t PdgCode,
Int_t Anti=-1,
Int_t TrackingCode=0);
virtual Int_t ConvertGeant3ToPdg(Int_t Geant3Number);
virtual Int_t ConvertPdgToGeant3(Int_t pdgNumber);
virtual Int_t ConvertIsajetToPdg(Int_t isaNumber);
virtual TParticlePDG* AddAntiParticle(const char* Name, Int_t PdgCode);
TParticlePDG *GetParticle(Int_t pdgCode) const;
TParticlePDG *GetParticle(const char *name) const;
TParticleClassPDG* GetParticleClass(const char* name) {
if (fParticleList == 0) ((TDatabasePDG*)this)->ReadPDGTable();
return (TParticleClassPDG*) fListOfClasses->FindObject(name);
}
const THashList *ParticleList() const { return fParticleList; }
virtual void Print(Option_t *opt = "") const;
Bool_t IsFolder() const { return kTRUE; }
virtual void Browse(TBrowser* b);
virtual void ReadPDGTable (const char *filename = "");
virtual Int_t WritePDGTable(const char *filename);
ClassDef(TDatabasePDG,2)
};
#endif
Last change: Wed Jun 25 08:36:04 2008
Last generated: 2008-06-25 08:36
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.