226 HepMC::HEPEVT_Wrapper::zero_everything();
230 std::vector<int> Py8PartonIdx;
231 Py8PartonIdx.clear();
232 std::vector<int> HEPEVTPartonIdx;
233 HEPEVTPartonIdx.clear();
239 int Py8PartonCounter = 0;
240 int HEPEVTPartonCounter = 0;
244 for (
int iprt = 1; iprt <
event.size(); iprt++) {
246 if (
abs(part.status()) < 22)
250 Py8PartonCounter = iprt;
256 for (
int iprt = 2; iprt < hepeup.
NUP; iprt++) {
258 HepMC::HEPEVT_Wrapper::set_id(index, hepeup.
IDUP[iprt]);
259 HepMC::HEPEVT_Wrapper::set_status(index, 2);
260 HepMC::HEPEVT_Wrapper::set_momentum(
261 index, hepeup.
PUP[iprt][0], hepeup.
PUP[iprt][1], hepeup.
PUP[iprt][2], hepeup.
PUP[iprt][4]);
262 HepMC::HEPEVT_Wrapper::set_mass(index, hepeup.
PUP[iprt][4]);
264 HepMC::HEPEVT_Wrapper::set_parents(index, 0, 0);
265 HepMC::HEPEVT_Wrapper::set_children(index, 0, 0);
266 if (hepeup.
MOTHUP[iprt].first > 2 &&
267 hepeup.
MOTHUP[iprt].second > 2)
269 HEPEVTPartonCounter++;
272 Py8PartonIdx.push_back(Py8PartonCounter);
274 HEPEVTPartonIdx.push_back(HEPEVTPartonCounter);
275 HEPEVTPartonCounter++;
278 HepMC::HEPEVT_Wrapper::set_number_entries(index);
283 for (
int iprt = 1; iprt < workEvent.size(); iprt++)
285 const Particle& part = workEvent[iprt];
288 if (part.status() < 51)
291 HepMC::HEPEVT_Wrapper::set_id(index, part.id());
294 HepMC::HEPEVT_Wrapper::set_status(index, 1);
295 HepMC::HEPEVT_Wrapper::set_momentum(index, part.px(), part.py(), part.pz(), part.e());
296 HepMC::HEPEVT_Wrapper::set_mass(index, part.m());
297 HepMC::HEPEVT_Wrapper::set_position(index, part.xProd(), part.yProd(), part.zProd(), part.tProd());
298 HepMC::HEPEVT_Wrapper::set_parents(index, 0, 0);
300 HepMC::HEPEVT_Wrapper::set_children(index, 0, 0);
309 for (
int idx = 0; idx < (int)Py8PartonIdx.size(); idx++) {
310 if (parentId == Py8PartonIdx[idx]) {
311 int idx1 = HEPEVTPartonIdx[idx];
312 HepMC::HEPEVT_Wrapper::set_parents(index, idx1 + 1, idx1 + 1);
318 HepMC::HEPEVT_Wrapper::set_number_entries(index);
const HEPEUP * getHEPEUP() const
std::vector< FiveVector > PUP
Abs< T >::type abs(const T &t)
std::vector< std::pair< int, int > > MOTHUP