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