StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
PhotosHepMCParticle.h
1 #ifndef _PhotosHepMCParticle_h_included_
2 #define _PhotosHepMCParticle_h_included_
3 
21 #include <vector>
22 
23 #include "HepMC/GenParticle.h"
24 #include "PhotosParticle.h"
25 
26 using namespace std;
27 
28 namespace Photospp
29 {
30 
32 
33  public:
36 
39 
42  PhotosHepMCParticle(int pdg_id, int status, double mass);
43 
46 
48  HepMC::GenParticle * getHepMC();
49 
51  void setMothers(std::vector<PhotosParticle*> mothers);
52 
54  void setDaughters(std::vector<PhotosParticle*> daughters);
55 
57  void addDaughter(PhotosParticle* daughter);
58 
60  std::vector<PhotosParticle*> getMothers();
61 
65  std::vector<PhotosParticle*> getDaughters();
66 
69  std::vector<PhotosParticle*> getAllDecayProducts();
70 
72  void setPdgID(int pdg_id);
73 
75  void setStatus(int statu);
76 
78  void setMass(double mass);
79 
81  int getPdgID();
82 
84  int getStatus();
85 
87  int getBarcode();
88 
91  bool checkMomentumConservation();
92 
100  PhotosHepMCParticle * createNewParticle(int pdg_id, int status, double mass,
101  double px, double py,
102  double pz, double e);
103 
106  void createHistoryEntry();
107 
110  void createSelfDecayVertex(PhotosParticle *out);
111 
113  void print();
114 
116  double getPx();
117 
119  double getPy();
120 
122  double getPz();
123 
125  double getE();
126 
128  double getMass();
129 
131  void setPx( double px );
132 
134  void setPy( double py );
135 
137  void setPz( double pz );
138 
140  void setE( double e );
141 
142  private:
144  void clear(std::vector<PhotosParticle*> v);
145 
147  HepMC::GenParticle * m_particle;
148 
150  std::vector<PhotosParticle*> m_mothers;
151 
153  std::vector<PhotosParticle*> m_daughters;
154 
156  std::vector<PhotosParticle*> m_decay_products;
157 
160  std::vector<PhotosParticle*> m_created_particles;
161 
162 };
163 
164 } // namespace Photospp
165 #endif
166 
Abstract base class for particle in the event. This class also handles boosting.
Interface to HepMC::GenParticle objects.
The GenParticle class contains information about generated particles.
Definition: GenParticle.h:60