Published August 5, 2024 | Version v1
Dataset Open

BPASS pair-instability supernova tagging

  • 1. ROR icon University of Geneva
  • 2. Gravitational Wave Science Center
  • 3. ROR icon University of Auckland
  • 4. ROR icon University of Melbourne
  • 1. University of Auckland

Description

These data contain the tagging of individual models from the BPASS population for different pair-instability supernova prescriptions. The data is stored as a pandas DataFrame with the identifier: `rates`.

df = pd.read_hdf(f'22_3_2024_{MET}.h5', 'rates')

The following data columns are available:

  • filenames: the BPASS model name. Note: some merger models in the v2.2 release failed before reaching/avoiding the PISN regime. These have been rerun and often do not lead to a PISN.
  • model_imf: the weight of the model; directly from BPASS
  • types: the type of model (merger, primary, secondary, single, effectively single)
  • mixed_imf: the weight of the model for secondaries; directly from BPASS
  • mixed_age: the start age of a secondary model due to rejuvenation; directly from BPASS
  • total_mass: the total mass of the PISN progenitor model at the end of the model
  • helium_mass: the total helium core mass of the PISN progenitor model at the end of the model
  • co_mass: the total carbon-oxygen core mass of the PISN progenitor model at the end of the model

The remaining columns are "booleans" for the different PISN prescriptions:

  • standard: The fiducial model used in Briel et al. (2023)
  • old_bpass: The original BPASS tagging used in Briel et al. (2022)
  • CO_only: Tagging with only the CO core >= 60 Msun as a limit
  • merchant: PISN limits from Marchant et al. (2019)
  • noH: standard tagging but no hydrogen present.
  •  ['0', '1', '2', '3', '4', '5']: different formation channels, shifted one up from the BPASS model identification
  • ['R150', 'R175', 'R200', 'R225', 'R250', 'He70', 'He80', 'He90', 'He100', 'He110', 'He120', 'He130']: tagging based on each light curve.

This can be used to get the metallicity bias functions (number of events per Msun over metallicity) or to create new taggings.

For example, below we use both the existing tagging with `model_imf` weights to get the rate of PISN at each metallicity and we create a new tagging `shifted_up`, which is a tagging where the PISN limit is shifted upwards.

 

import pandas as pd
import numpy as np
from hoki.constants import BPASS_METALLICITIES

# from Kaasen et al. 2008 paper
envelopes =    np.array([70.9, 79.4, 84.4, 96.8,  112.3,  0,  0,  0,   0,   0,   0,   0])
helium_cores = np.array([72.0, 84.4, 96.7, 103.5, 124.0, 70, 80, 90, 100, 110, 120, 130])
curve_models = [ 'R150', 'R175', 'R200', 'R225', 'R250', 'He70', 'He80', 'He90', 'He100', 'He110', 'He120', 'He130']

bias_functions = pd.DataFrame({'standard':np.zeros(13),
                               'standard_old':np.zeros(13),
                               'CO_only':np.zeros(13),
                               'marchant':np.zeros(13),
                                'shift_up':np.zeros(13),
                                'old_BPASS':np.zeros(13),
                                'He_only':np.zeros(13),
                                'primary':np.zeros(13),
                                'secondary':np.zeros(13),
                                'QHE':np.zeros(13),
                                'merger':np.zeros(13),
                                'single':np.zeros(13),
                   'R150':np.zeros(13),
                   'R175':np.zeros(13),
                   'R200':np.zeros(13),
                   'R225':np.zeros(13),
                   'R250':np.zeros(13),
                   'He70':np.zeros(13),
                   'He80':np.zeros(13),
                   'He90':np.zeros(13),
                   'He100':np.zeros(13),
                   'He110':np.zeros(13),
                   'He120':np.zeros(13),
                   'He130':np.zeros(13)})

bias_functions.index = BPASS_METALLICITIES

for MET in BPASS_METALLICITIES[:-4]:
    print(MET)
    df = pd.read_hdf(f'PISN_data_{MET}.h5', 'rates')
    for i in curve_models:
        mask =  (df['co_mass'] >=60) & (df['helium_mass'] < 133) & (df[i] == 1)
        
        bias_functions.loc[MET, i] = np.sum(df[mask]['model_imf'])/1e6
      
    mask =  (df['co_mass'] >=60) & (df['helium_mass'] < 133)
    bias_functions.loc[MET, 'standard'] = np.sum(df[mask]['model_imf'])/1e6
    bias_functions.loc[MET, 'standard_old'] = np.sum(df[df['standard'] == 1]['model_imf'])/1e6
    
    mask = (df['helium_mass'] >=64) & (df['helium_mass'] < 133)
    bias_functions.loc[MET, 'old_BPASS'] = np.sum(df[mask]['model_imf'][mask])/1e6
    
    mask = (df['co_mass'] >= 60)
    bias_functions.loc[MET, 'CO_only'] = np.sum(df[df['CO_only'] == 1]['model_imf'][mask])/1e6
    
    mask =  (df['helium_mass'] >=60.8) & (df['helium_mass'] < 124) 
    bias_functions.loc[MET, 'marchant'] = np.sum(df[df['marchant'] == 1]['model_imf'][mask])/1e6
    bias_functions.loc[MET, 'noH'] = np.sum(df[df['noH'] == 1]['model_imf'])/1e6
    
    mask = (df['helium_mass'] >=90) & (df['helium_mass'] < 180)
    bias_functions.loc[MET, 'shift_up'] = np.sum(df[mask]['model_imf'])/1e6
    
    mask = np.isclose(df['total_mass'] - df['helium_mass'], 0, atol=0.1) & (df['helium_mass'] < 133) & (df['co_mass'] >=60)
    bias_functions.loc[MET, 'He_only'] = np.sum(df[mask]['model_imf'])/1e6
    
    mask =  (df['co_mass'] >=60) & (df['helium_mass'] < 133)
    bias_functions.loc[MET, 'merger'] = np.sum(df[(df['types'] == 0) & mask]['model_imf'])/1e6
    bias_functions.loc[MET, 'single'] = np.sum(df[((df['types'] == -1) | (df['types'] == 3)) & mask]['model_imf'])/1e6
    bias_functions.loc[MET, 'primary'] = np.sum(df[(df['types'] == 1) & mask]['model_imf'])/1e6
    bias_functions.loc[MET, 'secondary'] = np.sum(df[(df['types'] == 2) & mask]['model_imf'])/1e6
    bias_functions.loc[MET, 'QHE'] = np.sum(df[(df['types'] == 4) & mask]['model_imf'])/1e6

Files

Files (328.4 MB)

Name Size Download all
md5:37a5b9c8f998af7dc77ac441b627bdc0
34.7 MB Download
md5:b5fc6a129958891651b3b6169d7d3594
35.3 MB Download
md5:666e0e693ffce8b95810ef70e10dc611
35.6 MB Download
md5:90172e05d1d855b36392c755773104db
36.2 MB Download
md5:f654fd23758625cf217b03329aced901
37.3 MB Download
md5:dd8c48376b1c47c0a8e76b880332ba75
39.5 MB Download
md5:efcc895a279d5ca394c2a30f974cd95e
39.2 MB Download
md5:6f59e81ceaa37fd1af6bd3b32ee5a7ff
35.5 MB Download
md5:1009511f31340ea683f704a3bb1b8919
35.2 MB Download