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