def identify_candidates(all_sso, min_obs=40, dist_cutoff=10):
    """Identify the objects which might be lightcurve determination candidates.

    Parameters
    ----------
    all_sso: pd.DataFrame
        The alert observations of the SSOs.
    min_obs: int, opt
        Minimum number of observations to consider an object a candidate for lightcurve determination.
        Default 40.
    dist_cutoff: int, opt
        The maximum ssdistnr value in the alert == arcseconds between measured position and expected position.
        Default 10.

    Returns
    -------
    list of str
        List of the object names.
    """
    # Pull out the list of objects with many observations, within @dist_cutoff of the attributed sso.
    objs = all_sso.query('ssdistnr < @dist_cutoff').groupby('ssnamenr')[['jd']].count().query('jd > %d'
                                                                                              % min_obs)
    names = objs.sort_values('jd', ascending=False)
    objnames = names.index.values
    print(f'# Found {len(objnames)} objects with more than {min_obs} observations')
    return objnames