From 4cb9d4bc6da3bd808d3473535747856715302995 Mon Sep 17 00:00:00 2001
From: Maarten Van Veghel <maarten.vanveghel@cern.ch>
Date: Tue, 7 May 2024 17:26:09 +0200
Subject: [PATCH] Add 2024 ProbNN type enum

---
 Event/RecEvent/include/Event/GlobalChargedPID.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/Event/RecEvent/include/Event/GlobalChargedPID.h b/Event/RecEvent/include/Event/GlobalChargedPID.h
index 1727321423f..3d1a8d2202c 100644
--- a/Event/RecEvent/include/Event/GlobalChargedPID.h
+++ b/Event/RecEvent/include/Event/GlobalChargedPID.h
@@ -32,6 +32,8 @@ namespace LHCb {
     using Selection   = SharedObjectsContainer<GlobalChargedPID>;
     using Range       = Gaudi::Range_<ConstVector>;
 
+    enum ProbNN { Electron, Muon, Pion, Kaon, Proton, Deuteron, Ghost };
+
     // constructors
     GlobalChargedPID( GlobalChargedPID const& pid )
         : KeyedObject<int>()
@@ -128,6 +130,17 @@ namespace LHCb {
       return *this;
     }
 
+    template <ProbNN type>
+    GlobalChargedPID& setProbNN( float value ) {
+      if constexpr ( type == ProbNN::Electron ) return setProbNNe( value );
+      if constexpr ( type == ProbNN::Muon ) return setProbNNmu( value );
+      if constexpr ( type == ProbNN::Pion ) return setProbNNpi( value );
+      if constexpr ( type == ProbNN::Kaon ) return setProbNNk( value );
+      if constexpr ( type == ProbNN::Proton ) return setProbNNp( value );
+      if constexpr ( type == ProbNN::Deuteron ) return setProbNNd( value );
+      if constexpr ( type == ProbNN::Ghost ) return setProbNNghost( value );
+    }
+
   private:
     // Combined (summed) Log Likelihoods
     float m_elDLL{DefaultCombDLL}; ///< Electron Log Likelihood
-- 
GitLab