59 {
60 bool callJpsiFinder = true;
62 for( SG::ReadHandle<xAOD::VertexContainer> vertContainer :
m_CollectionsToCheck.makeHandles(ctx)){
63 if (!vertContainer.isValid()){
65 return StatusCode::FAILURE;
66 }
67 if(vertContainer->size() == 0) {
68 callJpsiFinder = false;
69 ATH_MSG_DEBUG(
"Container VertexContainer (" << vertContainer.key() <<
") is empty");
70 break;
71 }
72 }
73 }
74
75
76 std::unique_ptr<xAOD::VertexContainer> vtxContainer = std::make_unique<xAOD::VertexContainer>();
77 std::unique_ptr<xAOD::VertexAuxContainer> vtxAuxContainer = std::make_unique<xAOD::VertexAuxContainer>();
78 vtxContainer->setStore(vtxAuxContainer.get());
79
80 std::unique_ptr<xAOD::VertexContainer> refPvContainer =std::make_unique<xAOD::VertexContainer>();
81 std::unique_ptr<xAOD::VertexAuxContainer> refPvAuxContainer = std::make_unique<xAOD::VertexAuxContainer>();
82 refPvContainer->setStore(refPvAuxContainer.get());
83
84
85 if(callJpsiFinder) {
86
87
88
90
91
92
93
97 return StatusCode::FAILURE;
98 }
99
100
101
102
103
106
107
111
114 }
else if (!
m_refitPV && vtxContainer->size()){
116 }
117 }
118
119
120
122 ATH_CHECK(out_handle.
record(std::move(vtxContainer), std::move(vtxAuxContainer)));
125 ATH_CHECK(refitHandle.
record(std::move(refPvContainer), std::move(refPvAuxContainer)));
126 }
127
128 return StatusCode::SUCCESS;
129 }
#define ATH_CHECK
Evaluate an expression and check for errors.
SG::ReadHandleKey< xAOD::VertexContainer > m_pvContainerKey
Gaudi::Property< bool > m_checkCollections
ToolHandle< Analysis::ICandidateSearch > m_jpsiFinder
Gaudi::Property< int > m_PV_max
Gaudi::Property< bool > m_do3d
SG::WriteHandleKey< xAOD::VertexContainer > m_outContainerKey
Gaudi::Property< unsigned int > m_PV_minNTracks
ToolHandle< Analysis::PrimaryVertexRefitter > m_pvRefitter
SG::ReadHandleKeyArray< xAOD::VertexContainer > m_CollectionsToCheck
Gaudi::Property< bool > m_refitPV
SG::WriteHandleKey< xAOD::VertexContainer > m_refContainerKey
ToolHandle< Trk::V0Tools > m_v0Tools
tools
Gaudi::Property< int > m_DoVertexType
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
virtual bool isValid() override final
Can the handle be successfully dereferenced?
const_pointer_type cptr()
Dereference the pointer.
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.