PyCBC 2.8.2__tar.gz → 2.8.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {PyCBC-2.8.2 → PyCBC-2.8.4}/PKG-INFO +2 -2
- {PyCBC-2.8.2 → PyCBC-2.8.4}/PyCBC.egg-info/PKG-INFO +2 -2
- {PyCBC-2.8.2 → PyCBC-2.8.4}/PyCBC.egg-info/SOURCES.txt +3 -1
- {PyCBC-2.8.2 → PyCBC-2.8.4}/PyCBC.egg-info/requires.txt +3 -2
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_hdf5_splitbank +30 -29
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_make_sky_grid +23 -16
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_multi_inspiral +133 -95
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_grb_trig_combiner +1 -1
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_make_offline_grb_workflow +28 -24
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_page_tables +24 -17
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_plot_chisq_veto +1 -1
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_results_workflow +8 -5
- PyCBC-2.8.4/examples/multi_inspiral/check_gw170817_trigs.py +46 -0
- PyCBC-2.8.4/examples/multi_inspiral/clean.sh +1 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/multi_inspiral/faceon_faceaway.sh +2 -2
- PyCBC-2.8.4/examples/multi_inspiral/gw170817_h.sh +62 -0
- PyCBC-2.8.4/examples/multi_inspiral/gw170817_hl.sh +64 -0
- PyCBC-2.8.2/examples/multi_inspiral/run.sh → PyCBC-2.8.4/examples/multi_inspiral/gw170817_hlv.sh +15 -24
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/coherent.py +14 -7
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/eventmgr.py +192 -70
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/resample.py +1 -1
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/pnutils.py +2 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/pygrb_plotting_utils.py +1 -1
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/pygrb_postprocessing_utils.py +1 -1
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/scatter_histograms.py +1 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/version.py +11 -11
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/autochisq.py +66 -51
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/bank_chisq.py +10 -11
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/bank.py +1 -1
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/configuration.py +76 -29
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/grb_utils.py +2 -3
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/pegasus_workflow.py +15 -8
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/segment.py +3 -1
- {PyCBC-2.8.2 → PyCBC-2.8.4}/setup.py +4 -3
- PyCBC-2.8.2/examples/multi_inspiral/check_gw170817_trigs.py +0 -37
- PyCBC-2.8.2/examples/multi_inspiral/clean.sh +0 -1
- {PyCBC-2.8.2 → PyCBC-2.8.4}/LICENSE +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/MANIFEST.in +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/PyCBC.egg-info/dependency_links.txt +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/PyCBC.egg-info/top_level.txt +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/README.md +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_add_statmap +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_apply_rerank +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_average_psd +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_bin_templates +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_bin_trigger_rates_dq +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_calculate_psd +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_coinc_findtrigs +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_coinc_hdfinjfind +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_coinc_mergetrigs +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_coinc_statmap +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_coinc_statmap_inj +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_combine_coincident_events +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_combine_statmap +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_cut_merge_triggers_to_tmpltbank +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_distribute_background_bins +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_dtphase +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_exclude_zerolag +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_fit_sngls_binned +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_fit_sngls_by_template +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_fit_sngls_over_multiparam +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_fit_sngls_over_param +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_fit_sngls_split_binned +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_followup_file +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_foreground_censor +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_get_loudest_params +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_make_bayestar_skymap +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_merge_psds +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_plot_kde_vals +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_prepare_xml_for_gracedb +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_reduce_template_bank +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_rerank_passthrough +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_sngls_findtrigs +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_sngls_pastro +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_sngls_statmap +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_sngls_statmap_inj +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_strip_injections +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_template_kde_calc +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_template_kde_max +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_template_recovery_hist +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_upload_single_event_to_gracedb +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_aligned_bank_cat +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_aligned_stoch_bank +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_bank_verification +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_brute_bank +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_coinc_bank2hdf +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_geom_aligned_2dstack +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_geom_aligned_bank +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_geom_nonspinbank +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_tmpltbank_to_chi_params +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/hwinj/pycbc_generate_hwinj +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/hwinj/pycbc_generate_hwinj_from_xml +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/hwinj/pycbc_insert_frame_hwinj +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/hwinj/pycbc_plot_hwinj +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_create_fits +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_extract_samples +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_model_stats +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_monitor +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_acceptance_rate +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_acf +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_acl +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_dynesty_run +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_dynesty_traceplot +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_gelman_rubin +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_geweke +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_inj_recovery +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_mcmc_history +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_movie +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_posterior +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_pp +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_prior +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_samples +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_skymap +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_thermodynamic_integrand +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_pp_table_summary +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_start_from_samples +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_table_summary +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_validate_test_posterior +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/run_pycbc_inference +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_collate_triggers +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_collated_dq_trigger_rates +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_combine_dq_trigger_rates +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_combine_single_significance_fits +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_plot_combined_single_significance_fits +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_plot_single_significance_fits +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_single_significance_fits +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_supervise_collated_trigger_fits +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_foreground_minifollowup +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_injection_minifollowup +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_page_coincinfo +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_page_injinfo +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_page_snglinfo +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_plot_chigram +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_plot_trigger_timeseries +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_single_template_plot +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_sngl_minifollowup +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_upload_prep_minifollowup +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_banksim_plot_eff_fitting_factor +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_banksim_plot_fitting_factors +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_banksim_table_point_injs +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_create_html_snippet +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_faithsim_plots +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_ifar_catalog +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_mass_area_plot +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_mchirp_plots +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_banktriggerrate +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_coinc_snrchi +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_dq_table +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_fars_vs_stat +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_foreground +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_foundmissed +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_ifar +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_injtable +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_recovery +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_segments +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_segplot +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_segtable +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_sensitivity +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_snrchi +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_snrifar +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_snrratehist +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_template_bin_table +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_versioning +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_vetotable +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_background_coincs +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_bank_bins +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_bank_compression +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_bank_corner +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_dq_flag_likelihood +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_dq_likelihood_vs_time +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_dq_percentiles +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_gate_triggers +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_gating +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_hist +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_multiifo_dtphase +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_psd_file +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_psd_timefreq +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_qscan +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_range +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_range_vs_mtot +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_singles_timefreq +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_singles_vs_params +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_throughput +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_trigrate +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_vt_ratio +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_waveform +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/population/pycbc_multiifo_pastro +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/population/pycbc_population_plots +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/population/pycbc_population_rates +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_banksim +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_banksim_combine_banks +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_banksim_match_combine +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_banksim_skymax +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_compress_bank +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_condition_strain +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_convertinjfiletohdf +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_copy_output_map +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_create_injections +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_data_store +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_faithsim +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_faithsim_collect_results +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_fit_sngl_trigs +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_get_ffinal +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_gwosc_segment_query +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_hdf_splitinj +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_inj_cut +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_inspiral +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_inspiral_skymax +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_live +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_live_nagios_monitor +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_make_banksim +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_make_faithsim +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_make_html_page +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_make_skymap +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_merge_inj_hdf +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_optimal_snr +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_optimize_snr +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_process_sngls +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_randomize_inj_dist_by_optsnr +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_single_template +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_source_probability_offline +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_split_inspinj +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_splitbank +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_stageout_failed_workflow +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_submit_dax +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_upload_xml_to_gracedb +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_grb_inj_finder +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_grb_trig_cluster +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_efficiency +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_exclusion_dist_table +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_grb_info_table +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_minifollowups +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_plot_coh_ifosnr +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_plot_injs_results +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_plot_null_stats +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_plot_skygrid +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_plot_snr_timeseries +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_plot_stats_distribution +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflow_comparisons/offline_search/pycbc_combine_injection_comparisons +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflow_comparisons/offline_search/pycbc_injection_set_comparison +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflow_comparisons/offline_search/pycbc_plot_injections_found_both_workflows +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflow_comparisons/offline_search/pycbc_plot_injections_missed_one_workflow +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflow_comparisons/offline_search/pycbc_plot_vt_ratio_vs_ifar +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_bank_compression_workflow +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_bank_verifier_workflow +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_faithsim_workflow +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_inference_inj_workflow +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_inference_plots_workflow +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_inference_workflow +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_offline_search_workflow +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_psd_estimation_workflow +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_sbank_workflow +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_uberbank_workflow +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/banksim/injection0.xml +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/banksim/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/cal/foton_filter_esd_saturation/pycbc_check_esd_saturation.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/cal/foton_filter_esd_saturation/pycbc_check_pcal_saturation.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/cal/foton_filter_esd_saturation/run_pcal_saturation_example.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/catalog/data.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/catalog/stat.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/catalog/what.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/dataquality/hwinj.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/dataquality/on.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/detector/ant.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/detector/custom.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/detector/delay.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/detector/loc.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/detector/travel.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/distributions/list_distributions.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/distributions/mass_examples.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/distributions/mchirp_q_from_uniform_m1m2_example.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/distributions/sampling_from_config_example.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/distributions/spin_examples.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/distributions/spin_spatial_distr_example.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/faith/injection0.xml +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/faith/pegasus_workflow_create.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/faith/pegasus_workflow_submit.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/faith/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/filter/chisq.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/filter/fir.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/filter/pass.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/filter/snr.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/gw150914/audio.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/gw150914/gw150914_h1_snr.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/gw150914/gw150914_shape.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/analytic-normal2d/make_movie.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/analytic-normal2d/plot.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/analytic-normal2d/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/bbh-injection/make_injection.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/bbh-injection/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/bbh-injection/run_test.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/gw150914/plot.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/gw150914/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/gw150914/run_test.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/hierarchical/make_injections.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/hierarchical/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/hierarchical/run_test.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/lisa_smbhb_inj/injection_smbhb.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/lisa_smbhb_inj/plot.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/lisa_smbhb_inj/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/lisa_smbhb_ldc/advanced_plot.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/lisa_smbhb_ldc/get.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/lisa_smbhb_ldc/plot.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/lisa_smbhb_ldc/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/list_parameters.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/margtime/get.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/margtime/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/margtime/run_inj.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/multisignal/get.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/multisignal/make_injections.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/multisignal/rel.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/multisignal/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/multisignal/single.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/relative/get.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/relative/plot.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/relative/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/relmarg/get.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/relmarg/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/samplers/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/single/get.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/single/plot.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/single/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/single/run_instant.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/single/run_marg.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inspiral/check_GW150914_detection.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inspiral/clean.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inspiral/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/live/check_results.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/live/generate_injections.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/live/make_fit_coeffs.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/live/make_singles_significance_fits.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/live/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/make_skymap/GW150914.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/make_skymap/GW170817.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/make_skymap/simulated_data.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/multi_inspiral/check_faceon_faceaway_trigs.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/noise/frequency.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/noise/timeseries.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/overlap.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/psd/analytic.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/psd/estimate.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/psd/read.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/search/bank.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/search/check_job.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/search/gen.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/search/get.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/search/master.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/search/stats.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/search/submit.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/bank_workflow_test/gen.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/cleanOutput.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/compress_workflow/gen.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/make_cache.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testAligned.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testAligned2.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testAligned3.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testNonspin.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testNonspin2.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testNonspin3.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testStoch.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testStoch2.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testStoch3.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testStoch4.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/add_waveform.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/higher_modes.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/match_waveform.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/plot_detwaveform.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/plot_fd_td.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/plot_freq.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/plot_phase.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/plot_waveform.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/what_waveform.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/data_checker/daily_test.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/data_checker/get_data_example.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/data_checker/run_daily_test.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/data_checker/run_get_data_example.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/dayhopecheck/dayhopecheck.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/dayhopecheck/run_dayhopecheck.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/generic/multilevel_subworkflow_data/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/generic/multilevel_subworkflow_data/simple.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/generic/simple_subworkflow_data/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/generic/simple_subworkflow_data/simple.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/inference/bbh_inj-dynesty/create_inj_workflow.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/inference/gw150914_gw170814-dynesty/create_workflow.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/inference/gw150914_gw170814-emcee_pt/create_workflow.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/inference/small_test/gen.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/pygrb/ER7/run_er7_pygrb_offline.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/pygrb/ER8/run_er8_pygrb_offline.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/pygrb/ER8/run_er8_pygrb_online.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/pygrb/S6/run_s6_pygrb.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/quickstart/run.sh +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/quickstart/simple.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/_version.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/_version_helper.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/bin_utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/boundaries.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/catalog/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/catalog/catalog.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/conversions.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/coordinates/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/coordinates/base.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/coordinates/space.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/cosmology.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/detector/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/detector/ground.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/detector/space.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/angular.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/arbitrary.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/bounded.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/constraints.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/external.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/fixedsamples.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/gaussian.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/joint.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/mass.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/power_law.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/qnm.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/sky_location.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/spins.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/uniform.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/uniform_log.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/dq.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/coinc.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/coinc_rate.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/cuts.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/eventmgr_cython.pyx +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/ranking.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/significance.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/simd_threshold_ccode.cpp +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/simd_threshold_cython.pyx +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/single.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/stat.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/threshold_cpu.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/threshold_cuda.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/threshold_cupy.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/trigger_fits.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/triggers.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/veto.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/backend_cpu.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/backend_cuda.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/backend_cupy.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/backend_mkl.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/backend_support.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/class_api.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/core.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/cuda_pyfft.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/cufft.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/cupyfft.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/fft_callback.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/fftw.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/fftw_pruned.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/fftw_pruned_cython.pyx +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/func_api.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/mkl.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/npfft.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/parser_support.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/autocorrelation.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/fotonfilter.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/matchedfilter.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/matchedfilter_cpu.pyx +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/matchedfilter_cuda.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/matchedfilter_cupy.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/matchedfilter_numpy.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/qtransform.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/simd_correlate.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/simd_correlate_ccode.cpp +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/simd_correlate_cython.pyx +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/zpk.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/frame/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/frame/frame.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/frame/gwosc.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/frame/store.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/burn_in.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/entropy.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/evidence.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/gelman_rubin.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/geweke.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/base_hdf.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/base_mcmc.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/base_multitemper.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/base_nested_sampler.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/base_sampler.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/cpnest.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/dynesty.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/emcee.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/emcee_pt.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/epsie.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/multinest.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/nessai.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/posterior.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/ptemcee.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/snowline.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/txt.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/ultranest.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/jump/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/jump/angular.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/jump/bounded_normal.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/jump/discrete.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/jump/normal.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/analytic.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/base.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/base_data.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/brute_marg.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/data_utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/gated_gaussian_noise.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/gaussian_noise.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/hierarchical.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/marginalized_gaussian_noise.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/relbin.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/relbin_cpu.pyx +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/single_template.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/tools.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/option_utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/base.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/base_cube.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/base_mcmc.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/base_multitemper.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/cpnest.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/dummy.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/dynesty.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/emcee.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/emcee_pt.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/epsie.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/games.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/multinest.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/nessai.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/ptemcee.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/refine.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/snowline.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/ultranest.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inject/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inject/inject.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inject/injfilterrejector.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/io/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/io/gracedb.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/io/hdf.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/io/ligolw.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/io/live.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/io/record.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/libutils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/live/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/live/significance_fits.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/live/snr_optimizer.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/live/supervision.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/mchirp_area.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/neutron_stars/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/neutron_stars/eos_utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/neutron_stars/ns_data/equil_2H.dat +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/neutron_stars/pg_isso_solver.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/noise/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/noise/gaussian.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/noise/reproduceable.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/opt.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/pool.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/fgmc_functions.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/fgmc_laguerre.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/fgmc_plots.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/live_pastro.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/live_pastro_utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/population_models.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/rates_functions.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/scale_injections.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/psd/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/psd/analytical.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/psd/analytical_space.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/psd/estimate.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/psd/read.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/psd/variation.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/rate.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/color.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/dq.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/followup.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/layout.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/metadata.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/mpld3_utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/plot.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/psd.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/render.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/snr.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/css/bootstrap/3.3.2/bootstrap.min.css +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/css/bootstrap.min.css +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/css/fancybox/2.1.5/jquery.fancybox.css +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/css/pycbc/orange.css +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/css/pycbc/red.css +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Light.css +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Light.eot +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Light.html +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Light.ttf +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Light.woff +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Semibold.css +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Semibold.eot +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Semibold.html +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Semibold.ttf +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Semibold.woff +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/bootstrap/3.3.2/bootstrap.min.js +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/bootstrap.min.js +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/fancybox/2.1.5/fancybox-orange.js +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/fancybox/2.1.5/jquery.fancybox.js +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/fancybox/2.1.5/jquery.fancybox.pack.js +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/jquery/1.10.2/jquery-1.10.2.min.js +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/jquery/1.10.2/jquery.mousewheel-3.0.6.pack.js +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/jquery.min.js +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/str_utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/table_utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/files/file_default.html +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/files/file_glitchgram.html +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/files/file_img.html +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/files/file_pre.html +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/files/file_tmplt.html +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/orange.html +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/red.html +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/wells/sitemap.html +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/wells/two_column.html +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/versioning.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/scheme.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/sensitivity.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/strain/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/strain/calibration.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/strain/gate.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/strain/lines.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/strain/recalibrate.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/strain/strain.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/bank_conversions.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/bank_output_utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/brute_force_methods.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/calc_moments.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/coord_utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/lambda_mapping.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/lattice_utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/option_utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/partitioned_bank.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/sky_grid.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/transforms.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/aligned.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/array.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/array_cpu.pyx +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/array_cuda.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/array_cupy.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/config.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/frequencyseries.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/optparse.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/timeseries.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/chisq.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/chisq_cpu.pyx +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/chisq_cuda.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/chisq_cupy.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/sgchisq.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/SpinTaylorF2.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/compress.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/decompress_cpu.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/decompress_cpu_ccode.cpp +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/decompress_cpu_cython.pyx +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/decompress_cuda.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/decompress_cupy.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/generator.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/multiband.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/nltides.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/parameters.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/plugin.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/premerger.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/pycbc_phenomC_tmplt.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/ringdown.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/sinegauss.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/spa_tmplt.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/spa_tmplt_cpu.pyx +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/spa_tmplt_cuda.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/spa_tmplt_cupy.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/supernovae.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/utils_cpu.pyx +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/utils_cuda.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/utils_cupy.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/waveform.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/waveform_modes.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/__init__.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/coincidence.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/configparser_test.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/core.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/datafind.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/dq.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/inference_followups.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/injection.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/jobsetup.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/matched_filter.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/minifollowups.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/pegasus_files/pegasus-properties.conf +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/pegasus_sites.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/plotting.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/psd.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/psdfiles.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/splittable.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/tmpltbank.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/versioning.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pyproject.toml +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/pytest.ini +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/setup.cfg +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/bankvetotest.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/fft_base.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/lalsim.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_array.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_array_lal.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_autochisq.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_calibration.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_chisq.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_coinc_stat.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_conversions.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_coordinates_space.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_correlate.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_cuts.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_detector.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_distributions.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_dq.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_fft_mkl_threaded.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_fft_unthreaded.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_fftw_openmp.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_fftw_pthreads.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_frame.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_frequencyseries.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_infmodel.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_injection.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_io_live.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_live_coinc_compare.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_matchedfilter.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_noise.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_pnutils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_psd.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_resample.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_schemes.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_significance_module.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_skymax.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_spatmplt.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_strain.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_threshold.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_timeseries.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_tmpltbank.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_transforms.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_waveform.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_waveform_utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/test/utils.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/benchmarking/absolute_times.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/static/hooks/hook-pycbc.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/static/runtime-scipy.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/static/runtime-tkinter.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/timing/arr_perf.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/timing/banksim/banksim.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/timing/correlate_perf.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/timing/fft_perf.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/timing/match_perf.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/timing/wav_perf.py +0 -0
- {PyCBC-2.8.2 → PyCBC-2.8.4}/tox.ini +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PyCBC
|
|
3
|
-
Version: 2.8.
|
|
3
|
+
Version: 2.8.4
|
|
4
4
|
Summary: Core library to analyze gravitational-wave data, find signals, and study their parameters.
|
|
5
5
|
Home-page: http://pycbc.org/
|
|
6
|
-
Download-URL: https://github.com/gwastro/pycbc/tarball/v2.8.
|
|
6
|
+
Download-URL: https://github.com/gwastro/pycbc/tarball/v2.8.4
|
|
7
7
|
Author: The PyCBC team
|
|
8
8
|
Author-email: alex.nitz@gmail.org
|
|
9
9
|
Keywords: ligo,physics,gravity,signal processing,gravitational waves
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PyCBC
|
|
3
|
-
Version: 2.8.
|
|
3
|
+
Version: 2.8.4
|
|
4
4
|
Summary: Core library to analyze gravitational-wave data, find signals, and study their parameters.
|
|
5
5
|
Home-page: http://pycbc.org/
|
|
6
|
-
Download-URL: https://github.com/gwastro/pycbc/tarball/v2.8.
|
|
6
|
+
Download-URL: https://github.com/gwastro/pycbc/tarball/v2.8.4
|
|
7
7
|
Author: The PyCBC team
|
|
8
8
|
Author-email: alex.nitz@gmail.org
|
|
9
9
|
Keywords: ligo,physics,gravity,signal processing,gravitational waves
|
|
@@ -318,7 +318,9 @@ examples/multi_inspiral/check_faceon_faceaway_trigs.py
|
|
|
318
318
|
examples/multi_inspiral/check_gw170817_trigs.py
|
|
319
319
|
examples/multi_inspiral/clean.sh
|
|
320
320
|
examples/multi_inspiral/faceon_faceaway.sh
|
|
321
|
-
examples/multi_inspiral/
|
|
321
|
+
examples/multi_inspiral/gw170817_h.sh
|
|
322
|
+
examples/multi_inspiral/gw170817_hl.sh
|
|
323
|
+
examples/multi_inspiral/gw170817_hlv.sh
|
|
322
324
|
examples/noise/frequency.py
|
|
323
325
|
examples/noise/timeseries.py
|
|
324
326
|
examples/psd/analytic.py
|
|
@@ -13,10 +13,11 @@ beautifulsoup4>=4.6.0
|
|
|
13
13
|
tqdm
|
|
14
14
|
setuptools
|
|
15
15
|
gwdatafind
|
|
16
|
-
pegasus-wms.api
|
|
16
|
+
pegasus-wms.api==5.0.9
|
|
17
|
+
pegasus-wms.common==5.0.9
|
|
17
18
|
python-ligo-lw>=1.7.0
|
|
18
19
|
igwn-segments
|
|
19
|
-
lalsuite
|
|
20
|
+
lalsuite==7.25.1
|
|
20
21
|
lscsoft-glue>=1.59.3
|
|
21
22
|
pykerr
|
|
22
23
|
|
|
@@ -17,8 +17,9 @@
|
|
|
17
17
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
18
18
|
|
|
19
19
|
"""
|
|
20
|
-
The code reads in a compressed template bank and splits it up
|
|
21
|
-
smaller banks
|
|
20
|
+
The code reads in a (optionally compressed) template bank and splits it up
|
|
21
|
+
into smaller banks. Either the number of banks or the (approximate) number
|
|
22
|
+
of templates per bank can be specified.
|
|
22
23
|
"""
|
|
23
24
|
|
|
24
25
|
import argparse
|
|
@@ -33,7 +34,7 @@ __author__ = "Soumi De <soumi.de@ligo.org>"
|
|
|
33
34
|
|
|
34
35
|
parser = argparse.ArgumentParser(description=__doc__[1:])
|
|
35
36
|
pycbc.add_common_pycbc_options(parser)
|
|
36
|
-
parser.add_argument("--bank-file", type=str,
|
|
37
|
+
parser.add_argument("--bank-file", type=str, required=True,
|
|
37
38
|
help="Bank hdf file to load.")
|
|
38
39
|
outbanks = parser.add_mutually_exclusive_group(required=True)
|
|
39
40
|
outbanks.add_argument("--templates-per-bank", type=int,
|
|
@@ -42,11 +43,11 @@ outbanks.add_argument("--templates-per-bank", type=int,
|
|
|
42
43
|
outbanks.add_argument("--number-of-banks", type=int,
|
|
43
44
|
help="Number of output sub-banks. Either specify this "
|
|
44
45
|
"or --templates-per-bank, not both.")
|
|
45
|
-
outbanks.add_argument("--output-filenames", nargs='*',
|
|
46
|
+
outbanks.add_argument("--output-filenames", nargs='*',
|
|
46
47
|
action="store",
|
|
47
48
|
help="Directly specify the names of the output files. "
|
|
48
49
|
"The bank will be split equally between files.")
|
|
49
|
-
parser.add_argument("--output-prefix",
|
|
50
|
+
parser.add_argument("--output-prefix",
|
|
50
51
|
help="Prefix to add to the output template bank names, "
|
|
51
52
|
"for example 'H1L1-BANK'. Output file names would then be "
|
|
52
53
|
"'H1L1-BANK{x}.hdf' where {x} is 1,2,...")
|
|
@@ -66,14 +67,14 @@ args = parser.parse_args()
|
|
|
66
67
|
pycbc.init_logging(args.verbose)
|
|
67
68
|
|
|
68
69
|
# input checks
|
|
69
|
-
if args.mchirp_sort and (args.random_seed is not None):
|
|
70
|
-
|
|
70
|
+
if args.mchirp_sort and (args.random_sort or args.random_seed is not None):
|
|
71
|
+
parser.error("Can't use random sort or random seed if using mchirp sort")
|
|
71
72
|
|
|
72
73
|
if args.output_filenames is None and args.output_prefix is None:
|
|
73
|
-
|
|
74
|
+
parser.error("Must specify either output filenames or a prefix!")
|
|
74
75
|
|
|
75
76
|
if args.output_filenames and args.output_prefix:
|
|
76
|
-
|
|
77
|
+
parser.error("Can't specify both output filenames and a prefix")
|
|
77
78
|
|
|
78
79
|
logging.info("Loading bank")
|
|
79
80
|
|
|
@@ -81,6 +82,8 @@ tmplt_bank = bank.TemplateBank(args.bank_file)
|
|
|
81
82
|
|
|
82
83
|
templates = tmplt_bank.table
|
|
83
84
|
|
|
85
|
+
# Apply any sorting if required.
|
|
86
|
+
|
|
84
87
|
if args.random_sort:
|
|
85
88
|
if args.random_seed is not None:
|
|
86
89
|
random.seed(args.random_seed)
|
|
@@ -94,36 +97,32 @@ if args.mchirp_sort:
|
|
|
94
97
|
templates = templates[mcsort]
|
|
95
98
|
tmplt_bank.table = templates
|
|
96
99
|
|
|
97
|
-
#
|
|
100
|
+
# Decide how many output banks we are going to have.
|
|
98
101
|
|
|
99
|
-
# If an array of filenames
|
|
100
102
|
if args.output_filenames:
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
# If the number of output banks is taken as input calculate the number
|
|
104
|
-
# of templates to be stored per bank
|
|
105
|
-
if args.number_of_banks:
|
|
103
|
+
num_files = len(args.output_filenames)
|
|
104
|
+
elif args.number_of_banks:
|
|
106
105
|
num_files = args.number_of_banks
|
|
107
|
-
num_per_file = int(templates[:].size/num_files)
|
|
108
|
-
|
|
109
|
-
# If the number of templates per bank is taken as input calculate the
|
|
110
|
-
# number of output banks
|
|
111
106
|
elif args.templates_per_bank:
|
|
112
|
-
|
|
113
|
-
|
|
107
|
+
num_files = round(templates[:].size / args.templates_per_bank)
|
|
108
|
+
|
|
109
|
+
# Calculate the number of templates to be stored per bank. For an even
|
|
110
|
+
# distribution, this must be a float, converted to int later in the loop.
|
|
111
|
+
|
|
112
|
+
num_per_file = templates[:].size / num_files
|
|
113
|
+
|
|
114
|
+
if num_per_file < 1:
|
|
115
|
+
raise ValueError("The user choices imply less than one template per bank")
|
|
114
116
|
|
|
115
117
|
# Generate sub-banks
|
|
118
|
+
|
|
116
119
|
logging.info("Generating the output sub-banks")
|
|
120
|
+
start_idx = 0
|
|
117
121
|
for ii in range(num_files):
|
|
118
|
-
|
|
119
|
-
# The output banks are assigned a fixed length equal to the number
|
|
120
|
-
# of templates per bank requested by the user or calculated earlier
|
|
121
|
-
# in the code except for the last bank in which the remaining
|
|
122
|
-
# templates, if any, are put.
|
|
123
|
-
if ( ii == (num_files-1)):
|
|
122
|
+
if ii == (num_files - 1):
|
|
124
123
|
end_idx = templates[:].size
|
|
125
124
|
else:
|
|
126
|
-
end_idx = (ii + 1) * num_per_file
|
|
125
|
+
end_idx = int((ii + 1) * num_per_file)
|
|
127
126
|
|
|
128
127
|
# Assign a name to the h5py output file to store the ii'th smaller bank
|
|
129
128
|
if args.output_filenames:
|
|
@@ -142,4 +141,6 @@ for ii in range(num_files):
|
|
|
142
141
|
force=args.force)
|
|
143
142
|
output.close()
|
|
144
143
|
|
|
144
|
+
start_idx = end_idx
|
|
145
|
+
|
|
145
146
|
logging.info("finished")
|
|
@@ -8,7 +8,7 @@ gravitational wave triggers and calculate the coherent SNRs and related
|
|
|
8
8
|
statistics.
|
|
9
9
|
|
|
10
10
|
The grid is constructed following the method described in Section V of
|
|
11
|
-
https://arxiv.org/abs/1410.6042.
|
|
11
|
+
Williamson et al 2014, https://arxiv.org/abs/1410.6042.
|
|
12
12
|
|
|
13
13
|
Please refer to help(pycbc.types.angle_as_radians) for the recommended
|
|
14
14
|
configuration file syntax for angle arguments.
|
|
@@ -84,24 +84,31 @@ def make_multi_det_grid(args):
|
|
|
84
84
|
]
|
|
85
85
|
angular_spacing = min(ang_spacings)
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
# The first point is always exactly at the North pole
|
|
88
|
+
sky_points = [
|
|
89
|
+
[0, np.pi / 2]
|
|
90
|
+
]
|
|
88
91
|
|
|
92
|
+
# Generate the sky grid centered at the North pole
|
|
89
93
|
number_of_rings = int(args.sky_error / angular_spacing)
|
|
94
|
+
for i in range(1, number_of_rings + 1):
|
|
95
|
+
# Note: Williamson et al 2014 states that the number of points in the
|
|
96
|
+
# i-th ring is 2πi / x, with x the angular spacing. This is not correct.
|
|
97
|
+
# In the approximation where the error radius is tiny (i.e. the initial
|
|
98
|
+
# grid stays close to the North pole) the correct number is 2πi.
|
|
99
|
+
# However, here we implement the general case, correct over the whole
|
|
100
|
+
# extent of the polar angle, for which the number is instead
|
|
101
|
+
# 2π cos(π/2 - ix) / x.
|
|
102
|
+
polar_angle = np.pi / 2 - i * angular_spacing
|
|
103
|
+
number_of_points = round(
|
|
104
|
+
2 * np.pi * np.cos(polar_angle) / angular_spacing
|
|
105
|
+
)
|
|
106
|
+
sky_points += [
|
|
107
|
+
[2 * np.pi * j / number_of_points, polar_angle]
|
|
108
|
+
for j in range(number_of_points)
|
|
109
|
+
]
|
|
90
110
|
|
|
91
|
-
|
|
92
|
-
for i in range(number_of_rings + 1):
|
|
93
|
-
if i == 0:
|
|
94
|
-
sky_points[0][0] = 0
|
|
95
|
-
sky_points[0][1] = np.pi / 2
|
|
96
|
-
else:
|
|
97
|
-
number_of_points = int(2 * np.pi * i)
|
|
98
|
-
for j in range(number_of_points):
|
|
99
|
-
sky_points = np.row_stack(
|
|
100
|
-
(
|
|
101
|
-
sky_points,
|
|
102
|
-
np.array([j / i, np.pi / 2 - i * angular_spacing]),
|
|
103
|
-
)
|
|
104
|
-
)
|
|
111
|
+
sky_points = np.array(sky_points)
|
|
105
112
|
|
|
106
113
|
# Convert spherical coordinates to cartesian coordinates
|
|
107
114
|
cart = spher_to_cart(sky_points)
|
|
@@ -50,28 +50,40 @@ from pycbc.vetoes import sgchisq
|
|
|
50
50
|
from pycbc.tmpltbank.sky_grid import SkyGrid
|
|
51
51
|
|
|
52
52
|
|
|
53
|
-
def slide_limiter(
|
|
53
|
+
def slide_limiter(n_ifos, slide_shift, segment_length):
|
|
54
54
|
'''
|
|
55
55
|
This function computes the number of shortslides used by the coherent
|
|
56
|
-
matched filter statistic to obtain as
|
|
56
|
+
matched filter statistic to obtain as many background triggers as
|
|
57
57
|
possible.
|
|
58
58
|
|
|
59
59
|
It bounds the number of slides to avoid counting triggers more than once.
|
|
60
60
|
If the data is not time slid, there is a single slide for the zero-lag.
|
|
61
|
+
|
|
62
|
+
Parameters
|
|
63
|
+
----------
|
|
64
|
+
n_ifos: int
|
|
65
|
+
The number of detectors used in the analysis
|
|
66
|
+
slide_shift: float
|
|
67
|
+
The shift of each timeslide in seconds
|
|
68
|
+
segment_length: float
|
|
69
|
+
The duration of segments in the analysis in seconds
|
|
70
|
+
|
|
71
|
+
Returns
|
|
72
|
+
-------
|
|
73
|
+
num_slides: int
|
|
74
|
+
The number of independent timeslides
|
|
61
75
|
'''
|
|
62
|
-
low, upp = 1,
|
|
63
|
-
n_ifos
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
else:
|
|
74
|
-
num_slides = 1
|
|
76
|
+
low, upp = 1, segment_length
|
|
77
|
+
if n_ifos == 1:
|
|
78
|
+
return 1
|
|
79
|
+
stride_dur = segment_length/2
|
|
80
|
+
num_slides = 1 + int(stride_dur /
|
|
81
|
+
(slide_shift*(n_ifos-1)))
|
|
82
|
+
assert (num_slides >= low) and (num_slides <= upp), \
|
|
83
|
+
"the combination (slideshift, segment_dur)"\
|
|
84
|
+
f" = ({slide_shift:.2f},{stride_dur*2:.2f})"\
|
|
85
|
+
f" goes over the allowed upper bound {upp}"
|
|
86
|
+
|
|
75
87
|
return num_slides
|
|
76
88
|
|
|
77
89
|
|
|
@@ -336,18 +348,24 @@ inject.insert_injfilterrejector_option_group_multi_ifo(parser)
|
|
|
336
348
|
sgchisq.SingleDetSGChisq.insert_option_group(parser)
|
|
337
349
|
args = parser.parse_args()
|
|
338
350
|
init_logging(args.verbose)
|
|
339
|
-
# Setting the number of
|
|
340
|
-
|
|
351
|
+
# Setting the number of shortslides
|
|
352
|
+
nifo = len(args.instruments)
|
|
353
|
+
num_slides = 1
|
|
354
|
+
if args.do_shortslides:
|
|
355
|
+
num_slides = slide_limiter(
|
|
356
|
+
nifo,
|
|
357
|
+
args.slide_shift,
|
|
358
|
+
args.segment_length[args.instruments[0]]
|
|
359
|
+
)
|
|
341
360
|
# Arrange detectors alphabetically so they are always called in the same order
|
|
342
361
|
args.instruments.sort()
|
|
343
362
|
# Check that the number of IFOs requested to have single SNR above threshold
|
|
344
363
|
# is compatible with the number of detectors in the analysis
|
|
345
|
-
if
|
|
346
|
-
len(args.instruments) < args.nifo_sngl_snr_threshold:
|
|
364
|
+
if nifo > 1 and nifo < args.nifo_sngl_snr_threshold:
|
|
347
365
|
parser.error("--nifo-sngl-snr-threshold "
|
|
348
366
|
f"({args.nifo_sngl_snr_threshold}) cannot exceed the "
|
|
349
367
|
"number of detectors in the analysis "
|
|
350
|
-
f"({
|
|
368
|
+
f"({nifo}) because this would "
|
|
351
369
|
"never yield any trigger.")
|
|
352
370
|
# Use class verification methods to check whether input CLI options provided
|
|
353
371
|
# by parser to pycbc.strain, pycbc.strain.StrainSegments, pycbc.psd,
|
|
@@ -382,7 +400,6 @@ with ctx:
|
|
|
382
400
|
fft.from_cli(args)
|
|
383
401
|
# Set some convenience variables: number of IFOs, lower frequency,
|
|
384
402
|
# GRB time, sky positions to search (either a grid or single sky point)
|
|
385
|
-
nifo = len(args.instruments[:])
|
|
386
403
|
flow = args.low_frequency_cutoff
|
|
387
404
|
t_gps = args.trigger_time
|
|
388
405
|
sky_positions = SkyGrid.from_cli(parser, args)
|
|
@@ -545,7 +562,7 @@ with ctx:
|
|
|
545
562
|
'bank_chisq': None,
|
|
546
563
|
'bank_chisq_dof': None,
|
|
547
564
|
'auto_chisq': None,
|
|
548
|
-
'auto_chisq_dof':
|
|
565
|
+
'auto_chisq_dof': None,
|
|
549
566
|
'slide_id': None,
|
|
550
567
|
}
|
|
551
568
|
ifo_names = sorted(ifo_out_vals.keys())
|
|
@@ -571,7 +588,7 @@ with ctx:
|
|
|
571
588
|
'reweighted_snr': None,
|
|
572
589
|
'slide_id': None,
|
|
573
590
|
}
|
|
574
|
-
network_names =
|
|
591
|
+
network_names = network_out_vals.keys()
|
|
575
592
|
event_mgr = EventManagerCoherent(
|
|
576
593
|
args,
|
|
577
594
|
args.instruments,
|
|
@@ -624,7 +641,7 @@ with ctx:
|
|
|
624
641
|
if not inj_filter_rejector[ifo].template_segment_checker(
|
|
625
642
|
bank, t_num, stilde[ifo]
|
|
626
643
|
):
|
|
627
|
-
logging.
|
|
644
|
+
logging.debug(
|
|
628
645
|
"Skipping segment %d/%d with template %d/%d as no "
|
|
629
646
|
"detectable injection is present",
|
|
630
647
|
s_num + 1,
|
|
@@ -648,7 +665,11 @@ with ctx:
|
|
|
648
665
|
if not analyse_segment:
|
|
649
666
|
continue
|
|
650
667
|
logging.info(
|
|
651
|
-
"Analyzing
|
|
668
|
+
"Analyzing template %d/%d, segment %d/%d",
|
|
669
|
+
t_num + 1,
|
|
670
|
+
n_bank,
|
|
671
|
+
s_num + 1,
|
|
672
|
+
len(segments[ifo])
|
|
652
673
|
)
|
|
653
674
|
# The following dicts with IFOs as keys are created to store
|
|
654
675
|
# copies of the matched filtering results computed below.
|
|
@@ -663,8 +684,12 @@ with ctx:
|
|
|
663
684
|
idx = dict.fromkeys(args.instruments)
|
|
664
685
|
# - The list of normalized SNR values at the trigger locations
|
|
665
686
|
snr = dict.fromkeys(args.instruments)
|
|
687
|
+
# - Cache for power chi^2 and corresponding DoF for each time sample.
|
|
688
|
+
# Typically only a tiny fraction will be populated.
|
|
689
|
+
power_chisq_arrays = dict.fromkeys(args.instruments)
|
|
690
|
+
power_chisq_dof_arrays = dict.fromkeys(args.instruments)
|
|
666
691
|
for ifo in args.instruments:
|
|
667
|
-
logging.
|
|
692
|
+
logging.debug(
|
|
668
693
|
"Filtering template %d/%d, ifo %s", t_num + 1, n_bank, ifo
|
|
669
694
|
)
|
|
670
695
|
# The following lines unpack and store copies of the matched
|
|
@@ -688,6 +713,14 @@ with ctx:
|
|
|
688
713
|
# or negative
|
|
689
714
|
idx[ifo] = ind.astype(np.int32)
|
|
690
715
|
snr[ifo] = snrv * norm
|
|
716
|
+
# Initialize the cache for power chi^2
|
|
717
|
+
power_chisq_arrays[ifo] = np.full(
|
|
718
|
+
len(snr_dict[ifo]), np.nan, dtype=np.float32
|
|
719
|
+
)
|
|
720
|
+
power_chisq_dof_arrays[ifo] = np.zeros(
|
|
721
|
+
len(snr_dict[ifo]), dtype=np.int32
|
|
722
|
+
)
|
|
723
|
+
del snr_ts, norm, corr, ind, snrv
|
|
691
724
|
|
|
692
725
|
# Move onto next segment if there are no triggers.
|
|
693
726
|
n_trigs = [len(snr[ifo]) for ifo in args.instruments]
|
|
@@ -696,10 +729,10 @@ with ctx:
|
|
|
696
729
|
|
|
697
730
|
# Loop over (short) time-slides, starting with the zero-lag
|
|
698
731
|
for slide in range(num_slides):
|
|
699
|
-
logging.
|
|
732
|
+
logging.debug("Analyzing slide %d/%d", slide, num_slides)
|
|
700
733
|
# Loop over sky positions
|
|
701
734
|
for position_index in range(len(sky_positions)):
|
|
702
|
-
logging.
|
|
735
|
+
logging.debug(
|
|
703
736
|
"Analyzing sky position %d/%d",
|
|
704
737
|
position_index + 1,
|
|
705
738
|
len(sky_positions),
|
|
@@ -710,7 +743,8 @@ with ctx:
|
|
|
710
743
|
# Indices are kept only if they do not get time shifted
|
|
711
744
|
# out of the time we are looking at, i.e., require
|
|
712
745
|
# idx[ifo] - time_delay_idx[slide][position_index][ifo]
|
|
713
|
-
#
|
|
746
|
+
# (which applies the necessary time shift by operating on
|
|
747
|
+
# indices) to be between 0 and len(snr_dict[ifo]).
|
|
714
748
|
idx_dict = {
|
|
715
749
|
ifo: idx[ifo][
|
|
716
750
|
np.logical_and(
|
|
@@ -723,28 +757,27 @@ with ctx:
|
|
|
723
757
|
]
|
|
724
758
|
for ifo in args.instruments
|
|
725
759
|
}
|
|
726
|
-
# Find
|
|
727
|
-
#
|
|
728
|
-
#
|
|
729
|
-
#
|
|
730
|
-
#
|
|
731
|
-
#
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
)
|
|
744
|
-
logging.info(
|
|
760
|
+
# Find indexes (related to geocenter time) of triggers that
|
|
761
|
+
# are coincident (in geocenter time) in multiple IFOs.
|
|
762
|
+
# This is done by calling the method that finds coincidences
|
|
763
|
+
# and applies the single IFO SNR cut asking for triggers to
|
|
764
|
+
# have SNR >= args.sngl_snr_threshold in at least
|
|
765
|
+
# args.nifo_sngl_snr_threshold IFOs; recall that idx_dict
|
|
766
|
+
# tracks (at the geocent) triggers above threshold in
|
|
767
|
+
# individual detectors. If only one IFO is available, then
|
|
768
|
+
# the method returns trigger indices for that IFO. Given
|
|
769
|
+
# that we are looping over timeslides and sky positions,
|
|
770
|
+
# the appropriate dictionary of time delays wrt the
|
|
771
|
+
# geocenter must be passed to operate at the geocenter.
|
|
772
|
+
coinc_idx = coh.get_coinc_indexes(
|
|
773
|
+
idx_dict, time_delay_idx[slide][position_index],
|
|
774
|
+
args.nifo_sngl_snr_threshold
|
|
775
|
+
)
|
|
776
|
+
logging.debug(
|
|
745
777
|
"Found %d coincident triggers", len(coinc_idx)
|
|
746
778
|
)
|
|
747
|
-
# Time delay is applied to indices
|
|
779
|
+
# Time delay is applied to indices at the geocenter to have
|
|
780
|
+
# them at the IFOs (hence the + which undoes the delay).
|
|
748
781
|
coinc_idx_det_frame = {
|
|
749
782
|
ifo: (
|
|
750
783
|
coinc_idx
|
|
@@ -753,9 +786,16 @@ with ctx:
|
|
|
753
786
|
% len(snr_dict[ifo])
|
|
754
787
|
for ifo in args.instruments
|
|
755
788
|
}
|
|
756
|
-
# Calculate the
|
|
757
|
-
#
|
|
758
|
-
|
|
789
|
+
# Calculate the quadrature sum of individual detector SNRs,
|
|
790
|
+
# regardless of how many IFOs are available.
|
|
791
|
+
# This accounts for a coherent SNR component and an
|
|
792
|
+
# incoherent one. It is referred to as coincident SNR
|
|
793
|
+
# throughout the code, even in the single IFO case.
|
|
794
|
+
# The calculation is performed only if triggers were
|
|
795
|
+
# gathered so far. Once again, the appropriate dictionary
|
|
796
|
+
# of time delays wrt the geocenter must be passed to
|
|
797
|
+
# operate at the geocenter.
|
|
798
|
+
if len(coinc_idx) != 0:
|
|
759
799
|
# Find coinc SNR at trigger times and apply coinc SNR
|
|
760
800
|
# threshold (which depopulates coinc_idx accordingly)
|
|
761
801
|
(
|
|
@@ -768,32 +808,24 @@ with ctx:
|
|
|
768
808
|
args.coinc_threshold,
|
|
769
809
|
time_delay_idx[slide][position_index],
|
|
770
810
|
)
|
|
771
|
-
logging.
|
|
811
|
+
logging.debug(
|
|
772
812
|
"%d triggers above coincident SNR threshold",
|
|
773
813
|
len(coinc_idx),
|
|
774
814
|
)
|
|
775
815
|
if len(coinc_idx) != 0:
|
|
776
|
-
logging.
|
|
816
|
+
logging.debug(
|
|
777
817
|
"With max coincident SNR = %.2f",
|
|
778
818
|
max(rho_coinc),
|
|
779
819
|
)
|
|
780
|
-
# If there is only one IFO, just take its triggers
|
|
781
|
-
# and their SNRs
|
|
782
|
-
elif len(coinc_idx) != 0 and nifo == 1:
|
|
783
|
-
coinc_triggers = {
|
|
784
|
-
args.instruments[0]: snr_dict[args.instruments[0]][
|
|
785
|
-
coinc_idx_det_frame[args.instruments[0]]
|
|
786
|
-
]
|
|
787
|
-
}
|
|
788
820
|
else:
|
|
789
821
|
coinc_triggers = {}
|
|
790
|
-
logging.
|
|
822
|
+
logging.debug("No coincident triggers were found")
|
|
791
823
|
# If there are triggers above coinc threshold and more
|
|
792
|
-
# than
|
|
824
|
+
# than 1 IFO, then calculate the coherent statistics for
|
|
793
825
|
# them and apply the cut on coherent SNR (with threshold
|
|
794
826
|
# equal to the coinc SNR one)
|
|
795
|
-
if len(coinc_idx) != 0 and nifo >
|
|
796
|
-
logging.
|
|
827
|
+
if len(coinc_idx) != 0 and nifo > 1:
|
|
828
|
+
logging.debug("Calculating their coherent statistics")
|
|
797
829
|
# Plus and cross antenna pattern dictionaries
|
|
798
830
|
fp = {
|
|
799
831
|
ifo: antenna_pattern[ifo][position_index][0]
|
|
@@ -893,12 +925,12 @@ with ctx:
|
|
|
893
925
|
project,
|
|
894
926
|
rho_coinc,
|
|
895
927
|
)
|
|
896
|
-
logging.
|
|
928
|
+
logging.debug(
|
|
897
929
|
"%d triggers above coherent SNR threshold",
|
|
898
930
|
len(rho_coh),
|
|
899
931
|
)
|
|
900
932
|
if len(coinc_idx) != 0:
|
|
901
|
-
logging.
|
|
933
|
+
logging.debug(
|
|
902
934
|
"With max coherent SNR = %.2f", max(rho_coh)
|
|
903
935
|
)
|
|
904
936
|
# Calculate the null SNR and apply the null SNR cut
|
|
@@ -918,11 +950,11 @@ with ctx:
|
|
|
918
950
|
snrv=coinc_triggers,
|
|
919
951
|
index=coinc_idx,
|
|
920
952
|
)
|
|
921
|
-
logging.
|
|
953
|
+
logging.debug(
|
|
922
954
|
"%d triggers above null threshold", len(null)
|
|
923
955
|
)
|
|
924
956
|
if len(coinc_idx) != 0:
|
|
925
|
-
logging.
|
|
957
|
+
logging.debug(
|
|
926
958
|
"With max null SNR = %.2f", max(null)
|
|
927
959
|
)
|
|
928
960
|
# Now calculate the individual detector chi2 values
|
|
@@ -932,7 +964,9 @@ with ctx:
|
|
|
932
964
|
# (surviving) triggers in the detector frame.
|
|
933
965
|
if len(coinc_idx) != 0:
|
|
934
966
|
# Updated coinc_idx_det_frame to account for the
|
|
935
|
-
# effect of the cuts applied
|
|
967
|
+
# effect of the cuts applied so far (operate on the
|
|
968
|
+
# time related indices with a +time_delay_idx to
|
|
969
|
+
# transform geocenter time to IFO time).
|
|
936
970
|
coinc_idx_det_frame = {
|
|
937
971
|
ifo: (
|
|
938
972
|
coinc_idx
|
|
@@ -953,21 +987,34 @@ with ctx:
|
|
|
953
987
|
chisq = {}
|
|
954
988
|
chisq_dof = {}
|
|
955
989
|
for ifo in args.instruments:
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
coinc_idx_det_frame[ifo]
|
|
962
|
-
+ stilde[ifo].analyze.start,
|
|
963
|
-
template,
|
|
990
|
+
# Figure out which new indices we need to calculate
|
|
991
|
+
# the chi^2 for
|
|
992
|
+
needed_idx = coinc_idx_det_frame[ifo]
|
|
993
|
+
unavailable_mask = np.isnan(
|
|
994
|
+
power_chisq_arrays[ifo][needed_idx]
|
|
964
995
|
)
|
|
996
|
+
if unavailable_mask.any():
|
|
997
|
+
new_needed_idx = needed_idx[unavailable_mask]
|
|
998
|
+
new_chisq, new_chisq_dof = power_chisq.values(
|
|
999
|
+
corr_dict[ifo],
|
|
1000
|
+
snr_dict[ifo][new_needed_idx] / norm_dict[ifo],
|
|
1001
|
+
norm_dict[ifo],
|
|
1002
|
+
stilde[ifo].psd,
|
|
1003
|
+
new_needed_idx + stilde[ifo].analyze.start,
|
|
1004
|
+
template,
|
|
1005
|
+
)
|
|
1006
|
+
power_chisq_arrays[ifo][new_needed_idx] = new_chisq
|
|
1007
|
+
power_chisq_dof_arrays[ifo][new_needed_idx] = new_chisq_dof
|
|
1008
|
+
del new_chisq, new_chisq_dof, new_needed_idx
|
|
1009
|
+
chisq[ifo] = power_chisq_arrays[ifo][needed_idx]
|
|
1010
|
+
chisq_dof[ifo] = power_chisq_dof_arrays[ifo][needed_idx]
|
|
1011
|
+
del needed_idx, unavailable_mask
|
|
965
1012
|
# Calculate network chisq value
|
|
966
1013
|
network_chisq_dict = coh.network_chisq(
|
|
967
1014
|
chisq, chisq_dof, coherent_ifo_trigs
|
|
968
1015
|
)
|
|
969
1016
|
# Calculate chisq reweighted SNR
|
|
970
|
-
if nifo >
|
|
1017
|
+
if nifo > 1:
|
|
971
1018
|
reweighted_snr = ranking.newsnr(
|
|
972
1019
|
rho_coh,
|
|
973
1020
|
network_chisq_dict,
|
|
@@ -983,13 +1030,6 @@ with ctx:
|
|
|
983
1030
|
null_grad=args.null_grad,
|
|
984
1031
|
null_step=args.null_step,
|
|
985
1032
|
)
|
|
986
|
-
elif nifo == 2:
|
|
987
|
-
reweighted_snr = ranking.newsnr(
|
|
988
|
-
rho_coinc,
|
|
989
|
-
network_chisq_dict,
|
|
990
|
-
q=args.chisq_index,
|
|
991
|
-
n=args.chisq_nhigh,
|
|
992
|
-
)
|
|
993
1033
|
else:
|
|
994
1034
|
rho_sngl = abs(
|
|
995
1035
|
snr_dict[args.instruments[0]][
|
|
@@ -1015,8 +1055,8 @@ with ctx:
|
|
|
1015
1055
|
template,
|
|
1016
1056
|
stilde[ifo].psd,
|
|
1017
1057
|
stilde[ifo],
|
|
1018
|
-
coherent_ifo_trigs[ifo]
|
|
1019
|
-
|
|
1058
|
+
coherent_ifo_trigs[ifo],
|
|
1059
|
+
1, # coherent_ifo_trigs already normalized
|
|
1020
1060
|
coinc_idx_det_frame[ifo]
|
|
1021
1061
|
+ stilde[ifo].analyze.start,
|
|
1022
1062
|
)
|
|
@@ -1024,11 +1064,11 @@ with ctx:
|
|
|
1024
1064
|
ifo_out_vals['auto_chisq'],
|
|
1025
1065
|
ifo_out_vals['auto_chisq_dof'],
|
|
1026
1066
|
) = autochisq.values(
|
|
1027
|
-
snr_dict[ifo]
|
|
1067
|
+
snr_dict[ifo],
|
|
1028
1068
|
coinc_idx_det_frame[ifo],
|
|
1029
1069
|
template,
|
|
1030
1070
|
stilde[ifo].psd,
|
|
1031
|
-
|
|
1071
|
+
1, # snr_dict already normalized
|
|
1032
1072
|
stilde=stilde[ifo],
|
|
1033
1073
|
low_frequency_cutoff=flow,
|
|
1034
1074
|
)
|
|
@@ -1050,11 +1090,9 @@ with ctx:
|
|
|
1050
1090
|
ifo_names,
|
|
1051
1091
|
[ifo_out_vals[n] for n in ifo_names],
|
|
1052
1092
|
)
|
|
1053
|
-
if nifo >
|
|
1093
|
+
if nifo > 1:
|
|
1054
1094
|
network_out_vals['coherent_snr'] = rho_coh
|
|
1055
1095
|
network_out_vals['null_snr'] = null
|
|
1056
|
-
elif nifo == 2:
|
|
1057
|
-
network_out_vals['coherent_snr'] = rho_coinc
|
|
1058
1096
|
else:
|
|
1059
1097
|
network_out_vals['coherent_snr'] = abs(
|
|
1060
1098
|
snr_dict[args.instruments[0]][
|
|
@@ -1089,7 +1127,7 @@ with ctx:
|
|
|
1089
1127
|
cluster_window = int(template.chirp_length * sample_rate)
|
|
1090
1128
|
# Cluster template events by slide
|
|
1091
1129
|
for slide in range(num_slides):
|
|
1092
|
-
logging.
|
|
1130
|
+
logging.debug("Clustering slide %d", slide)
|
|
1093
1131
|
event_mgr.cluster_template_network_events(
|
|
1094
1132
|
'time_index', 'reweighted_snr', cluster_window, slide=slide
|
|
1095
1133
|
)
|