StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StGimParticle.h
1 
8 // @(#)STAR/eg:$Id: StGimParticle.h,v 1.3 2009/06/23 19:52:05 jeromel Exp $
9 
10 #ifndef STAR_StGimParticle
11 #define STAR_StGimParticle
12 #include <vector>
13 #include "StGenParticle.h"
14 
16 class StGimParticle : public StGenParticle {
17 public:
18 
19 
20  // ****** constructors and destructor
21  StGimParticle(int idx);
22 
23  virtual ~StGimParticle();
24 
25 virtual int GetStatusCode() const {return fStatusCode;}
26 virtual int GetPdgCode() const {return fPdgCode ;}
27 virtual int GetGeaCode() const {return fGeaCode ;}
28 virtual const StGenParticle *GetMother(int i=0) const {return fMother[i] ;}
29 virtual const StGenParticle *GetDaughter(int i) const;
30 virtual double GetMass () const {return fP[4];}
31 virtual int GetNDaughters () const {return fDaughter.size();}
32 virtual void Momentum(double p4[4]) const ;
33 virtual void Vertex(double v[3]) const;
34 virtual double Time() const {return fV[3];}
35 
36 // setters
37  void Clear();
38  void SetPdg(int pdg) {fPdgCode=pdg;}
39  void SetGea(int gea) {fGeaCode=gea;}
40  void SetVert(float v[4]);
41  void SetMom (float p[5]);
42  void SetMother(int i,const StGimParticle *m) {fMother[i]=m;}
43  void AddDaughter(const StGimParticle *m);
44 
45 
46 protected:
47 
48  char fBeg[1];
49  int fPdgCode; // PDG code of the particle
50  int fGeaCode; // Geant code of the particle
51  int fStatusCode; // generation status code
52  const StGimParticle *fMother[2]; // mother particles
53  double fWeight; // particle weight
54  double fP[5]; // 4vector of momentum + mass
55  double fV[4]; // 3vector of production vertex +time in cm
56  char fEnd[1];
57  std::vector<const StGimParticle*> fDaughter;
58 
59 };
60 
61 #endif
62 
Abstract base class for particles related to common /HEPEVT/.
Implementation of StGenParticle similar to ROOT TParticle.
Definition: StGimParticle.h:16