PandaRoot
PhotosParticle.h
Go to the documentation of this file.
1 #ifndef _PhotosParticle_h_included_
2 #define _PhotosParticle_h_included_
3 
19 #include <vector>
20 #include "Photos.h"
21 
22 namespace Photospp {
23 
25  public:
27  static const int STABLE = 1;
28 
30  static const int DECAYED = 2;
31 
33  static const int HISTORY = 3;
34 
36  static const int X_AXIS = 1;
37 
39  static const int Y_AXIS = 2;
40 
42  static const int Z_AXIS = 3;
43 
45  static const int Z0 = 23;
46 
48  static const int HIGGS = 25;
49 
51  static const int HIGGS_H = 35;
52 
54  static const int HIGGS_A = 36;
55 
57  static const int HIGGS_PLUS = 37;
58 
60  static const int HIGGS_MINUS = -37;
61 
63  static const int W_PLUS = 24;
64 
66  static const int W_MINUS = -24;
67 
69  static const int GAMMA = 22;
70 
72  static const int TAU_PLUS = -15;
73 
75  static const int TAU_MINUS = 15;
76 
78  static const int TAU_NEUTRINO = 16;
79 
81  static const int TAU_ANTINEUTRINO = -16;
82 
84  static const int MUON_PLUS = -13;
85 
87  static const int MUON_MINUS = 13;
88 
90  static const int MUON_NEUTRINO = 14;
91 
93  static const int MUON_ANTINEUTRINO = -14;
94 
96  static const int POSITRON = -11;
97 
99  static const int ELECTRON = 11;
100 
102  static const int ELECTRON_NEUTRINO = 12;
103 
105  static const int ELECTRON_ANTINEUTRINO = -12;
106 
108  static const int UP = 2;
109 
111  static const int ANTIUP = -2;
112 
114  static const int DOWN = 1;
115 
117  static const int ANTIDOWN = -1;
118 
120  static const int OTHER = 0;
121 
122  public:
123  virtual ~PhotosParticle(){};
124 
126  bool hasDaughters();
127 
132 
135  std::vector<PhotosParticle *> findProductionMothers();
136 
138  std::vector<PhotosParticle *> getDecayTree();
139 
142  void boostToRestFrame(PhotosParticle *boost);
143 
147 
150  void boostFromRestFrame(PhotosParticle *boost);
151 
155 
157  void boostAlongZ(double pz, double e);
158 
161  void rotate(int axis, double phi, int second_axis = Z_AXIS);
162 
165  void rotateDaughters(int axis, double phi, int second_axis = Z_AXIS);
166 
172  double getRotationAngle(int axis, int second_axis = Z_AXIS);
173 
175  double getP();
176 
178  double getP(int axis);
179 
181  void setP(int axis, double p_component);
182 
184  virtual double getVirtuality();
185 
186  public:
189  virtual bool checkMomentumConservation() = 0;
190 
192  virtual double getPx() = 0;
193 
195  virtual double getPy() = 0;
196 
198  virtual double getPz() = 0;
199 
201  virtual double getE() = 0;
202 
204  virtual double getMass() = 0;
205 
207  virtual void setPx(double px) = 0;
208 
210  virtual void setPy(double py) = 0;
211 
213  virtual void setPz(double pz) = 0;
214 
216  virtual void setE(double e) = 0;
217 
219  virtual void setMothers(std::vector<PhotosParticle *> mothers) = 0;
220 
222  virtual void setDaughters(std::vector<PhotosParticle *> daughters) = 0;
223 
225  virtual void addDaughter(PhotosParticle *daughter) = 0;
226 
228  virtual std::vector<PhotosParticle *> getMothers() = 0;
229 
231  virtual std::vector<PhotosParticle *> getDaughters() = 0;
232 
235  virtual std::vector<PhotosParticle *> getAllDecayProducts() = 0;
236 
238  virtual void setPdgID(int pdg_id) = 0;
239 
241  virtual void setMass(double mass) = 0;
242 
244  virtual void setStatus(int status) = 0;
245 
247  virtual int getPdgID() = 0;
248 
250  virtual int getStatus() = 0;
251 
253  virtual int getBarcode() = 0;
254 
262  virtual PhotosParticle *createNewParticle(int pdg_id, int status, double mass, double px, double py, double pz, double e) = 0;
263 
267  virtual void createHistoryEntry() = 0;
268 
271  virtual void createSelfDecayVertex(PhotosParticle *out) = 0;
272 
274  virtual void print() = 0;
275 };
276 
277 } // namespace Photospp
278 #endif
virtual void setPz(double pz)=0
virtual void setMothers(std::vector< PhotosParticle *> mothers)=0
static const int Z_AXIS
static const int DECAYED
void boostDaughtersFromRestFrame(PhotosParticle *boost)
std::vector< PhotosParticle * > getDecayTree()
PhotosParticle * findLastSelf()
virtual PhotosParticle * createNewParticle(int pdg_id, int status, double mass, double px, double py, double pz, double e)=0
virtual std::vector< PhotosParticle * > getAllDecayProducts()=0
static const int TAU_MINUS
double getRotationAngle(int axis, int second_axis=Z_AXIS)
static const int ANTIDOWN
virtual void setPx(double px)=0
static const int OTHER
static const int ANTIUP
virtual double getPy()=0
virtual int getPdgID()=0
static const int HIGGS_H
static const int HIGGS_A
static const int W_MINUS
Definition: Log.h:30
static const int GAMMA
static const int STABLE
virtual double getPx()=0
static const int W_PLUS
static const int TAU_ANTINEUTRINO
virtual int getBarcode()=0
virtual void setPy(double py)=0
static const int ELECTRON_NEUTRINO
static const int HISTORY
virtual double getPz()=0
static const int ELECTRON
static const int HIGGS
static const int TAU_PLUS
void boostToRestFrame(PhotosParticle *boost)
virtual std::vector< PhotosParticle * > getMothers()=0
static const int HIGGS_MINUS
virtual void addDaughter(PhotosParticle *daughter)=0
virtual void setE(double e)=0
static const int TAU_NEUTRINO
virtual std::vector< PhotosParticle * > getDaughters()=0
static const int MUON_PLUS
void rotateDaughters(int axis, double phi, int second_axis=Z_AXIS)
axis
Definition: PndRadMapPlane.h:9
std::vector< PhotosParticle * > findProductionMothers()
virtual int getStatus()=0
virtual void setMass(double mass)=0
static const int MUON_ANTINEUTRINO
virtual double getVirtuality()
static const int MUON_NEUTRINO
virtual bool checkMomentumConservation()=0
static const int ELECTRON_ANTINEUTRINO
static const int Y_AXIS
void boostFromRestFrame(PhotosParticle *boost)
static const int X_AXIS
static const int HIGGS_PLUS
virtual void setPdgID(int pdg_id)=0
static const int POSITRON
void boostAlongZ(double pz, double e)
static const int MUON_MINUS
virtual void createHistoryEntry()=0
virtual void setDaughters(std::vector< PhotosParticle *> daughters)=0
virtual void print()=0
void setP(int axis, double p_component)
virtual void setStatus(int status)=0
virtual void createSelfDecayVertex(PhotosParticle *out)=0
virtual double getMass()=0
double pz[39]
Definition: pipisigmas.h:13
int status[10]
Definition: f_Init.h:24
void boostDaughtersToRestFrame(PhotosParticle *boost)
void rotate(int axis, double phi, int second_axis=Z_AXIS)
virtual double getE()=0