Functions like hasQUARK don't work on diquarks.
Functions like hasQUARK don't work on diquarks. The reason is that they don't include the diquarks at all, e.g.
inline bool hasUp(int pid) {
return (isHadron(pid) || isQuark(pid)) && _hasQ(pid, 2);
}