diff --git a/Generators/ParticleDecayer/src/ParticleDecayer.cxx b/Generators/ParticleDecayer/src/ParticleDecayer.cxx index 354314777f39636c53d5a94750a901da08a9c17e..63b637ae3d58489eedbd3ad48e61fddb4e4caa85 100644 --- a/Generators/ParticleDecayer/src/ParticleDecayer.cxx +++ b/Generators/ParticleDecayer/src/ParticleDecayer.cxx @@ -394,9 +394,11 @@ StatusCode ParticleDecayer::fillEvt(HepMC::GenEvent* event) { darkPhotonLVs) ); //add dark photon 1 - addParticle( genpart->end_vertex(), m_particlePDGID, darkPhotonLVs.at(0).vect(), 2); + auto v0=darkPhotonLVs.at(0).vect(); + addParticle( genpart->end_vertex(), m_particlePDGID, HepMC::FourVector(v0.x(),v0.y(),v0.z(),0.0) , 2); //add dark photon 2 - addParticle( genpart->end_vertex(), m_particlePDGID, darkPhotonLVs.at(1).vect(), 2); + auto v1=darkPhotonLVs.at(1).vect(); + addParticle( genpart->end_vertex(), m_particlePDGID, HepMC::FourVector(v1.x(),v1.y(),v1.z(),0.0), 2); //lifetime handling of the dark photons HepMC::GenVertex::particles_out_const_iterator pIt = genpart->end_vertex()->particles_out_const_begin(); @@ -451,7 +453,8 @@ void ParticleDecayer::addParticle(HepMC::GenVertex* prod_vtx, int pdg, HepMC::Fo { mass = getParticleMass(pdg); } - HepMC::GenParticle* aParticle = new HepMC::GenParticle(HepMC::FourVector(momentum.x(), momentum.y(), momentum.z(), sqrt(momentum.r()*momentum.r() + mass*mass)), + double energy=std::sqrt(std::pow(momentum.x(),2)+std::pow(momentum.y(),2)+std::pow(momentum.z(),2)+mass*mass); + HepMC::GenParticle* aParticle = new HepMC::GenParticle(HepMC::FourVector(momentum.x(), momentum.y(), momentum.z(), energy), pdg, statusCode, HepMC::Flow(), HepMC::Polarization(0, 0)); prod_vtx->add_particle_out(aParticle); @@ -519,8 +522,10 @@ StatusCode ParticleDecayer::DFTwoBodyDecay( HepMC::GenParticle* genpart, int Pol //Add the daughters to the pool file ATH_MSG_DEBUG("ParticleDecayer::fillEvt: -- Add the daughters to the pool file"); HepMC::GenVertex* end_vtx = genpart->end_vertex(); - addParticle(end_vtx, ModeOfDecay, daughterLVs.at(0).vect(), 1); - addParticle(end_vtx, -ModeOfDecay, daughterLVs.at(1).vect(), 1); + auto v0=daughterLVs.at(0).vect(); + addParticle(end_vtx, ModeOfDecay, HepMC::FourVector(v0.x(),v0.y(),v0.z(),0.0), 1); + auto v1=daughterLVs.at(1).vect(); + addParticle(end_vtx, -ModeOfDecay, HepMC::FourVector(v1.x(),v1.y(),v1.z(),0.0), 1); return StatusCode::SUCCESS; } diff --git a/Projects/AthGeneration/package_filters.txt b/Projects/AthGeneration/package_filters.txt index b340bb9a2c063d07c11ebdcf893dd4559fe43a93..f0c137c711afe0ae2c981026d89115ebc1431034 100644 --- a/Projects/AthGeneration/package_filters.txt +++ b/Projects/AthGeneration/package_filters.txt @@ -155,6 +155,7 @@ + PhysicsAnalysis/PATJobTransforms + PhysicsAnalysis/TruthParticleID/McParticleEvent + PhysicsAnalysis/TruthParticleID/McParticleKernel ++ PhysicsAnalysis/POOLRootAccess #+ Projects/AthGeneration #+ Projects/AthGeneration/.* #+ Reconstruction/eflowRec