from typing import Tuple
from typing import List


def define_2d_correlations_hists() -> Tuple[List[str], List[float], List[Tuple[str, float, float, str]]]:
    """ Define the 2D correlation hists.

    Args:
        None.
    Returns:
        (ep_orientation values, assoc_pt values, (ep_orientation, lower_pt_bin_edge, upper_pt_bin_edge, name))
    """
    ep_orientations = ["all", "in", "mid", "out"]
    assoc_pt = [1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 6.0, 10.0]
    # Example name: "raw2DratioallAss1015J2040C3050bg0812sig06rbX2rbY2.root",
    names = [
        (ep, pt_1, pt_2, f"raw2Dratio{ep}Ass{int(pt_1 * 10)}{int(pt_2 * 10)}J2040C3050bg0812sig06rbX2rbY2")
        for ep in ep_orientations
        for pt_1, pt_2 in zip(assoc_pt[:-1], assoc_pt[1:])
    ]

    return ep_orientations, assoc_pt, names