def _define_names(d_t, d_y, treatment_names, output_names):
    """
    Helper function to get treatment and output names

    Parameters
    ----------
    d_t: tuple of int
        Tuple of number of treatment (exclude control in discrete treatment scenario).
    d_y: tuple of int
        Tuple of number of outcome.
    treatment_names: optional None or list (Default=None)
        The name of treatment. In discrete treatment scenario, the name should not include the name of
        the baseline treatment (i.e. the control treatment, which by default is the alphabetically smaller)
    output_names:  optional None or list (Default=None)
        The name of the outcome.

    Returns
    -------
    d_t: int
    d_y: int
    treament_names: List
    output_names: List
    """

    d_t = d_t[0] if d_t else 1
    d_y = d_y[0] if d_y else 1
    if treatment_names is None:
        treatment_names = [f"T{i}" for i in range(d_t)]
    if output_names is None:
        output_names = [f"Y{i}" for i in range(d_y)]
    return (d_t, d_y, treatment_names, output_names)