StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
PhotosHEPEVTParticle.h
1 #ifndef _PhotosHEPEVTParticle_h_included_
2 #define _PhotosHEPEVTParticle_h_included_
3 
18 #include <iostream>
19 #include <vector>
20 #include <cmath>
21 #include <cstdio>
22 
23 #include "Photos.h"
24 #include "PhotosParticle.h"
25 #include "PhotosHEPEVTEvent.h"
26 
27 namespace Photospp
28 {
29 
30 class PhotosHEPEVTEvent;
31 
33 
34  public:
37 
39  PhotosHEPEVTParticle(int pdgid, int status, double px, double py, double pz, double e, double m, int ms, int me, int ds, int de);
40 
42  void addDaughter(PhotosParticle* daughter);
43 
45  void setMothers(std::vector<PhotosParticle*> mothers);
46 
48  void setDaughters(std::vector<PhotosParticle*> daughters);
49 
51  std::vector<PhotosParticle*> getMothers();
52 
54  std::vector<PhotosParticle*> getDaughters();
55 
58  std::vector<PhotosParticle*> getAllDecayProducts();
59 
62 
70  PhotosHEPEVTParticle * createNewParticle(int pdg_id, int status, double mass,
71  double px, double py,
72  double pz, double e);
73 
75  void createHistoryEntry();
76 
80 
83 
86 
88  void print();
89 
91  void setPdgID(int pdg_id);
92 
94  void setStatus(int statu);
95 
97  void setMass(double mass);
98 
100  int getPdgID();
101 
103  int getStatus();
104 
106  double getMass();
107 
109  double getPx();
110 
112  double getPy();
113 
115  double getPz();
116 
118  double getE();
119 
121  void setPx( double px );
122 
124  void setPy( double py );
125 
127  void setPz( double pz );
128 
130  void setE( double e );
131 
133  int getBarcode();
134 
136  void setBarcode(int barcode);
137 
139  void setEvent(PhotosHEPEVTEvent *event);
140 
142  int getFirstMotherIndex();
143 
145  int getSecondMotherIndex();
146 
148  int getDaughterRangeStart();
149 
151  int getDaughterRangeEnd();
152 
153 private:
154 
156  void setDaughterRangeStart(int i) { m_daughter_start=i; }
157 
159  void setDaughterRangeEnd(int i) { m_daughter_end =i; }
160 
162  PhotosHEPEVTEvent *m_event;
163 
165  int m_barcode;
166 
168  int m_first_mother, m_second_mother;
169 
171  int m_daughter_start, m_daughter_end;
172 
174  int m_pdgid;
175 
177  int m_status;
178 
180  double m_px, m_py, m_pz, m_e;
181 
183  double m_generated_mass;
184 
187  vector<PhotosHEPEVTParticle*> cache;
188 };
189 
190 } // namespace Photospp
191 #endif
192 
PhotosHEPEVTParticle * createNewParticle(int pdg_id, int status, double mass, double px, double py, double pz, double e)
void setEvent(PhotosHEPEVTEvent *event)
std::vector< PhotosParticle * > getMothers()
std::vector< PhotosParticle * > getAllDecayProducts()
std::vector< PhotosParticle * > getDaughters()
bool isMotherOf(PhotosHEPEVTParticle *p)
void setDaughters(std::vector< PhotosParticle * > daughters)
Abstract base class for particle in the event. This class also handles boosting.
void setMothers(std::vector< PhotosParticle * > mothers)
PhotosHEPEVTParticle(int pdgid, int status, double px, double py, double pz, double e, double m, int ms, int me, int ds, int de)
bool isDaughterOf(PhotosHEPEVTParticle *p)
void createSelfDecayVertex(PhotosParticle *out)
void addDaughter(PhotosParticle *daughter)
Single particle of HEPEVT event record.