PyCBC 2.1.3__tar.gz → 2.1.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 (713) hide show
  1. {PyCBC-2.1.3 → PyCBC-2.1.4}/PKG-INFO +2 -2
  2. {PyCBC-2.1.3 → PyCBC-2.1.4}/PyCBC.egg-info/PKG-INFO +2 -2
  3. {PyCBC-2.1.3 → PyCBC-2.1.4}/PyCBC.egg-info/SOURCES.txt +2 -0
  4. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/live/pycbc_live_combine_single_fits +69 -52
  5. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/live/pycbc_live_plot_combined_single_fits +20 -25
  6. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/live/pycbc_live_plot_single_trigger_fits +65 -49
  7. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/live/pycbc_live_single_trigger_fits +92 -61
  8. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_live +51 -3
  9. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_make_skymap +6 -0
  10. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_optimize_snr +51 -237
  11. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/live/run.sh +15 -1
  12. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/coinc.py +8 -0
  13. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/io/live.py +0 -2
  14. PyCBC-2.1.4/pycbc/live/__init__.py +5 -0
  15. PyCBC-2.1.4/pycbc/live/snr_optimizer.py +404 -0
  16. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/psd/variation.py +204 -16
  17. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/scheme.py +14 -11
  18. PyCBC-2.1.4/pycbc/version.py +24 -0
  19. {PyCBC-2.1.3 → PyCBC-2.1.4}/setup.py +1 -1
  20. PyCBC-2.1.3/pycbc/version.py +0 -24
  21. {PyCBC-2.1.3 → PyCBC-2.1.4}/LICENSE +0 -0
  22. {PyCBC-2.1.3 → PyCBC-2.1.4}/MANIFEST.in +0 -0
  23. {PyCBC-2.1.3 → PyCBC-2.1.4}/PyCBC.egg-info/dependency_links.txt +0 -0
  24. {PyCBC-2.1.3 → PyCBC-2.1.4}/PyCBC.egg-info/requires.txt +0 -0
  25. {PyCBC-2.1.3 → PyCBC-2.1.4}/PyCBC.egg-info/top_level.txt +0 -0
  26. {PyCBC-2.1.3 → PyCBC-2.1.4}/README.md +0 -0
  27. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_add_statmap +0 -0
  28. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_apply_rerank +0 -0
  29. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_average_psd +0 -0
  30. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_bin_trigger_rates_dq +0 -0
  31. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_calculate_dq +0 -0
  32. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_calculate_dqflag +0 -0
  33. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_calculate_psd +0 -0
  34. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_coinc_findtrigs +0 -0
  35. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_coinc_hdfinjfind +0 -0
  36. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_coinc_mergetrigs +0 -0
  37. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_coinc_statmap +0 -0
  38. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_coinc_statmap_inj +0 -0
  39. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_combine_coincident_events +0 -0
  40. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_combine_statmap +0 -0
  41. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_cut_merge_triggers_to_tmpltbank +0 -0
  42. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_distribute_background_bins +0 -0
  43. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_dtphase +0 -0
  44. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_exclude_zerolag +0 -0
  45. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_fit_sngls_binned +0 -0
  46. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_fit_sngls_by_template +0 -0
  47. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_fit_sngls_over_multiparam +0 -0
  48. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_fit_sngls_over_param +0 -0
  49. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_fit_sngls_split_binned +0 -0
  50. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_followup_file +0 -0
  51. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_foreground_censor +0 -0
  52. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_get_loudest_params +0 -0
  53. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_merge_psds +0 -0
  54. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_plot_kde_vals +0 -0
  55. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_reduce_template_bank +0 -0
  56. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_rerank_dq +0 -0
  57. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_rerank_passthrough +0 -0
  58. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_sngls_findtrigs +0 -0
  59. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_sngls_pastro +0 -0
  60. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_sngls_statmap +0 -0
  61. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_sngls_statmap_inj +0 -0
  62. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_strip_injections +0 -0
  63. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_template_kde_calc +0 -0
  64. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/all_sky_search/pycbc_template_recovery_hist +0 -0
  65. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/bank/pycbc_aligned_bank_cat +0 -0
  66. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/bank/pycbc_aligned_stoch_bank +0 -0
  67. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/bank/pycbc_bank_verification +0 -0
  68. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/bank/pycbc_brute_bank +0 -0
  69. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/bank/pycbc_coinc_bank2hdf +0 -0
  70. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/bank/pycbc_geom_aligned_2dstack +0 -0
  71. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/bank/pycbc_geom_aligned_bank +0 -0
  72. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/bank/pycbc_geom_nonspinbank +0 -0
  73. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/bank/pycbc_tmpltbank_to_chi_params +0 -0
  74. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/hwinj/pycbc_generate_hwinj +0 -0
  75. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/hwinj/pycbc_generate_hwinj_from_xml +0 -0
  76. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/hwinj/pycbc_insert_frame_hwinj +0 -0
  77. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/hwinj/pycbc_plot_hwinj +0 -0
  78. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference +0 -0
  79. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_create_fits +0 -0
  80. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_extract_samples +0 -0
  81. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_model_stats +0 -0
  82. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_monitor +0 -0
  83. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_acceptance_rate +0 -0
  84. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_acf +0 -0
  85. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_acl +0 -0
  86. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_dynesty_run +0 -0
  87. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_dynesty_traceplot +0 -0
  88. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_gelman_rubin +0 -0
  89. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_geweke +0 -0
  90. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_inj_recovery +0 -0
  91. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_mcmc_history +0 -0
  92. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_movie +0 -0
  93. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_posterior +0 -0
  94. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_pp +0 -0
  95. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_prior +0 -0
  96. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_samples +0 -0
  97. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_skymap +0 -0
  98. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_plot_thermodynamic_integrand +0 -0
  99. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_pp_table_summary +0 -0
  100. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_start_from_samples +0 -0
  101. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_inference_table_summary +0 -0
  102. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/pycbc_validate_test_posterior +0 -0
  103. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/inference/run_pycbc_inference +0 -0
  104. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/minifollowups/pycbc_foreground_minifollowup +0 -0
  105. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/minifollowups/pycbc_injection_minifollowup +0 -0
  106. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/minifollowups/pycbc_page_coincinfo +0 -0
  107. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/minifollowups/pycbc_page_injinfo +0 -0
  108. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/minifollowups/pycbc_page_snglinfo +0 -0
  109. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/minifollowups/pycbc_plot_chigram +0 -0
  110. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/minifollowups/pycbc_plot_trigger_timeseries +0 -0
  111. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/minifollowups/pycbc_single_template_plot +0 -0
  112. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/minifollowups/pycbc_sngl_minifollowup +0 -0
  113. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_banksim_plot_eff_fitting_factor +0 -0
  114. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_banksim_plot_fitting_factors +0 -0
  115. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_banksim_table_point_injs +0 -0
  116. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_create_html_snippet +0 -0
  117. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_faithsim_plots +0 -0
  118. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_ifar_catalog +0 -0
  119. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_mass_area_plot +0 -0
  120. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_mchirp_plots +0 -0
  121. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_banktriggerrate +0 -0
  122. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_coinc_snrchi +0 -0
  123. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_foreground +0 -0
  124. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_foundmissed +0 -0
  125. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_ifar +0 -0
  126. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_injtable +0 -0
  127. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_recovery +0 -0
  128. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_segments +0 -0
  129. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_segplot +0 -0
  130. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_segtable +0 -0
  131. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_sensitivity +0 -0
  132. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_snrchi +0 -0
  133. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_snrifar +0 -0
  134. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_snrratehist +0 -0
  135. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_page_vetotable +0 -0
  136. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_background_coincs +0 -0
  137. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_bank_bins +0 -0
  138. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_dq_likelihood_vs_time +0 -0
  139. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_dq_percentiles +0 -0
  140. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_gate_triggers +0 -0
  141. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_gating +0 -0
  142. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_hist +0 -0
  143. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_multiifo_dtphase +0 -0
  144. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_psd_file +0 -0
  145. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_psd_timefreq +0 -0
  146. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_qscan +0 -0
  147. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_range +0 -0
  148. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_range_vs_mtot +0 -0
  149. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_singles_timefreq +0 -0
  150. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_singles_vs_params +0 -0
  151. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_throughput +0 -0
  152. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_trigrate +0 -0
  153. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_vt_ratio +0 -0
  154. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/plotting/pycbc_plot_waveform +0 -0
  155. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/population/pycbc_multiifo_pastro +0 -0
  156. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/population/pycbc_population_plots +0 -0
  157. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/population/pycbc_population_rates +0 -0
  158. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_banksim +0 -0
  159. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_banksim_combine_banks +0 -0
  160. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_banksim_match_combine +0 -0
  161. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_banksim_skymax +0 -0
  162. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_coinc_time +0 -0
  163. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_compress_bank +0 -0
  164. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_condition_strain +0 -0
  165. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_copy_output_map +0 -0
  166. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_create_injections +0 -0
  167. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_data_store +0 -0
  168. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_faithsim +0 -0
  169. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_faithsim_collect_results +0 -0
  170. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_fit_sngl_trigs +0 -0
  171. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_get_ffinal +0 -0
  172. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_hdf5_splitbank +0 -0
  173. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_hdf_splitinj +0 -0
  174. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_inj_cut +0 -0
  175. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_inspinj2hdf +0 -0
  176. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_inspiral +0 -0
  177. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_inspiral_skymax +0 -0
  178. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_live_nagios_monitor +0 -0
  179. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_losc_segment_query +0 -0
  180. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_make_banksim +0 -0
  181. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_make_faithsim +0 -0
  182. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_make_html_page +0 -0
  183. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_merge_inj_hdf +0 -0
  184. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_multi_inspiral +0 -0
  185. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_optimal_snr +0 -0
  186. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_process_sngls +0 -0
  187. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_randomize_inj_dist_by_optsnr +0 -0
  188. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_single_template +0 -0
  189. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_source_probability_offline +0 -0
  190. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_split_inspinj +0 -0
  191. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_splitbank +0 -0
  192. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_stageout_failed_workflow +0 -0
  193. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_submit_dax +0 -0
  194. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pycbc_upload_xml_to_gracedb +0 -0
  195. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_grb_inj_combiner +0 -0
  196. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_grb_inj_finder +0 -0
  197. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_grb_trig_cluster +0 -0
  198. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_grb_trig_combiner +0 -0
  199. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_make_offline_grb_workflow +0 -0
  200. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_pygrb_efficiency +0 -0
  201. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_pygrb_grb_info_table +0 -0
  202. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_pygrb_minifollowups +0 -0
  203. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_pygrb_page_tables +0 -0
  204. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_pygrb_plot_chisq_veto +0 -0
  205. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_pygrb_plot_coh_ifosnr +0 -0
  206. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_pygrb_plot_injs_results +0 -0
  207. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_pygrb_plot_null_stats +0 -0
  208. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_pygrb_plot_skygrid +0 -0
  209. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_pygrb_plot_snr_timeseries +0 -0
  210. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_pygrb_plot_stats_distribution +0 -0
  211. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/pygrb/pycbc_pygrb_pp_workflow +0 -0
  212. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/workflow_comparisons/offline_search/pycbc_combine_injection_comparisons +0 -0
  213. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/workflow_comparisons/offline_search/pycbc_injection_set_comparison +0 -0
  214. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/workflow_comparisons/offline_search/pycbc_plot_injections_found_both_workflows +0 -0
  215. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/workflow_comparisons/offline_search/pycbc_plot_injections_missed_one_workflow +0 -0
  216. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/workflow_comparisons/offline_search/pycbc_plot_vt_ratio_vs_ifar +0 -0
  217. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/workflows/pycbc_make_bank_verifier_workflow +0 -0
  218. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/workflows/pycbc_make_coinc_search_workflow +0 -0
  219. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/workflows/pycbc_make_faithsim_workflow +0 -0
  220. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/workflows/pycbc_make_inference_inj_workflow +0 -0
  221. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/workflows/pycbc_make_inference_plots_workflow +0 -0
  222. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/workflows/pycbc_make_inference_workflow +0 -0
  223. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/workflows/pycbc_make_psd_estimation_workflow +0 -0
  224. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/workflows/pycbc_make_sbank_workflow +0 -0
  225. {PyCBC-2.1.3 → PyCBC-2.1.4}/bin/workflows/pycbc_make_uberbank_workflow +0 -0
  226. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/banksim/injection0.xml +0 -0
  227. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/banksim/run.sh +0 -0
  228. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/cal/foton_filter_esd_saturation/pycbc_check_esd_saturation.sh +0 -0
  229. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/cal/foton_filter_esd_saturation/pycbc_check_pcal_saturation.sh +0 -0
  230. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/cal/foton_filter_esd_saturation/run_pcal_saturation_example.sh +0 -0
  231. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/catalog/data.py +0 -0
  232. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/catalog/stat.py +0 -0
  233. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/catalog/what.py +0 -0
  234. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/dataquality/hwinj.py +0 -0
  235. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/dataquality/on.py +0 -0
  236. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/detector/ant.py +0 -0
  237. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/detector/delay.py +0 -0
  238. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/detector/loc.py +0 -0
  239. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/detector/travel.py +0 -0
  240. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/distributions/list_distributions.py +0 -0
  241. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/distributions/mass_examples.py +0 -0
  242. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/distributions/mchirp_q_from_uniform_m1m2_example.py +0 -0
  243. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/distributions/sampling_from_config_example.py +0 -0
  244. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/distributions/spin_examples.py +0 -0
  245. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/distributions/spin_spatial_distr_example.py +0 -0
  246. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/faith/injection0.xml +0 -0
  247. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/faith/pegasus_workflow_create.sh +0 -0
  248. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/faith/pegasus_workflow_submit.sh +0 -0
  249. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/faith/run.sh +0 -0
  250. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/filter/chisq.py +0 -0
  251. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/filter/fir.py +0 -0
  252. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/filter/pass.py +0 -0
  253. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/filter/snr.py +0 -0
  254. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/gw150914/audio.py +0 -0
  255. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/gw150914/gw150914_h1_snr.py +0 -0
  256. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/gw150914/gw150914_shape.py +0 -0
  257. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/analytic-normal2d/make_movie.sh +0 -0
  258. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/analytic-normal2d/plot.sh +0 -0
  259. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/analytic-normal2d/run.sh +0 -0
  260. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/bbh-injection/make_injection.sh +0 -0
  261. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/bbh-injection/run.sh +0 -0
  262. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/bbh-injection/run_test.sh +0 -0
  263. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/gw150914/plot.sh +0 -0
  264. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/gw150914/run.sh +0 -0
  265. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/gw150914/run_test.sh +0 -0
  266. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/hierarchical/make_injections.sh +0 -0
  267. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/hierarchical/run.sh +0 -0
  268. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/hierarchical/run_test.sh +0 -0
  269. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/lisa_smbhb/advanced_plot.py +0 -0
  270. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/lisa_smbhb/get.sh +0 -0
  271. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/lisa_smbhb/plot.sh +0 -0
  272. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/lisa_smbhb/run.sh +0 -0
  273. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/list_parameters.py +0 -0
  274. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/margtime/get.sh +0 -0
  275. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/margtime/run.sh +0 -0
  276. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/margtime/run_inj.sh +0 -0
  277. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/multisignal/get.sh +0 -0
  278. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/multisignal/make_injections.sh +0 -0
  279. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/multisignal/rel.sh +0 -0
  280. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/multisignal/run.sh +0 -0
  281. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/multisignal/single.sh +0 -0
  282. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/relative/get.sh +0 -0
  283. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/relative/plot.sh +0 -0
  284. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/relative/run.sh +0 -0
  285. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/samplers/run.sh +0 -0
  286. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/single/get.sh +0 -0
  287. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/single/plot.sh +0 -0
  288. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/single/run.sh +0 -0
  289. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/single/run_instant.sh +0 -0
  290. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inference/single/run_marg.sh +0 -0
  291. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inspiral/check_GW150914_detection.py +0 -0
  292. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inspiral/clean.sh +0 -0
  293. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/inspiral/run.sh +0 -0
  294. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/live/check_results.py +0 -0
  295. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/live/generate_injections.py +0 -0
  296. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/live/make_singles_fits_file.py +0 -0
  297. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/make_skymap/GW150914.sh +0 -0
  298. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/make_skymap/GW170817.sh +0 -0
  299. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/make_skymap/simulated_data.sh +0 -0
  300. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/multi_inspiral/check_faceon_faceaway_trigs.py +0 -0
  301. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/multi_inspiral/check_gw170817_trigs.py +0 -0
  302. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/multi_inspiral/clean.sh +0 -0
  303. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/multi_inspiral/faceon_faceaway.sh +0 -0
  304. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/multi_inspiral/run.sh +0 -0
  305. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/noise/frequency.py +0 -0
  306. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/noise/timeseries.py +0 -0
  307. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/overlap.py +0 -0
  308. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/psd/analytic.py +0 -0
  309. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/psd/estimate.py +0 -0
  310. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/psd/read.py +0 -0
  311. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/search/bank.sh +0 -0
  312. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/search/check_job.py +0 -0
  313. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/search/gen.sh +0 -0
  314. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/search/get.sh +0 -0
  315. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/search/master.sh +0 -0
  316. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/search/stats.sh +0 -0
  317. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/search/submit.sh +0 -0
  318. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/tmpltbank/bank_workflow_test/gen.sh +0 -0
  319. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/tmpltbank/cleanOutput.sh +0 -0
  320. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/tmpltbank/make_cache.sh +0 -0
  321. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/tmpltbank/testAligned.sh +0 -0
  322. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/tmpltbank/testAligned2.sh +0 -0
  323. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/tmpltbank/testAligned3.sh +0 -0
  324. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/tmpltbank/testNonspin.sh +0 -0
  325. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/tmpltbank/testNonspin2.sh +0 -0
  326. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/tmpltbank/testNonspin3.sh +0 -0
  327. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/tmpltbank/testStoch.sh +0 -0
  328. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/tmpltbank/testStoch2.sh +0 -0
  329. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/tmpltbank/testStoch3.sh +0 -0
  330. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/tmpltbank/testStoch4.sh +0 -0
  331. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/waveform/add_waveform.py +0 -0
  332. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/waveform/match_waveform.py +0 -0
  333. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/waveform/plot_detwaveform.py +0 -0
  334. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/waveform/plot_fd_td.py +0 -0
  335. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/waveform/plot_freq.py +0 -0
  336. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/waveform/plot_phase.py +0 -0
  337. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/waveform/plot_waveform.py +0 -0
  338. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/waveform/what_waveform.py +0 -0
  339. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/data_checker/daily_test.py +0 -0
  340. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/data_checker/get_data_example.py +0 -0
  341. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/data_checker/run_daily_test.sh +0 -0
  342. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/data_checker/run_get_data_example.sh +0 -0
  343. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/dayhopecheck/dayhopecheck.py +0 -0
  344. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/dayhopecheck/run_dayhopecheck.sh +0 -0
  345. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/generic/multilevel_subworkflow_data/run.sh +0 -0
  346. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/generic/multilevel_subworkflow_data/simple.py +0 -0
  347. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/generic/simple_subworkflow_data/run.sh +0 -0
  348. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/generic/simple_subworkflow_data/simple.py +0 -0
  349. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/inference/bbh_inj-dynesty/create_inj_workflow.sh +0 -0
  350. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/inference/gw150914_gw170814-dynesty/create_workflow.sh +0 -0
  351. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/inference/gw150914_gw170814-emcee_pt/create_workflow.sh +0 -0
  352. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/inference/small_test/gen.sh +0 -0
  353. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/pygrb/ER7/run_er7_pygrb_offline.sh +0 -0
  354. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/pygrb/ER8/run_er8_pygrb_offline.sh +0 -0
  355. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/pygrb/ER8/run_er8_pygrb_online.sh +0 -0
  356. {PyCBC-2.1.3 → PyCBC-2.1.4}/examples/workflow/pygrb/S6/run_s6_pygrb.sh +0 -0
  357. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/__init__.py +0 -0
  358. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/_version.py +0 -0
  359. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/_version_helper.py +0 -0
  360. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/bin_utils.py +0 -0
  361. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/boundaries.py +0 -0
  362. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/catalog/__init__.py +0 -0
  363. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/catalog/catalog.py +0 -0
  364. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/conversions.py +0 -0
  365. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/coordinates.py +0 -0
  366. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/cosmology.py +0 -0
  367. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/detector.py +0 -0
  368. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/__init__.py +0 -0
  369. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/angular.py +0 -0
  370. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/arbitrary.py +0 -0
  371. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/bounded.py +0 -0
  372. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/constraints.py +0 -0
  373. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/external.py +0 -0
  374. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/fixedsamples.py +0 -0
  375. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/gaussian.py +0 -0
  376. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/joint.py +0 -0
  377. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/mass.py +0 -0
  378. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/power_law.py +0 -0
  379. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/qnm.py +0 -0
  380. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/sky_location.py +0 -0
  381. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/spins.py +0 -0
  382. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/uniform.py +0 -0
  383. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/uniform_log.py +0 -0
  384. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/distributions/utils.py +0 -0
  385. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/dq.py +0 -0
  386. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/__init__.py +0 -0
  387. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/coherent.py +0 -0
  388. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/coinc_rate.py +0 -0
  389. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/cuts.py +0 -0
  390. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/eventmgr.py +0 -0
  391. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/eventmgr_cython.pyx +0 -0
  392. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/ranking.py +0 -0
  393. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/significance.py +0 -0
  394. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/simd_threshold_ccode.cpp +0 -0
  395. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/simd_threshold_cython.pyx +0 -0
  396. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/single.py +0 -0
  397. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/stat.py +0 -0
  398. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/threshold_cpu.py +0 -0
  399. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/threshold_cuda.py +0 -0
  400. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/trigger_fits.py +0 -0
  401. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/triggers.py +0 -0
  402. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/events/veto.py +0 -0
  403. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/__init__.py +0 -0
  404. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/backend_cpu.py +0 -0
  405. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/backend_cuda.py +0 -0
  406. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/backend_mkl.py +0 -0
  407. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/backend_support.py +0 -0
  408. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/class_api.py +0 -0
  409. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/core.py +0 -0
  410. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/cuda_pyfft.py +0 -0
  411. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/cufft.py +0 -0
  412. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/fft_callback.py +0 -0
  413. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/fftw.py +0 -0
  414. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/fftw_pruned.py +0 -0
  415. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/fftw_pruned_cython.pyx +0 -0
  416. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/func_api.py +0 -0
  417. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/mkl.py +0 -0
  418. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/npfft.py +0 -0
  419. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/fft/parser_support.py +0 -0
  420. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/filter/__init__.py +0 -0
  421. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/filter/autocorrelation.py +0 -0
  422. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/filter/fotonfilter.py +0 -0
  423. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/filter/matchedfilter.py +0 -0
  424. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/filter/matchedfilter_cpu.pyx +0 -0
  425. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/filter/matchedfilter_cuda.py +0 -0
  426. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/filter/matchedfilter_numpy.py +0 -0
  427. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/filter/qtransform.py +0 -0
  428. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/filter/resample.py +0 -0
  429. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/filter/simd_correlate.py +0 -0
  430. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/filter/simd_correlate_ccode.cpp +0 -0
  431. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/filter/simd_correlate_cython.pyx +0 -0
  432. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/filter/zpk.py +0 -0
  433. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/frame/__init__.py +0 -0
  434. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/frame/frame.py +0 -0
  435. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/frame/losc.py +0 -0
  436. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/frame/store.py +0 -0
  437. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/__init__.py +0 -0
  438. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/burn_in.py +0 -0
  439. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/entropy.py +0 -0
  440. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/evidence.py +0 -0
  441. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/gelman_rubin.py +0 -0
  442. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/geweke.py +0 -0
  443. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/__init__.py +0 -0
  444. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/base_hdf.py +0 -0
  445. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/base_mcmc.py +0 -0
  446. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/base_multitemper.py +0 -0
  447. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/base_nested_sampler.py +0 -0
  448. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/base_sampler.py +0 -0
  449. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/cpnest.py +0 -0
  450. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/dynesty.py +0 -0
  451. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/emcee.py +0 -0
  452. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/emcee_pt.py +0 -0
  453. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/epsie.py +0 -0
  454. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/multinest.py +0 -0
  455. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/posterior.py +0 -0
  456. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/ptemcee.py +0 -0
  457. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/txt.py +0 -0
  458. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/io/ultranest.py +0 -0
  459. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/jump/__init__.py +0 -0
  460. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/jump/angular.py +0 -0
  461. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/jump/bounded_normal.py +0 -0
  462. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/jump/discrete.py +0 -0
  463. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/jump/normal.py +0 -0
  464. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/models/__init__.py +0 -0
  465. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/models/analytic.py +0 -0
  466. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/models/base.py +0 -0
  467. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/models/base_data.py +0 -0
  468. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/models/brute_marg.py +0 -0
  469. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/models/data_utils.py +0 -0
  470. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/models/gated_gaussian_noise.py +0 -0
  471. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/models/gaussian_noise.py +0 -0
  472. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/models/hierarchical.py +0 -0
  473. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/models/marginalized_gaussian_noise.py +0 -0
  474. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/models/relbin.py +0 -0
  475. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/models/relbin_cpu.pyx +0 -0
  476. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/models/single_template.py +0 -0
  477. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/models/tools.py +0 -0
  478. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/option_utils.py +0 -0
  479. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/sampler/__init__.py +0 -0
  480. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/sampler/base.py +0 -0
  481. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/sampler/base_cube.py +0 -0
  482. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/sampler/base_mcmc.py +0 -0
  483. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/sampler/base_multitemper.py +0 -0
  484. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/sampler/cpnest.py +0 -0
  485. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/sampler/dummy.py +0 -0
  486. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/sampler/dynesty.py +0 -0
  487. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/sampler/emcee.py +0 -0
  488. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/sampler/emcee_pt.py +0 -0
  489. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/sampler/epsie.py +0 -0
  490. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/sampler/multinest.py +0 -0
  491. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/sampler/ptemcee.py +0 -0
  492. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inference/sampler/ultranest.py +0 -0
  493. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inject/__init__.py +0 -0
  494. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inject/inject.py +0 -0
  495. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/inject/injfilterrejector.py +0 -0
  496. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/io/__init__.py +0 -0
  497. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/io/hdf.py +0 -0
  498. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/io/ligolw.py +0 -0
  499. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/io/record.py +0 -0
  500. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/libutils.py +0 -0
  501. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/mchirp_area.py +0 -0
  502. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/neutron_stars/__init__.py +0 -0
  503. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/neutron_stars/eos_utils.py +0 -0
  504. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/neutron_stars/ns_data/equil_2H.dat +0 -0
  505. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/neutron_stars/pg_isso_solver.py +0 -0
  506. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/noise/__init__.py +0 -0
  507. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/noise/gaussian.py +0 -0
  508. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/noise/reproduceable.py +0 -0
  509. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/opt.py +0 -0
  510. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/pnutils.py +0 -0
  511. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/pool.py +0 -0
  512. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/population/__init__.py +0 -0
  513. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/population/fgmc_functions.py +0 -0
  514. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/population/fgmc_laguerre.py +0 -0
  515. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/population/fgmc_plots.py +0 -0
  516. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/population/live_pastro.py +0 -0
  517. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/population/live_pastro_utils.py +0 -0
  518. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/population/population_models.py +0 -0
  519. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/population/rates_functions.py +0 -0
  520. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/population/scale_injections.py +0 -0
  521. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/psd/__init__.py +0 -0
  522. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/psd/analytical.py +0 -0
  523. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/psd/analytical_space.py +0 -0
  524. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/psd/estimate.py +0 -0
  525. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/psd/read.py +0 -0
  526. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/rate.py +0 -0
  527. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/__init__.py +0 -0
  528. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/color.py +0 -0
  529. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/dq.py +0 -0
  530. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/followup.py +0 -0
  531. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/layout.py +0 -0
  532. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/legacy_grb.py +0 -0
  533. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/metadata.py +0 -0
  534. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/mpld3_utils.py +0 -0
  535. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/plot.py +0 -0
  536. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/psd.py +0 -0
  537. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/pygrb_plotting_utils.py +0 -0
  538. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/pygrb_postprocessing_utils.py +0 -0
  539. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/render.py +0 -0
  540. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/scatter_histograms.py +0 -0
  541. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/css/bootstrap/3.3.2/bootstrap.min.css +0 -0
  542. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/css/bootstrap.min.css +0 -0
  543. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/css/fancybox/2.1.5/jquery.fancybox.css +0 -0
  544. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/css/pycbc/orange.css +0 -0
  545. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/css/pycbc/red.css +0 -0
  546. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/fonts/Lato-Light.css +0 -0
  547. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/fonts/Lato-Light.eot +0 -0
  548. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/fonts/Lato-Light.html +0 -0
  549. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/fonts/Lato-Light.ttf +0 -0
  550. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/fonts/Lato-Light.woff +0 -0
  551. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/fonts/Lato-Semibold.css +0 -0
  552. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/fonts/Lato-Semibold.eot +0 -0
  553. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/fonts/Lato-Semibold.html +0 -0
  554. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/fonts/Lato-Semibold.ttf +0 -0
  555. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/fonts/Lato-Semibold.woff +0 -0
  556. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/js/bootstrap/3.3.2/bootstrap.min.js +0 -0
  557. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/js/bootstrap.min.js +0 -0
  558. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/js/fancybox/2.1.5/fancybox-orange.js +0 -0
  559. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/js/fancybox/2.1.5/jquery.fancybox.js +0 -0
  560. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/js/fancybox/2.1.5/jquery.fancybox.pack.js +0 -0
  561. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/js/jquery/1.10.2/jquery-1.10.2.min.js +0 -0
  562. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/js/jquery/1.10.2/jquery.mousewheel-3.0.6.pack.js +0 -0
  563. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/static/js/jquery.min.js +0 -0
  564. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/str_utils.py +0 -0
  565. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/table_utils.py +0 -0
  566. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/templates/files/file_default.html +0 -0
  567. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/templates/files/file_glitchgram.html +0 -0
  568. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/templates/files/file_img.html +0 -0
  569. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/templates/files/file_pre.html +0 -0
  570. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/templates/files/file_tmplt.html +0 -0
  571. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/templates/orange.html +0 -0
  572. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/templates/red.html +0 -0
  573. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/templates/wells/sitemap.html +0 -0
  574. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/templates/wells/two_column.html +0 -0
  575. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/results/versioning.py +0 -0
  576. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/sensitivity.py +0 -0
  577. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/strain/__init__.py +0 -0
  578. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/strain/calibration.py +0 -0
  579. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/strain/gate.py +0 -0
  580. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/strain/lines.py +0 -0
  581. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/strain/recalibrate.py +0 -0
  582. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/strain/strain.py +0 -0
  583. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/tmpltbank/__init__.py +0 -0
  584. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/tmpltbank/bank_conversions.py +0 -0
  585. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/tmpltbank/bank_output_utils.py +0 -0
  586. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/tmpltbank/brute_force_methods.py +0 -0
  587. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/tmpltbank/calc_moments.py +0 -0
  588. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/tmpltbank/coord_utils.py +0 -0
  589. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/tmpltbank/lambda_mapping.py +0 -0
  590. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/tmpltbank/lattice_utils.py +0 -0
  591. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/tmpltbank/option_utils.py +0 -0
  592. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/tmpltbank/partitioned_bank.py +0 -0
  593. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/transforms.py +0 -0
  594. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/types/__init__.py +0 -0
  595. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/types/aligned.py +0 -0
  596. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/types/array.py +0 -0
  597. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/types/array_cpu.pyx +0 -0
  598. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/types/array_cuda.py +0 -0
  599. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/types/config.py +0 -0
  600. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/types/frequencyseries.py +0 -0
  601. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/types/optparse.py +0 -0
  602. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/types/timeseries.py +0 -0
  603. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/vetoes/__init__.py +0 -0
  604. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/vetoes/autochisq.py +0 -0
  605. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/vetoes/bank_chisq.py +0 -0
  606. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/vetoes/chisq.py +0 -0
  607. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/vetoes/chisq_cpu.pyx +0 -0
  608. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/vetoes/chisq_cuda.py +0 -0
  609. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/vetoes/sgchisq.py +0 -0
  610. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/SpinTaylorF2.py +0 -0
  611. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/__init__.py +0 -0
  612. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/bank.py +0 -0
  613. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/compress.py +0 -0
  614. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/decompress_cpu.py +0 -0
  615. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/decompress_cpu_ccode.cpp +0 -0
  616. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/decompress_cpu_cython.pyx +0 -0
  617. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/decompress_cuda.py +0 -0
  618. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/generator.py +0 -0
  619. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/multiband.py +0 -0
  620. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/nltides.py +0 -0
  621. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/parameters.py +0 -0
  622. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/plugin.py +0 -0
  623. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/premerger.py +0 -0
  624. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/pycbc_phenomC_tmplt.py +0 -0
  625. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/ringdown.py +0 -0
  626. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/sinegauss.py +0 -0
  627. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/spa_tmplt.py +0 -0
  628. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/spa_tmplt_cpu.pyx +0 -0
  629. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/spa_tmplt_cuda.py +0 -0
  630. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/supernovae.py +0 -0
  631. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/utils.py +0 -0
  632. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/utils_cpu.pyx +0 -0
  633. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/utils_cuda.py +0 -0
  634. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/waveform.py +0 -0
  635. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/waveform/waveform_modes.py +0 -0
  636. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/__init__.py +0 -0
  637. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/coincidence.py +0 -0
  638. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/configparser_test.py +0 -0
  639. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/configuration.py +0 -0
  640. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/core.py +0 -0
  641. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/datafind.py +0 -0
  642. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/dq.py +0 -0
  643. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/grb_utils.py +0 -0
  644. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/inference_followups.py +0 -0
  645. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/injection.py +0 -0
  646. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/jobsetup.py +0 -0
  647. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/matched_filter.py +0 -0
  648. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/minifollowups.py +0 -0
  649. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/pegasus_files/pegasus-properties.conf +0 -0
  650. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/pegasus_sites.py +0 -0
  651. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/pegasus_workflow.py +0 -0
  652. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/plotting.py +0 -0
  653. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/psd.py +0 -0
  654. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/psdfiles.py +0 -0
  655. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/segment.py +0 -0
  656. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/splittable.py +0 -0
  657. {PyCBC-2.1.3 → PyCBC-2.1.4}/pycbc/workflow/tmpltbank.py +0 -0
  658. {PyCBC-2.1.3 → PyCBC-2.1.4}/pyproject.toml +0 -0
  659. {PyCBC-2.1.3 → PyCBC-2.1.4}/pytest.ini +0 -0
  660. {PyCBC-2.1.3 → PyCBC-2.1.4}/setup.cfg +0 -0
  661. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/bankvetotest.py +0 -0
  662. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/fft_base.py +0 -0
  663. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/lalsim.py +0 -0
  664. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_array.py +0 -0
  665. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_array_lal.py +0 -0
  666. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_autochisq.py +0 -0
  667. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_calibration.py +0 -0
  668. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_chisq.py +0 -0
  669. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_coinc_stat.py +0 -0
  670. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_conversions.py +0 -0
  671. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_correlate.py +0 -0
  672. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_cuts.py +0 -0
  673. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_detector.py +0 -0
  674. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_distributions.py +0 -0
  675. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_dq.py +0 -0
  676. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_fft_mkl_threaded.py +0 -0
  677. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_fft_unthreaded.py +0 -0
  678. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_fftw_openmp.py +0 -0
  679. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_fftw_pthreads.py +0 -0
  680. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_frame.py +0 -0
  681. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_frequencyseries.py +0 -0
  682. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_infmodel.py +0 -0
  683. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_injection.py +0 -0
  684. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_io_live.py +0 -0
  685. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_live_coinc_compare.py +0 -0
  686. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_matchedfilter.py +0 -0
  687. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_noise.py +0 -0
  688. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_pnutils.py +0 -0
  689. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_psd.py +0 -0
  690. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_resample.py +0 -0
  691. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_schemes.py +0 -0
  692. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_significance_module.py +0 -0
  693. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_skymax.py +0 -0
  694. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_spatmplt.py +0 -0
  695. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_threshold.py +0 -0
  696. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_timeseries.py +0 -0
  697. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_tmpltbank.py +0 -0
  698. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_transforms.py +0 -0
  699. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_waveform.py +0 -0
  700. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/test_waveform_utils.py +0 -0
  701. {PyCBC-2.1.3 → PyCBC-2.1.4}/test/utils.py +0 -0
  702. {PyCBC-2.1.3 → PyCBC-2.1.4}/tools/benchmarking/absolute_times.py +0 -0
  703. {PyCBC-2.1.3 → PyCBC-2.1.4}/tools/einsteinathome/check_GW150914_detection.py +0 -0
  704. {PyCBC-2.1.3 → PyCBC-2.1.4}/tools/static/hooks/hook-pycbc.py +0 -0
  705. {PyCBC-2.1.3 → PyCBC-2.1.4}/tools/static/runtime-scipy.py +0 -0
  706. {PyCBC-2.1.3 → PyCBC-2.1.4}/tools/static/runtime-tkinter.py +0 -0
  707. {PyCBC-2.1.3 → PyCBC-2.1.4}/tools/timing/arr_perf.py +0 -0
  708. {PyCBC-2.1.3 → PyCBC-2.1.4}/tools/timing/banksim/banksim.py +0 -0
  709. {PyCBC-2.1.3 → PyCBC-2.1.4}/tools/timing/correlate_perf.py +0 -0
  710. {PyCBC-2.1.3 → PyCBC-2.1.4}/tools/timing/fft_perf.py +0 -0
  711. {PyCBC-2.1.3 → PyCBC-2.1.4}/tools/timing/match_perf.py +0 -0
  712. {PyCBC-2.1.3 → PyCBC-2.1.4}/tools/timing/wav_perf.py +0 -0
  713. {PyCBC-2.1.3 → PyCBC-2.1.4}/tox.ini +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyCBC
3
- Version: 2.1.3
3
+ Version: 2.1.4
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.1.3
9
+ Download-URL: https://github.com/gwastro/pycbc/tarball/v2.1.4
10
10
  Description: ![GW150914](https://raw.githubusercontent.com/gwastro/pycbc-logo/master/pycbc_logo_name.png)
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.1.3
3
+ Version: 2.1.4
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.1.3
9
+ Download-URL: https://github.com/gwastro/pycbc/tarball/v2.1.4
10
10
  Description: ![GW150914](https://raw.githubusercontent.com/gwastro/pycbc-logo/master/pycbc_logo_name.png)
11
11
 
12
12
  [PyCBC](http://pycbc.org) is a software package used to explore astrophysical sources of gravitational waves.
@@ -503,6 +503,8 @@ pycbc/io/hdf.py
503
503
  pycbc/io/ligolw.py
504
504
  pycbc/io/live.py
505
505
  pycbc/io/record.py
506
+ pycbc/live/__init__.py
507
+ pycbc/live/snr_optimizer.py
506
508
  pycbc/neutron_stars/__init__.py
507
509
  pycbc/neutron_stars/eos_utils.py
508
510
  pycbc/neutron_stars/pg_isso_solver.py
@@ -15,8 +15,10 @@
15
15
  """Combine PyCBC Live single-detector trigger fitting parameters from several
16
16
  different files."""
17
17
 
18
- import h5py, numpy as np, argparse
18
+ import argparse
19
19
  import logging
20
+ import numpy as np
21
+ import h5py
20
22
  import pycbc
21
23
 
22
24
 
@@ -45,66 +47,80 @@ if args.conservative_percentile < 50 or \
45
47
  "otherwise it is either not a percentile, or not "
46
48
  "conservative.")
47
49
 
48
- counts_all = {ifo: [] for ifo in args.ifos}
49
- alphas_all = {ifo: [] for ifo in args.ifos}
50
- analysis_dates = []
50
+ logging.info("%d input files", len(args.trfits_files))
51
+
52
+ # We only want to combine fit results if they were done with the same
53
+ # configuration. So start by finding the most recent fit file and reading its
54
+ # configuration parameters.
51
55
 
52
- with h5py.File(args.trfits_files[0], 'r') as fit_f0:
53
- # Store some attributes so we can check that all files are
54
- # comparable
56
+ logging.info("Determining the most recent configuration parameters")
55
57
 
56
- # Keep the upper and lower bins
57
- bl = fit_f0['bins_lower'][:]
58
- bu = fit_f0['bins_upper'][:]
58
+ latest_date = None
59
+ for f in args.trfits_files:
60
+ with h5py.File(f, 'r') as fit_f:
61
+ if latest_date is None or fit_f.attrs['analysis_date'] > latest_date:
62
+ latest_date = fit_f.attrs['analysis_date']
63
+ bl = fit_f['bins_lower'][:]
64
+ bu = fit_f['bins_upper'][:]
65
+ sngl_rank = fit_f.attrs['sngl_ranking']
66
+ fit_thresh = fit_f.attrs['fit_threshold']
67
+ fit_func = fit_f.attrs['fit_function']
59
68
 
60
- sngl_rank = fit_f0.attrs['sngl_ranking']
61
- fit_thresh = fit_f0.attrs['fit_threshold']
62
- fit_func = fit_f0.attrs['fit_function']
69
+ # Now go back through the fit files and read the actual information. Skip the
70
+ # files that have fit parameters inconsistent with what we found earlier.
63
71
 
64
- live_times = {ifo: [] for ifo in args.ifos}
72
+ logging.info("Reading individual fit results")
65
73
 
74
+ live_times = {ifo: [] for ifo in args.ifos}
66
75
  trigger_file_starts = []
67
76
  trigger_file_ends = []
68
-
69
- n_files = len(args.trfits_files)
70
- logging.info("Checking through %d files", n_files)
77
+ counts_all = {ifo: [] for ifo in args.ifos}
78
+ alphas_all = {ifo: [] for ifo in args.ifos}
71
79
 
72
80
  for f in args.trfits_files:
73
- fits_f = h5py.File(f, 'r')
74
- # Check that the file uses the same setup as file 0, to make sure
75
- # all coefficients are comparable
76
-
77
- assert fits_f.attrs['sngl_ranking'] == sngl_rank
78
- assert fits_f.attrs['fit_threshold'] == fit_thresh
79
- assert fits_f.attrs['fit_function'] == fit_func
80
- assert all(fits_f['bins_lower'][:] == bl)
81
- assert all(fits_f['bins_upper'][:] == bu)
82
-
83
- # Get the time of the first/last triggers in the trigger_fits file
84
- gps_last = 0
85
- gps_first = np.inf
86
- for ifo in args.ifos:
87
- if ifo not in fits_f:
81
+ with h5py.File(f, 'r') as fits_f:
82
+ # Check that the file uses the same setup as file 0, to make sure
83
+ # all coefficients are comparable
84
+ same_conf = (fits_f.attrs['sngl_ranking'] == sngl_rank
85
+ and fits_f.attrs['fit_threshold'] == fit_thresh
86
+ and fits_f.attrs['fit_function'] == fit_func
87
+ and all(fits_f['bins_lower'][:] == bl)
88
+ and all(fits_f['bins_upper'][:] == bu))
89
+ if not same_conf:
90
+ logging.warn(
91
+ "Found a change in the fit configuration, skipping %s",
92
+ f
93
+ )
88
94
  continue
89
- trig_times = fits_f[ifo]['triggers']['end_time'][:]
90
- gps_last = max(gps_last, trig_times.max())
91
- gps_first = min(gps_first, trig_times.min())
92
- trigger_file_starts.append(gps_first)
93
- trigger_file_ends.append(gps_last)
94
-
95
- for ifo in args.ifos:
96
- if ifo not in fits_f:
97
- live_times[ifo].append(0)
98
- counts_all[ifo].append(-1 * np.ones_like(bl))
99
- alphas_all[ifo].append(-1 * np.ones_like(bl))
100
- else:
101
- live_times[ifo].append(fits_f[ifo].attrs['live_time'])
102
- counts_all[ifo].append(fits_f[ifo + '/counts'][:])
103
- alphas_all[ifo].append(fits_f[ifo + '/fit_coeff'][:])
104
- if any(np.isnan(fits_f[ifo + '/fit_coeff'][:])):
105
- logging.info("nan in %s, %s", f, ifo)
106
- logging.info(fits_f[ifo + '/fit_coeff'][:])
107
- fits_f.close()
95
+
96
+ # We now determine the (approximate) start/end times of the
97
+ # trigger_fits file via the time of the first/last triggers in it.
98
+ # Ideally this would be recorded exactly in the file.
99
+ gps_last = 0
100
+ gps_first = np.inf
101
+ for ifo in args.ifos:
102
+ if ifo not in fits_f:
103
+ continue
104
+ trig_times = fits_f[ifo]['triggers']['end_time'][:]
105
+ gps_last = max(gps_last, trig_times.max())
106
+ gps_first = min(gps_first, trig_times.min())
107
+ trigger_file_starts.append(gps_first)
108
+ trigger_file_ends.append(gps_last)
109
+
110
+ # Read the fitting parameters
111
+ for ifo in args.ifos:
112
+ if ifo not in fits_f:
113
+ live_times[ifo].append(0)
114
+ counts_all[ifo].append(-1 * np.ones_like(bl))
115
+ alphas_all[ifo].append(-1 * np.ones_like(bl))
116
+ else:
117
+ ffi = fits_f[ifo]
118
+ live_times[ifo].append(ffi.attrs['live_time'])
119
+ counts_all[ifo].append(ffi['counts'][:])
120
+ alphas_all[ifo].append(ffi['fit_coeff'][:])
121
+ if any(np.isnan(ffi['fit_coeff'][:])):
122
+ logging.warn("nan in %s, %s", f, ifo)
123
+ logging.warn(ffi['fit_coeff'][:])
108
124
 
109
125
  # Set up the date array, this is stored as an offset from the first trigger time of
110
126
  # the first file to the last trigger of the file
@@ -115,7 +131,7 @@ ad_order = np.argsort(trigger_file_starts)
115
131
  start_time_n = trigger_file_starts[ad_order[0]]
116
132
  ad = trigger_file_ends[ad_order] - start_time_n
117
133
 
118
- # Get the counts and alphas
134
+ # Swap the time and bin dimensions for counts and alphas
119
135
  counts_bin = {ifo: [c for c in zip(*counts_all[ifo])] for ifo in args.ifos}
120
136
  alphas_bin = {ifo: [a for a in zip(*alphas_all[ifo])] for ifo in args.ifos}
121
137
 
@@ -125,6 +141,7 @@ cons_alphas_out = {ifo: np.zeros(len(alphas_bin[ifo])) for ifo in args.ifos}
125
141
  cons_counts_out = {ifo: np.inf * np.ones(len(alphas_bin[ifo])) for ifo in args.ifos}
126
142
 
127
143
  logging.info("Writing results")
144
+
128
145
  fout = h5py.File(args.output, 'w')
129
146
  fout.attrs['fit_threshold'] = fit_thresh
130
147
  fout.attrs['conservative_percentile'] = args.conservative_percentile
@@ -12,18 +12,23 @@
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
13
13
  # Public License for more details.
14
14
 
15
- import h5py, numpy as np, argparse
15
+ """Plot the time evolution of fit parameters of PyCBC Live triggers.
16
+ """
17
+
18
+ import argparse
19
+ import logging
20
+ import numpy as np
21
+ import h5py
16
22
  import matplotlib
17
23
  matplotlib.use('agg')
18
24
  from matplotlib import pyplot as plt
19
- import logging
25
+
20
26
  from lal import gpstime
21
- import pycbc
22
27
 
28
+ import pycbc
23
29
 
24
30
 
25
- parser = argparse.ArgumentParser(usage="",
26
- description="Combine fitting parameters from several different files")
31
+ parser = argparse.ArgumentParser(description=__doc__)
27
32
  parser.add_argument("--verbose", action="store_true",
28
33
  help="Print extra debugging information", default=False)
29
34
  parser.add_argument("--combined-fits-file", required=True,
@@ -45,7 +50,7 @@ parser.add_argument("--colormap", default="rainbow_r", choices=plt.colormaps(),
45
50
  parser.add_argument("--log-colormap", action='store_true',
46
51
  help="Use log spacing for choosing colormap values "
47
52
  "based on duration bins.")
48
- args=parser.parse_args()
53
+ args = parser.parse_args()
49
54
 
50
55
  if '{ifo}' not in args.output_plot_name_format or \
51
56
  '{type}' not in args.output_plot_name_format:
@@ -94,21 +99,6 @@ with h5py.File(args.combined_fits_file, 'r') as cff:
94
99
  bin_starts = bins_edges[:-1]
95
100
  bin_ends = bins_edges[1:]
96
101
 
97
- bin_max = max(bin_ends)
98
- bin_min = min(bin_starts)
99
-
100
- def bin_proportion(upper, lower, log_spacing=False):
101
- if log_spacing:
102
- ll = np.log(lower)
103
- ul = np.log(lower)
104
- centl = (ll + ul) / 2.
105
- minl = np.log(bin_min)
106
- maxl = np.log(bin_max)
107
- return (centl - minl) / (maxl - minl)
108
-
109
- else:
110
- return ((lower + upper) / 2. - bin_min) / (bin_max - bin_min)
111
-
112
102
  # Set up the x ticks - note that these are rounded to the nearest
113
103
  # midnight, so may not line up exactly with the data
114
104
  min_start = min([separate_starts[ifo].min() for ifo in ifos])
@@ -157,8 +147,7 @@ for ifo in ifos:
157
147
  mr = mean_count[ifo][i] / live_total[ifo]
158
148
  cr = cons_count[ifo][i] / live_total[ifo]
159
149
 
160
- bin_prop = bin_proportion(bu, bl,
161
- log_spacing=args.log_colormap)
150
+ bin_prop = i / len(bin_starts)
162
151
  bin_colour = plt.get_cmap(args.colormap)(bin_prop)
163
152
  bin_label = f"duration {bl:.2f}-{bu:.2f}"
164
153
  alpha_lines += ax_alpha.plot(separate_starts[ifo], alphas, c=bin_colour,
@@ -199,6 +188,12 @@ for ifo in ifos:
199
188
  ax.grid(zorder=-30)
200
189
 
201
190
  fig_count.tight_layout()
202
- fig_count.savefig(args.output_plot_name_format.format(ifo=ifo, type='counts'))
191
+ fig_count.savefig(
192
+ args.output_plot_name_format.format(ifo=ifo, type='counts')
193
+ )
203
194
  fig_alpha.tight_layout()
204
- fig_alpha.savefig(args.output_plot_name_format.format(ifo=ifo, type='fit_coeffs'))
195
+ fig_alpha.savefig(
196
+ args.output_plot_name_format.format(ifo=ifo, type='fit_coeffs')
197
+ )
198
+
199
+ logging.info("Done")
@@ -12,17 +12,24 @@
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
13
13
  # Public License for more details.
14
14
 
15
+ """Plot histograms of PyCBC Live triggers split over various parameters, and
16
+ the corresponding fits.
17
+ """
18
+
19
+ import argparse
20
+ import logging
15
21
  import numpy as np
16
- import pycbc
17
- from pycbc import bin_utils
18
- from pycbc.events import trigger_fits as trstats
22
+ import h5py
19
23
  import matplotlib
20
24
  matplotlib.use('agg')
21
25
  from matplotlib import pyplot as plt
22
- import argparse, logging, h5py
23
26
 
24
- parser = argparse.ArgumentParser(usage="",
25
- description="Plot histograms of triggers split over various parameters")
27
+ import pycbc
28
+ from pycbc.bin_utils import IrregularBins
29
+ from pycbc.events.trigger_fits import cum_fit as eval_cum_fit
30
+
31
+
32
+ parser = argparse.ArgumentParser(description=__doc__)
26
33
  parser.add_argument("--verbose", action="store_true",
27
34
  help="Print extra debugging information", default=False)
28
35
  parser.add_argument("--trigger-fits-file", required=True,
@@ -39,11 +46,14 @@ parser.add_argument("--colormap", default="rainbow_r", choices=plt.colormaps(),
39
46
  parser.add_argument("--log-colormap", action='store_true',
40
47
  help="Use log spacing for choosing colormap values "
41
48
  "based on duration bins.")
49
+ parser.add_argument("--x-lim-lower", type=float,
50
+ help="Add a lower limit to the x-axis of the plot")
42
51
  parser.add_argument("--x-lim-upper", type=float,
43
52
  help="Add an upper limit to the x-axis of the plot")
53
+ parser.add_argument("--y-lim-lower", type=float,
54
+ help="Add a lower limit to the y-axis of the plot")
44
55
  parser.add_argument("--y-lim-upper", type=float,
45
56
  help="Add an upper limit to the y-axis of the plot")
46
- #parser.add_argument("--", default="", help="")
47
57
 
48
58
  #Add some input sanitisation
49
59
  args = parser.parse_args()
@@ -58,6 +68,7 @@ logging.info("Getting trigger fits file information")
58
68
  with h5py.File(args.trigger_fits_file, 'r') as trfit_f:
59
69
  # Get the ifos to plot from the file
60
70
  # Check that all the ifos we want to plot are in the file
71
+ all_ifos = trfit_f.attrs['ifos'].split(',')
61
72
  ifos = [k for k in trfit_f.keys() if not k.startswith('bins')]
62
73
 
63
74
  # Grab some info from the attributes
@@ -79,54 +90,54 @@ with h5py.File(args.trigger_fits_file, 'r') as trfit_f:
79
90
  bu = trfit_f['bins_upper'][:]
80
91
  bl = trfit_f['bins_lower'][:]
81
92
 
82
- bin_max = max(bu)
83
- bin_min = min(bl)
84
-
85
- def bin_proportion(upper, lower, log_spacing=False):
86
- if log_spacing:
87
- ll = np.log(lower)
88
- ul = np.log(lower)
89
- centl = (ll + ul) / 2.
90
- minl = np.log(bin_min)
91
- maxl = np.log(bin_max)
92
- return (centl - minl) / (maxl - minl)
93
-
94
- else:
95
- return ((lower + upper) / 2. - bin_min) / (bin_max - bin_min)
96
-
97
-
98
93
  duration_bin_edges = list(bl) + [bu[-1]]
99
-
100
- tbins = bin_utils.IrregularBins(duration_bin_edges)
94
+ tbins = IrregularBins(duration_bin_edges)
101
95
 
102
96
  logger = logging.getLogger()
103
97
  init_level = logger.level
104
98
 
105
99
  logging.info("Plotting fits")
106
100
 
107
- for ifo in ifos:
108
- # Skip if no triggers in this IFO
109
- if not len(stats[ifo]): continue
101
+ for ifo in all_ifos:
102
+ fig, ax = plt.subplots(1)
103
+ oput_plot = args.output_plot_name_format.format(ifo=ifo)
104
+
105
+ if ifo not in ifos or not len(stats[ifo]):
106
+ # Plot a blank plot with a message to show it worked, but there
107
+ # weren't any triggers
108
+ plt.tick_params(labelcolor='none', top=False, bottom=False, left=False,
109
+ right=False)
110
+ ax.text(
111
+ 0.5, 0.5,
112
+ "No triggers above threshold in this detector",
113
+ horizontalalignment='center',
114
+ verticalalignment='center',
115
+ )
116
+ logging.info(f"Saving {oput_plot}")
117
+ # Save initial logging level
118
+ logger.setLevel(logging.WARNING)
119
+ fig.savefig(oput_plot)
120
+ logger.setLevel(init_level)
121
+
122
+ continue
110
123
 
111
124
  # Keep track of some maxima for use in setting the plot limits
112
125
  maxstat = stats[ifo].max()
113
126
  max_rate = 0
114
127
 
115
- fig, ax = plt.subplots(1)
116
-
117
- plotbins = np.linspace(fit_threshold, 1.05 * maxstat)
128
+ plotbins = np.linspace(fit_threshold, 1.05 * maxstat, 400)
118
129
 
119
130
  logging.info("Putting events into bins")
120
131
  event_bin = np.array([tbins[d] for d in durations[ifo]])
121
132
 
122
- for bin_num, lower_upper in enumerate(zip(duration_bin_edges[:-1],
123
- duration_bin_edges[1:])):
133
+ for bin_num, lower_upper in enumerate(zip(tbins.lower(), tbins.upper())):
124
134
  lower, upper = lower_upper
125
135
  binlabel = f"{lower:.3g} - {upper:.3g}"
126
136
 
127
137
  inbin = event_bin == bin_num
128
138
  # Skip if there are no triggers in this bin in this IFO
129
- if not any(inbin): continue
139
+ if not any(inbin):
140
+ continue
130
141
  binned_sngl_stats = stats[ifo][event_bin == bin_num]
131
142
 
132
143
  # Histogram the triggers
@@ -136,34 +147,39 @@ for ifo in ifos:
136
147
 
137
148
  max_rate = max(max_rate, cum_rate[0])
138
149
 
139
- cum_fit = counts[ifo][bin_num] / live_time[ifo] * \
140
- trstats.cum_fit(fit_function, plotbins,
141
- alphas[ifo][bin_num], fit_threshold)
150
+ ecf = eval_cum_fit(
151
+ fit_function,
152
+ plotbins,
153
+ alphas[ifo][bin_num],
154
+ fit_threshold
155
+ )
156
+ cum_fit = counts[ifo][bin_num] / live_time[ifo] * ecf
142
157
 
143
- # Get the colour from the centre of the bin vs the full range
144
- # of all bins
145
- bin_prop = bin_proportion(upper, lower,
146
- log_spacing=args.log_colormap)
158
+ bin_prop = bin_num / len(tbins)
147
159
  bin_colour = plt.get_cmap(args.colormap)(bin_prop)
148
160
  ax.plot(edges[:-1], cum_rate, linewidth=2,
149
161
  color=bin_colour, label=binlabel, alpha=0.6)
150
162
  ax.plot(plotbins, cum_fit, "--", color=bin_colour,
151
163
  label=r"$\alpha = $%.2f" % alphas[ifo][bin_num])
152
- oput_plot = args.output_plot_name_format.format(ifo=ifo)
153
164
  ax.semilogy()
154
165
  ax.grid()
155
- x_upper = args.x_lim_upper or 1.05 * maxstat
156
- y_upper = args.y_lim_upper or 1.5 * max_rate
157
- ax.set_xlim(fit_threshold, x_upper)
158
- ax.set_ylim(0.5 / live_time[ifo], y_upper)
166
+ ax.set_xlim(
167
+ fit_threshold if args.x_lim_lower is None else args.x_lim_lower,
168
+ 1.05 * maxstat if args.x_lim_upper is None else args.x_lim_upper
169
+ )
170
+ ax.set_ylim(
171
+ 0.5 / live_time[ifo] if args.y_lim_lower is None else args.y_lim_lower,
172
+ 1.5 * max_rate if args.y_lim_upper is None else args.y_lim_upper
173
+ )
159
174
  ax.set_xlabel(sngl_ranking)
160
175
  ax.set_ylabel("Number of louder triggers per live time")
161
176
  title = f"{ifo} {analysis_date} trigger fits"
162
177
  ax.set_title(title)
163
- ax.legend(loc='upper right')
178
+ ax.legend(loc='center left', bbox_to_anchor=(1.01, 0.5))
164
179
  logging.info(f"Saving {oput_plot}")
165
180
  # Save initial logging level
166
181
  logger.setLevel(logging.WARNING)
167
- fig.savefig(oput_plot)
182
+ fig.savefig(oput_plot, bbox_inches="tight")
168
183
  logger.setLevel(init_level)
169
-
184
+
185
+ logging.info("Done")