def check_lowest(optype, mom, irrep):
    logging.debug("checking if lowest in channel for {} {} {}".format(optype, mom, irrep))

    strangeness, isospin = infer_strangeness_and_isospin(optype)
    momstring = mommap(mom)
    if momstring == "nocheck":
        return -1
    elevels = primary_operators.read_expected_levels(strangeness, isospin, irrep, mom=momstring)
    index_first_single = next(i for (i,e) in enumerate(elevels) if "PSQ" not in e)
    return index_first_single