Example #1
0
def test_pta_SKA_WN_GWB():
    SKA_WN_GWB = detector.PTA('SKA, WN and GWB',
                              T_SKA,
                              N_p_SKA,
                              sigma_SKA,
                              cadence_SKA,
                              A_GWB=4e-16)
Example #2
0
def test_pta_NANOGrav_WN_GWB():
    NANOGrav_WN_GWB = detector.PTA('NANOGrav, WN and GWB',
                                   T_nano,
                                   N_p_nano,
                                   sigma_nano,
                                   cadence_nano,
                                   A_GWB=4e-16)
Example #3
0
def test_pta_NANOGrav_cw_GWB():
    NANOGrav_cw_GWB = detector.PTA(
        "NANOGrav CW Detection no GWB",
        load_location=NANOGrav_filelocation_2,
        I_type="h",
    )
    NANOGrav_cw_GWB.h_n_f
Example #4
0
def test_pta_SKA_WN_RN():
    SKA_WN_RN = detector.PTA('SKA, WN and RN',
                             T_SKA,
                             N_p_SKA,
                             sigma_SKA,
                             cadence_SKA,
                             A_rn=[1e-16, 1e-12],
                             alpha_rn=[-3 / 4, 1])
Example #5
0
def test_pta_NANOGrav_WN_RN():
    NANOGrav_WN_RN = detector.PTA('NANOGrav, WN and RN',
                                  T_nano,
                                  N_p_nano,
                                  sigma_nano,
                                  cadence_nano,
                                  A_rn=[1e-16, 1e-12],
                                  alpha_rn=[-3 / 4, 1])
Example #6
0
def test_pta_NANOGrav_WN():
    NANOGrav_WN = detector.PTA(
        "NANOGrav, WN Only",
        N_p_nano,
        T_obs=T_nano,
        sigma=sigma_nano,
        cadence=cadence_nano,
    )
    NANOGrav_WN.fT
Example #7
0
def test_pta_NANOGrav_WN_GWB():
    NANOGrav_WN_GWB = detector.PTA(
        "NANOGrav, WN and GWB",
        N_p_nano,
        T_obs=T_nano,
        sigma=sigma_nano,
        cadence=cadence_nano,
        sb_amp=4e-16,
    )
    NANOGrav_WN_GWB.h_n_f
Example #8
0
def test_NANOGrav_11yr(source_pta):
    load_name = "NANOGrav_11yr_S_eff.txt"
    load_location = load_directory + "/NANOGrav/StrainFiles/" + load_name
    T_obs = 11.42 * u.yr  # Observing time in years
    nanograv = detector.PTA(
        "NANOGrav 11yr", T_obs=T_obs, load_location=load_location, I_type="E"
    )
    [nanograv_sample_x, nanograv_sample_y, nanograv_SNR] = snr.Get_SNR_Matrix(
        source_pta, nanograv, var_x, sampleRate_x, var_y, sampleRate_y
    )
Example #9
0
def test_pta_NANOGrav_Sampled_Noise_GWB():
    NANOGrav_Sampled_Noise_GWB = detector.PTA(
        "NANOGrav, Sampled Noise and GWB",
        N_p_nano,
        use_11yr=True,
        use_rn=True,
        sb_amp=4e-16,
        nbins=10,
    )
    NANOGrav_Sampled_Noise_GWB.fT
Example #10
0
def test_pta_NANOGrav_WN_RN():
    NANOGrav_WN_RN = detector.PTA(
        "NANOGrav, WN and RN",
        N_p_nano,
        T_obs=T_nano,
        sigma=sigma_nano,
        cadence=cadence_nano,
        rn_amp=[1e-16, 1e-12],
        rn_alpha=[-3 / 4, 1],
    )
    NANOGrav_WN_RN.h_n_f
Example #11
0
def test_pta_SKA_WN_GWB():
    SKA_WN_GWB = detector.PTA(
        "SKA, WN and GWB",
        N_p_SKA,
        T_obs=T_SKA,
        sigma=sigma_SKA,
        cadence=cadence_SKA,
        sb_amp=4e-16,
        sb_alpha=-2.0 / 3.0,
    )
    SKA_WN_GWB.h_n_f
Example #12
0
def test_pta_SKA_WN_RN():
    SKA_WN_RN = detector.PTA(
        "SKA, WN and RN",
        N_p_SKA,
        T_obs=T_SKA,
        sigma=sigma_SKA,
        cadence=cadence_SKA,
        rn_amp=[1e-16, 1e-12],
        rn_alpha=[-3 / 4, 1],
    )
    SKA_WN_RN.h_n_f
Example #13
0
def test_pta_NANOGrav_WN(source_pta):
    NANOGrav_WN = detector.PTA(
        "NANOGrav, WN Only",
        N_p_nano,
        T_obs=T_nano,
        sigma=sigma_nano,
        cadence=cadence_nano,
    )
    [NANOGrav_WN_sample_x, NANOGrav_WN_sample_y, NANOGrav_WN_SNR] = snr.Get_SNR_Matrix(
        source_pta, NANOGrav_WN, var_x, sampleRate_x, var_y, sampleRate_y
    )
Example #14
0
def NANOGrav_WN():
    NANOGrav_WN = detector.PTA("NANOGrav",
                               N_p,
                               T_obs=T_obs,
                               sigma=sigma,
                               cadence=cadence)
    NANOGrav_WN.T_obs = [T_obs, T_obs_min, T_obs_max]
    NANOGrav_WN.sigma = [sigma, sigma_min, sigma_max]
    NANOGrav_WN.n_p = [N_p, N_p_min, N_p_max]
    NANOGrav_WN.cadence = [cadence, cadence_min, cadence_max]
    return NANOGrav_WN
Example #15
0
def test_SKA(source_pta):
    T_obs = 15 * u.yr  # Observing time (years)
    sigma = 10 * u.ns.to("s") * u.s  # rms timing residuals in nanoseconds
    N_p = 20  # Number of pulsars
    cadence = 1 / (
        u.wk.to("yr") * u.yr
    )  # Avg observation cadence of 1 every week in num/year

    SKA = detector.PTA("SKA", N_p, T_obs=T_obs, sigma=sigma, cadence=cadence)
    [SKA_sample_x, SKA_sample_y, SKA_SNR] = snr.Get_SNR_Matrix(
        source_pta, SKA, var_x, sampleRate_x, var_y, sampleRate_y
    )
Example #16
0
def SKA_WN():
    SKA_WN = detector.PTA(
        "SKA, WN Only",
        N_p_SKA,
        T_obs=T_SKA,
        sigma=sigma_SKA,
        cadence=cadence_SKA,
        f_min=1e-10,
        f_max=1e-7,
        nfreqs=int(1e3),
    )
    return SKA_WN
Example #17
0
def SKA_Sampled_Noise():
    SKA_Sampled_Noise = detector.PTA(
        "SKA, Sampled Noise",
        N_p_SKA,
        cadence=[cadence_SKA, cadence_SKA / 4.0],
        sigma=[sigma_SKA, 10 * sigma_SKA],
        T_obs=T_SKA,
        use_11yr=True,
        use_rn=True,
    )
    SKA_Sampled_Noise.h_n_f
    return SKA_Sampled_Noise
Example #18
0
def test_pta_SKA_Sampled_Noise_GWB(SKA_Sampled_Noise):
    SKA_Sampled_Noise_GWB = detector.PTA(
        "SKA, Sampled Noise and GWB",
        N_p_SKA,
        cadence=SKA_Sampled_Noise.cadence,
        sigma=SKA_Sampled_Noise.sigma,
        T_obs=SKA_Sampled_Noise.T_obs,
        rn_amp=SKA_Sampled_Noise.rn_amp,
        rn_alpha=SKA_Sampled_Noise.rn_alpha,
        phi=SKA_Sampled_Noise.phi,
        theta=SKA_Sampled_Noise.theta,
        sb_amp=4e-16,
    )
    SKA_Sampled_Noise_GWB.h_n_f
Example #19
0
def test_pta_NANOGrav_WN_GWB(source_pta):
    NANOGrav_WN_GWB = detector.PTA(
        "NANOGrav, WN and GWB",
        N_p_nano,
        T_obs=T_nano,
        sigma=sigma_nano,
        cadence=cadence_nano,
        sb_amp=4e-16,
    )
    [
        NANOGrav_WN_GWB_sample_x,
        NANOGrav_WN_GWB_sample_y,
        NANOGrav_WN_GWB_SNR,
    ] = snr.Get_SNR_Matrix(
        source_pta, NANOGrav_WN_GWB, var_x, sampleRate_x, var_y, sampleRate_y
    )
Example #20
0
def test_pta_NANOGrav_cw_ul_file():
    NANOGrav_cw_ul_file = NANOGrav_filedirectory + "smoothed_11yr.txt"
    NANOGrav_cw_ul = detector.PTA("NANOGrav CW Upper Limit",
                                  load_location=NANOGrav_cw_ul_file,
                                  I_type="h")
    NANOGrav_cw_ul.S_n_f = NANOGrav_cw_ul.h_n_f**2 / NANOGrav_cw_ul.fT
Example #21
0
def test_pta_NANOGrav_11yr_hasasia():
    NANOGrav_11yr_hasasia_file = NANOGrav_filedirectory + "NANOGrav_11yr_S_eff.txt"
    NANOGrav_11yr_hasasia = detector.PTA(
        "NANOGrav 11yr", load_location=NANOGrav_11yr_hasasia_file, I_type="E")
    NANOGrav_11yr_hasasia.S_n_f
Example #22
0
def test_pta_NANOGrav_WN():
    NANOGrav_WN = detector.PTA('NANOGrav, WN Only', T_nano, N_p_nano,
                               sigma_nano, cadence_nano)
Example #23
0
def SKA_WN():
    SKA_WN = detector.PTA('SKA, WN Only', T_SKA, N_p_SKA, sigma_SKA,
                          cadence_SKA)
    return SKA_WN
Example #24
0
def test_pta_NANOGrav_cw_ul_file():
    NANOGrav_cw_ul_file = NANOGrav_filedirectory + 'smoothed_11yr.txt'
    NANOGrav_cw_ul = detector.PTA('NANOGrav CW Upper Limit',
                                  load_location=NANOGrav_cw_ul_file)
Example #25
0
def test_pta_NANOGrav_cw_GWB():
    NANOGrav_cw_GWB = detector.PTA('NANOGrav CW Detection no GWB',
                                   load_location=NANOGrav_filelocation_2)
Example #26
0
def test_PTA_init_error_kwargs():
    with pytest.raises(ValueError):
        detector.PTA("name", N_p_nano, T_nano=T_nano)
Example #27
0
def Get_Instrument(model):
    if model == 0:  #Einstein Telescope
        load_name = 'ET_D_data.txt'
        load_location = load_directory + 'EinsteinTelescope/StrainFiles/' + load_name

        T_obs = 4 * u.yr  #Observing time in years
        T_obs_min = 1 * u.yr
        T_obs_max = 10 * u.yr

        instrument = detector.GroundBased('ET',
                                          T_obs,
                                          load_location=load_location,
                                          I_type='A')
        instrument.T_obs = [T_obs, T_obs_min, T_obs_max]

    elif model == 1:  #aLIGO
        load_name = 'aLIGODesign.txt'
        load_location = load_directory + 'aLIGO/StrainFiles/' + load_name

        T_obs = 4 * u.yr  #Observing time in years
        T_obs_min = 1 * u.yr
        T_obs_max = 10 * u.yr

        instrument = detector.GroundBased('aLIGO',
                                          T_obs,
                                          load_location=load_location,
                                          I_type='A')
        instrument.T_obs = [T_obs, T_obs_min, T_obs_max]

    elif model == 2:  #NANOGrav 15 yr
        ###############################################
        #NANOGrav calculation using 11.5yr parameters https://arxiv.org/abs/1801.01837
        T_obs = 15 * u.yr  #Observing time in years
        T_obs_min = 10 * u.yr
        T_obs_max = 30 * u.yr

        sigma = 100 * u.ns.to('s') * u.s  #rms timing residuals in seconds

        N_p = 18  #Number of pulsars

        cadence = 1 / (
            2 * u.wk.to('yr') * u.yr
        )  #Avg observation cadence of 1 every 2 weeks in num/year

        instrument = detector.PTA('NANOGrav', T_obs, N_p, sigma, cadence)
        instrument.T_obs = [T_obs, T_obs_min, T_obs_max]

    elif model == 3:  #SKA (2030s)
        ###############################################
        #SKA calculation using parameters and methods from arXiv:0804.4476 section 7.1
        T_obs = 15 * u.yr  #Observing time (years)
        T_obs_min = 10 * u.yr
        T_obs_max = 30 * u.yr

        sigma = 10 * u.ns.to('s') * u.s  #rms timing residuals in nanoseconds

        N_p = 20  #Number of pulsars

        cadence = 1 / (u.wk.to('yr') * u.yr
                       )  #Avg observation cadence of 1 every week in num/year

        instrument = detector.PTA('SKA', T_obs, N_p, sigma, cadence)
        instrument.T_obs = [T_obs, T_obs_min, T_obs_max]

    elif model == 4:  #Robson,Cornish,and Liu 2018, LISA (https://arxiv.org/pdf/1803.01944.pdf)
        T_obs = 4 * u.yr  #Observing time in years
        T_obs_min = 1 * u.yr
        T_obs_max = 10 * u.yr

        L = 2.5e9 * u.m  #armlength in meters
        L_min = 1.0e7 * u.m
        L_max = 1.0e11 * u.m

        A_acc = 3e-15 * u.m / u.s / u.s  #M/s**2
        A_IMS = 1.5e-11 * u.m
        f_IMS_break = 2. * u.mHz.to('Hz') * u.Hz
        f_acc_break_low = .4 * u.mHz.to('Hz') * u.Hz
        f_acc_break_high = 8. * u.mHz.to('Hz') * u.Hz
        Background = False

        instrument = detector.SpaceBased('LISA_Alt',
                                         T_obs,
                                         L,
                                         A_acc,
                                         f_acc_break_low,
                                         f_acc_break_high,
                                         A_IMS,
                                         f_IMS_break,
                                         Background=Background,
                                         T_type='A')
        instrument.T_obs = [T_obs, T_obs_min, T_obs_max]
        instrument.L = [L, L_min, L_max]

    else:  #L3 proposal
        #Default Params!
        T_obs = 4 * u.yr  #Observing time in years
        T_obs_min = 1 * u.yr
        T_obs_max = 10 * u.yr

        L = 2.5e9 * u.m  #armlength in meters
        L_min = 1.0e7 * u.m
        L_max = 1.0e11 * u.m

        f_acc_break_low = .4 * u.mHz.to('Hz') * u.Hz
        f_acc_break_high = 8. * u.mHz.to('Hz') * u.Hz
        f_IMS_break = 2. * u.mHz.to('Hz') * u.Hz
        A_acc = 3e-15 * u.m / u.s / u.s
        A_IMS = 10e-12 * u.m
        Background = False

        instrument = detector.SpaceBased('LISA_ESA',
                                         T_obs,
                                         L,
                                         A_acc,
                                         f_acc_break_low,
                                         f_acc_break_high,
                                         A_IMS,
                                         f_IMS_break,
                                         Background=Background,
                                         T_type='N')
        instrument.T_obs = [T_obs, T_obs_min, T_obs_max]
        instrument.L = [L, L_min, L_max]

    return instrument