The cut based on S/N has been implemented and tested on various datasets:
HSC, DC2, DECam, and CFHT at the visit level, and HSC & DC2 at the coadd level. The basic functionality is described in the commit message, but I include it here as well:
Two sets of stats are computed based on "high" and "lower" S/N threshold
levels that are both config parameters. By default, these are set to
500 and 100, respectively. These thresholds apply directly for visits,
but for coadds, the threshold gets scaled by square root of the number
of visits. In either case, if too few objects classified as stars exist
with the configured value, the S/N threshold is decreased by 10 until
a sample with N > config.minHighSampleN (default is 20) is achieved.
The threshold values used are printed to the logs via the Stats object.
An "effective" mag corresponding the S/N cut (computed based as the mean
magnitude of the lower 5% of the S/N > signalToNoiseThreshold subsample)
is also printed on the plots.
Examples can be perused at https://lsst-web.ncsa.illinois.edu/~lauren/lauren/DM-19189/ and https://lsst-web.ncsa.illinois.edu/~lauren/DC2/DM-19189/ for DC2. The default is now to select on S/N as described above, but there is still the option to select on mag by setting the config overrides:
Follow the "magThresh" sub directories to see a comparison of using a mag threshold set at < 21.
Here are a few examples:
DC2 (example where S/N threshold got dynamically shifted to the the minimum number of 20 points into the stats):