36 return StatusCode::FAILURE;
45 return StatusCode::FAILURE;
57 return StatusCode::FAILURE;
71 return StatusCode::SUCCESS;
82 std::pair< xAOD::VertexContainer*, xAOD::VertexAuxContainer* > vertexContainerPair
83 = std::make_pair( vertexContainer, vertexAuxContainer );
87 if(trackParticleCollection.isValid()){
89 vertexContainerPair =
m_VertexFinderTool->findVertex ( trackParticleCollection.cptr() );
93 return StatusCode::FAILURE;
97 if(trackCollection.isValid()){
101 return StatusCode::FAILURE;
106 std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer* >
107 myVertexContainerPair{
nullptr,
nullptr};
108 auto deletePair = [](std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer* > &
p){
109 delete p.first;
p.first =
nullptr;
110 delete p.second;
p.second =
nullptr;
113 if (vertexContainerPair.first) {
116 myVertexContainerPair =
m_VertexMergingTool->mergeVertexContainer( *vertexContainerPair.first );
117 deletePair(vertexContainerPair);
118 vertexContainerPair = myVertexContainerPair;
123 deletePair(vertexContainerPair);
126 if (myVertexContainerPair.first ==
nullptr) {
128 return StatusCode::FAILURE;
131 if (not myVertexContainerPair.first->hasStore()) {
133 return StatusCode::FAILURE;
136 ATH_MSG_DEBUG(
"Successfully reconstructed " << myVertexContainerPair.first->size()-1 <<
" vertices (excluding dummy)");
139 ATH_CHECK(outputVertices.record(std::unique_ptr<xAOD::VertexContainer>(myVertexContainerPair.first),std::unique_ptr<xAOD::VertexAuxContainer>(myVertexContainerPair.second)));
143 vertexIter != myVertexContainerPair.first->end(); ++vertexIter ) {
144 if((*vertexIter)->nTrackParticles() > 0 and (*vertexIter)->vertexType() != 0 ){
148 if( vertexIter == myVertexContainerPair.first->begin() )
monitor_vertex(
"primVertex", **vertexIter);
153 return StatusCode::SUCCESS;
158 return StatusCode::SUCCESS;
162 if (
prefix ==
"allVertex"){
171 else if (
prefix ==
"primVertex"){