00001
00002
00004
00005
00007
00008 #ifndef ROOT_StHepParticle
00009 #define ROOT_StHepParticle
00010 #include "StGenParticle.h"
00011
00012 class StHepParticle :public StGenParticle {
00013 friend class StHepParticleMaster;
00014
00015 public:
00016
00017 StHepParticle(int idx=0);
00018
00019 virtual ~StHepParticle(){;}
00020
00021 public:
00022
00023 virtual int GetStatusCode() const;
00024 virtual int GetPdgCode() const;
00025 virtual const StHepParticle *GetMother(int i=0) const;
00026 virtual const StHepParticle *GetDaughter(int i) const;
00027 virtual double GetMass () const;
00028 virtual int GetNDaughters () const;
00029 virtual void Momentum(double p4[4]) const ;
00030 virtual void Vertex(double v[3]) const;
00031 virtual double Time() const;
00032 protected:
00033
00034 };
00035
00041
00042 class my_hepevt;
00043 class StHepParticleMaster :public StGenParticleMaster {
00044 friend class StHepParticle;
00045
00046 public:
00047 StHepParticleMaster(void *addr);
00048 virtual ~StHepParticleMaster();
00049 static const StHepParticleMaster *Instance();
00050 virtual const StHepParticle *operator()(int idx) const;
00051 void Update() ;
00052
00053 private:
00054
00055 static my_hepevt *mgMyHepevt;
00056 static StHepParticleMaster* mgInst;
00057 };
00058
00059 #endif
00060