def compute_ring_radius_from_master_curve(l, dp=160., do=25.6, N=8, lowerGamma=2.2, setting='medium'):
    """
    Given a stroke length, this function returns a radius of a vortex ring in a vortex ring collider
    ... well tested over time
    ... units: mm
    e.g.-
        r = compute_ring_radius_from_master_curve(8.2, setting='small')
        v = compute_ring_velocity_from_master_curve(8.2, estimate_veff(8.2, 200), setting='small')

    Parameters
    ----------
    l: float/array
        ... stroke length in mm
    dp: float
        .... piston diameter in mm
    do float
        ... orfice diameter in mm
    N: int/float
        ... number of oricies
    lowerGamma: float
        ... experimental constant, default: 2.2
        ... This represents the ratio of semi-major to semi-minor radius when a vortex bubble is approximated as an ellipsoid
    setting: str
        ... vortex ring collider versions
        ... choose from 'medium' or 'small'
        ... 'medium' refers to the chamber configuration to create D=10cm blobs
        ... 'small' refers to the chamber configuration to create D=5cm blobs

    Returns
    -------
    radius: float/array, radius of the rings
    """
    if setting == 'medium':
        dp, do, N = 160, 25.6, 8.  # Setting 1
    elif setting == 'small':  # Setting 2
        dp, do, N = 56.7, 12.8, 8.
    lstar = 1. / N * (dp / do) ** 2 * l / do
    radius = do / lowerGamma * lstar ** (1 / 3)
    return radius