diff --git a/DDG4/hepmc/HepMC3EventReader.cpp b/DDG4/hepmc/HepMC3EventReader.cpp index dc6f7c8976394c2cb02df9d39c1d182f3bf1a5d2..79e9d2cd18063176ef5ebaaf86f0ed861ac1b850 100644 --- a/DDG4/hepmc/HepMC3EventReader.cpp +++ b/DDG4/hepmc/HepMC3EventReader.cpp @@ -97,9 +97,7 @@ HEPMC3EventReader::readParticles(int event_number, Vertices& vertices, Particles const int pdg = mcp->pid(); PropertyMask status(p->status); p->pdgID = pdg; - // p->charge = int(mcp->getCharge()*3.0); - G4ParticleDefinition* def = G4ParticleTable::GetParticleTable()->FindParticle(p->pdgID); - p->charge = int(3.0 * (def ? def->GetPDGCharge() : -1.0)); // Assume e-/pi- + p->charge = 0; // int(mcp->getCharge()*3.0); // FIXME p->psx = mom.get_component(0) * mom_unit; p->psy = mom.get_component(1) * mom_unit; p->psz = mom.get_component(2) * mom_unit; diff --git a/DDG4/plugins/Geant4EventReaderHepEvt.cpp b/DDG4/plugins/Geant4EventReaderHepEvt.cpp index c8a773758b17491d367657cf6b39e346b1376e41..f1fc11701091c188d809142c3460273b88e4c0f8 100644 --- a/DDG4/plugins/Geant4EventReaderHepEvt.cpp +++ b/DDG4/plugins/Geant4EventReaderHepEvt.cpp @@ -85,10 +85,6 @@ namespace dd4hep { #include <CLHEP/Units/SystemOfUnits.h> #include <CLHEP/Units/PhysicalConstants.h> -// Geant4 include files -#include <G4GlobalConfig.hh> -#include <G4ParticleTable.hh> - // C/C++ include files #include <cerrno> @@ -241,8 +237,7 @@ Geant4EventReaderHepEvt::readParticles(int /* event_number */, // // PDGID p->pdgID = IDHEP; - auto* def = G4ParticleTable::GetParticleTable()->FindParticle(p->pdgID); - p->charge = int(3.0 * (def ? def->GetPDGCharge() : 1.0)); // Assume e-/pi- + p->charge = 0; // // Momentum vector p->pex = p->psx = PHEP1*CLHEP::GeV; diff --git a/DDG4/plugins/Geant4EventReaderHepMC.cpp b/DDG4/plugins/Geant4EventReaderHepMC.cpp index 737ef7acbd3e99a65c59c2065cd44f120b3b6503..83ee40ac76bb1e8c16c78cae2c87e31dfd72d5bb 100644 --- a/DDG4/plugins/Geant4EventReaderHepMC.cpp +++ b/DDG4/plugins/Geant4EventReaderHepMC.cpp @@ -21,10 +21,6 @@ @} */ -// Geant4 include files -#include <G4GlobalConfig.hh> -#include <G4ParticleTable.hh> - // Framework include files #include <DDG4/IoStreams.h> #include <DDG4/Geant4InputAction.h> @@ -447,8 +443,7 @@ int HepMC::read_particle(EventStream &info, istringstream& input, Geant4Particle cout << "Particle id: " << p->id << endl; } #endif - G4ParticleDefinition* def = G4ParticleTable::GetParticleTable()->FindParticle(p->pdgID); - p->charge = int(3.0 * (def ? def->GetPDGCharge() : -1.0)); // Assume e-/pi- + p->charge = 0; p->psx *= info.mom_unit; p->psy *= info.mom_unit; p->psz *= info.mom_unit; diff --git a/DDG4/src/Geant4Output2ROOT.cpp b/DDG4/src/Geant4Output2ROOT.cpp index 0eb97bcf598d16e05f5b52ce5bdc0e405fefff86..c43e585932f3d9fac4c08f9a609b480105c17cf1 100644 --- a/DDG4/src/Geant4Output2ROOT.cpp +++ b/DDG4/src/Geant4Output2ROOT.cpp @@ -22,7 +22,7 @@ // Geant4 include files #include <G4HCofThisEvent.hh> -#include <G4ParticleDefinition.hh> +#include <G4ParticleTable.hh> // ROOT include files #include <TFile.h> @@ -151,11 +151,15 @@ void Geant4Output2ROOT::saveEvent(OutputContext<G4Event>& /* ctxt */) { typedef Geant4HitWrapper::HitManipulator Manip; typedef Geant4ParticleMap::ParticleMap ParticleMap; Manip* manipulator = Geant4HitWrapper::manipulator<Geant4Particle>(); + G4ParticleTable* table = G4ParticleTable::GetParticleTable(); const ParticleMap& pm = parts->particles(); vector<void*> particles; particles.reserve(pm.size()); for ( const auto& i : pm ) { - particles.emplace_back((ParticleMap::mapped_type*)i.second); + auto* p = i.second; + G4ParticleDefinition* def = table->FindParticle(p->pdgID); + p->charge = int(3.0 * (def ? def->GetPDGCharge() : -1.0)); // Assume e-/pi- + particles.emplace_back((ParticleMap::mapped_type*)p); } fill("MCParticles",manipulator->vec_type,&particles); } diff --git a/DDG4/src/Geant4ParticleHandler.cpp b/DDG4/src/Geant4ParticleHandler.cpp index 8295a97d59457dbbf1a822fa936098a2c826c83d..574cbb4bcc322f55a32b3af063e72ed809b8ae0c 100644 --- a/DDG4/src/Geant4ParticleHandler.cpp +++ b/DDG4/src/Geant4ParticleHandler.cpp @@ -234,7 +234,7 @@ void Geant4ParticleHandler::begin(const G4Track* track) { m_currTrack.daughters = prim_part->daughters; m_currTrack.pdgID = prim_part->pdgID; m_currTrack.mass = prim_part->mass; - m_currTrack.charge = prim_part->charge; + m_currTrack.charge = int(3.0 * h.charge()); } else { m_currTrack.id = m_globalParticleID;