00001
00002
00003
00004
00005 #include "stdlib.h"
00006 #include "math.h"
00007 #include "string.h"
00008
00009 #include "StGENParticle.h"
00010
00011
00012 StGENParticle::StGENParticle(int idx) : StGenParticle(idx),fDaughter(0)
00013 {
00014 Clear();
00015 }
00016
00017 StGENParticle::~StGENParticle()
00018 {}
00019
00020 const StGenParticle *StGENParticle::GetDaughter(int i) const
00021 {
00022 if (i>=(int)fDaughter.size()) return 0;
00023 return fDaughter[i];
00024 }
00025
00026 void StGENParticle::Momentum(double p4[4]) const
00027 {
00028 memcpy(p4,fP,4*sizeof(*fP));
00029 }
00030
00031 void StGENParticle::Vertex(double v3[3]) const
00032 {
00033 memcpy(v3,fV,3*sizeof(*fV));
00034 }
00035
00036 void StGENParticle::Clear()
00037 {
00038 memset(fBeg,0,fEnd-fBeg+1);
00039 fWeight = 1; fStatusCode=1;
00040 fDaughter.clear();
00041 }
00042
00043 void StGENParticle::SetVert(float v[4])
00044 {
00045 for (int i=0;i<4;i++) { fV[i]=v[i];}
00046 }
00047
00048 void StGENParticle::SetMom(float p[5])
00049 {
00050 for (int i=0;i<5;i++) { fP[i]=p[i];}
00051 }
00052
00053 void StGENParticle::AddDaughter(const StGENParticle *m)
00054 {
00055 fDaughter.push_back(m);
00056 }
00057
00058