diff --git a/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvTool.cxx b/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvTool.cxx index 9d9164e4952c894a963fbf38480fda36f0063321..6a017fd2adf5c9a39fddbf25b740edf37f399ec7 100644 --- a/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvTool.cxx +++ b/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvTool.cxx @@ -62,7 +62,8 @@ namespace xAODMaker { m_lumiTool( "LuminosityTool" ), #endif m_beamCondSvcAvailable( false ), - m_lumiToolAvailable( false ) { + m_lumiToolAvailable( false ), + m_disableBeamSpot( false ) { // Declare the interface(s) provided by the tool: declareInterface< IEventInfoCnvTool >( this ); @@ -70,6 +71,7 @@ namespace xAODMaker { // Declare the tool's properties: declareProperty( "BeamCondSvc", m_beamCondSvc ); declareProperty( "LuminosityTool", m_lumiTool ); + declareProperty( "DisableBeamSpot", m_disableBeamSpot ); #endif } @@ -88,7 +90,10 @@ namespace xAODMaker { "xAOD::EventInfo" ); m_beamCondSvcAvailable = false; } - + if(m_disableBeamSpot){ + ATH_MSG_WARNING( "Beam conditions service manually disabled on EventInfo object" ); + m_beamCondSvcAvailable = false; + } // Try to access the beam conditions service: if( m_beamCondSvcAvailable ) { CHECK( m_beamCondSvc.retrieve() ); diff --git a/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvTool.h b/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvTool.h index 201eabe7e62c459fd625f039d6ce1b0002002c97..4130bea4d3f6d3c1379f2b2ad9bc47aaa0530980 100644 --- a/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvTool.h +++ b/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvTool.h @@ -69,6 +69,9 @@ namespace xAODMaker { /// Internal flag for the availability of the luminosity tool bool m_lumiToolAvailable; + /// Flag to disable beamspot service for AthenaMT migration purposes + bool m_disableBeamSpot; + }; // class EventInfoCnvTool } // namespace xAODMaker diff --git a/InnerDetector/InDetRecAlgs/InDetPriVxFinder/CMakeLists.txt b/InnerDetector/InDetRecAlgs/InDetPriVxFinder/CMakeLists.txt index 1d9329a8db38322a66ae61abdb08e1e59cde23e9..4534b4962a0e8cddefa63574f7d7313e40c048e5 100644 --- a/InnerDetector/InDetRecAlgs/InDetPriVxFinder/CMakeLists.txt +++ b/InnerDetector/InDetRecAlgs/InDetPriVxFinder/CMakeLists.txt @@ -9,12 +9,12 @@ atlas_subdir( InDetPriVxFinder ) atlas_depends_on_subdirs( PUBLIC Control/AthenaBaseComps GaudiKernel + InnerDetector/InDetConditions/BeamSpotConditionsData PRIVATE Control/CxxUtils Event/EventPrimitives Event/xAOD/xAODCore Event/xAOD/xAODTracking - InnerDetector/InDetConditions/InDetBeamSpotService InnerDetector/InDetRecTools/InDetRecToolInterfaces Reconstruction/RecoTools/ITrackToVertex Tracking/TrkDetDescr/TrkSurfaces diff --git a/InnerDetector/InDetRecAlgs/InDetPriVxFinder/InDetPriVxFinder/InDetPriVxDummyFinder.h b/InnerDetector/InDetRecAlgs/InDetPriVxFinder/InDetPriVxFinder/InDetPriVxDummyFinder.h index b7ffdf14ee968ff41c89312f8f677fc8be0c19a2..9d4d3bc825804016be118c8c2feb30595df67f8c 100755 --- a/InnerDetector/InDetRecAlgs/InDetPriVxFinder/InDetPriVxFinder/InDetPriVxDummyFinder.h +++ b/InnerDetector/InDetRecAlgs/InDetPriVxFinder/InDetPriVxFinder/InDetPriVxDummyFinder.h @@ -11,6 +11,7 @@ #define INDETPRIVXFINDER_INDETPRIVXDUMMYFINDER_H #include "AthenaBaseComps/AthAlgorithm.h" #include "GaudiKernel/ServiceHandle.h" +#include "BeamSpotConditionsData/BeamSpotData.h" /** DUMMY Primary Vertex Finder. InDetPriVxDummyFinder just fills one dummy vertex into the vertex container. The position and error of this @@ -19,7 +20,6 @@ */ /* Forward declarations */ -class IBeamCondSvc; namespace InDet { @@ -32,8 +32,8 @@ namespace InDet StatusCode execute(); StatusCode finalize(); private: - ServiceHandle<IBeamCondSvc> m_iBeamCondSvc; std::string m_vxCandidatesOutputName; //!< Name of output container to store results + SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" }; }; } #endif diff --git a/InnerDetector/InDetRecAlgs/InDetPriVxFinder/src/InDetPriVxDummyFinder.cxx b/InnerDetector/InDetRecAlgs/InDetPriVxFinder/src/InDetPriVxDummyFinder.cxx index a579f1965e3d51b05e600e399a5bd18de3800f0f..0f071dee0a3a2b0db25e09ee0403df4c948950a6 100755 --- a/InnerDetector/InDetRecAlgs/InDetPriVxFinder/src/InDetPriVxDummyFinder.cxx +++ b/InnerDetector/InDetRecAlgs/InDetPriVxFinder/src/InDetPriVxDummyFinder.cxx @@ -7,7 +7,6 @@ ------------------- ***************************************************************************/ #include "InDetPriVxFinder/InDetPriVxDummyFinder.h" -#include "InDetBeamSpotService/IBeamCondSvc.h" #include "VxVertex/VxTrackAtVertex.h" #include "xAODTracking/Vertex.h" #include "xAODTracking/TrackParticle.h" @@ -22,10 +21,8 @@ namespace InDet InDetPriVxDummyFinder::InDetPriVxDummyFinder ( const std::string &n, ISvcLocator *pSvcLoc ) : AthAlgorithm ( n, pSvcLoc ), - m_iBeamCondSvc("BeamCondSvc",n), m_vxCandidatesOutputName ( "VxPrimaryCandidate" ) { - declareProperty ( "BeamPositionSvc", m_iBeamCondSvc); declareProperty ( "VxCandidatesOutputName",m_vxCandidatesOutputName ); } @@ -33,11 +30,7 @@ namespace InDet StatusCode InDetPriVxDummyFinder::initialize() { - if ( m_iBeamCondSvc.retrieve().isFailure() ) - { - msg(MSG::ERROR) << "Could not find BeamCondSvc." << endmsg; - return StatusCode::FAILURE; - } + ATH_CHECK(m_beamSpotKey.initialize()); return StatusCode::SUCCESS; } @@ -46,11 +39,11 @@ namespace InDet xAOD::VertexContainer* theVxContainer = new xAOD::VertexContainer(); xAOD::VertexAuxContainer* aux = new xAOD::VertexAuxContainer(); theVxContainer->setStore( aux ); - + SG::ReadCondHandle<InDet::BeamSpotData> beamSpotHandle { m_beamSpotKey }; xAOD::Vertex* dummyVertex = new xAOD::Vertex(); theVxContainer->push_back ( dummyVertex ); // have to add vertex to container here first so it can use its aux store - David S. - dummyVertex->setPosition(m_iBeamCondSvc->beamVtx().position()); - dummyVertex->setCovariancePosition(m_iBeamCondSvc->beamVtx().covariancePosition()); + dummyVertex->setPosition(beamSpotHandle->beamVtx().position()); + dummyVertex->setCovariancePosition(beamSpotHandle->beamVtx().covariancePosition()); dummyVertex->setVertexType(xAOD::VxType::NoVtx); //---- Recording section: write the results to StoreGate ---//