51 {
52
53 bool callV0Finder = false;
54
57 ATH_CHECK( evtStore()->retrieve(vertContainer, str) );
58 if(vertContainer->
size() == 0) {
59 ATH_MSG_DEBUG(
"Container VertexContainer (" << str <<
") is empty");
60 }else{
61 callV0Finder = true;
62 ATH_MSG_DEBUG(
"Container VertexContainer (" << str <<
") has events N= " << vertContainer->
size());
63 break;
64 }
65 }
66
67
68
69 SG::WriteHandle<xAOD::VertexContainer> h_V0(
m_v0Key, ctx );
70 if ( h_V0.record(std::make_unique<xAOD::VertexContainer>() ,std::make_unique<xAOD::VertexAuxContainer>()).isFailure()){
72 return StatusCode::FAILURE;
73 }
74
75 SG::WriteHandle<xAOD::VertexContainer> h_Ks(
m_ksKey, ctx );
76 if ( h_Ks.record(std::make_unique<xAOD::VertexContainer>() ,std::make_unique<xAOD::VertexAuxContainer>()).isFailure()){
78 return StatusCode::FAILURE;
79 }
80
81 SG::WriteHandle<xAOD::VertexContainer> h_La(
m_laKey, ctx );
82 if( h_La.record(std::make_unique<xAOD::VertexContainer>() ,std::make_unique<xAOD::VertexAuxContainer>()).isFailure()){
84 return StatusCode::FAILURE;
85
86 }
87 SG::WriteHandle<xAOD::VertexContainer> h_Lb(
m_lbKey, ctx );
88 if(h_Lb.record(std::make_unique<xAOD::VertexContainer>() ,std::make_unique<xAOD::VertexAuxContainer>()).isFailure()){
90 return StatusCode::FAILURE;
91 }
92
97
98 if (callV0Finder) {
100 SG::ReadHandle<xAOD::VertexContainer> importedVxContainer(
m_vertexKey, ctx );
101 ATH_CHECK(importedVxContainer.isValid());
102
103 if (importedVxContainer->size()==0){
104 ATH_MSG_WARNING(
"You have no primary vertices: " << importedVxContainer->size());
105 } else {
106 primaryVertex = (*importedVxContainer)[0];
107 }
109 h_Ks.ptr(),
110 h_La.ptr(),
111 h_Lb.ptr(),
112 primaryVertex, importedVxContainer.cptr(), ctx));
113
114 ATH_MSG_DEBUG(
"Reco_V0Finder v0Container->size() " << v0Container->size());
115 ATH_MSG_DEBUG(
"Reco_V0Finder ksContainer->size() " << ksContainer->size());
116 ATH_MSG_DEBUG(
"Reco_V0Finder laContainer->size() " << laContainer->size());
117 ATH_MSG_DEBUG(
"Reco_V0Finder lbContainer->size() " << lbContainer->size());
118
119
121 if(v0Container->size() > 500){
122 ATH_MSG_WARNING(
"Event Run: " <<
evt->runNumber() <<
" Event: " <<
evt->eventNumber() <<
" v0Container container size " << v0Container->size());
123 }
124 if(ksContainer->size() > 500){
125 ATH_MSG_WARNING(
"Event Run: " <<
evt->runNumber() <<
" Event: " <<
evt->eventNumber() <<
" ksContainer container size " << ksContainer->size());
126 }
127 if(laContainer->size() > 500){
128 ATH_MSG_WARNING(
"Event Run: " <<
evt->runNumber() <<
" Event: " <<
evt->eventNumber() <<
" laContainer container size " << laContainer->size());
129 }
134 }
135
136 return StatusCode::SUCCESS;
137 }
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
size_type size() const noexcept
Returns the number of elements in the collection.
SG::WriteHandleKey< xAOD::VertexContainer > m_v0Key
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
ToolHandle< InDet::V0MainDecorator > m_v0DecoTool
SG::WriteHandleKey< xAOD::VertexContainer > m_ksKey
SG::WriteHandleKey< xAOD::VertexContainer > m_lbKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexKey
SG::WriteHandleKey< xAOD::VertexContainer > m_laKey
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.