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.
Files changed (767) hide show
  1. {PyCBC-2.8.2 → PyCBC-2.8.4}/PKG-INFO +2 -2
  2. {PyCBC-2.8.2 → PyCBC-2.8.4}/PyCBC.egg-info/PKG-INFO +2 -2
  3. {PyCBC-2.8.2 → PyCBC-2.8.4}/PyCBC.egg-info/SOURCES.txt +3 -1
  4. {PyCBC-2.8.2 → PyCBC-2.8.4}/PyCBC.egg-info/requires.txt +3 -2
  5. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_hdf5_splitbank +30 -29
  6. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_make_sky_grid +23 -16
  7. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_multi_inspiral +133 -95
  8. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_grb_trig_combiner +1 -1
  9. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_make_offline_grb_workflow +28 -24
  10. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_page_tables +24 -17
  11. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_plot_chisq_veto +1 -1
  12. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_results_workflow +8 -5
  13. PyCBC-2.8.4/examples/multi_inspiral/check_gw170817_trigs.py +46 -0
  14. PyCBC-2.8.4/examples/multi_inspiral/clean.sh +1 -0
  15. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/multi_inspiral/faceon_faceaway.sh +2 -2
  16. PyCBC-2.8.4/examples/multi_inspiral/gw170817_h.sh +62 -0
  17. PyCBC-2.8.4/examples/multi_inspiral/gw170817_hl.sh +64 -0
  18. PyCBC-2.8.2/examples/multi_inspiral/run.sh → PyCBC-2.8.4/examples/multi_inspiral/gw170817_hlv.sh +15 -24
  19. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/coherent.py +14 -7
  20. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/eventmgr.py +192 -70
  21. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/resample.py +1 -1
  22. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/pnutils.py +2 -0
  23. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/pygrb_plotting_utils.py +1 -1
  24. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/pygrb_postprocessing_utils.py +1 -1
  25. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/scatter_histograms.py +1 -0
  26. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/version.py +11 -11
  27. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/autochisq.py +66 -51
  28. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/bank_chisq.py +10 -11
  29. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/bank.py +1 -1
  30. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/configuration.py +76 -29
  31. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/grb_utils.py +2 -3
  32. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/pegasus_workflow.py +15 -8
  33. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/segment.py +3 -1
  34. {PyCBC-2.8.2 → PyCBC-2.8.4}/setup.py +4 -3
  35. PyCBC-2.8.2/examples/multi_inspiral/check_gw170817_trigs.py +0 -37
  36. PyCBC-2.8.2/examples/multi_inspiral/clean.sh +0 -1
  37. {PyCBC-2.8.2 → PyCBC-2.8.4}/LICENSE +0 -0
  38. {PyCBC-2.8.2 → PyCBC-2.8.4}/MANIFEST.in +0 -0
  39. {PyCBC-2.8.2 → PyCBC-2.8.4}/PyCBC.egg-info/dependency_links.txt +0 -0
  40. {PyCBC-2.8.2 → PyCBC-2.8.4}/PyCBC.egg-info/top_level.txt +0 -0
  41. {PyCBC-2.8.2 → PyCBC-2.8.4}/README.md +0 -0
  42. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_add_statmap +0 -0
  43. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_apply_rerank +0 -0
  44. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_average_psd +0 -0
  45. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_bin_templates +0 -0
  46. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_bin_trigger_rates_dq +0 -0
  47. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_calculate_psd +0 -0
  48. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_coinc_findtrigs +0 -0
  49. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_coinc_hdfinjfind +0 -0
  50. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_coinc_mergetrigs +0 -0
  51. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_coinc_statmap +0 -0
  52. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_coinc_statmap_inj +0 -0
  53. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_combine_coincident_events +0 -0
  54. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_combine_statmap +0 -0
  55. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_cut_merge_triggers_to_tmpltbank +0 -0
  56. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_distribute_background_bins +0 -0
  57. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_dtphase +0 -0
  58. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_exclude_zerolag +0 -0
  59. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_fit_sngls_binned +0 -0
  60. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_fit_sngls_by_template +0 -0
  61. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_fit_sngls_over_multiparam +0 -0
  62. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_fit_sngls_over_param +0 -0
  63. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_fit_sngls_split_binned +0 -0
  64. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_followup_file +0 -0
  65. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_foreground_censor +0 -0
  66. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_get_loudest_params +0 -0
  67. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_make_bayestar_skymap +0 -0
  68. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_merge_psds +0 -0
  69. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_plot_kde_vals +0 -0
  70. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_prepare_xml_for_gracedb +0 -0
  71. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_reduce_template_bank +0 -0
  72. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_rerank_passthrough +0 -0
  73. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_sngls_findtrigs +0 -0
  74. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_sngls_pastro +0 -0
  75. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_sngls_statmap +0 -0
  76. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_sngls_statmap_inj +0 -0
  77. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_strip_injections +0 -0
  78. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_template_kde_calc +0 -0
  79. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_template_kde_max +0 -0
  80. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_template_recovery_hist +0 -0
  81. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/all_sky_search/pycbc_upload_single_event_to_gracedb +0 -0
  82. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_aligned_bank_cat +0 -0
  83. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_aligned_stoch_bank +0 -0
  84. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_bank_verification +0 -0
  85. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_brute_bank +0 -0
  86. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_coinc_bank2hdf +0 -0
  87. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_geom_aligned_2dstack +0 -0
  88. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_geom_aligned_bank +0 -0
  89. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_geom_nonspinbank +0 -0
  90. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/bank/pycbc_tmpltbank_to_chi_params +0 -0
  91. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/hwinj/pycbc_generate_hwinj +0 -0
  92. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/hwinj/pycbc_generate_hwinj_from_xml +0 -0
  93. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/hwinj/pycbc_insert_frame_hwinj +0 -0
  94. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/hwinj/pycbc_plot_hwinj +0 -0
  95. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference +0 -0
  96. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_create_fits +0 -0
  97. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_extract_samples +0 -0
  98. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_model_stats +0 -0
  99. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_monitor +0 -0
  100. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_acceptance_rate +0 -0
  101. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_acf +0 -0
  102. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_acl +0 -0
  103. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_dynesty_run +0 -0
  104. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_dynesty_traceplot +0 -0
  105. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_gelman_rubin +0 -0
  106. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_geweke +0 -0
  107. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_inj_recovery +0 -0
  108. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_mcmc_history +0 -0
  109. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_movie +0 -0
  110. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_posterior +0 -0
  111. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_pp +0 -0
  112. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_prior +0 -0
  113. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_samples +0 -0
  114. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_skymap +0 -0
  115. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_plot_thermodynamic_integrand +0 -0
  116. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_pp_table_summary +0 -0
  117. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_start_from_samples +0 -0
  118. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_inference_table_summary +0 -0
  119. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/pycbc_validate_test_posterior +0 -0
  120. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/inference/run_pycbc_inference +0 -0
  121. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_collate_triggers +0 -0
  122. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_collated_dq_trigger_rates +0 -0
  123. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_combine_dq_trigger_rates +0 -0
  124. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_combine_single_significance_fits +0 -0
  125. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_plot_combined_single_significance_fits +0 -0
  126. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_plot_single_significance_fits +0 -0
  127. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_single_significance_fits +0 -0
  128. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/live/pycbc_live_supervise_collated_trigger_fits +0 -0
  129. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_foreground_minifollowup +0 -0
  130. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_injection_minifollowup +0 -0
  131. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_page_coincinfo +0 -0
  132. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_page_injinfo +0 -0
  133. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_page_snglinfo +0 -0
  134. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_plot_chigram +0 -0
  135. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_plot_trigger_timeseries +0 -0
  136. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_single_template_plot +0 -0
  137. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_sngl_minifollowup +0 -0
  138. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/minifollowups/pycbc_upload_prep_minifollowup +0 -0
  139. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_banksim_plot_eff_fitting_factor +0 -0
  140. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_banksim_plot_fitting_factors +0 -0
  141. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_banksim_table_point_injs +0 -0
  142. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_create_html_snippet +0 -0
  143. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_faithsim_plots +0 -0
  144. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_ifar_catalog +0 -0
  145. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_mass_area_plot +0 -0
  146. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_mchirp_plots +0 -0
  147. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_banktriggerrate +0 -0
  148. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_coinc_snrchi +0 -0
  149. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_dq_table +0 -0
  150. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_fars_vs_stat +0 -0
  151. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_foreground +0 -0
  152. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_foundmissed +0 -0
  153. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_ifar +0 -0
  154. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_injtable +0 -0
  155. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_recovery +0 -0
  156. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_segments +0 -0
  157. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_segplot +0 -0
  158. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_segtable +0 -0
  159. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_sensitivity +0 -0
  160. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_snrchi +0 -0
  161. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_snrifar +0 -0
  162. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_snrratehist +0 -0
  163. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_template_bin_table +0 -0
  164. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_versioning +0 -0
  165. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_page_vetotable +0 -0
  166. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_background_coincs +0 -0
  167. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_bank_bins +0 -0
  168. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_bank_compression +0 -0
  169. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_bank_corner +0 -0
  170. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_dq_flag_likelihood +0 -0
  171. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_dq_likelihood_vs_time +0 -0
  172. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_dq_percentiles +0 -0
  173. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_gate_triggers +0 -0
  174. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_gating +0 -0
  175. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_hist +0 -0
  176. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_multiifo_dtphase +0 -0
  177. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_psd_file +0 -0
  178. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_psd_timefreq +0 -0
  179. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_qscan +0 -0
  180. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_range +0 -0
  181. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_range_vs_mtot +0 -0
  182. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_singles_timefreq +0 -0
  183. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_singles_vs_params +0 -0
  184. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_throughput +0 -0
  185. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_trigrate +0 -0
  186. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_vt_ratio +0 -0
  187. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/plotting/pycbc_plot_waveform +0 -0
  188. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/population/pycbc_multiifo_pastro +0 -0
  189. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/population/pycbc_population_plots +0 -0
  190. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/population/pycbc_population_rates +0 -0
  191. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_banksim +0 -0
  192. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_banksim_combine_banks +0 -0
  193. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_banksim_match_combine +0 -0
  194. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_banksim_skymax +0 -0
  195. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_compress_bank +0 -0
  196. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_condition_strain +0 -0
  197. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_convertinjfiletohdf +0 -0
  198. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_copy_output_map +0 -0
  199. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_create_injections +0 -0
  200. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_data_store +0 -0
  201. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_faithsim +0 -0
  202. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_faithsim_collect_results +0 -0
  203. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_fit_sngl_trigs +0 -0
  204. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_get_ffinal +0 -0
  205. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_gwosc_segment_query +0 -0
  206. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_hdf_splitinj +0 -0
  207. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_inj_cut +0 -0
  208. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_inspiral +0 -0
  209. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_inspiral_skymax +0 -0
  210. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_live +0 -0
  211. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_live_nagios_monitor +0 -0
  212. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_make_banksim +0 -0
  213. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_make_faithsim +0 -0
  214. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_make_html_page +0 -0
  215. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_make_skymap +0 -0
  216. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_merge_inj_hdf +0 -0
  217. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_optimal_snr +0 -0
  218. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_optimize_snr +0 -0
  219. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_process_sngls +0 -0
  220. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_randomize_inj_dist_by_optsnr +0 -0
  221. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_single_template +0 -0
  222. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_source_probability_offline +0 -0
  223. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_split_inspinj +0 -0
  224. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_splitbank +0 -0
  225. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_stageout_failed_workflow +0 -0
  226. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_submit_dax +0 -0
  227. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pycbc_upload_xml_to_gracedb +0 -0
  228. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_grb_inj_finder +0 -0
  229. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_grb_trig_cluster +0 -0
  230. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_efficiency +0 -0
  231. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_exclusion_dist_table +0 -0
  232. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_grb_info_table +0 -0
  233. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_minifollowups +0 -0
  234. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_plot_coh_ifosnr +0 -0
  235. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_plot_injs_results +0 -0
  236. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_plot_null_stats +0 -0
  237. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_plot_skygrid +0 -0
  238. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_plot_snr_timeseries +0 -0
  239. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/pygrb/pycbc_pygrb_plot_stats_distribution +0 -0
  240. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflow_comparisons/offline_search/pycbc_combine_injection_comparisons +0 -0
  241. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflow_comparisons/offline_search/pycbc_injection_set_comparison +0 -0
  242. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflow_comparisons/offline_search/pycbc_plot_injections_found_both_workflows +0 -0
  243. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflow_comparisons/offline_search/pycbc_plot_injections_missed_one_workflow +0 -0
  244. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflow_comparisons/offline_search/pycbc_plot_vt_ratio_vs_ifar +0 -0
  245. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_bank_compression_workflow +0 -0
  246. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_bank_verifier_workflow +0 -0
  247. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_faithsim_workflow +0 -0
  248. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_inference_inj_workflow +0 -0
  249. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_inference_plots_workflow +0 -0
  250. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_inference_workflow +0 -0
  251. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_offline_search_workflow +0 -0
  252. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_psd_estimation_workflow +0 -0
  253. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_sbank_workflow +0 -0
  254. {PyCBC-2.8.2 → PyCBC-2.8.4}/bin/workflows/pycbc_make_uberbank_workflow +0 -0
  255. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/banksim/injection0.xml +0 -0
  256. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/banksim/run.sh +0 -0
  257. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/cal/foton_filter_esd_saturation/pycbc_check_esd_saturation.sh +0 -0
  258. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/cal/foton_filter_esd_saturation/pycbc_check_pcal_saturation.sh +0 -0
  259. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/cal/foton_filter_esd_saturation/run_pcal_saturation_example.sh +0 -0
  260. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/catalog/data.py +0 -0
  261. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/catalog/stat.py +0 -0
  262. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/catalog/what.py +0 -0
  263. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/dataquality/hwinj.py +0 -0
  264. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/dataquality/on.py +0 -0
  265. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/detector/ant.py +0 -0
  266. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/detector/custom.py +0 -0
  267. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/detector/delay.py +0 -0
  268. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/detector/loc.py +0 -0
  269. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/detector/travel.py +0 -0
  270. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/distributions/list_distributions.py +0 -0
  271. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/distributions/mass_examples.py +0 -0
  272. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/distributions/mchirp_q_from_uniform_m1m2_example.py +0 -0
  273. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/distributions/sampling_from_config_example.py +0 -0
  274. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/distributions/spin_examples.py +0 -0
  275. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/distributions/spin_spatial_distr_example.py +0 -0
  276. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/faith/injection0.xml +0 -0
  277. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/faith/pegasus_workflow_create.sh +0 -0
  278. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/faith/pegasus_workflow_submit.sh +0 -0
  279. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/faith/run.sh +0 -0
  280. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/filter/chisq.py +0 -0
  281. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/filter/fir.py +0 -0
  282. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/filter/pass.py +0 -0
  283. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/filter/snr.py +0 -0
  284. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/gw150914/audio.py +0 -0
  285. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/gw150914/gw150914_h1_snr.py +0 -0
  286. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/gw150914/gw150914_shape.py +0 -0
  287. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/analytic-normal2d/make_movie.sh +0 -0
  288. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/analytic-normal2d/plot.sh +0 -0
  289. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/analytic-normal2d/run.sh +0 -0
  290. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/bbh-injection/make_injection.sh +0 -0
  291. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/bbh-injection/run.sh +0 -0
  292. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/bbh-injection/run_test.sh +0 -0
  293. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/gw150914/plot.sh +0 -0
  294. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/gw150914/run.sh +0 -0
  295. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/gw150914/run_test.sh +0 -0
  296. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/hierarchical/make_injections.sh +0 -0
  297. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/hierarchical/run.sh +0 -0
  298. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/hierarchical/run_test.sh +0 -0
  299. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/lisa_smbhb_inj/injection_smbhb.sh +0 -0
  300. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/lisa_smbhb_inj/plot.sh +0 -0
  301. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/lisa_smbhb_inj/run.sh +0 -0
  302. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/lisa_smbhb_ldc/advanced_plot.py +0 -0
  303. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/lisa_smbhb_ldc/get.sh +0 -0
  304. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/lisa_smbhb_ldc/plot.sh +0 -0
  305. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/lisa_smbhb_ldc/run.sh +0 -0
  306. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/list_parameters.py +0 -0
  307. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/margtime/get.sh +0 -0
  308. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/margtime/run.sh +0 -0
  309. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/margtime/run_inj.sh +0 -0
  310. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/multisignal/get.sh +0 -0
  311. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/multisignal/make_injections.sh +0 -0
  312. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/multisignal/rel.sh +0 -0
  313. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/multisignal/run.sh +0 -0
  314. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/multisignal/single.sh +0 -0
  315. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/relative/get.sh +0 -0
  316. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/relative/plot.sh +0 -0
  317. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/relative/run.sh +0 -0
  318. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/relmarg/get.sh +0 -0
  319. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/relmarg/run.sh +0 -0
  320. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/samplers/run.sh +0 -0
  321. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/single/get.sh +0 -0
  322. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/single/plot.sh +0 -0
  323. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/single/run.sh +0 -0
  324. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/single/run_instant.sh +0 -0
  325. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inference/single/run_marg.sh +0 -0
  326. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inspiral/check_GW150914_detection.py +0 -0
  327. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inspiral/clean.sh +0 -0
  328. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/inspiral/run.sh +0 -0
  329. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/live/check_results.py +0 -0
  330. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/live/generate_injections.py +0 -0
  331. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/live/make_fit_coeffs.py +0 -0
  332. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/live/make_singles_significance_fits.py +0 -0
  333. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/live/run.sh +0 -0
  334. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/make_skymap/GW150914.sh +0 -0
  335. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/make_skymap/GW170817.sh +0 -0
  336. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/make_skymap/simulated_data.sh +0 -0
  337. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/multi_inspiral/check_faceon_faceaway_trigs.py +0 -0
  338. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/noise/frequency.py +0 -0
  339. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/noise/timeseries.py +0 -0
  340. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/overlap.py +0 -0
  341. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/psd/analytic.py +0 -0
  342. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/psd/estimate.py +0 -0
  343. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/psd/read.py +0 -0
  344. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/search/bank.sh +0 -0
  345. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/search/check_job.py +0 -0
  346. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/search/gen.sh +0 -0
  347. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/search/get.sh +0 -0
  348. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/search/master.sh +0 -0
  349. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/search/stats.sh +0 -0
  350. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/search/submit.sh +0 -0
  351. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/bank_workflow_test/gen.sh +0 -0
  352. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/cleanOutput.sh +0 -0
  353. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/compress_workflow/gen.sh +0 -0
  354. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/make_cache.sh +0 -0
  355. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testAligned.sh +0 -0
  356. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testAligned2.sh +0 -0
  357. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testAligned3.sh +0 -0
  358. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testNonspin.sh +0 -0
  359. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testNonspin2.sh +0 -0
  360. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testNonspin3.sh +0 -0
  361. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testStoch.sh +0 -0
  362. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testStoch2.sh +0 -0
  363. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testStoch3.sh +0 -0
  364. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/tmpltbank/testStoch4.sh +0 -0
  365. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/add_waveform.py +0 -0
  366. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/higher_modes.py +0 -0
  367. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/match_waveform.py +0 -0
  368. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/plot_detwaveform.py +0 -0
  369. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/plot_fd_td.py +0 -0
  370. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/plot_freq.py +0 -0
  371. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/plot_phase.py +0 -0
  372. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/plot_waveform.py +0 -0
  373. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/waveform/what_waveform.py +0 -0
  374. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/data_checker/daily_test.py +0 -0
  375. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/data_checker/get_data_example.py +0 -0
  376. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/data_checker/run_daily_test.sh +0 -0
  377. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/data_checker/run_get_data_example.sh +0 -0
  378. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/dayhopecheck/dayhopecheck.py +0 -0
  379. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/dayhopecheck/run_dayhopecheck.sh +0 -0
  380. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/generic/multilevel_subworkflow_data/run.sh +0 -0
  381. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/generic/multilevel_subworkflow_data/simple.py +0 -0
  382. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/generic/simple_subworkflow_data/run.sh +0 -0
  383. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/generic/simple_subworkflow_data/simple.py +0 -0
  384. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/inference/bbh_inj-dynesty/create_inj_workflow.sh +0 -0
  385. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/inference/gw150914_gw170814-dynesty/create_workflow.sh +0 -0
  386. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/inference/gw150914_gw170814-emcee_pt/create_workflow.sh +0 -0
  387. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/inference/small_test/gen.sh +0 -0
  388. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/pygrb/ER7/run_er7_pygrb_offline.sh +0 -0
  389. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/pygrb/ER8/run_er8_pygrb_offline.sh +0 -0
  390. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/pygrb/ER8/run_er8_pygrb_online.sh +0 -0
  391. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/pygrb/S6/run_s6_pygrb.sh +0 -0
  392. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/quickstart/run.sh +0 -0
  393. {PyCBC-2.8.2 → PyCBC-2.8.4}/examples/workflow/quickstart/simple.py +0 -0
  394. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/__init__.py +0 -0
  395. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/_version.py +0 -0
  396. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/_version_helper.py +0 -0
  397. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/bin_utils.py +0 -0
  398. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/boundaries.py +0 -0
  399. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/catalog/__init__.py +0 -0
  400. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/catalog/catalog.py +0 -0
  401. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/conversions.py +0 -0
  402. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/coordinates/__init__.py +0 -0
  403. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/coordinates/base.py +0 -0
  404. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/coordinates/space.py +0 -0
  405. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/cosmology.py +0 -0
  406. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/detector/__init__.py +0 -0
  407. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/detector/ground.py +0 -0
  408. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/detector/space.py +0 -0
  409. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/__init__.py +0 -0
  410. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/angular.py +0 -0
  411. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/arbitrary.py +0 -0
  412. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/bounded.py +0 -0
  413. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/constraints.py +0 -0
  414. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/external.py +0 -0
  415. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/fixedsamples.py +0 -0
  416. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/gaussian.py +0 -0
  417. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/joint.py +0 -0
  418. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/mass.py +0 -0
  419. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/power_law.py +0 -0
  420. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/qnm.py +0 -0
  421. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/sky_location.py +0 -0
  422. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/spins.py +0 -0
  423. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/uniform.py +0 -0
  424. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/uniform_log.py +0 -0
  425. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/distributions/utils.py +0 -0
  426. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/dq.py +0 -0
  427. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/__init__.py +0 -0
  428. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/coinc.py +0 -0
  429. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/coinc_rate.py +0 -0
  430. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/cuts.py +0 -0
  431. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/eventmgr_cython.pyx +0 -0
  432. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/ranking.py +0 -0
  433. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/significance.py +0 -0
  434. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/simd_threshold_ccode.cpp +0 -0
  435. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/simd_threshold_cython.pyx +0 -0
  436. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/single.py +0 -0
  437. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/stat.py +0 -0
  438. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/threshold_cpu.py +0 -0
  439. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/threshold_cuda.py +0 -0
  440. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/threshold_cupy.py +0 -0
  441. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/trigger_fits.py +0 -0
  442. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/triggers.py +0 -0
  443. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/events/veto.py +0 -0
  444. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/__init__.py +0 -0
  445. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/backend_cpu.py +0 -0
  446. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/backend_cuda.py +0 -0
  447. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/backend_cupy.py +0 -0
  448. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/backend_mkl.py +0 -0
  449. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/backend_support.py +0 -0
  450. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/class_api.py +0 -0
  451. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/core.py +0 -0
  452. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/cuda_pyfft.py +0 -0
  453. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/cufft.py +0 -0
  454. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/cupyfft.py +0 -0
  455. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/fft_callback.py +0 -0
  456. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/fftw.py +0 -0
  457. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/fftw_pruned.py +0 -0
  458. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/fftw_pruned_cython.pyx +0 -0
  459. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/func_api.py +0 -0
  460. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/mkl.py +0 -0
  461. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/npfft.py +0 -0
  462. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/fft/parser_support.py +0 -0
  463. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/__init__.py +0 -0
  464. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/autocorrelation.py +0 -0
  465. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/fotonfilter.py +0 -0
  466. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/matchedfilter.py +0 -0
  467. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/matchedfilter_cpu.pyx +0 -0
  468. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/matchedfilter_cuda.py +0 -0
  469. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/matchedfilter_cupy.py +0 -0
  470. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/matchedfilter_numpy.py +0 -0
  471. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/qtransform.py +0 -0
  472. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/simd_correlate.py +0 -0
  473. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/simd_correlate_ccode.cpp +0 -0
  474. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/simd_correlate_cython.pyx +0 -0
  475. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/filter/zpk.py +0 -0
  476. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/frame/__init__.py +0 -0
  477. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/frame/frame.py +0 -0
  478. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/frame/gwosc.py +0 -0
  479. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/frame/store.py +0 -0
  480. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/__init__.py +0 -0
  481. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/burn_in.py +0 -0
  482. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/entropy.py +0 -0
  483. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/evidence.py +0 -0
  484. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/gelman_rubin.py +0 -0
  485. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/geweke.py +0 -0
  486. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/__init__.py +0 -0
  487. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/base_hdf.py +0 -0
  488. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/base_mcmc.py +0 -0
  489. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/base_multitemper.py +0 -0
  490. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/base_nested_sampler.py +0 -0
  491. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/base_sampler.py +0 -0
  492. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/cpnest.py +0 -0
  493. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/dynesty.py +0 -0
  494. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/emcee.py +0 -0
  495. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/emcee_pt.py +0 -0
  496. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/epsie.py +0 -0
  497. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/multinest.py +0 -0
  498. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/nessai.py +0 -0
  499. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/posterior.py +0 -0
  500. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/ptemcee.py +0 -0
  501. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/snowline.py +0 -0
  502. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/txt.py +0 -0
  503. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/io/ultranest.py +0 -0
  504. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/jump/__init__.py +0 -0
  505. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/jump/angular.py +0 -0
  506. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/jump/bounded_normal.py +0 -0
  507. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/jump/discrete.py +0 -0
  508. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/jump/normal.py +0 -0
  509. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/__init__.py +0 -0
  510. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/analytic.py +0 -0
  511. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/base.py +0 -0
  512. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/base_data.py +0 -0
  513. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/brute_marg.py +0 -0
  514. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/data_utils.py +0 -0
  515. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/gated_gaussian_noise.py +0 -0
  516. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/gaussian_noise.py +0 -0
  517. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/hierarchical.py +0 -0
  518. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/marginalized_gaussian_noise.py +0 -0
  519. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/relbin.py +0 -0
  520. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/relbin_cpu.pyx +0 -0
  521. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/single_template.py +0 -0
  522. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/models/tools.py +0 -0
  523. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/option_utils.py +0 -0
  524. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/__init__.py +0 -0
  525. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/base.py +0 -0
  526. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/base_cube.py +0 -0
  527. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/base_mcmc.py +0 -0
  528. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/base_multitemper.py +0 -0
  529. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/cpnest.py +0 -0
  530. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/dummy.py +0 -0
  531. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/dynesty.py +0 -0
  532. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/emcee.py +0 -0
  533. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/emcee_pt.py +0 -0
  534. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/epsie.py +0 -0
  535. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/games.py +0 -0
  536. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/multinest.py +0 -0
  537. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/nessai.py +0 -0
  538. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/ptemcee.py +0 -0
  539. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/refine.py +0 -0
  540. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/snowline.py +0 -0
  541. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inference/sampler/ultranest.py +0 -0
  542. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inject/__init__.py +0 -0
  543. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inject/inject.py +0 -0
  544. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/inject/injfilterrejector.py +0 -0
  545. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/io/__init__.py +0 -0
  546. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/io/gracedb.py +0 -0
  547. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/io/hdf.py +0 -0
  548. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/io/ligolw.py +0 -0
  549. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/io/live.py +0 -0
  550. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/io/record.py +0 -0
  551. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/libutils.py +0 -0
  552. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/live/__init__.py +0 -0
  553. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/live/significance_fits.py +0 -0
  554. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/live/snr_optimizer.py +0 -0
  555. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/live/supervision.py +0 -0
  556. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/mchirp_area.py +0 -0
  557. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/neutron_stars/__init__.py +0 -0
  558. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/neutron_stars/eos_utils.py +0 -0
  559. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/neutron_stars/ns_data/equil_2H.dat +0 -0
  560. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/neutron_stars/pg_isso_solver.py +0 -0
  561. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/noise/__init__.py +0 -0
  562. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/noise/gaussian.py +0 -0
  563. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/noise/reproduceable.py +0 -0
  564. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/opt.py +0 -0
  565. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/pool.py +0 -0
  566. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/__init__.py +0 -0
  567. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/fgmc_functions.py +0 -0
  568. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/fgmc_laguerre.py +0 -0
  569. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/fgmc_plots.py +0 -0
  570. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/live_pastro.py +0 -0
  571. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/live_pastro_utils.py +0 -0
  572. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/population_models.py +0 -0
  573. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/rates_functions.py +0 -0
  574. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/population/scale_injections.py +0 -0
  575. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/psd/__init__.py +0 -0
  576. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/psd/analytical.py +0 -0
  577. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/psd/analytical_space.py +0 -0
  578. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/psd/estimate.py +0 -0
  579. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/psd/read.py +0 -0
  580. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/psd/variation.py +0 -0
  581. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/rate.py +0 -0
  582. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/__init__.py +0 -0
  583. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/color.py +0 -0
  584. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/dq.py +0 -0
  585. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/followup.py +0 -0
  586. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/layout.py +0 -0
  587. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/metadata.py +0 -0
  588. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/mpld3_utils.py +0 -0
  589. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/plot.py +0 -0
  590. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/psd.py +0 -0
  591. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/render.py +0 -0
  592. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/snr.py +0 -0
  593. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/css/bootstrap/3.3.2/bootstrap.min.css +0 -0
  594. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/css/bootstrap.min.css +0 -0
  595. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/css/fancybox/2.1.5/jquery.fancybox.css +0 -0
  596. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/css/pycbc/orange.css +0 -0
  597. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/css/pycbc/red.css +0 -0
  598. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Light.css +0 -0
  599. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Light.eot +0 -0
  600. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Light.html +0 -0
  601. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Light.ttf +0 -0
  602. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Light.woff +0 -0
  603. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Semibold.css +0 -0
  604. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Semibold.eot +0 -0
  605. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Semibold.html +0 -0
  606. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Semibold.ttf +0 -0
  607. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/fonts/Lato-Semibold.woff +0 -0
  608. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/bootstrap/3.3.2/bootstrap.min.js +0 -0
  609. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/bootstrap.min.js +0 -0
  610. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/fancybox/2.1.5/fancybox-orange.js +0 -0
  611. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/fancybox/2.1.5/jquery.fancybox.js +0 -0
  612. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/fancybox/2.1.5/jquery.fancybox.pack.js +0 -0
  613. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/jquery/1.10.2/jquery-1.10.2.min.js +0 -0
  614. {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
  615. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/static/js/jquery.min.js +0 -0
  616. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/str_utils.py +0 -0
  617. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/table_utils.py +0 -0
  618. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/files/file_default.html +0 -0
  619. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/files/file_glitchgram.html +0 -0
  620. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/files/file_img.html +0 -0
  621. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/files/file_pre.html +0 -0
  622. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/files/file_tmplt.html +0 -0
  623. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/orange.html +0 -0
  624. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/red.html +0 -0
  625. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/wells/sitemap.html +0 -0
  626. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/templates/wells/two_column.html +0 -0
  627. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/results/versioning.py +0 -0
  628. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/scheme.py +0 -0
  629. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/sensitivity.py +0 -0
  630. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/strain/__init__.py +0 -0
  631. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/strain/calibration.py +0 -0
  632. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/strain/gate.py +0 -0
  633. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/strain/lines.py +0 -0
  634. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/strain/recalibrate.py +0 -0
  635. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/strain/strain.py +0 -0
  636. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/__init__.py +0 -0
  637. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/bank_conversions.py +0 -0
  638. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/bank_output_utils.py +0 -0
  639. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/brute_force_methods.py +0 -0
  640. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/calc_moments.py +0 -0
  641. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/coord_utils.py +0 -0
  642. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/lambda_mapping.py +0 -0
  643. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/lattice_utils.py +0 -0
  644. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/option_utils.py +0 -0
  645. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/partitioned_bank.py +0 -0
  646. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/tmpltbank/sky_grid.py +0 -0
  647. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/transforms.py +0 -0
  648. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/__init__.py +0 -0
  649. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/aligned.py +0 -0
  650. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/array.py +0 -0
  651. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/array_cpu.pyx +0 -0
  652. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/array_cuda.py +0 -0
  653. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/array_cupy.py +0 -0
  654. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/config.py +0 -0
  655. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/frequencyseries.py +0 -0
  656. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/optparse.py +0 -0
  657. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/types/timeseries.py +0 -0
  658. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/__init__.py +0 -0
  659. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/chisq.py +0 -0
  660. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/chisq_cpu.pyx +0 -0
  661. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/chisq_cuda.py +0 -0
  662. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/chisq_cupy.py +0 -0
  663. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/vetoes/sgchisq.py +0 -0
  664. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/SpinTaylorF2.py +0 -0
  665. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/__init__.py +0 -0
  666. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/compress.py +0 -0
  667. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/decompress_cpu.py +0 -0
  668. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/decompress_cpu_ccode.cpp +0 -0
  669. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/decompress_cpu_cython.pyx +0 -0
  670. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/decompress_cuda.py +0 -0
  671. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/decompress_cupy.py +0 -0
  672. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/generator.py +0 -0
  673. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/multiband.py +0 -0
  674. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/nltides.py +0 -0
  675. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/parameters.py +0 -0
  676. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/plugin.py +0 -0
  677. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/premerger.py +0 -0
  678. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/pycbc_phenomC_tmplt.py +0 -0
  679. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/ringdown.py +0 -0
  680. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/sinegauss.py +0 -0
  681. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/spa_tmplt.py +0 -0
  682. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/spa_tmplt_cpu.pyx +0 -0
  683. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/spa_tmplt_cuda.py +0 -0
  684. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/spa_tmplt_cupy.py +0 -0
  685. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/supernovae.py +0 -0
  686. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/utils.py +0 -0
  687. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/utils_cpu.pyx +0 -0
  688. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/utils_cuda.py +0 -0
  689. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/utils_cupy.py +0 -0
  690. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/waveform.py +0 -0
  691. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/waveform/waveform_modes.py +0 -0
  692. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/__init__.py +0 -0
  693. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/coincidence.py +0 -0
  694. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/configparser_test.py +0 -0
  695. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/core.py +0 -0
  696. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/datafind.py +0 -0
  697. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/dq.py +0 -0
  698. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/inference_followups.py +0 -0
  699. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/injection.py +0 -0
  700. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/jobsetup.py +0 -0
  701. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/matched_filter.py +0 -0
  702. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/minifollowups.py +0 -0
  703. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/pegasus_files/pegasus-properties.conf +0 -0
  704. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/pegasus_sites.py +0 -0
  705. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/plotting.py +0 -0
  706. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/psd.py +0 -0
  707. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/psdfiles.py +0 -0
  708. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/splittable.py +0 -0
  709. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/tmpltbank.py +0 -0
  710. {PyCBC-2.8.2 → PyCBC-2.8.4}/pycbc/workflow/versioning.py +0 -0
  711. {PyCBC-2.8.2 → PyCBC-2.8.4}/pyproject.toml +0 -0
  712. {PyCBC-2.8.2 → PyCBC-2.8.4}/pytest.ini +0 -0
  713. {PyCBC-2.8.2 → PyCBC-2.8.4}/setup.cfg +0 -0
  714. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/bankvetotest.py +0 -0
  715. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/fft_base.py +0 -0
  716. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/lalsim.py +0 -0
  717. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_array.py +0 -0
  718. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_array_lal.py +0 -0
  719. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_autochisq.py +0 -0
  720. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_calibration.py +0 -0
  721. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_chisq.py +0 -0
  722. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_coinc_stat.py +0 -0
  723. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_conversions.py +0 -0
  724. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_coordinates_space.py +0 -0
  725. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_correlate.py +0 -0
  726. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_cuts.py +0 -0
  727. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_detector.py +0 -0
  728. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_distributions.py +0 -0
  729. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_dq.py +0 -0
  730. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_fft_mkl_threaded.py +0 -0
  731. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_fft_unthreaded.py +0 -0
  732. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_fftw_openmp.py +0 -0
  733. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_fftw_pthreads.py +0 -0
  734. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_frame.py +0 -0
  735. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_frequencyseries.py +0 -0
  736. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_infmodel.py +0 -0
  737. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_injection.py +0 -0
  738. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_io_live.py +0 -0
  739. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_live_coinc_compare.py +0 -0
  740. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_matchedfilter.py +0 -0
  741. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_noise.py +0 -0
  742. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_pnutils.py +0 -0
  743. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_psd.py +0 -0
  744. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_resample.py +0 -0
  745. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_schemes.py +0 -0
  746. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_significance_module.py +0 -0
  747. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_skymax.py +0 -0
  748. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_spatmplt.py +0 -0
  749. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_strain.py +0 -0
  750. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_threshold.py +0 -0
  751. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_timeseries.py +0 -0
  752. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_tmpltbank.py +0 -0
  753. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_transforms.py +0 -0
  754. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_waveform.py +0 -0
  755. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/test_waveform_utils.py +0 -0
  756. {PyCBC-2.8.2 → PyCBC-2.8.4}/test/utils.py +0 -0
  757. {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/benchmarking/absolute_times.py +0 -0
  758. {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/static/hooks/hook-pycbc.py +0 -0
  759. {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/static/runtime-scipy.py +0 -0
  760. {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/static/runtime-tkinter.py +0 -0
  761. {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/timing/arr_perf.py +0 -0
  762. {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/timing/banksim/banksim.py +0 -0
  763. {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/timing/correlate_perf.py +0 -0
  764. {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/timing/fft_perf.py +0 -0
  765. {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/timing/match_perf.py +0 -0
  766. {PyCBC-2.8.2 → PyCBC-2.8.4}/tools/timing/wav_perf.py +0 -0
  767. {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.2
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.2
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.2
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.2
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/run.sh
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>=5.0.8
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!=7.2
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 into
21
- smaller banks where the number of smaller banks is a user input
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='*', default=None,
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", default=None,
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
- raise RuntimeError("Can't supply a random seed if not sorting randomly!")
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
- raise RuntimeError("Must specify either output filenames or a prefix!")
74
+ parser.error("Must specify either output filenames or a prefix!")
74
75
 
75
76
  if args.output_filenames and args.output_prefix:
76
- raise RuntimeError("Can't specify both output filenames and a prefix")
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
- # Split the templates in the bank taken as input into the smaller banks
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
- args.number_of_banks = len(args.output_filenames)
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
- num_per_file = args.templates_per_bank
113
- num_files = int(templates[:].size / num_per_file)
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
- start_idx = ii * num_per_file
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
- sky_points = np.zeros((1, 2))
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
- # Generate the sky grid centered at the North pole
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(args):
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 most background triggers 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, args.segment_length[args.instruments[0]]
63
- n_ifos = len(args.instruments)
64
- if args.do_shortslides and n_ifos > 1:
65
- stride_dur = args.segment_length[args.instruments[0]]/2
66
- num_slides = np.int32(1 +
67
- np.floor(stride_dur /
68
- (args.slide_shift*(n_ifos-1))))
69
- assert np.logical_and(num_slides >= low, num_slides <= upp), \
70
- "the combination (slideshift, segment_dur)"\
71
- f" = ({args.slide_shift:.2f},{stride_dur*2:.2f})"\
72
- f" goes over the allowed upper bound {upp}"
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 Shortslides
340
- num_slides = slide_limiter(args)
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 len(args.instruments) > 1 and \
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"({len(args.instruments)}) because this would "
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': int,
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 = sorted(network_out_vals.keys())
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.info(
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 segment %d/%d", s_num + 1, len(segments[ifo])
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.info(
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.info("Analyzing slide %d/%d", slide, num_slides)
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.info(
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
- # to be in (0, len(snr_dict[ifo]))
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 triggers that are coincident (in geocent time) in
727
- # multiple IFOs. If a single IFO analysis then just use the
728
- # indices from that IFO, i.e., IFO 0; otherwise, this
729
- # method finds coincidences and applies the single IFO cut,
730
- # namely, triggers must have SNR >= args.sngl_snr_threshold
731
- # in at least args.nifo_sngl_snr_threshold IFOs.
732
- if nifo > 1:
733
- coinc_idx = coh.get_coinc_indexes(
734
- idx_dict, time_delay_idx[slide][position_index],
735
- args.nifo_sngl_snr_threshold
736
- )
737
- else:
738
- coinc_idx = (
739
- idx_dict[args.instruments[0]]
740
- - time_delay_idx[slide][position_index][
741
- args.instruments[0]
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 to have them at the IFOs
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 coincident and coherent SNR.
757
- # First check there is enough data to compute the SNRs.
758
- if len(coinc_idx) != 0 and nifo > 1:
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.info(
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.info(
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.info("No coincident triggers were found")
822
+ logging.debug("No coincident triggers were found")
791
823
  # If there are triggers above coinc threshold and more
792
- # than 2 IFOs, then calculate the coherent statistics for
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 > 2:
796
- logging.info("Calculating their coherent statistics")
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.info(
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.info(
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.info(
953
+ logging.debug(
922
954
  "%d triggers above null threshold", len(null)
923
955
  )
924
956
  if len(coinc_idx) != 0:
925
- logging.info(
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 to far
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
- chisq[ifo], chisq_dof[ifo] = power_chisq.values(
957
- corr_dict[ifo],
958
- coherent_ifo_trigs[ifo] / norm_dict[ifo],
959
- norm_dict[ifo],
960
- stilde[ifo].psd,
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 > 2:
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] / norm_dict[ifo],
1019
- norm_dict[ifo],
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] / norm_dict[ifo],
1067
+ snr_dict[ifo],
1028
1068
  coinc_idx_det_frame[ifo],
1029
1069
  template,
1030
1070
  stilde[ifo].psd,
1031
- norm_dict[ifo],
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 > 2:
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.info("Clustering slide %d", slide)
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
  )