00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _PDTENTRY_HH_
00024 #define _PDTENTRY_HH_
00025
00026 #include "MdcRecoUtil/PdtLund.h"
00027 #include "MdcRecoUtil/PdtPdg.h"
00028 #include "MdcRecoUtil/PdtGeant.h"
00029 #include "MdcRecoUtil/PdtPid.h"
00030 #include <vector>
00031 using std::vector;
00032
00033 #include <iosfwd>
00034 class DecayMode;
00035
00036 class PdtEntry
00037 {
00038 public:
00039
00040
00041 PdtEntry(const char *name, PdtLund::LundType code, float spin,
00042 float charge, float mass, float width=0, float massCut=0);
00043 PdtEntry(const char *name, PdtGeant::GeantType code, float spin,
00044 float charge, float mass, float width=0, float massCut=0);
00045 PdtEntry(const char *name, PdtPdg::PdgType code, float spin,
00046 float charge, float mass, float width=0, float massCut=0);
00047
00048 virtual ~PdtEntry();
00049
00050 void printOn(std::ostream& str) const;
00051 void printBFOn(std::ostream& str) const;
00052
00053 const char *name() const {return _name;}
00054 float charge() const {return _charge;}
00055 float mass() const {return _mass;}
00056 float width() const {return _width;}
00057 float widthCut() const {return _widthCut;}
00058 float lifetime() const {return _lifetime;}
00059 float spin() const {return _spin;}
00060 float sumBR() const {return _sumBR;}
00061 const vector<DecayMode*> *decayList() const { return _decayList; }
00062 void addDecay(float bf, vector<PdtEntry*> *kids );
00063 PdtLund::LundType lundId() const { return _lundId;};
00064 PdtPdg::PdgType pdgId() const { return _pdgId; }
00065 PdtGeant::GeantType geantId() const { return _geantId; };
00066 PdtPid::PidType pidId() const { return _pidId; };
00067 PdtPid::PidNeutralType pidNeutId() const { return _pidNeutId; };
00068 bool operator==(const PdtEntry &) const;
00069 bool operator<(const PdtEntry &) const;
00070
00071
00072 const PdtEntry* conjugate() const;
00073
00074 protected:
00075 char *_name;
00076 float _mass;
00077 float _width;
00078 float _lifetime;
00079 float _spin;
00080 float _charge;
00081 float _widthCut;
00082 float _sumBR;
00083 vector<DecayMode*>* _decayList;
00084 PdtLund::LundType _lundId;
00085 PdtPdg::PdgType _pdgId;
00086 PdtGeant::GeantType _geantId;
00087 PdtPid::PidType _pidId;
00088 PdtPid::PidNeutralType _pidNeutId;
00089 const PdtEntry* _conjugate;
00090 };
00091
00092 #endif