Extragalactic catalogs: mass relations#

Notebook owner: Yao-Yuan Mao @yymao. Last run: Mar 8, 2024 by @patricialarsen

In this notebook we demostrate how to plot the halo mass-stellar mass relation and also the BH mass-bulge mass relation for the cosmoDC2/ skysim/ roman_rubin galaxy catalog.

Learning objectives#

  • Use GCRCatalogs to access the cosmoDC2, roman_rubin or skysim catalogs.

  • Be able to explore useful quantities using GCRCatalogs.

  • Be able to use filters when accessing quantities.

import GCRCatalogs
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

Uncomment the line corresponding to the catalog you’re inspecting#

gc = GCRCatalogs.load_catalog('cosmoDC2_v1.1.4_small')
#gc = GCRCatalogs.load_catalog('skysim5000_v1.1.2_small')
#gc = GCRCatalogs.load_catalog('roman_rubin_2023_v1.1.1_elais')
# let's see what masses are availble 
sorted(c for c in gc.list_all_quantities(True) if 'mass' in c.lower())

stellar mass - halo mass relation for low-z central galaxies#

data = gc.get_quantities(['stellar_mass', 'halo_mass'], filters=['redshift < 0.2', 'is_central'])
cs = plt.hexbin(np.log10(data['halo_mass']), np.log10(data['stellar_mass']), cmap='Blues', bins='log');
plt.colorbar(cs, label='log population');
plt.xlabel(r'$\log \, {\rm M}_h \, / \, {\rm M}_\odot$');
plt.ylabel(r'$\log \, {\rm M}_* \, / \, {\rm M}_\odot$');
plt.title(r'$z < 0.2$');

let’s see if the relation changes with redshift

data = gc.get_quantities(['stellar_mass', 'halo_mass'], filters=['redshift > 0.9', 'redshift < 1', 'is_central'])
cs = plt.hexbin(np.log10(data['halo_mass']), np.log10(data['stellar_mass']), cmap='Blues', bins='log');
plt.colorbar(cs, label='log population');
plt.xlabel(r'$\log \, {\rm M}_h \, / \, {\rm M}_\odot$');
plt.ylabel(r'$\log \, {\rm M}_* \, / \, {\rm M}_\odot$');
plt.title(r'$0.9 < z < 1.0$');

bulge mass - black hole mass relation for low-z central galaxies#

data = gc.get_quantities(['stellar_mass_bulge', 'blackHoleMass'], filters=['redshift < 0.2', 'is_central'])
cs = plt.hexbin(np.log10(data['stellar_mass_bulge']), np.log10(data['blackHoleMass']), cmap='Blues', bins='log');
plt.colorbar(cs, label='log population');
plt.xlabel(r'$\log \, {\rm M}_{\rm bulge} \, / \, {\rm M}_\odot$');
plt.ylabel(r'$\log \, {\rm M}_{\rm BH} \, / \, {\rm M}_\odot$');