PandaRoot
PhotosHepMCParticle.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 _PhotosHepMCParticle_h_included_
26 #define _PhotosHepMCParticle_h_included_
27 
45 #include <vector>
46 
47 #include "HepMC/GenParticle.h"
48 #include "PhotosParticle.h"
49 
50 using namespace std;
51 
52 namespace Photospp {
53 
55 
56  public:
59 
61  PhotosHepMCParticle(HepMC::GenParticle *particle);
62 
65  PhotosHepMCParticle(int pdg_id, int status, double mass);
66 
69 
71  HepMC::GenParticle *getHepMC();
72 
74  void setMothers(std::vector<PhotosParticle *> mothers);
75 
77  void setDaughters(std::vector<PhotosParticle *> daughters);
78 
80  void addDaughter(PhotosParticle *daughter);
81 
83  std::vector<PhotosParticle *> getMothers();
84 
88  std::vector<PhotosParticle *> getDaughters();
89 
92  std::vector<PhotosParticle *> getAllDecayProducts();
93 
95  void setPdgID(int pdg_id);
96 
98  void setStatus(int statu);
99 
101  void setMass(double mass);
102 
104  int getPdgID();
105 
107  int getStatus();
108 
110  int getBarcode();
111 
114  bool checkMomentumConservation();
115 
123  PhotosHepMCParticle *createNewParticle(int pdg_id, int status, double mass, double px, double py, double pz, double e);
124 
127  void createHistoryEntry();
128 
131  void createSelfDecayVertex(PhotosParticle *out);
132 
134  void print();
135 
137  double getPx();
138 
140  double getPy();
141 
143  double getPz();
144 
146  double getE();
147 
149  double getMass();
150 
152  void setPx(double px);
153 
155  void setPy(double py);
156 
158  void setPz(double pz);
159 
161  void setE(double e);
162 
163  private:
165  void clear(std::vector<PhotosParticle *> v);
166 
168  HepMC::GenParticle *m_particle;
169 
171  std::vector<PhotosParticle *> m_mothers;
172 
174  std::vector<PhotosParticle *> m_daughters;
175 
177  std::vector<PhotosParticle *> m_decay_products;
178 
181  std::vector<PhotosParticle *> m_created_particles;
182 };
183 
184 } // namespace Photospp
185 #endif
STL namespace.
__m128 v
Definition: P4_F32vec4.h:15
Definition: Log.h:54
void print(std::vector< ClassifierOutPuts > const &OutPutList)
double pz[39]
Definition: pipisigmas.h:25
int status[10]
Definition: f_Init.h:48