diff --git a/Generators/TruthUtils/TruthUtils/AtlasPID.h b/Generators/TruthUtils/TruthUtils/AtlasPID.h index 591e99b28bd288ce3e69ba426eb6b7327a68247c..96079b1c6042a7fbad340a78b013bf4d3b944a16 100644 --- a/Generators/TruthUtils/TruthUtils/AtlasPID.h +++ b/Generators/TruthUtils/TruthUtils/AtlasPID.h @@ -557,7 +557,8 @@ template<> inline bool isDM(const int& p){ auto sp = std::abs(p); return (sp >= /// as far as possible. Thus 4900021 is the gauge boson g_v of a confining gauge field, 490000n_{q_v} and 490001n_{l_v} fundamental /// constituents charged or not under this, 4900022 is the γ_v of a non-confining field, and 4900n_{q_{v1}}n_{q_{v2}}n_J a Hidden Valley meson. template<class T> inline bool isHiddenValley(const T& p){return isHiddenValley(p->pdg_id());} -template<> inline bool isHiddenValley(const DecodedPID& p){return (p.ndigits() == 7 && p(0) == 4 && p(1) == 9 && isValid(p.shift(2)));} +template<> inline bool isHiddenValley(const DecodedPID& p){ auto pp = p.shift(2); return (p.ndigits() == 7 && p(0) == 4 && p(1) == 9 && + ( isQuark(pp) || isLepton(pp) || isBoson(pp) || isGlueball(pp) || isDiquark(pp) || isHadron(pp) ) ); } template<> inline bool isHiddenValley(const int& p){ auto value_digits = DecodedPID(p); return isHiddenValley(value_digits);} /// In addition, there is a need to identify â€Q-ball†and similar very exotic (multi-charged) particles which may have large, non-integer charge.