From 86af63f92f579456ede6942bbbe9db60f1ed65c6 Mon Sep 17 00:00:00 2001 From: John Chapman <John.Chapman@cern.ch> Date: Mon, 17 Mar 2025 11:23:29 +0100 Subject: [PATCH] TruthUtils: Right handed neutrino states. --- Generators/TruthUtils/TruthUtils/AtlasPID.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Generators/TruthUtils/TruthUtils/AtlasPID.h b/Generators/TruthUtils/TruthUtils/AtlasPID.h index eb74b1a7118..8263b568a43 100644 --- a/Generators/TruthUtils/TruthUtils/AtlasPID.h +++ b/Generators/TruthUtils/TruthUtils/AtlasPID.h @@ -120,6 +120,16 @@ static const int LAMBDACPLUS = 4122; static const int LAMBDAB0 = 5122; static const int PSI2S = 20443; +/// PDG Rule 12: +/// Generator defined PDG ID values for right handed neutrinos and +/// corresponding W+ boson from a Left-Right symmetric Standard Model +/// extension. (Defined for some MadGraph+Pythia8 samples and +/// referenced in MCTruthClassifierGen.cxx) +static const int RH_NU_E = 9900012; +static const int RH_NU_MU = 9900014; +static const int RH_NU_TAU = 9900016; +static const int WBOSON_LRSM = 9900024; + static const int LEAD = 1000822080; static const int OXYGEN = 1000080160; static const int NEON = 1000100200; @@ -375,6 +385,13 @@ template<class T> inline bool isPythia8Specific(const T& p){return isPythia8Spec template<> inline bool isPythia8Specific(const DecodedPID& p){ return (p.ndigits() == 7 && p(0) == 9 && p(1) == 9);} template<> inline bool isPythia8Specific(const int& p){ auto value_digits = DecodedPID(p); return isPythia8Specific(value_digits);} +/// APID: Helper function for right-handed neutrino states +/// FIXME Currently the origin of these three definitions is +/// unknown. They overlap with the definition of isPythia8Specific +/// though. (Used in MCTruthClassifierGen.cxx) +template<class T> inline bool isNeutrinoRH(const T& p){return isNeutrinoRH(p->pdg_id());} +template<> inline bool isNeutrinoRH(const int& p){ return (std::abs(p) == RH_NU_E || std::abs(p) == RH_NU_MU|| std::abs(p) == RH_NU_TAU);} + /// Main Table /// for MC internal use 81–100,901–930,998-999,1901–1930,2901–2930, and 3901–3930 template<class T> inline bool isGenSpecific(const T& p){return isGenSpecific(p->pdg_id());} -- GitLab