From 50cd58b1fc3fa61815d6bc7e1b820a3bd482ab93 Mon Sep 17 00:00:00 2001
From: John Chapman <John.Chapman@cern.ch>
Date: Mon, 17 Mar 2025 10:09:12 +0100
Subject: [PATCH] TruthUtils: Add constants and helper functions for more heavy
 boson PDG IDs

---
 Generators/TruthUtils/TruthUtils/AtlasPID.h | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/Generators/TruthUtils/TruthUtils/AtlasPID.h b/Generators/TruthUtils/TruthUtils/AtlasPID.h
index 15f5548ad51..eb74b1a7118 100644
--- a/Generators/TruthUtils/TruthUtils/AtlasPID.h
+++ b/Generators/TruthUtils/TruthUtils/AtlasPID.h
@@ -80,7 +80,15 @@ static const int PHOTON = 22;
 static const int Z0BOSON = 23;
 static const int WPLUSBOSON = 24;
 static const int HIGGSBOSON = 25;
+static const int ZPRIME = 32; // Z′/Z^0_2
+static const int ZDBLPRIME = 33; // Z′′/Z^0_3
+static const int WPLUSPRIME = 34; // W ′/W^+_2
+static const int HIGGS2 = 35; // H^0/H^0_2  FIXME Any better ideas?
+static const int HIGGS3 = 36; // A^0/H^0_3 FIXME Any better ideas?
+static const int HIGGSPLUS = 37; // H^+
+static const int HIGGSPLUSPLUS = 38; // H^++
 static const int GRAVITON = 39;
+static const int HIGGS4 = 40; // a^0/H^0_4 FIXME Any better ideas?
 static const int LEPTOQUARK = 42;
 
 /// PDG Ids for Mavtop madgraph UFO model found under DarkX. The
@@ -337,10 +345,18 @@ template<> inline bool isZ(const int& p){ return p == Z0BOSON; }
 template<class T> inline bool isW(const T& p){return isW(p->pdg_id());}
 template<> inline bool isW(const int& p){ return std::abs(p) == WPLUSBOSON; }
 
+/// APID: Additional "Heavy"/"prime" versions of W and Z bosons (Used in MCTruthClassifier)
+template<class T> inline bool isHeavyBoson(const T& p){return isHeavyBoson(p->pdg_id());}
+template<> inline bool isHeavyBoson(const int& p){ return p == ZPRIME || p == ZDBLPRIME || std::abs(p) == WPLUSPRIME; }
+
 /// APID: HIGGS boson is only one particle.
 template<class T> inline bool isHiggs(const T& p){return isHiggs(p->pdg_id());}
 template<> inline bool isHiggs(const int& p){ return p == HIGGSBOSON; }
 
+/// APID: Additional Higgs bosons for MSSM (Used in MCTruthClassifier)
+template<class T> inline bool isMSSMHiggs(const T& p){return isMSSMHiggs(p->pdg_id());}
+template<> inline bool isMSSMHiggs(const int& p){ return p == HIGGS2 || p == HIGGS3 || std::abs(p) == HIGGSPLUS; }
+
 template<class T> inline bool isGraviton(const T& p) {return isGraviton(p->pdg_id());}
 template<> inline bool isGraviton(const int& p){ return p == GRAVITON; }
 
-- 
GitLab