diff --git a/InnerDetector/InDetRecTools/InDetPriVxFinderTool/CMakeLists.txt b/InnerDetector/InDetRecTools/InDetPriVxFinderTool/CMakeLists.txt index 1bafa82134ecd8c03664c5d7a003265829293dee..88f511adac97701023463c56155b3f01a1be7bb5 100644 --- a/InnerDetector/InDetRecTools/InDetPriVxFinderTool/CMakeLists.txt +++ b/InnerDetector/InDetRecTools/InDetPriVxFinderTool/CMakeLists.txt @@ -8,6 +8,7 @@ atlas_subdir( InDetPriVxFinderTool ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC Control/AthenaBaseComps + Control/StoreGate Event/xAOD/xAODTracking GaudiKernel InnerDetector/InDetRecTools/InDetRecToolInterfaces @@ -15,11 +16,12 @@ atlas_depends_on_subdirs( PUBLIC Tracking/TrkEvent/TrkParameters Tracking/TrkEvent/TrkParticleBase Tracking/TrkEvent/TrkTrack + InnerDetector/InDetConditions/BeamSpotConditionsData + InDetBeamSpotService PRIVATE Control/DataModel DetectorDescription/GeoPrimitives Event/EventPrimitives - InnerDetector/InDetConditions/InDetBeamSpotService InnerDetector/InDetRecTools/InDetTrackSelectionTool Tracking/TrkDetDescr/TrkSurfaces Tracking/TrkEvent/TrkEventPrimitives @@ -41,7 +43,7 @@ atlas_add_component( InDetPriVxFinderTool src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps xAODTracking GaudiKernel InDetRecToolInterfaces PATCoreLib TrkParameters TrkParticleBase TrkTrack DataModel GeoPrimitives EventPrimitives TrkSurfaces TrkEventPrimitives TrkLinks TrkTrackSummary VxMultiVertex VxVertex TrkVertexFitterInterfaces TrkVertexFittersLib ) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps xAODTracking GaudiKernel InDetRecToolInterfaces PATCoreLib TrkParameters TrkParticleBase TrkTrack DataModel GeoPrimitives EventPrimitives TrkSurfaces TrkEventPrimitives TrkLinks TrkTrackSummary VxMultiVertex VxVertex TrkVertexFitterInterfaces TrkVertexFittersLib BeamSpotConditionsData StoreGateLib) # Install files from the package: atlas_install_headers( InDetPriVxFinderTool ) diff --git a/InnerDetector/InDetRecTools/InDetPriVxFinderTool/InDetPriVxFinderTool/InDetIterativePriVxFinderTool.h b/InnerDetector/InDetRecTools/InDetPriVxFinderTool/InDetPriVxFinderTool/InDetIterativePriVxFinderTool.h index 28c6c96696c7c9d9138835e13548954d510c1886..f0aa49bd286133992e6b8b84b2c7f48c7fa3a58a 100755 --- a/InnerDetector/InDetRecTools/InDetPriVxFinderTool/InDetPriVxFinderTool/InDetIterativePriVxFinderTool.h +++ b/InnerDetector/InDetRecTools/InDetPriVxFinderTool/InDetPriVxFinderTool/InDetIterativePriVxFinderTool.h @@ -25,6 +25,9 @@ * even when using a TrackCollection or a TrackParticleBaseCollection * as input. * + * Dave Casper <dcasper@uci.edu> (2018-03-28) + * Migrate beam spot service to conditions handle + * ***************************************************************************/ //implemented using as template the InDetPriVxFinderTool class of A. Wildauer and F. Akesson @@ -35,10 +38,11 @@ #include "InDetRecToolInterfaces/IVertexFinder.h" #include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ToolHandle.h" -#include "GaudiKernel/ServiceHandle.h" #include "TrkTrack/TrackCollection.h" // type def ... #include "TrkParticleBase/TrackParticleBaseCollection.h" // type def ... #include "TrkParameters/TrackParameters.h" +#include "StoreGate/ReadCondHandleKey.h" +#include "BeamSpotConditionsData/BeamSpotData.h" /** * Forward declarations */ @@ -120,13 +124,10 @@ public: ToolHandle< Trk::IVertexFitter > m_iVertexFitter; ToolHandle< InDet::IInDetTrackSelectionTool > m_trkFilter; ToolHandle< Trk::IVertexSeedFinder > m_SeedFinder; -// ToolHandle< Trk::ITrkDistanceFinder > m_distFinder; ToolHandle< Trk::IImpactPoint3dEstimator > m_ImpactPoint3dEstimator; -// ToolHandle< Trk::IVertexTrackCompatibilityEstimator > m_TrackCompatibilityEstimator; -// ToolHandle< Trk::ImpactPoint3dAtaPlaneFactory > m_ImpactPoint3dAtaPlaneFactory; ToolHandle< Trk::IVertexLinearizedTrackFactory > m_LinearizedTrackFactory; - ServiceHandle<IBeamCondSvc> m_iBeamCondSvc; //!< pointer to the beam condition service + SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" }; bool m_useBeamConstraint; double m_significanceCutSeeding; diff --git a/InnerDetector/InDetRecTools/InDetPriVxFinderTool/src/InDetIterativePriVxFinderTool.cxx b/InnerDetector/InDetRecTools/InDetPriVxFinderTool/src/InDetIterativePriVxFinderTool.cxx index 8acf61d19d8d9d59721ec9b50e11fafe47fa430b..26e78a17efde7ec5482f98706fdd138ec8035b67 100755 --- a/InnerDetector/InDetRecTools/InDetPriVxFinderTool/src/InDetIterativePriVxFinderTool.cxx +++ b/InnerDetector/InDetRecTools/InDetPriVxFinderTool/src/InDetIterativePriVxFinderTool.cxx @@ -31,14 +31,11 @@ #include "EventPrimitives/EventPrimitives.h" #include "EventPrimitives/EventPrimitivesHelpers.h" #include "GeoPrimitives/GeoPrimitives.h" -//#include <TMath.h> #include "TrkVertexFitterInterfaces/IImpactPoint3dEstimator.h" -#include "InDetBeamSpotService/IBeamCondSvc.h" #include "InDetTrackSelectionTool/IInDetTrackSelectionTool.h" #include "TrkVertexFitterInterfaces/IVertexSeedFinder.h" -//#include "VxVertex/VxContainer.h" #include "VxVertex/RecVertex.h" #include "VxVertex/VxTrackAtVertex.h" #include "DataModel/DataVector.h" @@ -70,12 +67,7 @@ InDetIterativePriVxFinderTool::InDetIterativePriVxFinderTool(const std::string& m_iVertexFitter("Trk::AdaptiveVertexFitter"), m_trkFilter("InDet::InDetTrackSelection"), m_SeedFinder("Trk::ZScanSeedFinder"), -// m_distFinder("Trk::SeedNewtonTrkDistanceFinder"), -// m_TrackCompatibilityEstimator("Trk::Chi2TrackCompatibilityEstimator"), -// m_ImpactPoint3dAtaPlaneFactory("Trk::ImpactPoint3dAtaPlaneFactory"), -// m_ImpactPoint3dAtaPlaneFactory("Trk::ImpactPoint3dAtaPlaneFactory"), m_ImpactPoint3dEstimator("Trk::ImpactPoint3dEstimator"), - m_iBeamCondSvc("BeamCondSvc",n), m_useBeamConstraint(false), m_significanceCutSeeding(10), m_maximumChi2cutForSeeding(6.*6.), @@ -90,14 +82,9 @@ InDetIterativePriVxFinderTool::InDetIterativePriVxFinderTool(const std::string& declareProperty("VertexFitterTool", m_iVertexFitter); declareProperty("TrackSelector",m_trkFilter); - declareProperty("BeamPositionSvc", m_iBeamCondSvc); declareProperty("SeedFinder" , m_SeedFinder); -// declareProperty("DistanceFinder",m_distFinder); -// declareProperty("TrackCompatibilityEstimator",m_TrackCompatibilityEstimator); -// declareProperty("ImpactPoint3dAtaPlaneFactory",m_ImpactPoint3dAtaPlaneFactory); declareProperty("ImpactPoint3dEstimator",m_ImpactPoint3dEstimator); declareProperty("LinearizedTrackFactory",m_LinearizedTrackFactory); - declareProperty("useBeamConstraint",m_useBeamConstraint); declareProperty("significanceCutSeeding",m_significanceCutSeeding); declareProperty("maximumChi2cutForSeeding",m_maximumChi2cutForSeeding); @@ -114,9 +101,6 @@ InDetIterativePriVxFinderTool::~InDetIterativePriVxFinderTool() StatusCode InDetIterativePriVxFinderTool::initialize() { - StatusCode sc; - - if (m_createSplitVertices==true && m_useBeamConstraint==true) { msg(MSG::FATAL) << " Split vertices cannot be obtained if beam spot constraint is true! Change settings..." << endmsg; @@ -134,12 +118,7 @@ StatusCode InDetIterativePriVxFinderTool::initialize() msg(MSG::FATAL) << "Failed to retrieve tool " << m_SeedFinder << endmsg; return StatusCode::FAILURE; } - /* - if ( m_distFinder.retrieve().isFailure() ) { - msg(MSG::FATAL) << "Failed to retrieve tool " << m_distFinder << endmsg; - return StatusCode::FAILURE; - } - */ + if ( m_LinearizedTrackFactory.retrieve().isFailure() ) { msg(MSG::FATAL) << "Failed to retrieve tool " << m_LinearizedTrackFactory << endmsg; return StatusCode::FAILURE; @@ -150,32 +129,12 @@ StatusCode InDetIterativePriVxFinderTool::initialize() return StatusCode::FAILURE; } - sc = m_iBeamCondSvc.retrieve(); - if (sc.isFailure()) - { - msg(MSG::ERROR) << "Could not find BeamCondSvc." << endmsg; - return sc; - } + ATH_CHECK( m_beamSpotKey.initialize() ); if(m_trkFilter.retrieve().isFailure()) { msg(MSG::ERROR) <<" Unable to retrieve "<<m_trkFilter<<endmsg; return StatusCode::FAILURE; } - /* - if ( m_TrackCompatibilityEstimator.retrieve().isFailure() ) { - msg(MSG::ERROR) << "Failed to retrieve tool " << m_TrackCompatibilityEstimator << endmsg; - return StatusCode::FAILURE; - } else { - msg(MSG::INFO) << "Retrieved tool " << m_TrackCompatibilityEstimator << endmsg; - } - - if ( m_ImpactPoint3dAtaPlaneFactory.retrieve().isFailure() ) { - msg(MSG::ERROR) << "Failed to retrieve tool " << m_ImpactPoint3dAtaPlaneFactory << endmsg; - return StatusCode::FAILURE; - } else { - msg(MSG::INFO) << "Retrieved tool " << m_ImpactPoint3dAtaPlaneFactory << endmsg; - } - */ // since some parameters special to an inherited class this method // will be overloaded by the inherited class @@ -200,20 +159,14 @@ StatusCode InDetIterativePriVxFinderTool::initialize() } //anonymous namespace -std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVxFinderTool::findVertex(const TrackCollection* trackTES) +std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> +InDetIterativePriVxFinderTool::findVertex(const TrackCollection* trackTES) { - if(msgLvl(MSG::DEBUG)) msg() << " Number of input tracks before track selection: " << trackTES->size() << endmsg; - - // TODO: change trkFilter to allow for this replacement - /* - xAOD::Vertex beamposition; - beamposition.makePrivateStore(); - beamposition.setPosition(m_iBeamCondSvc->beamVtx().position()); - beamposition.setCovariancePosition(m_iBeamCondSvc->beamVtx().covariancePosition()); - */ + ATH_MSG_DEBUG(" Number of input tracks before track selection: " << trackTES->size()); - Trk::RecVertex beamposition(m_iBeamCondSvc->beamVtx()); + SG::ReadCondHandle<InDet::BeamSpotData> beamSpotHandle { m_beamSpotKey }; + const InDet::BeamSpotData* beamSpot = *beamSpotHandle; std::vector<Trk::ITrackLink*> selectedTracks; @@ -221,13 +174,15 @@ std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVx Root::TAccept selectionPassed; for (TrackDataVecIter itr = (*trackTES).begin(); itr != (*trackTES).end(); itr++) { - if (m_useBeamConstraint) { - selectionPassed=m_trkFilter->accept(**itr,&beamposition); + if (m_useBeamConstraint && beamSpot != nullptr) + { + Trk::RecVertex beamPosition { beamSpot->beamVtx() }; + selectionPassed=m_trkFilter->accept(**itr, &beamPosition); } else { Trk::Vertex null(Amg::Vector3D(0,0,0)); - selectionPassed=m_trkFilter->accept(**itr,&null); + selectionPassed=m_trkFilter->accept(**itr, &null); } if (selectionPassed) { @@ -239,8 +194,8 @@ std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVx } } - if(msgLvl(MSG::DEBUG)) msg() << "Of " << trackTES->size() << " tracks " - << selectedTracks.size() << " survived the preselection." << endmsg; + ATH_MSG_DEBUG("Of " << trackTES->size() << " tracks " + << selectedTracks.size() << " survived the preselection."); std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> returnContainers = findVertex( selectedTracks ); @@ -248,28 +203,24 @@ std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVx } -std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVxFinderTool::findVertex(const Trk::TrackParticleBaseCollection* trackTES) { +std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> +InDetIterativePriVxFinderTool::findVertex(const Trk::TrackParticleBaseCollection* trackTES) { - if(msgLvl(MSG::DEBUG)) msg() << " Number of input tracks before track selection: " << trackTES->size() << endmsg; - - std::vector<Trk::ITrackLink*> selectedTracks; + ATH_MSG_DEBUG(" Number of input tracks before track selection: " << trackTES->size()); - // TODO: change trkFilter to allow for this replacement - /* - xAOD::Vertex beamposition; - beamposition.makePrivateStore(); - beamposition.setPosition(m_iBeamCondSvc->beamVtx().position()); - beamposition.setCovariancePosition(m_iBeamCondSvc->beamVtx().covariancePosition()); - */ + SG::ReadCondHandle<InDet::BeamSpotData> beamSpotHandle { m_beamSpotKey }; + const InDet::BeamSpotData* beamSpot = *beamSpotHandle; - Trk::RecVertex beamposition(m_iBeamCondSvc->beamVtx()); + std::vector<Trk::ITrackLink*> selectedTracks; typedef DataVector<Trk::TrackParticleBase>::const_iterator TrackParticleDataVecIter; Root::TAccept selectionPassed; for (TrackParticleDataVecIter itr = (*trackTES).begin(); itr != (*trackTES).end(); itr++) { - if (m_useBeamConstraint) { - selectionPassed=m_trkFilter->accept(*((*itr)->originalTrack()), &beamposition); + if (m_useBeamConstraint && beamSpot != nullptr) + { + Trk::RecVertex beamPosition { beamSpot->beamVtx() }; + selectionPassed=m_trkFilter->accept(*((*itr)->originalTrack()), &beamPosition); } else { @@ -287,8 +238,8 @@ std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVx } } - if(msgLvl(MSG::DEBUG)) msg() << "Of " << trackTES->size() << " tracks " - << selectedTracks.size() << " survived the preselection." << endmsg; + ATH_MSG_DEBUG("Of " << trackTES->size() << " tracks " + << selectedTracks.size() << " survived the preselection."); std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> returnContainers = findVertex( selectedTracks ); @@ -296,23 +247,27 @@ std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVx } -std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVxFinderTool::findVertex(const xAOD::TrackParticleContainer* trackParticles) +std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> +InDetIterativePriVxFinderTool::findVertex(const xAOD::TrackParticleContainer* trackParticles) { ATH_MSG_DEBUG(" Number of input tracks before track selection: " << trackParticles->size()); - std::vector<Trk::ITrackLink*> selectedTracks; + SG::ReadCondHandle<InDet::BeamSpotData> beamSpotHandle { m_beamSpotKey }; + const InDet::BeamSpotData* beamSpot = *beamSpotHandle; - xAOD::Vertex beamposition; - beamposition.makePrivateStore(); - beamposition.setPosition(m_iBeamCondSvc->beamVtx().position()); - beamposition.setCovariancePosition(m_iBeamCondSvc->beamVtx().covariancePosition()); + std::vector<Trk::ITrackLink*> selectedTracks; typedef DataVector<xAOD::TrackParticle>::const_iterator TrackParticleDataVecIter; Root::TAccept selectionPassed; for (TrackParticleDataVecIter itr = trackParticles->begin(); itr != trackParticles->end(); ++itr) { - if (m_useBeamConstraint) { - selectionPassed=m_trkFilter->accept(**itr,&beamposition); + if (m_useBeamConstraint && beamSpot != nullptr) + { + xAOD::Vertex beamPosition; + beamPosition.makePrivateStore(); + beamPosition.setPosition( beamSpot->beamVtx().position()); + beamPosition.setCovariancePosition( beamSpot->beamVtx().covariancePosition() ); + selectionPassed=m_trkFilter->accept(**itr, &beamPosition); } else { @@ -337,20 +292,18 @@ std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVx ATH_MSG_DEBUG("Of " << trackParticles->size() << " tracks " << selectedTracks.size() << " survived the preselection."); - //beamposition.releasePrivateStore(); //TODO: should I add this here? it was in InDetPriVxFinderTool method - std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> returnContainers=findVertex(selectedTracks); return returnContainers; } -std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVxFinderTool::findVertex(const std::vector<Trk::ITrackLink*> & trackVector) const +std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> +InDetIterativePriVxFinderTool::findVertex(const std::vector<Trk::ITrackLink*> & trackVector) const { - - + SG::ReadCondHandle<InDet::BeamSpotData> beamSpotHandle { m_beamSpotKey }; + const InDet::BeamSpotData* beamSpot = *beamSpotHandle; - //two things need to be added //1) the seeding mechanism //2) the iterative removal of tracks @@ -367,11 +320,12 @@ std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVx //bail out early with only Dummy vertex if multiplicity cut is applied and exceeded if (m_doMaxTracksCut && (trackVector.size() > m_maxTracks)){ - if (msgLvl(MSG::WARNING)) msg() << trackVector.size() << " tracks - exceeds maximum (" << m_maxTracks << "), skipping vertexing and returning only dummy..." << endmsg; + ATH_MSG_WARNING( trackVector.size() << " tracks - exceeds maximum (" << m_maxTracks << + "), skipping vertexing and returning only dummy..." ); xAOD::Vertex * dummyxAODVertex = new xAOD::Vertex; theVertexContainer->push_back( dummyxAODVertex ); // have to add vertex to container here first so it can use its aux store - dummyxAODVertex->setPosition( m_iBeamCondSvc->beamVtx().position() ); - dummyxAODVertex->setCovariancePosition( m_iBeamCondSvc->beamVtx().covariancePosition() ); + dummyxAODVertex->setPosition( beamSpot->beamVtx().position() ); + dummyxAODVertex->setCovariancePosition( beamSpot->beamVtx().covariancePosition() ); dummyxAODVertex->vxTrackAtVertex() = std::vector<Trk::VxTrackAtVertex>(); dummyxAODVertex->setVertexType(xAOD::VxType::NoVtx); return std::make_pair(theVertexContainer, theVertexAuxContainer); @@ -386,7 +340,6 @@ std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVx //prepare iterators for tracks only necessary for seeding std::vector<Trk::ITrackLink*>::iterator seedBegin; std::vector<Trk::ITrackLink*>::iterator seedEnd; - do { @@ -396,27 +349,30 @@ std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVx if (seedtracknumber==0) { - if(msgLvl(MSG::DEBUG)) msg() << " New iteration. No tracks available after track selection for seeding. No finding done." << endmsg; + ATH_MSG_DEBUG(" New iteration. No tracks available after track selection for seeding. No finding done."); break; } iterations+=1; - if(msgLvl(MSG::DEBUG)) msg() << "ITERATION NUMBER " << iterations << endmsg; + ATH_MSG_DEBUG("ITERATION NUMBER " << iterations); //now find a new SEED std::vector<const Trk::TrackParameters*> perigeeList; for (std::vector<Trk::ITrackLink*>::iterator seedtrkAtVtxIter=seedBegin; - seedtrkAtVtxIter!=seedEnd;++seedtrkAtVtxIter) { + seedtrkAtVtxIter!=seedEnd;++seedtrkAtVtxIter) + { perigeeList.push_back((*seedtrkAtVtxIter)->parameters()); } xAOD::Vertex theconstraint; - if (m_useBeamConstraint) { + if (m_useBeamConstraint && beamSpot != nullptr) + { theconstraint = xAOD::Vertex(); // Default constructor creates a private store - theconstraint.setPosition( m_iBeamCondSvc->beamVtx().position() ); - theconstraint.setCovariancePosition( m_iBeamCondSvc->beamVtx().covariancePosition() ); - theconstraint.setFitQuality( m_iBeamCondSvc->beamVtx().fitQuality().chiSquared(), m_iBeamCondSvc->beamVtx().fitQuality().doubleNumberDoF() ); + theconstraint.setPosition( beamSpot->beamVtx().position() ); + theconstraint.setCovariancePosition( beamSpot->beamVtx().covariancePosition() ); + theconstraint.setFitQuality( beamSpot->beamVtx().fitQuality().chiSquared(), + beamSpot->beamVtx().fitQuality().doubleNumberDoF() ); actualVertex = m_SeedFinder->findSeed(perigeeList,&theconstraint); } else { actualVertex = m_SeedFinder->findSeed(perigeeList); @@ -912,8 +868,8 @@ std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVx } xAOD::Vertex * dummyxAODVertex = new xAOD::Vertex; theVertexContainer->push_back( dummyxAODVertex ); // have to add vertex to container here first so it can use its aux store - dummyxAODVertex->setPosition( m_iBeamCondSvc->beamVtx().position() ); - dummyxAODVertex->setCovariancePosition( m_iBeamCondSvc->beamVtx().covariancePosition() ); + dummyxAODVertex->setPosition( beamSpot->beamVtx().position() ); + dummyxAODVertex->setCovariancePosition( beamSpot->beamVtx().covariancePosition() ); dummyxAODVertex->vxTrackAtVertex() = std::vector<Trk::VxTrackAtVertex>(); dummyxAODVertex->setVertexType(xAOD::VxType::NoVtx); } @@ -931,8 +887,8 @@ std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVx } xAOD::Vertex * dummyxAODVertex = new xAOD::Vertex; theVertexContainer->push_back( dummyxAODVertex ); // have to add vertex to container here first so it can use its aux store - dummyxAODVertex->setPosition( m_iBeamCondSvc->beamVtx().position() ); - dummyxAODVertex->setCovariancePosition( m_iBeamCondSvc->beamVtx().covariancePosition() ); + dummyxAODVertex->setPosition( beamSpot->beamVtx().position() ); + dummyxAODVertex->setCovariancePosition( beamSpot->beamVtx().covariancePosition() ); dummyxAODVertex->vxTrackAtVertex() = std::vector<Trk::VxTrackAtVertex>(); dummyxAODVertex->setVertexType(xAOD::VxType::NoVtx); } @@ -975,8 +931,8 @@ std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> InDetIterativePriVx { xAOD::Vertex * dummyxAODVertex = new xAOD::Vertex; theVertexContainer->push_back( dummyxAODVertex ); // have to add vertex to container here first so it can use its aux store - dummyxAODVertex->setPosition( m_iBeamCondSvc->beamVtx().position() ); - dummyxAODVertex->setCovariancePosition( m_iBeamCondSvc->beamVtx().covariancePosition() ); + dummyxAODVertex->setPosition( beamSpot->beamVtx().position() ); + dummyxAODVertex->setCovariancePosition( beamSpot->beamVtx().covariancePosition() ); dummyxAODVertex->vxTrackAtVertex() = std::vector<Trk::VxTrackAtVertex>(); dummyxAODVertex->setVertexType(xAOD::VxType::NoVtx); }