12 #ifndef ROOT_TDatabasePDG
13 #define ROOT_TDatabasePDG
21 class TDatabasePDG:
public TNamed {
24 THashList *fParticleList;
25 TObjArray *fListOfClasses;
26 mutable TExMap *fPdgMap;
29 TDatabasePDG(
const TDatabasePDG& db)
30 : TNamed(db), fParticleList(db.fParticleList),
31 fListOfClasses(db.fListOfClasses), fPdgMap(0) { }
33 TDatabasePDG& operator=(
const TDatabasePDG& db)
34 {
if(
this!=&db) {TNamed::operator=(db); fParticleList=db.fParticleList;
35 fListOfClasses=db.fListOfClasses; fPdgMap=db.fPdgMap;}
38 void BuildPdgMap()
const;
43 virtual ~TDatabasePDG();
45 static TDatabasePDG* Instance();
47 virtual TParticlePDG* AddParticle(
const char* Name,
53 const char* ParticleClass,
56 Int_t TrackingCode=0);
58 virtual Int_t ConvertGeant3ToPdg(Int_t Geant3Number)
const;
59 virtual Int_t ConvertPdgToGeant3(Int_t pdgNumber)
const;
60 virtual Int_t ConvertIsajetToPdg(Int_t isaNumber)
const;
62 virtual TParticlePDG* AddAntiParticle(
const char* Name, Int_t PdgCode);
64 TParticlePDG *GetParticle(Int_t pdgCode)
const;
65 TParticlePDG *GetParticle(
const char *name)
const;
67 TParticleClassPDG* GetParticleClass(
const char* name) {
68 if (fParticleList == 0) ((TDatabasePDG*)
this)->ReadPDGTable();
69 return (TParticleClassPDG*) fListOfClasses->FindObject(name);
72 const THashList *ParticleList()
const {
return fParticleList; }
74 virtual void Print(Option_t *opt =
"")
const;
76 Bool_t IsFolder()
const {
return kTRUE; }
77 virtual void Browse(TBrowser* b);
79 virtual void ReadPDGTable (
const char *filename =
"");
80 virtual Int_t WritePDGTable(
const char *filename);
82 ClassDef(TDatabasePDG, 3);