diff --git a/DDG4/edm4hep/Geant4Output2EDM4hep.cpp b/DDG4/edm4hep/Geant4Output2EDM4hep.cpp index 504fb8e4fd7a77dc8a1090677f153cca2726e189..0fbbe8d157e22ba673ca47b348bfb1e601dcc4a3 100644 --- a/DDG4/edm4hep/Geant4Output2EDM4hep.cpp +++ b/DDG4/edm4hep/Geant4Output2EDM4hep.cpp @@ -281,7 +281,6 @@ void Geant4Output2EDM4hep::saveParticles(Geant4ParticleMap* particles) { size_t cnt = 0; map<int,int> p_ids; vector<const Geant4Particle*> p_part(pm.size(),0); - vector<edm4hep::MCParticle> p_edm4hep(pm.size()); // First create the particles for(ParticleMap::const_iterator i=pm.begin(); i!=pm.end();++i, ++cnt) { int id = (*i).first; @@ -289,7 +288,7 @@ void Geant4Output2EDM4hep::saveParticles(Geant4ParticleMap* particles) { PropertyMask mask(p->status); // std::cout << " ********** mcp status : 0x" << std::hex << p->status << ", mask.isSet(G4PARTICLE_GEN_STABLE) x" << std::dec << mask.isSet(G4PARTICLE_GEN_STABLE) <<std::endl ; const G4ParticleDefinition* def = p.definition(); - edm4hep::MCParticle mcp = edm4hep::MCParticle(); + auto mcp = mcpc->create(); mcp.setPDG(p->pdgID); float ps_fa[3] = {float(p->psx/CLHEP::GeV),float(p->psy/CLHEP::GeV),float(p->psz/CLHEP::GeV)}; @@ -337,17 +336,15 @@ void Geant4Output2EDM4hep::saveParticles(Geant4ParticleMap* particles) { mcp.setSpin(p->spin); mcp.setColorFlow(p->colorFlow); - mcpc->push_back(mcp); p_ids[id] = cnt; p_part[cnt] = p; - p_edm4hep[cnt] = mcp; } // Now establish parent-daughter relationships for(size_t i=0, n=p_ids.size(); i<n; ++i) { map<int,int>::iterator k; const Geant4Particle* p = p_part[i]; - edm4hep::MCParticle q = p_edm4hep[i]; + auto q = (*mcpc)[i]; const Geant4Particle::Particles& dau = p->daughters; for(Geant4Particle::Particles::const_iterator j=dau.begin(); j!=dau.end(); ++j) { int idau = *j; @@ -356,7 +353,7 @@ void Geant4Output2EDM4hep::saveParticles(Geant4ParticleMap* particles) { continue; } int iqdau = (*k).second; - edm4hep::MCParticle qdau = p_edm4hep[iqdau]; + auto qdau = (*mcpc)[iqdau]; qdau.addToParents(q); } const Geant4Particle::Particles& par = p->parents; @@ -367,7 +364,7 @@ void Geant4Output2EDM4hep::saveParticles(Geant4ParticleMap* particles) { continue; } int iqpar = (*k).second; - edm4hep::MCParticle qpar = p_edm4hep[iqpar]; + auto qpar = (*mcpc)[iqpar]; q.addToParents(qpar); } }