6 #include "GaudiKernel/ISvcLocator.h"
7 #include "GaudiKernel/DataSvc.h"
22 if (
m_ppSvc.retrieve().isFailure()) {
23 ATH_MSG_ERROR(
"Could not initialize ATLAS Particle Property Service");
24 return StatusCode::FAILURE;
26 return StatusCode::SUCCESS;
34 if (!evtStore()->contains<McEventCollection>(m_mcEventKey) && m_mkMcEvent) {
35 ATH_MSG_DEBUG(
"Creating new McEventCollection in the event store");
37 if (evtStore()->record(mcevents, m_mcEventKey).isFailure())
43 if (evtStore()->
retrieve (mecc, m_mcEventKey).isFailure())
56 void GenBase::GeVToMeV(HepMC::GenEvent*
evt) {
for (
auto&
p:
evt->particles()) {
p->set_momentum(
p->momentum()*1000);
p->set_generated_mass(1000*
p->generated_mass());}}
57 void GenBase::MeVToGeV(HepMC::GenEvent*
evt) {
for (
auto&
p:
evt->particles()) {
p->set_momentum(
p->momentum()*1.0/1000);
p->set_generated_mass(1.0/1000*
p->generated_mass());} }
62 for (HepMC::GenEvent::particle_iterator
p =
evt->particles_begin();
p !=
evt->particles_end(); ++
p) {
63 const HepMC::FourVector fv((*p)->momentum().px() * 1000,
64 (*p)->momentum().py() * 1000,
65 (*p)->momentum().pz() * 1000,
66 (*p)->momentum().e() * 1000);
67 (*p)->set_momentum(fv);
68 (*p)->set_generated_mass(1000 * (*p)->generated_mass());
72 for (HepMC::GenEvent::particle_iterator
p =
evt->particles_begin();
p !=
evt->particles_end(); ++
p) {
73 const HepMC::FourVector fv((*p)->momentum().px() / 1000,
74 (*p)->momentum().py() / 1000,
75 (*p)->momentum().pz() / 1000,
76 (*p)->momentum().e() / 1000);
77 (*p)->set_momentum(fv);
78 (*p)->set_generated_mass((*p)->generated_mass() / 1000);
82 for (HepMC::GenEvent::vertex_iterator vtx =
evt->vertices_begin(); vtx !=
evt->vertices_end(); ++vtx) {
83 const HepMC::FourVector fv((*vtx)->position().x() * 10,
84 (*vtx)->position().y() * 10,
85 (*vtx)->position().z() * 10,
86 (*vtx)->position().t() * 10);
87 (*vtx)->set_position(fv);
91 for (HepMC::GenEvent::vertex_iterator vtx =
evt->vertices_begin(); vtx !=
evt->vertices_end(); ++vtx) {
92 const HepMC::FourVector fv((*vtx)->position().x() / 10,
93 (*vtx)->position().y() / 10,
94 (*vtx)->position().z() / 10,
95 (*vtx)->position().t() / 10);
96 (*vtx)->set_position(fv);