PyCBC 2.3.4__tar.gz → 2.3.6__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.3.4 → PyCBC-2.3.6}/PKG-INFO +2 -2
- {PyCBC-2.3.4 → PyCBC-2.3.6}/PyCBC.egg-info/PKG-INFO +2 -2
- {PyCBC-2.3.4 → PyCBC-2.3.6}/PyCBC.egg-info/SOURCES.txt +3 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_bin_trigger_rates_dq +6 -2
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_prepare_xml_for_gracedb +1 -1
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/minifollowups/pycbc_foreground_minifollowup +43 -35
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/minifollowups/pycbc_injection_minifollowup +11 -6
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/minifollowups/pycbc_sngl_minifollowup +7 -2
- PyCBC-2.3.6/bin/minifollowups/pycbc_upload_prep_minifollowup +200 -0
- PyCBC-2.3.6/bin/plotting/pycbc_page_dq_table +54 -0
- PyCBC-2.3.6/bin/plotting/pycbc_page_template_bin_table +75 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_dq_flag_likelihood +4 -1
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_convertinjfiletohdf +5 -1
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/workflows/pycbc_make_offline_search_workflow +22 -5
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/_version.py +54 -25
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/_version_helper.py +35 -35
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/version.py +10 -10
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/minifollowups.py +443 -57
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/plotting.py +26 -3
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/psd.py +1 -4
- {PyCBC-2.3.4 → PyCBC-2.3.6}/setup.py +1 -1
- {PyCBC-2.3.4 → PyCBC-2.3.6}/LICENSE +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/MANIFEST.in +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/PyCBC.egg-info/dependency_links.txt +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/PyCBC.egg-info/requires.txt +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/PyCBC.egg-info/top_level.txt +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/README.md +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_add_statmap +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_apply_rerank +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_average_psd +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_bin_templates +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_calculate_psd +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_coinc_findtrigs +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_coinc_hdfinjfind +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_coinc_mergetrigs +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_coinc_statmap +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_coinc_statmap_inj +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_combine_coincident_events +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_combine_statmap +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_cut_merge_triggers_to_tmpltbank +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_distribute_background_bins +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_dtphase +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_exclude_zerolag +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_fit_sngls_binned +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_fit_sngls_by_template +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_fit_sngls_over_multiparam +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_fit_sngls_over_param +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_fit_sngls_split_binned +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_followup_file +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_foreground_censor +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_get_loudest_params +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_make_bayestar_skymap +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_merge_psds +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_plot_kde_vals +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_reduce_template_bank +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_rerank_passthrough +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_sngls_findtrigs +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_sngls_pastro +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_sngls_statmap +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_sngls_statmap_inj +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_strip_injections +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_template_kde_calc +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_template_kde_max +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_template_recovery_hist +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/all_sky_search/pycbc_upload_single_event_to_gracedb +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/bank/pycbc_aligned_bank_cat +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/bank/pycbc_aligned_stoch_bank +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/bank/pycbc_bank_verification +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/bank/pycbc_brute_bank +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/bank/pycbc_coinc_bank2hdf +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/bank/pycbc_geom_aligned_2dstack +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/bank/pycbc_geom_aligned_bank +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/bank/pycbc_geom_nonspinbank +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/bank/pycbc_tmpltbank_to_chi_params +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/hwinj/pycbc_generate_hwinj +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/hwinj/pycbc_generate_hwinj_from_xml +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/hwinj/pycbc_insert_frame_hwinj +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/hwinj/pycbc_plot_hwinj +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_create_fits +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_extract_samples +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_model_stats +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_monitor +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_acceptance_rate +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_acf +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_acl +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_dynesty_run +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_dynesty_traceplot +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_gelman_rubin +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_geweke +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_inj_recovery +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_mcmc_history +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_movie +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_posterior +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_pp +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_prior +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_samples +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_skymap +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_plot_thermodynamic_integrand +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_pp_table_summary +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_start_from_samples +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_inference_table_summary +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/pycbc_validate_test_posterior +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/inference/run_pycbc_inference +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/live/pycbc_live_combine_single_fits +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/live/pycbc_live_plot_combined_single_fits +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/live/pycbc_live_plot_single_trigger_fits +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/live/pycbc_live_single_trigger_fits +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/minifollowups/pycbc_page_coincinfo +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/minifollowups/pycbc_page_injinfo +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/minifollowups/pycbc_page_snglinfo +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/minifollowups/pycbc_plot_chigram +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/minifollowups/pycbc_plot_trigger_timeseries +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/minifollowups/pycbc_single_template_plot +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_banksim_plot_eff_fitting_factor +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_banksim_plot_fitting_factors +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_banksim_table_point_injs +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_create_html_snippet +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_faithsim_plots +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_ifar_catalog +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_mass_area_plot +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_mchirp_plots +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_banktriggerrate +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_coinc_snrchi +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_foreground +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_foundmissed +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_ifar +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_injtable +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_recovery +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_segments +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_segplot +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_segtable +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_sensitivity +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_snrchi +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_snrifar +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_snrratehist +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_versioning +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_page_vetotable +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_background_coincs +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_bank_bins +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_bank_corner +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_dq_likelihood_vs_time +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_dq_percentiles +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_gate_triggers +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_gating +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_hist +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_multiifo_dtphase +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_psd_file +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_psd_timefreq +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_qscan +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_range +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_range_vs_mtot +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_singles_timefreq +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_singles_vs_params +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_throughput +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_trigrate +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_vt_ratio +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/plotting/pycbc_plot_waveform +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/population/pycbc_multiifo_pastro +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/population/pycbc_population_plots +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/population/pycbc_population_rates +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_banksim +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_banksim_combine_banks +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_banksim_match_combine +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_banksim_skymax +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_coinc_time +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_compress_bank +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_condition_strain +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_copy_output_map +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_create_injections +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_data_store +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_faithsim +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_faithsim_collect_results +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_fit_sngl_trigs +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_get_ffinal +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_gwosc_segment_query +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_hdf5_splitbank +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_hdf_splitinj +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_inj_cut +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_inspiral +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_inspiral_skymax +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_live +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_live_nagios_monitor +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_make_banksim +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_make_faithsim +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_make_html_page +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_make_skymap +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_merge_inj_hdf +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_multi_inspiral +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_optimal_snr +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_optimize_snr +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_process_sngls +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_randomize_inj_dist_by_optsnr +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_single_template +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_source_probability_offline +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_split_inspinj +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_splitbank +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_stageout_failed_workflow +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_submit_dax +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pycbc_upload_xml_to_gracedb +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_grb_inj_combiner +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_grb_inj_finder +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_grb_trig_cluster +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_grb_trig_combiner +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_make_offline_grb_workflow +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_pygrb_efficiency +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_pygrb_grb_info_table +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_pygrb_minifollowups +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_pygrb_page_tables +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_pygrb_plot_chisq_veto +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_pygrb_plot_coh_ifosnr +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_pygrb_plot_injs_results +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_pygrb_plot_null_stats +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_pygrb_plot_skygrid +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_pygrb_plot_snr_timeseries +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_pygrb_plot_stats_distribution +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/pygrb/pycbc_pygrb_pp_workflow +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/workflow_comparisons/offline_search/pycbc_combine_injection_comparisons +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/workflow_comparisons/offline_search/pycbc_injection_set_comparison +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/workflow_comparisons/offline_search/pycbc_plot_injections_found_both_workflows +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/workflow_comparisons/offline_search/pycbc_plot_injections_missed_one_workflow +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/workflow_comparisons/offline_search/pycbc_plot_vt_ratio_vs_ifar +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/workflows/pycbc_make_bank_verifier_workflow +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/workflows/pycbc_make_faithsim_workflow +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/workflows/pycbc_make_inference_inj_workflow +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/workflows/pycbc_make_inference_plots_workflow +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/workflows/pycbc_make_inference_workflow +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/workflows/pycbc_make_psd_estimation_workflow +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/workflows/pycbc_make_sbank_workflow +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/bin/workflows/pycbc_make_uberbank_workflow +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/banksim/injection0.xml +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/banksim/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/cal/foton_filter_esd_saturation/pycbc_check_esd_saturation.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/cal/foton_filter_esd_saturation/pycbc_check_pcal_saturation.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/cal/foton_filter_esd_saturation/run_pcal_saturation_example.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/catalog/data.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/catalog/stat.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/catalog/what.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/dataquality/hwinj.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/dataquality/on.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/detector/ant.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/detector/custom.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/detector/delay.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/detector/loc.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/detector/travel.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/distributions/list_distributions.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/distributions/mass_examples.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/distributions/mchirp_q_from_uniform_m1m2_example.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/distributions/sampling_from_config_example.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/distributions/spin_examples.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/distributions/spin_spatial_distr_example.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/faith/injection0.xml +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/faith/pegasus_workflow_create.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/faith/pegasus_workflow_submit.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/faith/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/filter/chisq.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/filter/fir.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/filter/pass.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/filter/snr.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/gw150914/audio.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/gw150914/gw150914_h1_snr.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/gw150914/gw150914_shape.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/analytic-normal2d/make_movie.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/analytic-normal2d/plot.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/analytic-normal2d/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/bbh-injection/make_injection.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/bbh-injection/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/bbh-injection/run_test.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/gw150914/plot.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/gw150914/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/gw150914/run_test.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/hierarchical/make_injections.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/hierarchical/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/hierarchical/run_test.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/lisa_smbhb_inj/injection_smbhb.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/lisa_smbhb_inj/plot.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/lisa_smbhb_inj/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/lisa_smbhb_ldc/advanced_plot.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/lisa_smbhb_ldc/get.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/lisa_smbhb_ldc/plot.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/lisa_smbhb_ldc/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/list_parameters.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/margtime/get.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/margtime/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/margtime/run_inj.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/multisignal/get.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/multisignal/make_injections.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/multisignal/rel.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/multisignal/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/multisignal/single.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/relative/get.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/relative/plot.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/relative/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/relmarg/get.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/relmarg/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/samplers/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/single/get.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/single/plot.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/single/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/single/run_instant.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inference/single/run_marg.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inspiral/check_GW150914_detection.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inspiral/clean.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/inspiral/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/live/check_results.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/live/generate_injections.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/live/make_singles_fits_file.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/live/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/make_skymap/GW150914.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/make_skymap/GW170817.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/make_skymap/simulated_data.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/multi_inspiral/check_faceon_faceaway_trigs.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/multi_inspiral/check_gw170817_trigs.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/multi_inspiral/clean.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/multi_inspiral/faceon_faceaway.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/multi_inspiral/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/noise/frequency.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/noise/timeseries.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/overlap.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/psd/analytic.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/psd/estimate.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/psd/read.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/search/bank.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/search/check_job.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/search/gen.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/search/get.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/search/master.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/search/stats.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/search/submit.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/tmpltbank/bank_workflow_test/gen.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/tmpltbank/cleanOutput.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/tmpltbank/make_cache.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/tmpltbank/testAligned.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/tmpltbank/testAligned2.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/tmpltbank/testAligned3.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/tmpltbank/testNonspin.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/tmpltbank/testNonspin2.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/tmpltbank/testNonspin3.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/tmpltbank/testStoch.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/tmpltbank/testStoch2.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/tmpltbank/testStoch3.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/tmpltbank/testStoch4.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/waveform/add_waveform.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/waveform/higher_modes.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/waveform/match_waveform.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/waveform/plot_detwaveform.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/waveform/plot_fd_td.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/waveform/plot_freq.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/waveform/plot_phase.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/waveform/plot_waveform.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/waveform/what_waveform.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/data_checker/daily_test.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/data_checker/get_data_example.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/data_checker/run_daily_test.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/data_checker/run_get_data_example.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/dayhopecheck/dayhopecheck.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/dayhopecheck/run_dayhopecheck.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/generic/multilevel_subworkflow_data/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/generic/multilevel_subworkflow_data/simple.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/generic/simple_subworkflow_data/run.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/generic/simple_subworkflow_data/simple.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/inference/bbh_inj-dynesty/create_inj_workflow.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/inference/gw150914_gw170814-dynesty/create_workflow.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/inference/gw150914_gw170814-emcee_pt/create_workflow.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/inference/small_test/gen.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/pygrb/ER7/run_er7_pygrb_offline.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/pygrb/ER8/run_er8_pygrb_offline.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/pygrb/ER8/run_er8_pygrb_online.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/examples/workflow/pygrb/S6/run_s6_pygrb.sh +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/bin_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/boundaries.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/catalog/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/catalog/catalog.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/conversions.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/coordinates.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/cosmology.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/detector.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/angular.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/arbitrary.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/bounded.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/constraints.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/external.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/fixedsamples.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/gaussian.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/joint.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/mass.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/power_law.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/qnm.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/sky_location.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/spins.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/uniform.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/uniform_log.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/distributions/utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/dq.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/coherent.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/coinc.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/coinc_rate.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/cuts.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/eventmgr.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/eventmgr_cython.pyx +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/ranking.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/significance.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/simd_threshold_ccode.cpp +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/simd_threshold_cython.pyx +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/single.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/stat.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/threshold_cpu.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/threshold_cuda.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/trigger_fits.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/triggers.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/events/veto.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/backend_cpu.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/backend_cuda.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/backend_mkl.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/backend_support.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/class_api.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/core.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/cuda_pyfft.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/cufft.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/fft_callback.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/fftw.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/fftw_pruned.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/fftw_pruned_cython.pyx +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/func_api.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/mkl.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/npfft.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/fft/parser_support.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/filter/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/filter/autocorrelation.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/filter/fotonfilter.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/filter/matchedfilter.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/filter/matchedfilter_cpu.pyx +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/filter/matchedfilter_cuda.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/filter/matchedfilter_numpy.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/filter/qtransform.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/filter/resample.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/filter/simd_correlate.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/filter/simd_correlate_ccode.cpp +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/filter/simd_correlate_cython.pyx +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/filter/zpk.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/frame/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/frame/frame.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/frame/gwosc.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/frame/store.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/burn_in.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/entropy.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/evidence.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/gelman_rubin.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/geweke.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/base_hdf.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/base_mcmc.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/base_multitemper.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/base_nested_sampler.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/base_sampler.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/cpnest.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/dynesty.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/emcee.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/emcee_pt.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/epsie.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/multinest.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/posterior.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/ptemcee.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/txt.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/io/ultranest.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/jump/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/jump/angular.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/jump/bounded_normal.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/jump/discrete.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/jump/normal.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/models/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/models/analytic.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/models/base.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/models/base_data.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/models/brute_marg.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/models/data_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/models/gated_gaussian_noise.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/models/gaussian_noise.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/models/hierarchical.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/models/marginalized_gaussian_noise.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/models/relbin.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/models/relbin_cpu.pyx +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/models/single_template.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/models/tools.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/option_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/base.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/base_cube.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/base_mcmc.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/base_multitemper.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/cpnest.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/dummy.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/dynesty.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/emcee.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/emcee_pt.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/epsie.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/multinest.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/ptemcee.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/refine.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inference/sampler/ultranest.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inject/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inject/inject.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/inject/injfilterrejector.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/io/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/io/hdf.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/io/ligolw.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/io/live.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/io/record.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/libutils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/live/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/live/snr_optimizer.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/mchirp_area.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/neutron_stars/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/neutron_stars/eos_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/neutron_stars/ns_data/equil_2H.dat +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/neutron_stars/pg_isso_solver.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/noise/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/noise/gaussian.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/noise/reproduceable.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/opt.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/pnutils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/pool.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/population/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/population/fgmc_functions.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/population/fgmc_laguerre.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/population/fgmc_plots.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/population/live_pastro.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/population/live_pastro_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/population/population_models.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/population/rates_functions.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/population/scale_injections.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/psd/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/psd/analytical.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/psd/analytical_space.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/psd/estimate.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/psd/read.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/psd/variation.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/rate.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/color.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/dq.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/followup.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/layout.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/metadata.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/mpld3_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/plot.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/psd.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/pygrb_plotting_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/pygrb_postprocessing_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/render.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/scatter_histograms.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/snr.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/css/bootstrap/3.3.2/bootstrap.min.css +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/css/bootstrap.min.css +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/css/fancybox/2.1.5/jquery.fancybox.css +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/css/pycbc/orange.css +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/css/pycbc/red.css +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/fonts/Lato-Light.css +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/fonts/Lato-Light.eot +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/fonts/Lato-Light.html +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/fonts/Lato-Light.ttf +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/fonts/Lato-Light.woff +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/fonts/Lato-Semibold.css +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/fonts/Lato-Semibold.eot +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/fonts/Lato-Semibold.html +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/fonts/Lato-Semibold.ttf +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/fonts/Lato-Semibold.woff +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/js/bootstrap/3.3.2/bootstrap.min.js +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/js/bootstrap.min.js +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/js/fancybox/2.1.5/fancybox-orange.js +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/js/fancybox/2.1.5/jquery.fancybox.js +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/js/fancybox/2.1.5/jquery.fancybox.pack.js +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/js/jquery/1.10.2/jquery-1.10.2.min.js +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/js/jquery/1.10.2/jquery.mousewheel-3.0.6.pack.js +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/static/js/jquery.min.js +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/str_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/table_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/templates/files/file_default.html +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/templates/files/file_glitchgram.html +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/templates/files/file_img.html +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/templates/files/file_pre.html +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/templates/files/file_tmplt.html +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/templates/orange.html +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/templates/red.html +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/templates/wells/sitemap.html +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/templates/wells/two_column.html +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/results/versioning.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/scheme.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/sensitivity.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/strain/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/strain/calibration.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/strain/gate.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/strain/lines.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/strain/recalibrate.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/strain/strain.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/tmpltbank/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/tmpltbank/bank_conversions.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/tmpltbank/bank_output_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/tmpltbank/brute_force_methods.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/tmpltbank/calc_moments.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/tmpltbank/coord_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/tmpltbank/lambda_mapping.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/tmpltbank/lattice_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/tmpltbank/option_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/tmpltbank/partitioned_bank.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/transforms.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/types/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/types/aligned.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/types/array.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/types/array_cpu.pyx +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/types/array_cuda.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/types/config.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/types/frequencyseries.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/types/optparse.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/types/timeseries.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/vetoes/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/vetoes/autochisq.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/vetoes/bank_chisq.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/vetoes/chisq.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/vetoes/chisq_cpu.pyx +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/vetoes/chisq_cuda.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/vetoes/sgchisq.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/SpinTaylorF2.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/bank.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/compress.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/decompress_cpu.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/decompress_cpu_ccode.cpp +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/decompress_cpu_cython.pyx +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/decompress_cuda.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/generator.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/multiband.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/nltides.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/parameters.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/plugin.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/premerger.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/pycbc_phenomC_tmplt.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/ringdown.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/sinegauss.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/spa_tmplt.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/spa_tmplt_cpu.pyx +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/spa_tmplt_cuda.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/supernovae.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/utils_cpu.pyx +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/utils_cuda.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/waveform.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/waveform/waveform_modes.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/__init__.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/coincidence.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/configparser_test.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/configuration.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/core.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/datafind.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/dq.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/grb_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/inference_followups.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/injection.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/jobsetup.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/matched_filter.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/pegasus_files/pegasus-properties.conf +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/pegasus_sites.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/pegasus_workflow.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/psdfiles.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/segment.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/splittable.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/tmpltbank.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pycbc/workflow/versioning.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pyproject.toml +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/pytest.ini +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/setup.cfg +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/bankvetotest.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/fft_base.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/lalsim.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_array.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_array_lal.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_autochisq.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_calibration.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_chisq.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_coinc_stat.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_conversions.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_correlate.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_cuts.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_detector.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_distributions.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_dq.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_fft_mkl_threaded.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_fft_unthreaded.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_fftw_openmp.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_fftw_pthreads.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_frame.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_frequencyseries.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_infmodel.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_injection.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_io_live.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_live_coinc_compare.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_matchedfilter.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_noise.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_pnutils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_psd.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_resample.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_schemes.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_significance_module.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_skymax.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_spatmplt.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_threshold.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_timeseries.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_tmpltbank.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_transforms.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_waveform.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/test_waveform_utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/test/utils.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/tools/benchmarking/absolute_times.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/tools/einsteinathome/check_GW150914_detection.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/tools/static/hooks/hook-pycbc.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/tools/static/runtime-scipy.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/tools/static/runtime-tkinter.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/tools/timing/arr_perf.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/tools/timing/banksim/banksim.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/tools/timing/correlate_perf.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/tools/timing/fft_perf.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/tools/timing/match_perf.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/tools/timing/wav_perf.py +0 -0
- {PyCBC-2.3.4 → PyCBC-2.3.6}/tox.ini +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PyCBC
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.6
|
|
4
4
|
Summary: Core library to analyze gravitational-wave data, find signals, and study their parameters.
|
|
5
5
|
Home-page: http://www.pycbc.org/
|
|
6
6
|
Author: The PyCBC team
|
|
7
7
|
Author-email: alex.nitz@gmail.org
|
|
8
8
|
License: UNKNOWN
|
|
9
|
-
Download-URL: https://github.com/gwastro/pycbc/tarball/v2.3.
|
|
9
|
+
Download-URL: https://github.com/gwastro/pycbc/tarball/v2.3.6
|
|
10
10
|
Description: 
|
|
11
11
|
|
|
12
12
|
[PyCBC](http://pycbc.org) is a software package used to explore astrophysical sources of gravitational waves.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PyCBC
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.6
|
|
4
4
|
Summary: Core library to analyze gravitational-wave data, find signals, and study their parameters.
|
|
5
5
|
Home-page: http://www.pycbc.org/
|
|
6
6
|
Author: The PyCBC team
|
|
7
7
|
Author-email: alex.nitz@gmail.org
|
|
8
8
|
License: UNKNOWN
|
|
9
|
-
Download-URL: https://github.com/gwastro/pycbc/tarball/v2.3.
|
|
9
|
+
Download-URL: https://github.com/gwastro/pycbc/tarball/v2.3.6
|
|
10
10
|
Description: 
|
|
11
11
|
|
|
12
12
|
[PyCBC](http://pycbc.org) is a software package used to explore astrophysical sources of gravitational waves.
|
|
@@ -142,6 +142,7 @@ bin/minifollowups/pycbc_plot_chigram
|
|
|
142
142
|
bin/minifollowups/pycbc_plot_trigger_timeseries
|
|
143
143
|
bin/minifollowups/pycbc_single_template_plot
|
|
144
144
|
bin/minifollowups/pycbc_sngl_minifollowup
|
|
145
|
+
bin/minifollowups/pycbc_upload_prep_minifollowup
|
|
145
146
|
bin/plotting/pycbc_banksim_plot_eff_fitting_factor
|
|
146
147
|
bin/plotting/pycbc_banksim_plot_fitting_factors
|
|
147
148
|
bin/plotting/pycbc_banksim_table_point_injs
|
|
@@ -152,6 +153,7 @@ bin/plotting/pycbc_mass_area_plot
|
|
|
152
153
|
bin/plotting/pycbc_mchirp_plots
|
|
153
154
|
bin/plotting/pycbc_page_banktriggerrate
|
|
154
155
|
bin/plotting/pycbc_page_coinc_snrchi
|
|
156
|
+
bin/plotting/pycbc_page_dq_table
|
|
155
157
|
bin/plotting/pycbc_page_foreground
|
|
156
158
|
bin/plotting/pycbc_page_foundmissed
|
|
157
159
|
bin/plotting/pycbc_page_ifar
|
|
@@ -164,6 +166,7 @@ bin/plotting/pycbc_page_sensitivity
|
|
|
164
166
|
bin/plotting/pycbc_page_snrchi
|
|
165
167
|
bin/plotting/pycbc_page_snrifar
|
|
166
168
|
bin/plotting/pycbc_page_snrratehist
|
|
169
|
+
bin/plotting/pycbc_page_template_bin_table
|
|
167
170
|
bin/plotting/pycbc_page_versioning
|
|
168
171
|
bin/plotting/pycbc_page_vetotable
|
|
169
172
|
bin/plotting/pycbc_plot_background_coincs
|
|
@@ -71,9 +71,9 @@ with HFile(args.trig_file, 'r') as trig_file:
|
|
|
71
71
|
data_mask = np.zeros(n_triggers_orig, dtype=bool)
|
|
72
72
|
data_mask[idx] = True
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
if args.gating_windows:
|
|
75
75
|
gate_times = []
|
|
76
|
-
|
|
76
|
+
with h5.File(args.trig_file, 'r') as trig_file:
|
|
77
77
|
logging.info('Getting gated times')
|
|
78
78
|
try:
|
|
79
79
|
gating_types = trig_file[f'{ifo}/gating'].keys()
|
|
@@ -188,6 +188,7 @@ with h5.File(args.output_file, 'w') as f:
|
|
|
188
188
|
frac_dt = abs(segs) / livetime
|
|
189
189
|
dq_rates[state] = frac_eff / frac_dt
|
|
190
190
|
bin_grp['dq_rates'] = dq_rates
|
|
191
|
+
bin_grp['num_triggers'] = len(trig_times_bin)
|
|
191
192
|
|
|
192
193
|
# save dq state segments
|
|
193
194
|
for dq_state, segs in dq_state_segs_dict.items():
|
|
@@ -196,7 +197,10 @@ with h5.File(args.output_file, 'w') as f:
|
|
|
196
197
|
starts, ends = segments_to_start_end(segs)
|
|
197
198
|
dq_grp['segment_starts'] = starts
|
|
198
199
|
dq_grp['segment_ends'] = ends
|
|
200
|
+
dq_grp['livetime'] = abs(segs)
|
|
199
201
|
|
|
200
202
|
f.attrs['stat'] = f'{ifo}-dq_stat_info'
|
|
203
|
+
f.attrs['sngl_ranking'] = args.sngl_ranking
|
|
204
|
+
f.attrs['sngl_ranking_threshold'] = args.stat_threshold
|
|
201
205
|
|
|
202
206
|
logging.info('Done!')
|
|
@@ -96,7 +96,7 @@ def read_psds(psd_files):
|
|
|
96
96
|
psd = [group["psds"][str(i)] for i in range(len(group["psds"].keys()))]
|
|
97
97
|
psds[ifo] = segmentlist(psd_segment(*segargs) for segargs in zip(
|
|
98
98
|
psd, group["start_time"], group["end_time"]))
|
|
99
|
-
|
|
99
|
+
return psds
|
|
100
100
|
|
|
101
101
|
psds = read_psds(args.psd_files)
|
|
102
102
|
|
|
@@ -16,7 +16,14 @@
|
|
|
16
16
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
17
17
|
""" Followup foreground events
|
|
18
18
|
"""
|
|
19
|
-
import os
|
|
19
|
+
import os
|
|
20
|
+
import sys
|
|
21
|
+
import argparse
|
|
22
|
+
import logging
|
|
23
|
+
import re
|
|
24
|
+
import h5py
|
|
25
|
+
|
|
26
|
+
import pycbc.workflow as wf
|
|
20
27
|
from pycbc.results import layout
|
|
21
28
|
from pycbc.types import MultiDetOptionAction
|
|
22
29
|
from pycbc.events import select_segments_by_definer, coinc
|
|
@@ -108,26 +115,34 @@ if args.sort_variable not in f[file_val]:
|
|
|
108
115
|
raise KeyError(f'Sort variable {args.sort_variable} not in {file_val}: sort'
|
|
109
116
|
f'choices in {file_val} are ' + ', '.join(all_datasets))
|
|
110
117
|
|
|
118
|
+
# In case we are doing background minifollowup with repeated events,
|
|
119
|
+
# we must include the ordering / template / trigger / time info for
|
|
120
|
+
# _many_ more events to make sure we get enough
|
|
111
121
|
events_to_read = num_events * 100
|
|
112
122
|
|
|
123
|
+
# We've asked for more events than there are!
|
|
113
124
|
if len(stat) < num_events:
|
|
114
125
|
num_events = len(stat)
|
|
115
126
|
if len(stat) < events_to_read:
|
|
116
127
|
events_to_read = len(stat)
|
|
117
128
|
|
|
129
|
+
# Get the indices of the events we are considering in the order specified
|
|
118
130
|
sorting = f[file_val + '/' + args.sort_variable][:].argsort()
|
|
119
131
|
if args.sort_order == 'descending':
|
|
120
132
|
sorting = sorting[::-1]
|
|
121
133
|
event_idx = sorting[0:events_to_read]
|
|
122
134
|
stat = stat[event_idx]
|
|
123
135
|
|
|
136
|
+
# Save the time / trigger / template ids for the events
|
|
124
137
|
times = {}
|
|
125
138
|
tids = {}
|
|
126
|
-
# Version used for multi-ifo coinc code
|
|
127
139
|
ifo_list = f.attrs['ifos'].split(' ')
|
|
140
|
+
f_cat = f[file_val]
|
|
128
141
|
for ifo in ifo_list:
|
|
129
|
-
times[ifo] =
|
|
130
|
-
tids[ifo] =
|
|
142
|
+
times[ifo] = f_cat[ifo]['time'][:][event_idx]
|
|
143
|
+
tids[ifo] = f_cat[ifo]['trigger_id'][:][event_idx]
|
|
144
|
+
bank_ids = f_cat['template_id'][:][event_idx]
|
|
145
|
+
f.close()
|
|
131
146
|
|
|
132
147
|
bank_data = h5py.File(args.bank_file, 'r')
|
|
133
148
|
|
|
@@ -187,7 +202,7 @@ while event_count < num_events and curr_idx < (events_to_read - 1):
|
|
|
187
202
|
tags=[f'SKIP_{event_count}']),)
|
|
188
203
|
skipped_data = []
|
|
189
204
|
|
|
190
|
-
bank_id =
|
|
205
|
+
bank_id = bank_ids[curr_idx]
|
|
191
206
|
|
|
192
207
|
layouts += (mini.make_coinc_info(workflow, single_triggers, tmpltbank_file,
|
|
193
208
|
coinc_file, args.output_dir, n_loudest=curr_idx,
|
|
@@ -197,40 +212,33 @@ while event_count < num_events and curr_idx < (events_to_read - 1):
|
|
|
197
212
|
ifo_times, args.output_dir, special_tids=ifo_tids,
|
|
198
213
|
tags=args.tags + [str(event_count)])
|
|
199
214
|
|
|
200
|
-
params =
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
params['inclination'] = bank_data['inclination'][bank_id]
|
|
222
|
-
except KeyError:
|
|
223
|
-
pass
|
|
224
|
-
|
|
225
|
-
files += mini.make_single_template_plots(workflow, insp_segs,
|
|
226
|
-
args.inspiral_data_read_name,
|
|
227
|
-
args.inspiral_data_analyzed_name, params,
|
|
228
|
-
args.output_dir,
|
|
229
|
-
tags=args.tags + [str(event_count)])
|
|
215
|
+
params = mini.get_single_template_params(
|
|
216
|
+
curr_idx,
|
|
217
|
+
times,
|
|
218
|
+
bank_data,
|
|
219
|
+
bank_ids[curr_idx],
|
|
220
|
+
fsdt,
|
|
221
|
+
tids
|
|
222
|
+
)
|
|
223
|
+
|
|
224
|
+
_, sngl_tmplt_plots = mini.make_single_template_plots(
|
|
225
|
+
workflow,
|
|
226
|
+
insp_segs,
|
|
227
|
+
args.inspiral_data_read_name,
|
|
228
|
+
args.inspiral_data_analyzed_name,
|
|
229
|
+
params,
|
|
230
|
+
args.output_dir,
|
|
231
|
+
data_segments=insp_data_seglists,
|
|
232
|
+
tags=args.tags + [str(event_count)]
|
|
233
|
+
)
|
|
234
|
+
files += sngl_tmplt_plots
|
|
235
|
+
|
|
230
236
|
|
|
231
237
|
for single in single_triggers:
|
|
232
238
|
time = times[single.ifo][curr_idx]
|
|
233
239
|
if time==-1:
|
|
240
|
+
# If this detector did not trigger, still make the plot, but use
|
|
241
|
+
# the average time of detectors which did trigger
|
|
234
242
|
time = coinc.mean_if_greater_than_zero([times[sngl.ifo][curr_idx]
|
|
235
243
|
for sngl in single_triggers])[0]
|
|
236
244
|
for seg in insp_analysed_seglists[single.ifo]:
|
|
@@ -292,6 +292,8 @@ for num_event in range(num_events):
|
|
|
292
292
|
|
|
293
293
|
ifo_times += ' %s:%s ' % (ifo, ifo_time)
|
|
294
294
|
inj_params[ifo + '_end_time'] = ifo_time
|
|
295
|
+
all_times = [inj_params[sngl.ifo + '_end_time'] for sngl in single_triggers]
|
|
296
|
+
inj_params['mean_time'] = coinc.mean_if_greater_than_zero(all_times)[0]
|
|
295
297
|
|
|
296
298
|
layouts += [(mini.make_inj_info(workflow, injection_file, injection_index, num_event,
|
|
297
299
|
args.output_dir, tags=args.tags + [str(num_event)])[0],)]
|
|
@@ -331,8 +333,7 @@ for num_event in range(num_events):
|
|
|
331
333
|
for single in single_triggers:
|
|
332
334
|
checkedtime = time
|
|
333
335
|
if (inj_params[single.ifo + '_end_time'] == -1.0):
|
|
334
|
-
|
|
335
|
-
checkedtime = coinc.mean_if_greater_than_zero(all_times)[0]
|
|
336
|
+
checkedtime = inj_params['mean_time']
|
|
336
337
|
for seg in insp_analysed_seglists[single.ifo]:
|
|
337
338
|
if checkedtime in seg:
|
|
338
339
|
files += mini.make_singles_timefreq(workflow, single, tmpltbank_file,
|
|
@@ -351,7 +352,7 @@ for num_event in range(num_events):
|
|
|
351
352
|
checkedtime, single.ifo
|
|
352
353
|
)
|
|
353
354
|
|
|
354
|
-
|
|
355
|
+
_, norm_plot = mini.make_single_template_plots(workflow, insp_segs,
|
|
355
356
|
args.inspiral_data_read_name,
|
|
356
357
|
args.inspiral_data_analyzed_name, inj_params,
|
|
357
358
|
args.output_dir, inj_file=injection_xml_file,
|
|
@@ -359,8 +360,9 @@ for num_event in range(num_events):
|
|
|
359
360
|
params_str='injection parameters as template, ' +\
|
|
360
361
|
'here the injection is made as normal',
|
|
361
362
|
use_exact_inj_params=True)
|
|
363
|
+
files += norm_plot
|
|
362
364
|
|
|
363
|
-
|
|
365
|
+
_, inv_plot = mini.make_single_template_plots(workflow, insp_segs,
|
|
364
366
|
args.inspiral_data_read_name,
|
|
365
367
|
args.inspiral_data_analyzed_name, inj_params,
|
|
366
368
|
args.output_dir, inj_file=injection_xml_file,
|
|
@@ -369,8 +371,9 @@ for num_event in range(num_events):
|
|
|
369
371
|
params_str='injection parameters as template, ' +\
|
|
370
372
|
'here the injection is made inverted',
|
|
371
373
|
use_exact_inj_params=True)
|
|
374
|
+
files += inv_plot
|
|
372
375
|
|
|
373
|
-
|
|
376
|
+
_, noinj_plot = mini.make_single_template_plots(workflow, insp_segs,
|
|
374
377
|
args.inspiral_data_read_name,
|
|
375
378
|
args.inspiral_data_analyzed_name, inj_params,
|
|
376
379
|
args.output_dir, inj_file=injection_xml_file,
|
|
@@ -379,6 +382,7 @@ for num_event in range(num_events):
|
|
|
379
382
|
params_str='injection parameters, here no ' +\
|
|
380
383
|
'injection was actually performed',
|
|
381
384
|
use_exact_inj_params=True)
|
|
385
|
+
files += noinj_plot
|
|
382
386
|
|
|
383
387
|
for curr_ifo in args.single_detector_triggers:
|
|
384
388
|
single_fname = args.single_detector_triggers[curr_ifo]
|
|
@@ -417,12 +421,13 @@ for num_event in range(num_events):
|
|
|
417
421
|
|
|
418
422
|
curr_tags = ['TMPLT_PARAMS_%s' %(curr_ifo,)]
|
|
419
423
|
curr_tags += [str(num_event)]
|
|
420
|
-
|
|
424
|
+
_, loudest_plot = mini.make_single_template_plots(workflow, insp_segs,
|
|
421
425
|
args.inspiral_data_read_name,
|
|
422
426
|
args.inspiral_data_analyzed_name, curr_params,
|
|
423
427
|
args.output_dir, inj_file=injection_xml_file,
|
|
424
428
|
tags=args.tags + curr_tags,
|
|
425
429
|
params_str='loudest template in %s' % curr_ifo )
|
|
430
|
+
files += loudest_plot
|
|
426
431
|
|
|
427
432
|
layouts += list(layout.grouper(files, 2))
|
|
428
433
|
|
|
@@ -307,6 +307,7 @@ for rank, num_event in enumerate(order):
|
|
|
307
307
|
curr_params['spin2z'] = trigs.spin2z[num_event]
|
|
308
308
|
curr_params['f_lower'] = trigs.f_lower[num_event]
|
|
309
309
|
curr_params[args.instrument + '_end_time'] = time
|
|
310
|
+
curr_params['mean_time'] = time
|
|
310
311
|
# don't require precessing template info if not present
|
|
311
312
|
try:
|
|
312
313
|
curr_params['spin1x'] = trigs.spin1x[num_event]
|
|
@@ -322,12 +323,16 @@ for rank, num_event in enumerate(order):
|
|
|
322
323
|
except:
|
|
323
324
|
pass
|
|
324
325
|
|
|
325
|
-
|
|
326
|
+
_, sngl_plot = mini.make_single_template_plots(workflow, insp_segs,
|
|
326
327
|
args.inspiral_data_read_name,
|
|
327
|
-
args.inspiral_data_analyzed_name,
|
|
328
|
+
args.inspiral_data_analyzed_name,
|
|
329
|
+
curr_params,
|
|
328
330
|
args.output_dir,
|
|
331
|
+
data_segments={args.instrument : insp_data_seglists},
|
|
329
332
|
tags=args.tags+[str(rank)])
|
|
330
333
|
|
|
334
|
+
files += sngl_plot
|
|
335
|
+
|
|
331
336
|
files += mini.make_plot_waveform_plot(workflow, curr_params,
|
|
332
337
|
args.output_dir, [args.instrument],
|
|
333
338
|
tags=args.tags + [str(rank)])
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
#!/bin/env python
|
|
2
|
+
# Copyright (C) 2015-2023 Alexander Harvey Nitz, Gareth Cabourn Davies
|
|
3
|
+
#
|
|
4
|
+
# This program is free software; you can redistribute it and/or modify it
|
|
5
|
+
# under the terms of the GNU General Public License as published by the
|
|
6
|
+
# Free Software Foundation; either version 3 of the License, or (at your
|
|
7
|
+
# option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful, but
|
|
10
|
+
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
12
|
+
# Public License for more details.
|
|
13
|
+
#
|
|
14
|
+
# You should have received a copy of the GNU General Public License along
|
|
15
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
16
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
17
|
+
""" Prepare files for upload to GraceDB for foreground events
|
|
18
|
+
"""
|
|
19
|
+
import os
|
|
20
|
+
import sys
|
|
21
|
+
import argparse
|
|
22
|
+
import logging
|
|
23
|
+
import re
|
|
24
|
+
import h5py
|
|
25
|
+
import numpy as np
|
|
26
|
+
|
|
27
|
+
from ligo import segments
|
|
28
|
+
|
|
29
|
+
import pycbc.workflow as wf
|
|
30
|
+
from pycbc.results import layout
|
|
31
|
+
from pycbc.types import MultiDetOptionAction
|
|
32
|
+
from pycbc.events import select_segments_by_definer, coinc
|
|
33
|
+
from pycbc.io import get_all_subkeys
|
|
34
|
+
import pycbc.workflow.minifollowups as mini
|
|
35
|
+
from pycbc.workflow.core import resolve_url_to_file, resolve_td_option
|
|
36
|
+
import pycbc.version
|
|
37
|
+
|
|
38
|
+
parser = argparse.ArgumentParser(description=__doc__[1:])
|
|
39
|
+
parser.add_argument('--verbose', action='count',
|
|
40
|
+
help='Add progressively more verbose output, '
|
|
41
|
+
'default=info')
|
|
42
|
+
parser.add_argument('--version', action='version', version=pycbc.version.git_verbose_msg)
|
|
43
|
+
parser.add_argument('--bank-file',
|
|
44
|
+
help="HDF format template bank file")
|
|
45
|
+
parser.add_argument('--statmap-file',
|
|
46
|
+
help="HDF format clustered coincident trigger result file")
|
|
47
|
+
parser.add_argument('--xml-all-file',
|
|
48
|
+
help="XML format result file containing all events")
|
|
49
|
+
parser.add_argument('--single-detector-triggers', nargs='+', action=MultiDetOptionAction,
|
|
50
|
+
help="HDF format merged single detector trigger files")
|
|
51
|
+
parser.add_argument('--inspiral-segments',
|
|
52
|
+
help="xml segment files containing the inspiral analysis times")
|
|
53
|
+
parser.add_argument('--inspiral-data-read-name',
|
|
54
|
+
help="Name of inspiral segmentlist containing data read in "
|
|
55
|
+
"by each analysis job.")
|
|
56
|
+
parser.add_argument('--inspiral-data-analyzed-name',
|
|
57
|
+
help="Name of inspiral segmentlist containing data "
|
|
58
|
+
"analyzed by each analysis job.")
|
|
59
|
+
parser.add_argument('--psd-files', nargs='+', action=MultiDetOptionAction,
|
|
60
|
+
help="HDF format merged single detector PSD files")
|
|
61
|
+
parser.add_argument('--ifar-thresh', type=float,
|
|
62
|
+
help="IFAR threshold for preparing SNR timeseries "
|
|
63
|
+
"files for upload. Default=No upload prep")
|
|
64
|
+
|
|
65
|
+
wf.add_workflow_command_line_group(parser)
|
|
66
|
+
wf.add_workflow_settings_cli(parser, include_subdax_opts=True)
|
|
67
|
+
args = parser.parse_args()
|
|
68
|
+
|
|
69
|
+
if args.verbose:
|
|
70
|
+
args.verbose += 1
|
|
71
|
+
else:
|
|
72
|
+
args.verbose = 1
|
|
73
|
+
pycbc.init_logging(args.verbose)
|
|
74
|
+
|
|
75
|
+
workflow = wf.Workflow(args)
|
|
76
|
+
|
|
77
|
+
wf.makedir(args.output_dir)
|
|
78
|
+
|
|
79
|
+
channel_opts = {}
|
|
80
|
+
for ifo in workflow.ifos:
|
|
81
|
+
channel_opts[ifo] = workflow.cp.get_opt_tags(
|
|
82
|
+
"workflow",
|
|
83
|
+
"%s-channel-name" % ifo.lower(),
|
|
84
|
+
""
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
# create a FileList that will contain all output files
|
|
88
|
+
layouts = []
|
|
89
|
+
|
|
90
|
+
tmpltbank_file = resolve_url_to_file(os.path.abspath(args.bank_file))
|
|
91
|
+
insp_segs = resolve_url_to_file(os.path.abspath(args.inspiral_segments))
|
|
92
|
+
xml_all = resolve_url_to_file(os.path.abspath(args.xml_all_file))
|
|
93
|
+
|
|
94
|
+
single_triggers = []
|
|
95
|
+
psd_files = []
|
|
96
|
+
fsdt = {}
|
|
97
|
+
insp_data_seglists = {}
|
|
98
|
+
insp_analysed_seglists = {}
|
|
99
|
+
for ifo in args.single_detector_triggers:
|
|
100
|
+
strig_fname = args.single_detector_triggers[ifo]
|
|
101
|
+
strig_file = resolve_url_to_file(os.path.abspath(strig_fname),
|
|
102
|
+
attrs={'ifos': ifo})
|
|
103
|
+
single_triggers.append(strig_file)
|
|
104
|
+
|
|
105
|
+
psd_fname = args.psd_files[ifo]
|
|
106
|
+
psd_file = resolve_url_to_file(os.path.abspath(psd_fname),
|
|
107
|
+
attrs={'ifos': ifo})
|
|
108
|
+
psd_files.append(psd_file)
|
|
109
|
+
|
|
110
|
+
fsdt[ifo] = h5py.File(args.single_detector_triggers[ifo], 'r')
|
|
111
|
+
insp_data_seglists[ifo] = select_segments_by_definer(
|
|
112
|
+
args.inspiral_segments,
|
|
113
|
+
segment_name=args.inspiral_data_read_name,
|
|
114
|
+
ifo=ifo)
|
|
115
|
+
insp_analysed_seglists[ifo] = select_segments_by_definer(
|
|
116
|
+
args.inspiral_segments,
|
|
117
|
+
segment_name=args.inspiral_data_analyzed_name,
|
|
118
|
+
ifo=ifo)
|
|
119
|
+
insp_data_seglists[ifo].coalesce()
|
|
120
|
+
insp_analysed_seglists[ifo].coalesce()
|
|
121
|
+
|
|
122
|
+
f = h5py.File(args.statmap_file, 'r')
|
|
123
|
+
stat = f['foreground/stat'][:]
|
|
124
|
+
|
|
125
|
+
bank_data = h5py.File(args.bank_file, 'r')
|
|
126
|
+
|
|
127
|
+
ifar_limit = args.ifar_thresh
|
|
128
|
+
# Get indices of all events which pass the IFAR threshold
|
|
129
|
+
event_ifars = f['foreground/ifar'][:]
|
|
130
|
+
events_to_read = np.count_nonzero(event_ifars > ifar_limit)
|
|
131
|
+
# Sort by IFAR, descending
|
|
132
|
+
event_idx = event_ifars.argsort()[::-1][:events_to_read]
|
|
133
|
+
# Times and tids need to be reset for this set of events:
|
|
134
|
+
times = {}
|
|
135
|
+
tids = {}
|
|
136
|
+
bank_ids = {}
|
|
137
|
+
|
|
138
|
+
ifo_list = f.attrs['ifos'].split(' ')
|
|
139
|
+
for ifo in ifo_list:
|
|
140
|
+
times[ifo] = f[f'foreground/{ifo}/time'][:][event_idx]
|
|
141
|
+
tids[ifo] = f[f'foreground/{ifo}/trigger_id'][:][event_idx]
|
|
142
|
+
bank_ids = f['foreground/template_id'][:][event_idx]
|
|
143
|
+
|
|
144
|
+
for curr_idx in range(event_idx.size):
|
|
145
|
+
params = mini.get_single_template_params(
|
|
146
|
+
curr_idx,
|
|
147
|
+
times,
|
|
148
|
+
bank_data,
|
|
149
|
+
bank_ids[curr_idx],
|
|
150
|
+
fsdt,
|
|
151
|
+
tids
|
|
152
|
+
)
|
|
153
|
+
|
|
154
|
+
# Extract approximant
|
|
155
|
+
try:
|
|
156
|
+
appx = params.pop('approximant')
|
|
157
|
+
except KeyError:
|
|
158
|
+
# approximant not stored in params, use default
|
|
159
|
+
appx = None
|
|
160
|
+
|
|
161
|
+
channel_name = ""
|
|
162
|
+
for ifo in ifo_list:
|
|
163
|
+
ifo_chname = resolve_td_option(
|
|
164
|
+
channel_opts[ifo],
|
|
165
|
+
segments.segment(params['mean_time'], params['mean_time'])
|
|
166
|
+
)
|
|
167
|
+
channel_name += ifo_chname + " "
|
|
168
|
+
|
|
169
|
+
single_temp_files = []
|
|
170
|
+
for ifo in ifo_list:
|
|
171
|
+
if params['mean_time'] not in insp_analysed_seglists[ifo]:
|
|
172
|
+
logging.info("Mean time %.3f not in segment list",
|
|
173
|
+
params['mean_time'])
|
|
174
|
+
continue
|
|
175
|
+
# Make single-template files to put into the XML file for upload
|
|
176
|
+
single_temp_files += mini.make_single_template_files(
|
|
177
|
+
workflow,
|
|
178
|
+
insp_segs,
|
|
179
|
+
ifo,
|
|
180
|
+
args.inspiral_data_read_name,
|
|
181
|
+
args.inspiral_data_analyzed_name,
|
|
182
|
+
params,
|
|
183
|
+
args.output_dir,
|
|
184
|
+
store_file=True,
|
|
185
|
+
tags=args.tags+['upload', str(curr_idx)],
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
mini.make_upload_files(
|
|
189
|
+
workflow,
|
|
190
|
+
psd_files,
|
|
191
|
+
single_temp_files,
|
|
192
|
+
xml_all,
|
|
193
|
+
curr_idx,
|
|
194
|
+
appx,
|
|
195
|
+
args.output_dir,
|
|
196
|
+
channel_name,
|
|
197
|
+
tags=args.tags+['upload', str(curr_idx)]
|
|
198
|
+
)
|
|
199
|
+
|
|
200
|
+
workflow.save()
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
""" Make a table of dq state information
|
|
3
|
+
"""
|
|
4
|
+
import sys
|
|
5
|
+
import argparse
|
|
6
|
+
import h5py as h5
|
|
7
|
+
import numpy as np
|
|
8
|
+
|
|
9
|
+
import pycbc
|
|
10
|
+
import pycbc.results
|
|
11
|
+
from pycbc.version import git_verbose_msg as version
|
|
12
|
+
|
|
13
|
+
parser = argparse.ArgumentParser()
|
|
14
|
+
parser.add_argument("--version", action="version", version=version)
|
|
15
|
+
parser.add_argument('--ifo', required=True)
|
|
16
|
+
parser.add_argument('--dq-file', required=True)
|
|
17
|
+
parser.add_argument('--verbose', action='count')
|
|
18
|
+
parser.add_argument('--output-file')
|
|
19
|
+
args = parser.parse_args()
|
|
20
|
+
|
|
21
|
+
dq_states = {
|
|
22
|
+
'dq_state_0': 'Clean',
|
|
23
|
+
'dq_state_1': 'DQ Flag',
|
|
24
|
+
'dq_state_2': 'Autogating',
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
f = h5.File(args.dq_file, 'r')
|
|
28
|
+
grp = f[args.ifo]['dq_segments']
|
|
29
|
+
|
|
30
|
+
livetimes = []
|
|
31
|
+
total_livetime = 0
|
|
32
|
+
for dq_state in dq_states:
|
|
33
|
+
livetime = grp[dq_state]['livetime'][()]
|
|
34
|
+
livetimes.append(livetime)
|
|
35
|
+
total_livetime += livetime
|
|
36
|
+
livetimes.append(total_livetime)
|
|
37
|
+
|
|
38
|
+
frac_livetimes = [lt / total_livetime for lt in livetimes]
|
|
39
|
+
state_names = list(dq_states.values()) + ['Total']
|
|
40
|
+
columns = [state_names, livetimes, frac_livetimes]
|
|
41
|
+
columns = [np.array(c) for c in columns]
|
|
42
|
+
col_names = ['DQ State', 'Livetime', '% of Livetime']
|
|
43
|
+
|
|
44
|
+
format_strings = [None, '0.0', '0.00%']
|
|
45
|
+
|
|
46
|
+
html_table = pycbc.results.html_table(columns, col_names,
|
|
47
|
+
page_size=len(state_names),
|
|
48
|
+
format_strings=format_strings)
|
|
49
|
+
title = f'{args.ifo} DQ State Livetimes'
|
|
50
|
+
caption = 'Table of DQ state livetimes'
|
|
51
|
+
|
|
52
|
+
pycbc.results.save_fig_with_metadata(
|
|
53
|
+
str(html_table), args.output_file, title=title,
|
|
54
|
+
caption=caption, cmd=' '.join(sys.argv))
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
""" Make a table of template bin information
|
|
3
|
+
"""
|
|
4
|
+
import sys
|
|
5
|
+
import argparse
|
|
6
|
+
import h5py as h5
|
|
7
|
+
import numpy as np
|
|
8
|
+
|
|
9
|
+
import pycbc
|
|
10
|
+
import pycbc.results
|
|
11
|
+
from pycbc.version import git_verbose_msg as version
|
|
12
|
+
|
|
13
|
+
parser = argparse.ArgumentParser()
|
|
14
|
+
parser.add_argument("--version", action="version", version=version)
|
|
15
|
+
parser.add_argument('--ifo', required=True)
|
|
16
|
+
parser.add_argument('--dq-file', required=True)
|
|
17
|
+
parser.add_argument('--verbose', action='count')
|
|
18
|
+
parser.add_argument('--output-file')
|
|
19
|
+
args = parser.parse_args()
|
|
20
|
+
|
|
21
|
+
f = h5.File(args.dq_file, 'r')
|
|
22
|
+
grp = f[args.ifo]['bins']
|
|
23
|
+
bin_names = list(grp.keys())
|
|
24
|
+
|
|
25
|
+
sngl_ranking = f.attrs['sngl_ranking']
|
|
26
|
+
sngl_thresh = f.attrs['sngl_ranking_threshold']
|
|
27
|
+
|
|
28
|
+
livetime = 0
|
|
29
|
+
seg_grp = f[args.ifo]['dq_segments']
|
|
30
|
+
for k in seg_grp.keys():
|
|
31
|
+
livetime += seg_grp[k]['livetime'][()]
|
|
32
|
+
|
|
33
|
+
num_templates = []
|
|
34
|
+
num_triggers = []
|
|
35
|
+
total_templates = 0
|
|
36
|
+
total_triggers = 0
|
|
37
|
+
for bin_name in bin_names:
|
|
38
|
+
bin_grp = grp[bin_name]
|
|
39
|
+
|
|
40
|
+
n_tmp = len(bin_grp['tids'][:])
|
|
41
|
+
num_templates.append(n_tmp)
|
|
42
|
+
total_templates += n_tmp
|
|
43
|
+
|
|
44
|
+
n_trig = bin_grp['num_triggers'][()]
|
|
45
|
+
num_triggers.append(n_trig)
|
|
46
|
+
total_triggers += n_trig
|
|
47
|
+
|
|
48
|
+
bin_names.append('Total')
|
|
49
|
+
num_triggers.append(total_triggers)
|
|
50
|
+
num_templates.append(total_templates)
|
|
51
|
+
frac_triggers = [n / total_triggers for n in num_triggers]
|
|
52
|
+
frac_templates = [n / total_templates for n in num_templates]
|
|
53
|
+
trigger_rate = [n / livetime for n in num_triggers]
|
|
54
|
+
|
|
55
|
+
col_names = ['Template Bin', 'Number of Templates', '% of Templates',
|
|
56
|
+
'Number of Loud Triggers', '% of Loud Triggers',
|
|
57
|
+
'Loud Trigger Rate (Hz)']
|
|
58
|
+
columns = [bin_names, num_templates, frac_templates,
|
|
59
|
+
num_triggers, frac_triggers, trigger_rate]
|
|
60
|
+
columns = [np.array(c) for c in columns]
|
|
61
|
+
|
|
62
|
+
format_strings = [None, '#', '0.000%', '#', '0.0%', '0.00E0']
|
|
63
|
+
|
|
64
|
+
html_table = pycbc.results.html_table(columns, col_names,
|
|
65
|
+
page_size=len(bin_names),
|
|
66
|
+
format_strings=format_strings)
|
|
67
|
+
title = f'{args.ifo} DQ Template Bin Information'
|
|
68
|
+
caption = 'Table of information about template bins ' \
|
|
69
|
+
+ 'used for DQ trigger rate calculations. ' \
|
|
70
|
+
+ 'Loud triggers are defined as those with ' \
|
|
71
|
+
+ f'{sngl_ranking} > {sngl_thresh}.'
|
|
72
|
+
|
|
73
|
+
pycbc.results.save_fig_with_metadata(
|
|
74
|
+
str(html_table), args.output_file, title=title,
|
|
75
|
+
caption=caption, cmd=' '.join(sys.argv))
|
|
@@ -77,7 +77,10 @@ ax2.set_ylabel('DQ Log Likelihood Penalty')
|
|
|
77
77
|
ax2.set_ylim(numpy.log(ymin), numpy.log(ymax))
|
|
78
78
|
|
|
79
79
|
# add meta data and save figure
|
|
80
|
-
plot_title = f'{ifo} DQ Trigger Rates'
|
|
80
|
+
plot_title = f'{ifo}:{args.dq_label} DQ Trigger Rates'
|
|
81
|
+
|
|
82
|
+
ax.set_title(plot_title)
|
|
83
|
+
|
|
81
84
|
plot_caption = 'The log likelihood correction \
|
|
82
85
|
during during each dq state for each template bin.'
|
|
83
86
|
pycbc.results.save_fig_with_metadata(
|