PandaRoot
PhotosHEPEVTParticle.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 //****************************************************************************
14 //* This file is part of PandaRoot. *
15 //* *
16 //* PandaRoot is distributed under the terms of the *
17 //* GNU General Public License (GPL) version 3, *
18 //* copied verbatim in the file "LICENSE". *
19 //* *
20 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
21 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
22 //* The authors are listed in the file "AUTHORS". *
23 //****************************************************************************
24 
25 #ifndef _PhotosHEPEVTParticle_h_included_
26 #define _PhotosHEPEVTParticle_h_included_
27 
42 #include <iostream>
43 #include <vector>
44 #include <cmath>
45 #include <cstdio>
46 
47 #include "Photos.h"
48 #include "PhotosParticle.h"
49 #include "PhotosHEPEVTEvent.h"
50 
51 namespace Photospp {
52 
53 class PhotosHEPEVTEvent;
54 
56 
57  public:
60 
62  PhotosHEPEVTParticle(int pdgid, int status, double px, double py, double pz, double e, double m, int ms, int me, int ds, int de);
63 
65  void addDaughter(PhotosParticle *daughter);
66 
68  void setMothers(std::vector<PhotosParticle *> mothers);
69 
71  void setDaughters(std::vector<PhotosParticle *> daughters);
72 
74  std::vector<PhotosParticle *> getMothers();
75 
77  std::vector<PhotosParticle *> getDaughters();
78 
81  std::vector<PhotosParticle *> getAllDecayProducts();
82 
85 
93  PhotosHEPEVTParticle *createNewParticle(int pdg_id, int status, double mass, double px, double py, double pz, double e);
94 
96  void createHistoryEntry();
97 
101 
104 
107 
109  void print();
110 
112  void setPdgID(int pdg_id);
113 
115  void setStatus(int statu);
116 
118  void setMass(double mass);
119 
121  int getPdgID();
122 
124  int getStatus();
125 
127  double getMass();
128 
130  double getPx();
131 
133  double getPy();
134 
136  double getPz();
137 
139  double getE();
140 
142  void setPx(double px);
143 
145  void setPy(double py);
146 
148  void setPz(double pz);
149 
151  void setE(double e);
152 
154  int getBarcode();
155 
157  void setBarcode(int barcode);
158 
160  void setEvent(PhotosHEPEVTEvent *event);
161 
163  int getFirstMotherIndex();
164 
166  int getSecondMotherIndex();
167 
169  int getDaughterRangeStart();
170 
172  int getDaughterRangeEnd();
173 
174  private:
176  void setDaughterRangeStart(int i) { m_daughter_start = i; }
177 
179  void setDaughterRangeEnd(int i) { m_daughter_end = i; }
180 
182  PhotosHEPEVTEvent *m_event;
183 
185  int m_barcode;
186 
188  int m_first_mother, m_second_mother;
189 
191  int m_daughter_start, m_daughter_end;
192 
194  int m_pdgid;
195 
197  int m_status;
198 
200  double m_px, m_py, m_pz, m_e;
201 
203  double m_generated_mass;
204 
207  vector<PhotosHEPEVTParticle *> cache;
208 };
209 
210 } // namespace Photospp
211 #endif
std::vector< PhotosParticle * > getAllDecayProducts()
PhotosHEPEVTParticle * createNewParticle(int pdg_id, int status, double mass, double px, double py, double pz, double e)
__m128 m
Definition: P4_F32vec4.h:38
static const double me
Definition: mzparameters.h:23
PhotosHEPEVTParticle(int pdgid, int status, double px, double py, double pz, double e, double m, int ms, int me, int ds, int de)
void createSelfDecayVertex(PhotosParticle *out)
std::vector< PhotosParticle * > getDaughters()
unsigned int i
Definition: P4_F32vec4.h:33
bool isDaughterOf(PhotosHEPEVTParticle *p)
Definition: Log.h:54
void setEvent(PhotosHEPEVTEvent *event)
void setBarcode(int barcode)
bool isMotherOf(PhotosHEPEVTParticle *p)
std::vector< PhotosParticle * > getMothers()
void addDaughter(PhotosParticle *daughter)
void setDaughters(std::vector< PhotosParticle *> daughters)
void setMothers(std::vector< PhotosParticle *> mothers)
double pz[39]
Definition: pipisigmas.h:25
int status[10]
Definition: f_Init.h:48