84 const EventContext& ctx = Gaudi::Hive::currentContext();
89 if(handle->size() == 0) {
98 std::unique_ptr<xAOD::VertexContainer> vtxContainer = std::make_unique<xAOD::VertexContainer>();
99 std::unique_ptr<xAOD::VertexAuxContainer> vtxAuxContainer = std::make_unique<xAOD::VertexAuxContainer>();
100 vtxContainer->setStore(vtxAuxContainer.get());
106 if( !
m_SearchTool->performSearch(ctx,*vtxContainer).isSuccess() ) {
108 return StatusCode::FAILURE;
119 std::unique_ptr<xAOD::VertexContainer> refPvContainer;
120 std::unique_ptr<xAOD::VertexAuxContainer> refPvAuxContainer;
123 refPvContainer = std::make_unique<xAOD::VertexContainer>();
124 refPvAuxContainer = std::make_unique<xAOD::VertexAuxContainer>();
125 refPvContainer->setStore(refPvAuxContainer.get());
136 if(vtxContainer->
size() >0){
137 if(vtxContainer->
size() > 10000){
138 ATH_MSG_WARNING(
"Number of candidates is very high N=" << vtxContainer->
size() <<
" this may crash the sharedwriter");
142 ATH_MSG_FATAL(
"refitting failed - check the vertices you passed");
145 if(refPvContainer->
size() > 10000){
146 ATH_MSG_WARNING(
"Number of refitted vertices is very high N=" << refPvContainer->
size() <<
" this may crash the sharedwriter");
155 std::vector<const xAOD::TrackParticleContainer*> trackCols;
158 trackCols.push_back(handle.cptr());
160 if(not trackCols.empty()){
164 }
catch(std::runtime_error
const&
e){
166 return StatusCode::FAILURE;
170 std::vector<const xAOD::MuonContainer*> muCols;
173 muCols.push_back(handle.cptr());
175 if(not muCols.empty()){
179 }
catch(std::runtime_error
const&
e){
181 return StatusCode::FAILURE;
189 ATH_CHECK(handle.record(std::move(vtxContainer), std::move(vtxAuxContainer)));
193 ATH_CHECK(handle.record(std::move(refPvContainer), std::move(refPvAuxContainer)));
203 return StatusCode::SUCCESS;