43 xAOD::Vertex::ConstAccessor<std::vector<VertexTruthMatchInfo> > matchInfoDecor(
"TruthEventMatchingInfos");
46 std::vector<std::pair<const xAOD::Vertex*, size_t> > result;
49 for (
auto vxit : vxContainer ) {
51 const std::vector<VertexTruthMatchInfo> & info = matchInfoDecor( *vxit );
52 if (!matchInfoDecor.isAvailable(*vxit)){
55 for (
size_t i = 0; i < info.size(); ++i ) {
56 if ( isHardScatterEvent( std::get<0>(info[i]) ) ) {
57 result.emplace_back(vxit, i );
75 std::vector<std::pair<const xAOD::Vertex*, size_t> > matches =
hardScatterMatches( vxContainer );
79 xAOD::Vertex::Decorator<VertexMatchType> matchTypeDecor(
"VertexMatchType");
81 if ( matches.empty() ) {
84 }
else if ( matches.size() == 1 ) {
91 }
else if ( matches[0].second == 0 &&
type ==
MERGED ) {
104 for (
auto it : matches ) {
105 if ( it.second == 0 )
111 if (num_main == 0 ) {
113 }
else if (num_main == 1 ) {
const std::vector< std::pair< const xAOD::Vertex *, size_t > > hardScatterMatches(const xAOD::VertexContainer &vxContainer)
const xAOD::Vertex * bestHardScatterMatch(const xAOD::VertexContainer &vxContainer)
HardScatterType classifyHardScatter(const xAOD::VertexContainer &vxContainer)