Skip to content
Snippets Groups Projects
Commit f4a476f2 authored by Andrii Verbytskyi's avatar Andrii Verbytskyi Committed by Adam Edward Barton
Browse files

Adapt BEamEffects package to HEPMC3

parent 5b85ad93
No related branches found
No related tags found
No related merge requests found
......@@ -83,19 +83,19 @@ namespace Simulation
{
//Ensure that we have a valid signal_process_vertex
#ifdef HEPMC3
if( !HepMC::signal_process_vertex(ge) ) {
if( !HepMC::signal_process_vertex(&ge) ) {
if(m_ISFRun) {
ATH_MSG_DEBUG("No signal_process_vertex found - creating a dummy GenVertex.");
HepMC::FourVector signalPos( 0.0, 0.0, 0.0, 0.0);
HepMC::GenVertexPtr signalVertex = HepMC::newGenVertexPtr( signalPos );
// ge will now take ownership of the signal process vertex
HepMC::set_signal_process_vertex(ge, signalVertex );
HepMC::set_signal_process_vertex(&ge, signalVertex );
}
else {
if (!ge.vertices_empty()) {
if (!ge.vertices().empty()) {
ATH_MSG_DEBUG("No signal_process_vertex found - using the first GenVertex in the event.");
HepMC::GenVertexPtr signalVertex = ge.vertices().front();
HepMC::set_signal_process_vertex(ge,signalVertex );
HepMC::set_signal_process_vertex(&ge,signalVertex );
}
}
if( !HepMC::signal_process_vertex(&ge) ) { // Insanity check
......
......@@ -76,7 +76,7 @@ namespace Simulation
ATH_MSG_WARNING("No first event found in the McEventCollection input collection, use default weight="<<weight);
break;
}
HepMC::GenVertex *signalVertex = GetSignalProcessVertex(*currentGenEvent);
auto signalVertex = GetSignalProcessVertex(*currentGenEvent);
if(signalVertex) {
//now calculate weight
......@@ -130,17 +130,17 @@ namespace Simulation
return StatusCode::SUCCESS;
}
HepMC::GenVertex* BeamSpotReweightingAlg::GetSignalProcessVertex(const HepMC::GenEvent& ge) const
HepMC::ConstGenVertexPtr BeamSpotReweightingAlg::GetSignalProcessVertex(const HepMC::GenEvent& ge) const
{
//Ensure that we have a valid signal_process_vertex
#ifdef HEPMC3
if( !HepMC::signal_process_vertex(ge) ) {
if (!ge.vertices_empty()) {
if( !HepMC::signal_process_vertex(&ge) ) {
if (!ge.vertices().empty()) {
ATH_MSG_DEBUG("No signal_process_vertex found - using the first GenVertex in the event.");
HepMC::GenVertexPtr signalVertex = ge.vertices().front();
auto signalVertex = ge.vertices().front();
return signalVertex;
}
if( !HepMC::signal_process_vertex(ge) ) { // Insanity check
if( !HepMC::signal_process_vertex(&ge) ) { // Insanity check
if (!ge.vertices().empty()) {
ATH_MSG_ERROR("Failed to set signal_process_vertex for GenEvent!!");
return nullptr;
......@@ -151,7 +151,7 @@ namespace Simulation
}
else {
ATH_MSG_DEBUG("signal_process_vertex set by Generator.");
return HepMC::signal_process_vertex(ge);
return HepMC::signal_process_vertex(&ge);
}
#else
if( !ge.signal_process_vertex() ) {
......
......@@ -24,11 +24,7 @@
// Forward declarations
#include "AtlasHepMC/GenEvent_fwd.h"
namespace HepMC
{
class GenVertex;
}
#include "AtlasHepMC/GenVertex_fwd.h"
namespace Simulation
{
......@@ -57,7 +53,7 @@ namespace Simulation
private:
/** Ensure that the GenEvent::signal_process_vertex has been set */
HepMC::GenVertex* GetSignalProcessVertex(const HepMC::GenEvent& ge) const;
HepMC::ConstGenVertexPtr GetSignalProcessVertex(const HepMC::GenEvent& ge) const;
SG::ReadHandleKey<McEventCollection> m_inputMcEventCollection { this, "InputMcEventCollection", "TruthEvent", "The name of the input McEventCollection" };
......
......@@ -82,35 +82,35 @@ StatusCode Simulation::ZeroLifetimePositioner::manipulate(HepMC::GenEvent& ge, b
ATH_MSG_DEBUG("Found a vertex to correct with incoming PDG code = " << pdgIn);
ATH_MSG_VERBOSE("Next Vertex:");
if (ATH_UNLIKELY(this->msgLvl (MSG::VERBOSE))) {
nextVtx->print();
HepMC::Print::line(nextVtx);
}
const HepMC::FourVector &nextVec = nextVtx->position();
const CLHEP::HepLorentzVector nextPos( nextVec.x(), nextVec.y(), nextVec.z(), nextVec.t() );
ATH_MSG_VERBOSE("Current Vertex:");
if (ATH_UNLIKELY(this->msgLvl (MSG::VERBOSE))) {
curVtx->print();
HepMC::Print::line(curVtx);
}
if (applyPatch) {
HepMC::GenVertexPtr prevVtx = curVtx->particles_in().front()->production_vertex();
ATH_MSG_VERBOSE("Previous Vertex:");
if (ATH_UNLIKELY(this->msgLvl (MSG::VERBOSE))) {
prevVtx->print();
HepMC::Print::line(prevVtx);
}
const HepMC::FourVector &prevVec = prevVtx->position();
const CLHEP::HepLorentzVector prevPos( prevVec.x(), prevVec.y(), prevVec.z(), prevVec.t() );
CLHEP::HepLorentzVector newPos = 0.5*(prevPos+nextPos);
curVtx->set_position(newPos);
curVtx->set_position(HepMC::FourVector(newPos.x(),newPos.y(),newPos.z(),newPos.t()));
ATH_MSG_DEBUG("Revised current Vertex");
if (ATH_UNLIKELY(this->msgLvl (MSG::VERBOSE))) {
curVtx->print();
HepMC::Print::line(curVtx);
}
}
if (removePatch) {
CLHEP::HepLorentzVector newPos = nextPos;
curVtx->set_position(newPos);
curVtx->set_position(HepMC::FourVector(newPos.x(),newPos.y(),newPos.z(),newPos.t()));
ATH_MSG_DEBUG("Revised current Vertex");
if (ATH_UNLIKELY(this->msgLvl (MSG::VERBOSE))) {
curVtx->print();
HepMC::Print::line(curVtx);
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment