From 656dd032b53e610b6de34e8b80dab33c883cbfed Mon Sep 17 00:00:00 2001
From: John Chapman <John.Chapman@cern.ch>
Date: Fri, 17 May 2024 08:33:02 +0200
Subject: [PATCH] Add new TruthBinding::childTruthBinding method to simplify
 creating TruthBindings for child particles

---
 Simulation/ISF/ISF_Core/ISF_Event/ISF_Event/TruthBinding.h   | 3 +++
 Simulation/ISF/ISF_Core/ISF_Event/ISF_Event/TruthBinding.icc | 5 +++++
 2 files changed, 8 insertions(+)

diff --git a/Simulation/ISF/ISF_Core/ISF_Event/ISF_Event/TruthBinding.h b/Simulation/ISF/ISF_Core/ISF_Event/ISF_Event/TruthBinding.h
index c5ea7705b414..745f107e69ce 100644
--- a/Simulation/ISF/ISF_Core/ISF_Event/ISF_Event/TruthBinding.h
+++ b/Simulation/ISF/ISF_Core/ISF_Event/ISF_Event/TruthBinding.h
@@ -59,6 +59,9 @@ namespace ISF {
     inline HepMC::ConstGenParticlePtr getGenerationZeroTruthParticle() const;
     inline void                setGenerationZeroTruthParticle(HepMC::GenParticlePtr p);
 
+    /** Create a TruthBinding for a child particle */
+    inline TruthBinding* childTruthBinding(HepMC::GenParticlePtr childP) const;
+
   private:
     HepMC::GenParticlePtr   m_truthParticle{};               //!< pointer to particle in MC truth
     HepMC::GenParticlePtr   m_primaryTruthParticle{};        //!< pointer to corresponding primary (generator) particle
diff --git a/Simulation/ISF/ISF_Core/ISF_Event/ISF_Event/TruthBinding.icc b/Simulation/ISF/ISF_Core/ISF_Event/ISF_Event/TruthBinding.icc
index a8fe524692c2..36e1a3e046c1 100644
--- a/Simulation/ISF/ISF_Core/ISF_Event/ISF_Event/TruthBinding.icc
+++ b/Simulation/ISF/ISF_Core/ISF_Event/ISF_Event/TruthBinding.icc
@@ -88,4 +88,9 @@ namespace ISF {
   HepMC::ConstGenParticlePtr TruthBinding::getGenerationZeroTruthParticle() const { return m_generationZeroTruthParticle; }
   void                TruthBinding::setGenerationZeroTruthParticle(HepMC::GenParticlePtr p) { m_generationZeroTruthParticle = p; }
 
+  /** Create a TruthBinding for a child particle */
+  TruthBinding* TruthBinding::childTruthBinding(HepMC::GenParticlePtr childP) const {
+    return new TruthBinding(childP, m_primaryTruthParticle, childP);
+  }
+
 } // end ISF namespace
-- 
GitLab