From b4c8d9e2671d4c316627fe8a33e5be76e8ba41c5 Mon Sep 17 00:00:00 2001 From: Samuel Van Stroud <sam.van.stroud@cern.ch> Date: Thu, 6 Jul 2023 14:45:45 +0200 Subject: [PATCH] Fix for ftagTruthOriginLabel Pileup and Fake tracks Fix for ftagTruthOriginLabel Pileup and Fake tracks --- .../src/TrackTruthDecoratorAlg.cxx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/TrackTruthDecoratorAlg.cxx b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/TrackTruthDecoratorAlg.cxx index c9b76a0a5e23..0a8b21834397 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/TrackTruthDecoratorAlg.cxx +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/TrackTruthDecoratorAlg.cxx @@ -15,6 +15,8 @@ #include "xAODTruth/TruthVertex.h" #include "xAODTruth/TruthVertexContainer.h" +#include "InDetTrackSystematicsTools/InDetTrackTruthOriginDefs.h" + namespace FlavorTagDiscriminants { @@ -69,12 +71,18 @@ namespace FlavorTagDiscriminants { // decorate loop std::vector<const xAOD::TrackParticle*> tracks_vector(tracks->begin(), tracks->end()); for ( const auto& track : tracks_vector ) { + + // for the origin label we need to start from the track object (to label fake tracks) + int trackTruthOrigin = m_trackTruthOriginTool->getTrackOrigin(track); + dec_origin_label(*track) = InDet::ExclusiveOrigin::getExclusiveOrigin(trackTruthOrigin); + + // everything else is already decorated to the associated truth particle const auto truth = m_trackTruthOriginTool->getTruth(track); dec_barcode(*track) = truth ? truth->barcode() : -2; dec_parent_barcode(*track) = truth ? m_acc_truthParentBarcode(*truth) : -2; - dec_origin_label(*track) = truth ? m_acc_truthOriginLabel(*truth) : -2; dec_type_label(*track) = truth ? m_acc_truthTypeLabel(*truth) : -2; dec_vertex_index(*track) = truth ? m_acc_truthVertexIndex(*truth) : -2; + } return StatusCode::SUCCESS; } -- GitLab