Skip to content
Snippets Groups Projects

Add HS Vertex Reco/Selection Efficiency and Reso Plots to IDPVM

1 file
+ 15
13
Compare changes
  • Side-by-side
  • Inline
@@ -135,21 +135,23 @@ float InDetPerfPlot_VertexTruthMatching::getTruthTransverseReso(const xAOD::Vert
const xAOD::TruthVertex* InDetPerfPlot_VertexTruthMatching::getTruthVertex(const xAOD::Vertex* recoVtx) const {
const xAOD::TruthVertex* truthVtx = nullptr;
const static xAOD::Vertex::Decorator<std::vector<InDetVertexTruthMatchUtils::VertexTruthMatchInfo>> truthMatchingInfos("TruthEventMatchingInfos");
const std::vector<InDetVertexTruthMatchUtils::VertexTruthMatchInfo>& truthInfos = truthMatchingInfos(*recoVtx);
if (!truthInfos.empty()) {
const InDetVertexTruthMatchUtils::VertexTruthMatchInfo& truthInfo = truthInfos.at(0);
const ElementLink<xAOD::TruthEventBaseContainer> truthEventLink = std::get<0>(truthInfo);
const xAOD::TruthEvent* truthEvent = nullptr;
if (truthEventLink.isValid()) {
truthEvent = static_cast<const xAOD::TruthEvent*>(*truthEventLink);
if (truthEvent) {
truthVtx = truthEvent->truthVertex(0);
if (recoVtx) {
const static xAOD::Vertex::Decorator<std::vector<InDetVertexTruthMatchUtils::VertexTruthMatchInfo>> truthMatchingInfos("TruthEventMatchingInfos");
const std::vector<InDetVertexTruthMatchUtils::VertexTruthMatchInfo>& truthInfos = truthMatchingInfos(*recoVtx);
if (!truthInfos.empty()) {
const InDetVertexTruthMatchUtils::VertexTruthMatchInfo& truthInfo = truthInfos.at(0);
const ElementLink<xAOD::TruthEventBaseContainer> truthEventLink = std::get<0>(truthInfo);
const xAOD::TruthEvent* truthEvent = nullptr;
if (truthEventLink.isValid()) {
truthEvent = static_cast<const xAOD::TruthEvent*>(*truthEventLink);
if (truthEvent) {
truthVtx = truthEvent->truthVertex(0);
}
}
}
}
else {
ATH_MSG_WARNING("TruthEventMatchingInfos DECORATOR yields empty vector -- returning nullptr!");
else {
ATH_MSG_WARNING("TruthEventMatchingInfos DECORATOR yields empty vector -- returning nullptr!");
}
}
return truthVtx;
}
Loading