Unverified Commit 6d1bf63b authored by Akke Viitanen's avatar Akke Viitanen
Browse files

Add Shankar+2016 relation, refactor

parent d1d87d6a
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -139,7 +139,11 @@ def get_log_mbh_graham2023(log_mstar, which="E/Es,e"):


def get_delta_log_mbh_shankar2019(log_mstar, low=0.0, high=np.inf):
    """Return equation 6 from Shankar+2019."""
    """
    Return equation 6 from Shankar+2019.

    The reference for the relation is: Shankar F. et al., 2016, MNRAS, 460, 3119
    """
    delta_mbh = 0.32 - 0.1 * (log_mstar - 12)
    delta_mbh = np.clip(delta_mbh, low, high)
    return delta_mbh
+42 −40
Original line number Diff line number Diff line
@@ -21,8 +21,9 @@ mpl.style.use("etc/agile.mplstyle")
log_mstar = np.linspace(8.5, 12.5, 401)
dlog_mstar = 0.10
dz = 1.0
lw1 = 2.5
lw2 = 2.0
lw1 = 3.0
lw2 = 3.0
lw3 = 1.5
alpha = 0.80
cmap = mpl.colormaps["gist_heat"]
norm = mpl.colors.Normalize(vmin=0.0, vmax=5.5)
@@ -57,46 +58,47 @@ def main():

    axes[1].fill_between(log_mstar, log_mbh - 0.50, log_mbh + 0.50, color="k", alpha=0.20)

    axes[1].plot(
        log_mstar,
        mbh.get_log_mbh_haring_rix2004(log_mstar),
        lw=lw2,
        # label="Häring & Rix 2004",
        label="H&R04",
        alpha=alpha,
        ls="dashdot",
    )

    # axes[1].plot(
    #    log_mstar,
    #    mbh.get_log_mbh_kormendy_ho2013(log_mstar),
    #    lw=lw2,
    #    label="K&H13",
    #    alpha=alpha,
    #    ls="dashed",
    # )

    axes[1].plot(
        log_mstar,
        mbh.get_log_mbh_kormendy_ho2013(log_mstar, from_rv15=True),
        lw=lw2,
        # label="K&H13 (R&V15)",
        label="K&H13",
        alpha=alpha,
        ls="dashed",
    )

    axes[1].plot(
        log_mstar,
        mbh.get_log_mbh_reines_volonteri2015(log_mstar),
        lw=lw2,
        label="R&V15",
        alpha=alpha,
        ls="dotted",
    )
    ###############################################################################
    # Start plotting references
    #   1) cycle through color and linestyle "dashdot", "dashed", "dotted"
    #   2) cycle through linewidths lw2, lw3
    ###############################################################################
    from cycler import cycler

    colors = [
        "#1f77b4",
        "#ff7f0e",
        "#2ca02c",
        "#d62728",
        "#9467bd",
        "#8c564b",
        # "#e377c2",
        # "#7f7f7f",
        # "#bcbd22",
        # "#17becf",
    ]
    lss = "dashdot", "dashed", "dotted"
    lws = lw2, lw3
    c = cycler(color=colors) + (cycler(lw=lws) * cycler(ls=lss))
    axes[1].set_prop_cycle(c)

    for log_mbh, label in [
        # NOTE: AV verified H&R is consistent with R&V15 plot
        (mbh.get_log_mbh_haring_rix2004(log_mstar), "H&R04"),
        # NOTE: updated K&H according to AWG email December 2025
        (mbh.get_log_mbh_kormendy_ho2013(log_mstar, from_rv15=True), "K&H13"),
        (mbh.get_log_mbh_reines_volonteri2015(log_mstar), "R&V15"),
        # NOTE: Shankar email December 2025
        # Shankar F. et al., 2016, MNRAS, 460, 3119
        (mbh.get_log_mbh_shankar2019(log_mstar), "S+16"),
        # NOTE: AWG email December 2025 -- use the black line from Fig. A4,
        # slope is 2.07 \pm 0.19
        (mbh.get_log_mbh_graham2023(log_mstar, which="major_mergers"), "G23"),
    ]:
        axes[1].plot(log_mstar, log_mbh, label=label, alpha=alpha)

    for ax in axes:
        ax.set_xlim(9.5, 11.9)
        ax.set_xlim(9.6, 11.9)
        ax.set_ylim(6.1, 8.9)
        ax.set_xlabel(r"$\log_{10} \left( M_{\rm star} \,/\, M_\odot \right)$")
        # ax.set_aspect(1.0)