PycWB 0.25.0__tar.gz → 0.27.0__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 (416) hide show
  1. {pycwb-0.25.0 → pycwb-0.27.0}/.gitlab-ci.yml +19 -18
  2. {pycwb-0.25.0 → pycwb-0.27.0}/.readthedocs.yaml +3 -0
  3. {pycwb-0.25.0 → pycwb-0.27.0}/PKG-INFO +1 -1
  4. {pycwb-0.25.0 → pycwb-0.27.0}/PycWB.egg-info/PKG-INFO +1 -1
  5. {pycwb-0.25.0 → pycwb-0.27.0}/PycWB.egg-info/SOURCES.txt +16 -0
  6. {pycwb-0.25.0 → pycwb-0.27.0}/bin/pycwb +11 -0
  7. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/index.rst +4 -0
  8. pycwb-0.27.0/examples/gwosc/user_parameters.yaml +89 -0
  9. pycwb-0.27.0/prototypes/pp_workflow/simple.yaml +43 -0
  10. pycwb-0.27.0/prototypes/pp_workflow/simple_module.yaml +48 -0
  11. pycwb-0.27.0/prototypes/pp_workflow/workflow.yaml +40 -0
  12. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/_version.py +2 -2
  13. pycwb-0.27.0/pycwb/cli/gwosc.py +84 -0
  14. pycwb-0.27.0/pycwb/cli/post_process.py +15 -0
  15. pycwb-0.27.0/pycwb/modules/gwosc/gwosc.py +142 -0
  16. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/likelihood/likelihood.py +6 -4
  17. pycwb-0.27.0/pycwb/modules/report/continues_poisson.py +129 -0
  18. pycwb-0.27.0/pycwb/modules/report/far_rho.py +50 -0
  19. pycwb-0.27.0/pycwb/modules/report/read_results.py +81 -0
  20. pycwb-0.27.0/pycwb/modules/report/report.py +130 -0
  21. pycwb-0.27.0/pycwb/post_production/workflow.py +36 -0
  22. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/types/network_event.py +18 -5
  23. pycwb-0.27.0/pycwb/vendor/autoencoder/__init__.py +0 -0
  24. pycwb-0.27.0/pycwb/vendor/lib/__init__.py +0 -0
  25. pycwb-0.27.0/pycwb/vendor/template/gwosc/user_parameters.yaml +89 -0
  26. pycwb-0.27.0/pycwb/workflow/__init__.py +0 -0
  27. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/workflow/subflow/process_job_segment.py +3 -2
  28. {pycwb-0.25.0 → pycwb-0.27.0}/.gitignore +0 -0
  29. {pycwb-0.25.0 → pycwb-0.27.0}/LICENSE +0 -0
  30. {pycwb-0.25.0 → pycwb-0.27.0}/MANIFEST.in +0 -0
  31. {pycwb-0.25.0 → pycwb-0.27.0}/Makefile +0 -0
  32. {pycwb-0.25.0 → pycwb-0.27.0}/PycWB.egg-info/dependency_links.txt +0 -0
  33. {pycwb-0.25.0 → pycwb-0.27.0}/PycWB.egg-info/requires.txt +0 -0
  34. {pycwb-0.25.0 → pycwb-0.27.0}/PycWB.egg-info/top_level.txt +0 -0
  35. {pycwb-0.25.0 → pycwb-0.27.0}/README.md +0 -0
  36. {pycwb-0.25.0 → pycwb-0.27.0}/benchmark/README.md +0 -0
  37. {pycwb-0.25.0 → pycwb-0.27.0}/benchmark/likelihood/README.md +0 -0
  38. {pycwb-0.25.0 → pycwb-0.27.0}/benchmark/likelihood/generate_data_for_likelihood.py +0 -0
  39. {pycwb-0.25.0 → pycwb-0.27.0}/benchmark/likelihood/performance_test_dpf.py +0 -0
  40. {pycwb-0.25.0 → pycwb-0.27.0}/benchmark/likelihood/performance_test_opt_sky.py +0 -0
  41. {pycwb-0.25.0 → pycwb-0.27.0}/benchmark/likelihood/user_parameters_injection.yaml +0 -0
  42. {pycwb-0.25.0 → pycwb-0.27.0}/benchmark/supercluster/README.md +0 -0
  43. {pycwb-0.25.0 → pycwb-0.27.0}/benchmark/supercluster/generate_data.py +0 -0
  44. {pycwb-0.25.0 → pycwb-0.27.0}/benchmark/supercluster/generate_data_2.py +0 -0
  45. {pycwb-0.25.0 → pycwb-0.27.0}/benchmark/supercluster/performance_supercluster.py +0 -0
  46. {pycwb-0.25.0 → pycwb-0.27.0}/benchmark/supercluster/user_parameters_injection.yaml +0 -0
  47. {pycwb-0.25.0 → pycwb-0.27.0}/bin/pycwb_search +0 -0
  48. {pycwb-0.25.0 → pycwb-0.27.0}/bin/pycwb_show +0 -0
  49. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/Biorthogonal.cc +0 -0
  50. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/Biorthogonal.hh +0 -0
  51. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/CMakeLists.txt +0 -0
  52. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/Daubechies.cc +0 -0
  53. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/Daubechies.hh +0 -0
  54. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/FourierCoefficients.icc +0 -0
  55. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/Haar.cc +0 -0
  56. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/Haar.hh +0 -0
  57. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/LineFilter.cc +0 -0
  58. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/LineFilter.hh +0 -0
  59. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/Makefile +0 -0
  60. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/Meyer.cc +0 -0
  61. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/Meyer.hh +0 -0
  62. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/Symlet.cc +0 -0
  63. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/Symlet.hh +0 -0
  64. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/SymmArray.cc +0 -0
  65. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/SymmArray.hh +0 -0
  66. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/SymmArraySSE.cc +0 -0
  67. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/SymmArraySSE.hh +0 -0
  68. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/SymmObjArray.cc +0 -0
  69. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/SymmObjArray.hh +0 -0
  70. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/WDM.cc +0 -0
  71. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/WDM.hh +0 -0
  72. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/WDMOverlap.cc +0 -0
  73. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/WDMOverlap.hh +0 -0
  74. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/WaveDWT.cc +0 -0
  75. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/WaveDWT.hh +0 -0
  76. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/Wavelet.cc +0 -0
  77. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/Wavelet.hh +0 -0
  78. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/alm.hh +0 -0
  79. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/build.sh +0 -0
  80. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/cluster.cc +0 -0
  81. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/cluster.hh +0 -0
  82. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/cmake/FindHealpix.cmake +0 -0
  83. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/cmake/FindeBBH.cmake +0 -0
  84. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/cmake/install_function.cmake +0 -0
  85. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/constants.hh +0 -0
  86. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/detector.cc +0 -0
  87. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/detector.hh +0 -0
  88. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/injection.cc +0 -0
  89. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/injection.hh +0 -0
  90. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/lossy.cc +0 -0
  91. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/lossy.hh +0 -0
  92. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/monster.cc +0 -0
  93. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/monster.hh +0 -0
  94. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/netcluster.cc +0 -0
  95. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/netcluster.hh +0 -0
  96. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/netevent.cc +0 -0
  97. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/netevent.hh +0 -0
  98. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/netpixel.cc +0 -0
  99. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/netpixel.hh +0 -0
  100. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/network.cc +0 -0
  101. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/network.hh +0 -0
  102. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/pycwb.hh +0 -0
  103. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/rdfr.cc +0 -0
  104. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/rdfr.hh +0 -0
  105. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/readframe.cc +0 -0
  106. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/readframe.hh +0 -0
  107. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/readfrfile.cc +0 -0
  108. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/readfrfile.hh +0 -0
  109. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/regression.cc +0 -0
  110. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/regression.hh +0 -0
  111. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/skycoord.hh +0 -0
  112. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/skymap.cc +0 -0
  113. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/skymap.hh +0 -0
  114. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/sseries.cc +0 -0
  115. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/sseries.hh +0 -0
  116. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/time.cc +0 -0
  117. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/time.hh +0 -0
  118. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wat.hh +0 -0
  119. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/watasm.S +0 -0
  120. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/watasm_elf64.o +0 -0
  121. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/watavx.hh +0 -0
  122. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/watbranch.in +0 -0
  123. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/watfun.hh +0 -0
  124. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wathash.in +0 -0
  125. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/watplot.cc +0 -0
  126. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/watplot.hh +0 -0
  127. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/watsse.hh +0 -0
  128. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wattag.in +0 -0
  129. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/waturl.in +0 -0
  130. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/watversion.hh.in +0 -0
  131. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wavearray.cc +0 -0
  132. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wavearray.hh +0 -0
  133. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wavecomplex.cc +0 -0
  134. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wavecomplex.hh +0 -0
  135. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wavecor.cc +0 -0
  136. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wavecor.hh +0 -0
  137. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wavefft.cc +0 -0
  138. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wavefft.hh +0 -0
  139. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wavelet_LinkDef.h +0 -0
  140. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wavelinefilter.cc +0 -0
  141. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wavelinefilter.hh +0 -0
  142. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/waverdc.cc +0 -0
  143. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/waverdc.hh +0 -0
  144. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wseries.cc +0 -0
  145. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wseries.hh +0 -0
  146. {pycwb-0.25.0 → pycwb-0.27.0}/cwb-core/wslice.hh +0 -0
  147. {pycwb-0.25.0 → pycwb-0.27.0}/docs/0.installation_guide.md +0 -0
  148. {pycwb-0.25.0 → pycwb-0.27.0}/docs/1.initialisation_guide.md +0 -0
  149. {pycwb-0.25.0 → pycwb-0.27.0}/docs/2.test_interactive_multistages_2G_analysis.md +0 -0
  150. {pycwb-0.25.0 → pycwb-0.27.0}/docs/3.run_pycwb_with_yaml_config.md +0 -0
  151. {pycwb-0.25.0 → pycwb-0.27.0}/docs/4.py_cwb_inet_2G.md +0 -0
  152. {pycwb-0.25.0 → pycwb-0.27.0}/docs/5.cwb2G_analyse.md +0 -0
  153. {pycwb-0.25.0 → pycwb-0.27.0}/docs/6.wat_codes_notes.md +0 -0
  154. {pycwb-0.25.0 → pycwb-0.27.0}/docs/Makefile +0 -0
  155. {pycwb-0.25.0 → pycwb-0.27.0}/docs/diagram.py +0 -0
  156. {pycwb-0.25.0 → pycwb-0.27.0}/docs/make.bat +0 -0
  157. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/_static/.keep +0 -0
  158. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/_templates/.keep +0 -0
  159. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/conf.py +0 -0
  160. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/credit.rst +0 -0
  161. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/install.rst +0 -0
  162. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/mod_cwb.rst +0 -0
  163. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/package.rst +0 -0
  164. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/schema.rst +0 -0
  165. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/tutorial_batch_inj.rst +0 -0
  166. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/tutorial_customized_wf_gen.rst +0 -0
  167. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/tutorial_injection.rst +0 -0
  168. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/tutorial_multi_injection.rst +0 -0
  169. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/tutorial_search.rst +0 -0
  170. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/tutorials.rst +0 -0
  171. {pycwb-0.25.0 → pycwb-0.27.0}/docs/source/workflow.png +0 -0
  172. {pycwb-0.25.0 → pycwb-0.27.0}/envs/Dockerfile +0 -0
  173. {pycwb-0.25.0 → pycwb-0.27.0}/envs/environment.yml +0 -0
  174. {pycwb-0.25.0 → pycwb-0.27.0}/envs/mamba/Dockerfile +0 -0
  175. {pycwb-0.25.0 → pycwb-0.27.0}/examples/autoencoder/pycwb_injection.ipynb +0 -0
  176. {pycwb-0.25.0 → pycwb-0.27.0}/examples/autoencoder/user_parameters_injection.yaml +0 -0
  177. {pycwb-0.25.0 → pycwb-0.27.0}/examples/batch_injection/generate_parameters.py +0 -0
  178. {pycwb-0.25.0 → pycwb-0.27.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/__init__.py +0 -0
  179. {pycwb-0.25.0 → pycwb-0.27.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/parameters.py +0 -0
  180. {pycwb-0.25.0 → pycwb-0.27.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/waveform.py +0 -0
  181. {pycwb-0.25.0 → pycwb-0.27.0}/examples/batch_injection/pycwb_injection.py +0 -0
  182. {pycwb-0.25.0 → pycwb-0.27.0}/examples/batch_injection/user_parameters_injection.yaml +0 -0
  183. {pycwb-0.25.0 → pycwb-0.27.0}/examples/benchmark/DQ/H1_cat0.txt +0 -0
  184. {pycwb-0.25.0 → pycwb-0.27.0}/examples/benchmark/DQ/H1_cat1.txt +0 -0
  185. {pycwb-0.25.0 → pycwb-0.27.0}/examples/benchmark/DQ/H1_cat2.txt +0 -0
  186. {pycwb-0.25.0 → pycwb-0.27.0}/examples/benchmark/DQ/H1_cat4.txt +0 -0
  187. {pycwb-0.25.0 → pycwb-0.27.0}/examples/benchmark/DQ/L1_cat0.txt +0 -0
  188. {pycwb-0.25.0 → pycwb-0.27.0}/examples/benchmark/DQ/L1_cat1.txt +0 -0
  189. {pycwb-0.25.0 → pycwb-0.27.0}/examples/benchmark/DQ/L1_cat2.txt +0 -0
  190. {pycwb-0.25.0 → pycwb-0.27.0}/examples/benchmark/DQ/L1_cat4.txt +0 -0
  191. {pycwb-0.25.0 → pycwb-0.27.0}/examples/benchmark/input/OPBM.period +0 -0
  192. {pycwb-0.25.0 → pycwb-0.27.0}/examples/benchmark/input/OPBM_H1.frames +0 -0
  193. {pycwb-0.25.0 → pycwb-0.27.0}/examples/benchmark/input/OPBM_L1.frames +0 -0
  194. {pycwb-0.25.0 → pycwb-0.27.0}/examples/benchmark/pycwb_mdc.py +0 -0
  195. {pycwb-0.25.0 → pycwb-0.27.0}/examples/benchmark/user_parameters_mdc.yaml +0 -0
  196. {pycwb-0.25.0 → pycwb-0.27.0}/examples/colab/pycWB_GW150914.ipynb +0 -0
  197. {pycwb-0.25.0 → pycwb-0.27.0}/examples/injection/pycwb_injection.ipynb +0 -0
  198. {pycwb-0.25.0 → pycwb-0.27.0}/examples/injection/user_parameters_injection.yaml +0 -0
  199. {pycwb-0.25.0 → pycwb-0.27.0}/examples/injection/wdmXTalk/OverlapCatalog16-1024.bin +0 -0
  200. {pycwb-0.25.0 → pycwb-0.27.0}/examples/lvk_sep_2023/demo.ipynb +0 -0
  201. {pycwb-0.25.0 → pycwb-0.27.0}/examples/lvk_sep_2023/user_parameters.yaml +0 -0
  202. {pycwb-0.25.0 → pycwb-0.27.0}/examples/multiple_injection/pycwb_injection.py +0 -0
  203. {pycwb-0.25.0 → pycwb-0.27.0}/examples/multiple_injection/user_parameters_injection.yaml +0 -0
  204. {pycwb-0.25.0 → pycwb-0.27.0}/examples/pyseobnr_injection/generate_parameters.py +0 -0
  205. {pycwb-0.25.0 → pycwb-0.27.0}/examples/pyseobnr_injection/user_parameters_injection.yaml +0 -0
  206. {pycwb-0.25.0 → pycwb-0.27.0}/examples/pyseobnr_injection/waveform_model/__init__.py +0 -0
  207. {pycwb-0.25.0 → pycwb-0.27.0}/examples/pyseobnr_injection/waveform_model/waveform.py +0 -0
  208. {pycwb-0.25.0 → pycwb-0.27.0}/examples/waveform_reconstruction/reconstruct_waveform_from_cluster.ipynb +0 -0
  209. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/cwb_core/coherence.cc +0 -0
  210. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/cwb_core/coherence.hh +0 -0
  211. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/cwb_core/likelihood.cc +0 -0
  212. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/cwb_core/likelihood.hh +0 -0
  213. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/dag/dag.py +0 -0
  214. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/dag/dask-prefect.py +0 -0
  215. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/dag/prefect_test.py +0 -0
  216. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger/__init__.py +0 -0
  217. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger/server.py +0 -0
  218. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger/visualizition.py +0 -0
  219. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/.eslintrc.cjs +0 -0
  220. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/.gitignore +0 -0
  221. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/.prettierrc.json +0 -0
  222. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/README.md +0 -0
  223. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/index.html +0 -0
  224. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/package-lock.json +0 -0
  225. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/package.json +0 -0
  226. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/public/favicon.ico +0 -0
  227. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/App.vue +0 -0
  228. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/assets/base.css +0 -0
  229. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/assets/cwb_icon_modern_blue_alfa.png +0 -0
  230. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/assets/main.css +0 -0
  231. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/assets/style.css +0 -0
  232. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/components/HelloWorld.vue +0 -0
  233. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/components/TheWelcome.vue +0 -0
  234. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/components/WelcomeItem.vue +0 -0
  235. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/components/__tests__/HelloWorld.spec.js +0 -0
  236. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/components/icons/IconCommunity.vue +0 -0
  237. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/components/icons/IconDocumentation.vue +0 -0
  238. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/components/icons/IconEcosystem.vue +0 -0
  239. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/components/icons/IconSupport.vue +0 -0
  240. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/components/icons/IconTooling.vue +0 -0
  241. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/main.js +0 -0
  242. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/router/index.js +0 -0
  243. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/stores/counter.js +0 -0
  244. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/views/drawflow.vue +0 -0
  245. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/views/nodes/node1.vue +0 -0
  246. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/views/nodes/node2.vue +0 -0
  247. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/views/nodes/node3.vue +0 -0
  248. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/src/views/nodes/nodeHeader.vue +0 -0
  249. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/messenger-web-interface/vite.config.js +0 -0
  250. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/performance/numba_test.py +0 -0
  251. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/performance/taichi_test.py +0 -0
  252. {pycwb-0.25.0 → pycwb-0.27.0}/prototypes/search.yaml +0 -0
  253. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/__init__.py +0 -0
  254. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/cli/__init__.py +0 -0
  255. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/cli/batch_runner.py +0 -0
  256. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/cli/batch_setup.py +0 -0
  257. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/cli/flow.py +0 -0
  258. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/cli/merge_catalog.py +0 -0
  259. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/cli/run.py +0 -0
  260. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/cli/server.py +0 -0
  261. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/cli/xtalk.py +0 -0
  262. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/config/__init__.py +0 -0
  263. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/config/config.py +0 -0
  264. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/constants/__init__.py +0 -0
  265. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/constants/project_constants.py +0 -0
  266. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/constants/user_parameters_schema.py +0 -0
  267. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/__init__.py +0 -0
  268. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/autoencoder/__init__.py +0 -0
  269. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/autoencoder/autoencoder.py +0 -0
  270. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/autoencoder/cwb_autoencoder.py +0 -0
  271. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/autoencoder/module.yaml +0 -0
  272. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/catalog/__init__.py +0 -0
  273. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/catalog/catalog.py +0 -0
  274. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/catalog/module.yaml +0 -0
  275. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/coherence/__init__.py +0 -0
  276. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/coherence/coherence.py +0 -0
  277. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/coherence/coherence_lite.py +0 -0
  278. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/coherence/module.yaml +0 -0
  279. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/condor/__init__.py +0 -0
  280. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/condor/condor.py +0 -0
  281. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/condor/module.yaml +0 -0
  282. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/cwb_conversions/__init__.py +0 -0
  283. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/cwb_conversions/cluster.py +0 -0
  284. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/cwb_conversions/module.yaml +0 -0
  285. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/cwb_conversions/pixel.py +0 -0
  286. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/cwb_conversions/series.py +0 -0
  287. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/cwb_conversions/sparse_series.py +0 -0
  288. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/data_conditioning/__init__.py +0 -0
  289. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/data_conditioning/data_conditioning.py +0 -0
  290. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/data_conditioning/module.yaml +0 -0
  291. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/data_conditioning/regression.py +0 -0
  292. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/data_conditioning/whitening.py +0 -0
  293. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/energy_threshold/__init__.py +0 -0
  294. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/energy_threshold/threshold.py +0 -0
  295. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/gracedb/__init__.py +0 -0
  296. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/gracedb/gracedb.py +0 -0
  297. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/gracedb/module.yaml +0 -0
  298. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/gracedb/test_gracedb.py +0 -0
  299. {pycwb-0.25.0/pycwb/modules/likelihoodWP → pycwb-0.27.0/pycwb/modules/gwosc}/__init__.py +0 -0
  300. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/job_segment/__init__.py +0 -0
  301. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/job_segment/dq_segment.py +0 -0
  302. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/job_segment/frame.py +0 -0
  303. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/job_segment/job_segment.py +0 -0
  304. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/job_segment/module.yaml +0 -0
  305. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/job_segment/plots.py +0 -0
  306. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/job_segment/super_lag.py +0 -0
  307. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/job_segment/test_job_segment.py +0 -0
  308. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/likelihood/__init__.py +0 -0
  309. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/likelihood/module.yaml +0 -0
  310. {pycwb-0.25.0/pycwb/modules/plot_map → pycwb-0.27.0/pycwb/modules/likelihoodWP}/__init__.py +0 -0
  311. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/likelihoodWP/dpf.py +0 -0
  312. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/likelihoodWP/dpf_cython.pyx +0 -0
  313. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/likelihoodWP/likelihood.py +0 -0
  314. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/likelihoodWP/sky_stat.py +0 -0
  315. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/likelihoodWP/utils.py +0 -0
  316. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/logger/__init__.py +0 -0
  317. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/logger/logger.py +0 -0
  318. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/logger/module.yaml +0 -0
  319. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/multi_resolution_wdm/__init__.py +0 -0
  320. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/multi_resolution_wdm/module.yaml +0 -0
  321. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/multi_resolution_wdm/wdm.py +0 -0
  322. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/plot/__init__.py +0 -0
  323. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/plot/cluster_statistics.py +0 -0
  324. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/plot/event.py +0 -0
  325. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/plot/module.yaml +0 -0
  326. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/plot/spectrogram.py +0 -0
  327. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/plot/waveform.py +0 -0
  328. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/plot_data_quality/__init__.py +0 -0
  329. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/plot_data_quality/module.yaml +0 -0
  330. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/plot_data_quality/plot.py +0 -0
  331. {pycwb-0.25.0/pycwb/modules/statistics → pycwb-0.27.0/pycwb/modules/plot_map}/__init__.py +0 -0
  332. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/plot_map/module.yaml +0 -0
  333. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/plot_map/world_map.py +0 -0
  334. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/read_data/__init__.py +0 -0
  335. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/read_data/data_check.py +0 -0
  336. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/read_data/data_find.py +0 -0
  337. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/read_data/mdc.py +0 -0
  338. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/read_data/module.yaml +0 -0
  339. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/read_data/read_data.py +0 -0
  340. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/reconstruction/__init__.py +0 -0
  341. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/reconstruction/getMRAwaveform.py +0 -0
  342. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/reconstruction/module.yaml +0 -0
  343. {pycwb-0.25.0/pycwb/modules/supercluster_naive → pycwb-0.27.0/pycwb/modules/report}/__init__.py +0 -0
  344. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/sparse_series/__init__.py +0 -0
  345. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/sparse_series/module.yaml +0 -0
  346. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/sparse_series/sparse_table.py +0 -0
  347. {pycwb-0.25.0/pycwb/modules/web_viewer → pycwb-0.27.0/pycwb/modules/statistics}/__init__.py +0 -0
  348. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/statistics/eff.py +0 -0
  349. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/statistics/eff_plot.py +0 -0
  350. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/statistics/merge.py +0 -0
  351. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/statistics/sigmoid_fit.py +0 -0
  352. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/super_cluster/__init__.py +0 -0
  353. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/super_cluster/module.yaml +0 -0
  354. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/super_cluster/sub_net_cut.py +0 -0
  355. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/super_cluster/super_cluster.py +0 -0
  356. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/super_cluster/supercluster.py +0 -0
  357. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/super_cluster/utils.py +0 -0
  358. {pycwb-0.25.0/pycwb/modules/workflow_utils → pycwb-0.27.0/pycwb/modules/supercluster_naive}/__init__.py +0 -0
  359. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/supercluster_naive/supercluster2.py +0 -0
  360. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/superlag/__init__.py +0 -0
  361. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/superlag/module.yaml +0 -0
  362. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/superlag/superlag.py +0 -0
  363. {pycwb-0.25.0/pycwb/modules/xtalk → pycwb-0.27.0/pycwb/modules/web_viewer}/__init__.py +0 -0
  364. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/web_viewer/create.py +0 -0
  365. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/web_viewer/module.yaml +0 -0
  366. {pycwb-0.25.0/pycwb/prefect_flow → pycwb-0.27.0/pycwb/modules/workflow_utils}/__init__.py +0 -0
  367. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/workflow_utils/job_setup.py +0 -0
  368. {pycwb-0.25.0/pycwb/prefect_flow/tasks → pycwb-0.27.0/pycwb/modules/xtalk}/__init__.py +0 -0
  369. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/xtalk/monster.py +0 -0
  370. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/xtalk/monster_old.py +0 -0
  371. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/modules/xtalk/xtalk_data.py +0 -0
  372. {pycwb-0.25.0/pycwb/types → pycwb-0.27.0/pycwb/post_production}/__init__.py +0 -0
  373. {pycwb-0.25.0/pycwb/utils → pycwb-0.27.0/pycwb/prefect_flow}/__init__.py +0 -0
  374. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/prefect_flow/pycwb_flow.py +0 -0
  375. {pycwb-0.25.0/pycwb/utils/conversions → pycwb-0.27.0/pycwb/prefect_flow/tasks}/__init__.py +0 -0
  376. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/prefect_flow/tasks/builtin.py +0 -0
  377. {pycwb-0.25.0/pycwb/vendor → pycwb-0.27.0/pycwb/types}/__init__.py +0 -0
  378. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/types/data_quality_file.py +0 -0
  379. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/types/detector.py +0 -0
  380. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/types/job.py +0 -0
  381. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/types/network.py +0 -0
  382. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/types/network_cluster.py +0 -0
  383. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/types/network_pixel.py +0 -0
  384. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/types/sparse_series.py +0 -0
  385. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/types/time_frequency_series.py +0 -0
  386. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/types/wdm.py +0 -0
  387. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/types/wdm_xtalk.py +0 -0
  388. {pycwb-0.25.0/pycwb/vendor/autoencoder → pycwb-0.27.0/pycwb/utils}/__init__.py +0 -0
  389. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/utils/async_write.py +0 -0
  390. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/utils/check_ROOT.py +0 -0
  391. {pycwb-0.25.0/pycwb/vendor/lib → pycwb-0.27.0/pycwb/utils/conversions}/__init__.py +0 -0
  392. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/utils/conversions/timeseries.py +0 -0
  393. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/utils/dataclass_object_io.py +0 -0
  394. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/utils/dep_check.py +0 -0
  395. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/utils/generate_params_table.py +0 -0
  396. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/utils/image.py +0 -0
  397. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/utils/module.py +0 -0
  398. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/utils/network.py +0 -0
  399. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/utils/parser.py +0 -0
  400. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/utils/skymap_coord.py +0 -0
  401. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/utils/yaml_helper.py +0 -0
  402. {pycwb-0.25.0/pycwb/workflow → pycwb-0.27.0/pycwb/vendor}/__init__.py +0 -0
  403. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/vendor/autoencoder/cwb_autoencoder.h5 +0 -0
  404. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/vendor/example.yaml +0 -0
  405. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/vendor/web_viewer/event_dump.html +0 -0
  406. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/vendor/web_viewer/styles.css +0 -0
  407. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/vendor/web_viewer/viewer.html +0 -0
  408. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/workflow/batch.py +0 -0
  409. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/workflow/merge.py +0 -0
  410. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/workflow/run.py +0 -0
  411. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/workflow/subflow/__init__.py +0 -0
  412. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/workflow/subflow/postprocess_and_plots.py +0 -0
  413. {pycwb-0.25.0 → pycwb-0.27.0}/pycwb/workflow/subflow/prepare_job_runs.py +0 -0
  414. {pycwb-0.25.0 → pycwb-0.27.0}/pyproject.toml +0 -0
  415. {pycwb-0.25.0 → pycwb-0.27.0}/setup.cfg +0 -0
  416. {pycwb-0.25.0 → pycwb-0.27.0}/setup.py +0 -0
@@ -20,7 +20,7 @@ image: buildpack-deps:jammy
20
20
  stages: # List of stages for jobs, and their order of execution
21
21
  - build
22
22
  - deploy
23
- - post-deploy
23
+ #- post-deploy
24
24
 
25
25
  .install_common: &install_common
26
26
  - wget -q https://root.cern/download/root_v6.26.14.Linux-ubuntu22-x86_64-gcc11.4.tar.gz
@@ -64,23 +64,24 @@ publish:
64
64
  - pip install twine
65
65
  - TWINE_PASSWORD=${PYPI_TOKEN} TWINE_USERNAME=__token__ python -m twine upload dist/*.tar.gz
66
66
 
67
- pages:
68
- stage: post-deploy
69
- rules:
70
- - changes:
71
- - docs/**/*
72
- - if: '$CI_COMMIT_TAG'
73
- script:
74
- - *install_common
75
- - pip install pycwb
76
- - ln -fs /usr/share/zoneinfo/Etc/UTC /etc/localtime
77
- - pip install "sphinx<7.0.0" sphinx_rtd_theme
78
- - make doc
79
- - mkdir public
80
- - cp -r docs/build/html/* public/
81
- artifacts:
82
- paths:
83
- - public
67
+ #pages:
68
+ # stage: post-deploy
69
+ # rules:
70
+ # - changes:
71
+ # - docs/**/*
72
+ # - if: '$CI_COMMIT_TAG'
73
+ # script:
74
+ # - *install_common
75
+ # - pip install pycwb
76
+ # - ln -fs /usr/share/zoneinfo/Etc/UTC /etc/localtime
77
+ # - pip install "sphinx<7.0.0" sphinx_rtd_theme
78
+ # - make doc
79
+ # - mkdir public
80
+ # - cp -r docs/build/html/* public/
81
+ # artifacts:
82
+ # paths:
83
+ # - public
84
+
84
85
  #test-job: # This job runs in the test stage.
85
86
  # image: continuumio/miniconda3
86
87
  # stage: test # It only starts when the job in the build stage completes successfully.
@@ -4,6 +4,9 @@ build:
4
4
  os: "ubuntu-22.04"
5
5
  tools:
6
6
  python: "mambaforge-22.9"
7
+ jobs:
8
+ pre_install:
9
+ - git update-index --assume-unchanged envs/environment.yml docs/source/conf.py
7
10
 
8
11
  conda:
9
12
  environment: envs/environment.yml
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PycWB
3
- Version: 0.25.0
3
+ Version: 0.27.0
4
4
  Summary: A Python package for coherent gravitational wave burst analysis
5
5
  Home-page: https://git.ligo.org/yumeng.xu/pycwb
6
6
  Author-email: The PycWB team <yumeng.xu@ligo.org>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PycWB
3
- Version: 0.25.0
3
+ Version: 0.27.0
4
4
  Summary: A Python package for coherent gravitational wave burst analysis
5
5
  Home-page: https://git.ligo.org/yumeng.xu/pycwb
6
6
  Author-email: The PycWB team <yumeng.xu@ligo.org>
@@ -175,6 +175,7 @@ examples/benchmark/input/OPBM.period
175
175
  examples/benchmark/input/OPBM_H1.frames
176
176
  examples/benchmark/input/OPBM_L1.frames
177
177
  examples/colab/pycWB_GW150914.ipynb
178
+ examples/gwosc/user_parameters.yaml
178
179
  examples/injection/pycwb_injection.ipynb
179
180
  examples/injection/user_parameters_injection.yaml
180
181
  examples/injection/wdmXTalk/OverlapCatalog16-1024.bin
@@ -231,13 +232,18 @@ prototypes/messenger-web-interface/src/views/nodes/node3.vue
231
232
  prototypes/messenger-web-interface/src/views/nodes/nodeHeader.vue
232
233
  prototypes/performance/numba_test.py
233
234
  prototypes/performance/taichi_test.py
235
+ prototypes/pp_workflow/simple.yaml
236
+ prototypes/pp_workflow/simple_module.yaml
237
+ prototypes/pp_workflow/workflow.yaml
234
238
  pycwb/__init__.py
235
239
  pycwb/_version.py
236
240
  pycwb/cli/__init__.py
237
241
  pycwb/cli/batch_runner.py
238
242
  pycwb/cli/batch_setup.py
239
243
  pycwb/cli/flow.py
244
+ pycwb/cli/gwosc.py
240
245
  pycwb/cli/merge_catalog.py
246
+ pycwb/cli/post_process.py
241
247
  pycwb/cli/run.py
242
248
  pycwb/cli/server.py
243
249
  pycwb/cli/xtalk.py
@@ -278,6 +284,8 @@ pycwb/modules/gracedb/__init__.py
278
284
  pycwb/modules/gracedb/gracedb.py
279
285
  pycwb/modules/gracedb/module.yaml
280
286
  pycwb/modules/gracedb/test_gracedb.py
287
+ pycwb/modules/gwosc/__init__.py
288
+ pycwb/modules/gwosc/gwosc.py
281
289
  pycwb/modules/job_segment/__init__.py
282
290
  pycwb/modules/job_segment/dq_segment.py
283
291
  pycwb/modules/job_segment/frame.py
@@ -322,6 +330,11 @@ pycwb/modules/read_data/read_data.py
322
330
  pycwb/modules/reconstruction/__init__.py
323
331
  pycwb/modules/reconstruction/getMRAwaveform.py
324
332
  pycwb/modules/reconstruction/module.yaml
333
+ pycwb/modules/report/__init__.py
334
+ pycwb/modules/report/continues_poisson.py
335
+ pycwb/modules/report/far_rho.py
336
+ pycwb/modules/report/read_results.py
337
+ pycwb/modules/report/report.py
325
338
  pycwb/modules/sparse_series/__init__.py
326
339
  pycwb/modules/sparse_series/module.yaml
327
340
  pycwb/modules/sparse_series/sparse_table.py
@@ -350,6 +363,8 @@ pycwb/modules/xtalk/__init__.py
350
363
  pycwb/modules/xtalk/monster.py
351
364
  pycwb/modules/xtalk/monster_old.py
352
365
  pycwb/modules/xtalk/xtalk_data.py
366
+ pycwb/post_production/__init__.py
367
+ pycwb/post_production/workflow.py
353
368
  pycwb/prefect_flow/__init__.py
354
369
  pycwb/prefect_flow/pycwb_flow.py
355
370
  pycwb/prefect_flow/tasks/__init__.py
@@ -385,6 +400,7 @@ pycwb/vendor/example.yaml
385
400
  pycwb/vendor/autoencoder/__init__.py
386
401
  pycwb/vendor/autoencoder/cwb_autoencoder.h5
387
402
  pycwb/vendor/lib/__init__.py
403
+ pycwb/vendor/template/gwosc/user_parameters.yaml
388
404
  pycwb/vendor/web_viewer/event_dump.html
389
405
  pycwb/vendor/web_viewer/styles.css
390
406
  pycwb/vendor/web_viewer/viewer.html
@@ -11,6 +11,8 @@ import pycwb.cli.batch_setup as batch_setup
11
11
  import pycwb.cli.batch_runner as batch_runner
12
12
  import pycwb.cli.xtalk as xtalk
13
13
  import pycwb.cli.merge_catalog as merge_catalog
14
+ import pycwb.cli.post_process as post_process
15
+ import pycwb.cli.gwosc as gwosc
14
16
 
15
17
  def main():
16
18
  parser = argparse.ArgumentParser(prog='pycwb')
@@ -46,6 +48,15 @@ def main():
46
48
  merge_catalog.init_parser(merge_catalog_parser)
47
49
  merge_catalog_parser.set_defaults(func=merge_catalog.command)
48
50
 
51
+ post_process_parser = subparsers.add_parser('post-process', help='Post process the results')
52
+ post_process.init_parser(post_process_parser)
53
+ post_process_parser.set_defaults(func=post_process.command)
54
+
55
+ #gwosc subcommand
56
+ gwosc_parser = subparsers.add_parser('gwosc', help='Download files to run a pycwb analysis of a GW event of your choice')
57
+ gwosc.init_parser(gwosc_parser)
58
+ gwosc_parser.set_defaults(func=gwosc.command)
59
+
49
60
  args = parser.parse_args()
50
61
  if hasattr(args, 'func'):
51
62
  args.func(args)
@@ -124,6 +124,10 @@ You can get help by running the command with the ``-h`` option. Here are the cur
124
124
  - Setup batch run
125
125
  * - ``pycwb batch-runner``
126
126
  - Runner for batch run, used for the job submission
127
+ * - ``pycwb post-process``
128
+ - Run the post process workflow
129
+ * - ``pycwb gwosc``
130
+ - Download data from GWOSC and setup the search
127
131
  * - ``pycwb flow``
128
132
  - Run search with prefect flow
129
133
  * - ``pycwb xtalk``
@@ -0,0 +1,89 @@
1
+
2
+ outputDir: "output"
3
+ nproc: 6
4
+ plot_trigger: True
5
+ plot_waveform: True
6
+ plot_injection: True
7
+ plot_sky_map: True
8
+ save_sky_map: True
9
+ save_injection: True
10
+ save_waveform: True
11
+
12
+ analysis: "2G"
13
+ cfg_search: "r"
14
+
15
+ optim: False
16
+
17
+ ###### network configuration ######
18
+ ifo: ["L1","H1"]
19
+ refIFO: "L1"
20
+
21
+ inRate: 16384
22
+ # lags
23
+ lagSize: 1
24
+ lagStep: 1.
25
+ lagOff: 0
26
+ lagMax: 0
27
+
28
+ # superlags
29
+ slagSize: 0 # number of super lags (simulation=1) - if slagSize=0 -> Standard Segments
30
+ slagMin: 0
31
+ slagMax: 0
32
+ slagOff: 0
33
+
34
+ # job
35
+ segLen: 1200
36
+ segMLS: 600
37
+ segTHR: 200
38
+ segEdge: 10
39
+
40
+ # frequency
41
+ fLow: 16.
42
+ fHigh: 1024.
43
+
44
+
45
+ levelR: 3
46
+ l_low: 4 # low frequency resolution level // std (sthr = 2)
47
+ l_high: 10 # high frequency resolution level // std (sthr = 8)
48
+
49
+ wdmXTalk: "wdmXTalk/OverlapCatalog16-1024.bin"
50
+
51
+ healpix: 7
52
+
53
+ ###### cWB production thresholds & regulators ######
54
+
55
+ bpp: 0.001
56
+ subnet: 0.5
57
+ subcut: 0.0
58
+ netRHO: 5.5
59
+ netCC: 0.5
60
+ Acore: 1.7
61
+ Tgap: 0.2
62
+ Fgap: 128.0
63
+ delta: 0.5
64
+ cfg_gamma: -1.0
65
+ LOUD: 300
66
+
67
+ pattern: 5
68
+
69
+ iwindow: 30
70
+
71
+ nSky: 196608
72
+
73
+ # simulation
74
+ simulation: None #PREVIOUSLY COMMENTED
75
+ nfactor: 1
76
+
77
+ channelNamesRaw: ["L1:GWOSC-4KHZ_R1_STRAIN","H1:GWOSC-4KHZ_R1_STRAIN"]
78
+ frFiles: ["./GW170104/input/L1_frames.in", "./GW170104/input/H1_frames.in"]
79
+
80
+ DQF: [
81
+ [ "L1" ,"./GW170104/input/L1_cat0.txt", CWB_CAT0, 0., False, False ],
82
+ [ "H1" ,"./GW170104/input/H1_cat0.txt", CWB_CAT0, 0., False, False ],
83
+ [ "L1" ,"./GW170104/input/L1_cat1.txt", CWB_CAT1, 0., False, False ],
84
+ [ "H1" ,"./GW170104/input/H1_cat1.txt", CWB_CAT1, 0., False, False ],
85
+ [ "L1" ,"./GW170104/input/L1_cat2.txt", CWB_CAT2, 0., False, False ],
86
+ [ "H1" ,"./GW170104/input/H1_cat2.txt", CWB_CAT2, 0., False, False ],
87
+ [ "L1" ,"./GW170104/input/cwb_period.txt", CWB_CAT0, 0., False, False ],
88
+ [ "H1" ,"./GW170104/input/cwb_period.txt", CWB_CAT0, 0., False, False ],
89
+ ]
@@ -0,0 +1,43 @@
1
+ global:
2
+ work_dir: /Users/yumengxu/Downloads/pycwb_examples
3
+ steps:
4
+ - action: read_triggers
5
+ args:
6
+ run_dir: background
7
+ filters:
8
+ - "lag[0]>0"
9
+ output_alias: 'background'
10
+ - action: read_live_time
11
+ args:
12
+ run_dir: background
13
+ filters:
14
+ - "lag[0]>0"
15
+ output_alias: 'livetime'
16
+ - action: far_rho # this module will calculate the ifar_rho and pass the output to the downstream modules
17
+ args:
18
+ source: 'background'
19
+ livetime_key: 'livetime'
20
+ ranking_par: rho[0]
21
+ bin_size: 0.0001
22
+ output_alias: 'far_rho'
23
+ - action: read_triggers
24
+ args:
25
+ run_dir: background
26
+ filters:
27
+ - "lag[0]==0"
28
+ output_alias: 'zero_lag'
29
+ - action: read_live_time
30
+ args:
31
+ run_dir: background
32
+ filters:
33
+ - "lag[0]==0"
34
+ output_alias: 'livetime_zerolag'
35
+ - action: report_zero_lag
36
+ args:
37
+ source: 'zero_lag'
38
+ livetime_key: 'livetime_zerolag'
39
+ far_rho_source: 'far_rho'
40
+ - action: report # generate report
41
+ args:
42
+ far_rho_source: 'far_rho'
43
+ output: public/
@@ -0,0 +1,48 @@
1
+ global:
2
+ work_dir: /Users/yumengxu/Downloads/pycwb_examples
3
+ steps:
4
+ - action: report.read_results.read_triggers
5
+ args:
6
+ run_dir: background
7
+ prefilters:
8
+ - "shift[0] != 0 or shift[1] != 0 or lag != 0"
9
+ output_alias: 'background'
10
+ - action: report.read_results.read_live_time
11
+ args:
12
+ run_dir: background
13
+ filters:
14
+ - "shift[0] != 0 or shift[1] != 0 or lag != 0"
15
+ output_alias: 'livetime'
16
+ - action: report.far_rho.far_rho # this module will calculate the far_rho and pass the output to the downstream modules
17
+ args:
18
+ source: 'background'
19
+ livetime_key: 'livetime'
20
+ ranking_par: rho[0]
21
+ bin_size: 0.0001
22
+ save: far_rho.json
23
+ output_alias: 'far_rho'
24
+ - action: report.read_results.read_triggers
25
+ args:
26
+ run_dir: background
27
+ prefilters:
28
+ - "lag==0"
29
+ - "slag[0]==0"
30
+ - "slag[1]==0"
31
+ output_alias: 'zero_lag'
32
+ - action: report.read_results.read_live_time
33
+ args:
34
+ run_dir: background
35
+ filters:
36
+ - "lag==0"
37
+ - "shift[0]==0"
38
+ - "shift[1]==0"
39
+ output_alias: 'livetime_zerolag'
40
+ - action: report.report.report_zero_lag
41
+ args:
42
+ source: 'zero_lag'
43
+ livetime_key: 'livetime_zerolag'
44
+ far_rho_source: 'far_rho'
45
+ - action: report.report.report # generate report
46
+ args:
47
+ far_rho_source: 'far_rho'
48
+ output: public/
@@ -0,0 +1,40 @@
1
+ global:
2
+ work_dir: /Users/yumengxu/Downloads/pycwb_examples/non-builtin-waveform
3
+ steps:
4
+ - action: events_filter # this module will filter the event and pass to the downstream modules
5
+ args:
6
+ run_dir: O4_K01_BurstLD_BKG
7
+ conditions:
8
+ - "lag>0" # only process non-zero lag events
9
+ output_alias: 'background'
10
+ - action: events_filter # read the training set and name it as 'training_set'
11
+ args:
12
+ run_dir: O4_K01_BurstLD_SIM_TrainingSet1
13
+ output_alias: 'sim_training_set'
14
+ - action: events_splitter # split the background into bkg_training_set and bkg_test_set
15
+ args:
16
+ source: 'background'
17
+ percent: [0.5, 0.5]
18
+ output_alias: ['bkg_training_set', 'bkg_test_set']
19
+ - action: xgboost_model # take the training set from the upsteam
20
+ args:
21
+ background: ['bkg_training_set']
22
+ simulation: ['sim_training_set']
23
+ config: xgb_config.py
24
+ get_rhor: xgb_get_rhor.py
25
+ name: 'model_v1a'
26
+ - action: xgboost_apply # apply xgb on BKG
27
+ args:
28
+ source: 'bkg_test_set'
29
+ model: 'model_v1a'
30
+ output_alias: 'bkg_test_set.model_v1a'
31
+ - action: ifar_rho # this module will calculate the ifar_rho and pass the output to the downstream modules
32
+ args:
33
+ source: 'bkg_test_set.model_v1a'
34
+ ranking_par: rho[1]
35
+ ranking_par_bin: 0.0001
36
+ output_alias: 'bkg_test_set.model_v1a.ifar'
37
+ - action: report # generate report
38
+ args:
39
+ source: 'bkg_test_set.model_v1a.ifar'
40
+ output: public/
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.25.0'
16
- __version_tuple__ = version_tuple = (0, 25, 0)
15
+ __version__ = version = '0.27.0'
16
+ __version_tuple__ = version_tuple = (0, 27, 0)
@@ -0,0 +1,84 @@
1
+ import os
2
+ import shutil
3
+ import pycwb
4
+ from pycwb.modules.gwosc.gwosc import download_frames_files
5
+ from pycwb.modules.gwosc.gwosc import get_cat_files
6
+ from pycwb.modules.gwosc.gwosc import analysis_period
7
+
8
+ def init_parser(parser):
9
+
10
+ # Select the GW event
11
+ parser.add_argument('event_name',
12
+ metavar='event_name', # Corrected metavar
13
+ type=str,
14
+ help='The name of the GW event you want (e.g., "GW150914").')
15
+
16
+ # Time left for cWB analysis
17
+ parser.add_argument('--time_left',
18
+ metavar='time_left',
19
+ type=float,
20
+ default=610,
21
+ help='The pycWB analysis interval is '
22
+ '[event_gps_time - time_left; event_gps_time + time_right]. Default: 610 seconds.')
23
+
24
+ # Time right for cWB analysis
25
+ parser.add_argument('--time_right',
26
+ metavar='time_right',
27
+ type=float,
28
+ default=610,
29
+ help='The pycWB analysis interval is: '
30
+ '[event_gps_time - time_left; event_gps_time + time_right]. Default: 610 seconds.')
31
+
32
+ # List of detectors
33
+ parser.add_argument('--ifos',
34
+ metavar='ifos',
35
+ type=str,
36
+ nargs='+',
37
+ default=['H1', 'L1'],
38
+ help='List of the detectors you want data from. For example: --ifos H1 L1. The default is H1 L1.')
39
+
40
+ parser.add_argument('--user_parameters_path',
41
+ metavar='user_parameters_path',
42
+ type=str,
43
+ default=None,
44
+ help='Path of the user_parameters file, default pycwb/vendor/template/gwosc/')
45
+
46
+
47
+ def copy_user_parameters(user_parameters_path):
48
+
49
+
50
+ file_to_copy = os.path.join(user_parameters_path, 'user_parameters.yaml')
51
+
52
+ # Check if the file exists
53
+ if not os.path.exists(file_to_copy):
54
+ raise FileNotFoundError(f"The file {file_to_copy} does not exist. The default file is {file_to_copy}")
55
+
56
+ # Define the destination directory for the event
57
+ destination_dir = os.path.join(".")
58
+ os.makedirs(destination_dir, exist_ok=True) # Ensure the directory exists
59
+
60
+ # Define the destination file path
61
+ destination_file = os.path.join(destination_dir, os.path.basename(file_to_copy))
62
+
63
+ # Copy the file
64
+ shutil.copy(file_to_copy, destination_file)
65
+ print(f"Copied {file_to_copy} to {destination_file}")
66
+
67
+
68
+ def command(args):
69
+
70
+ if not all(ifo in ["H1", "L1"] for ifo in args.ifos) and not args.user_parameters_path:
71
+ raise ValueError("Only H1 and L1 are supported in ifos with the default user_parameters file, "
72
+ "please provide a custom user_parameters file")
73
+
74
+ output = './input'
75
+
76
+ if args.user_parameters_path is None:
77
+ package_abs_path = os.path.dirname(os.path.abspath(pycwb.__file__))
78
+ args.user_parameters_path = os.path.join(package_abs_path, 'vendor/template/gwosc')
79
+ print(f'{args.user_parameters_path}')
80
+
81
+ download_frames_files(args.event_name, output, args.ifos)
82
+ get_cat_files(args.event_name, output, args.ifos)
83
+ analysis_period(args.event_name, output, args.time_left, args.time_right, args.ifos)
84
+ copy_user_parameters(args.user_parameters_path)
@@ -0,0 +1,15 @@
1
+ import os
2
+
3
+
4
+ def init_parser(parser):
5
+ # Add the arguments
6
+ parser.add_argument('workflow_file',
7
+ metavar='file_path',
8
+ type=str,
9
+ help='the path to the workflow file')
10
+
11
+
12
+ def command(args):
13
+ from pycwb.post_production.workflow import run_workflow
14
+
15
+ run_workflow(args.workflow_file)
@@ -0,0 +1,142 @@
1
+ from gwosc.datasets import event_gps, event_detectors, event_segment
2
+ from gwosc.locate import get_urls
3
+ from gwosc.timeline import get_segments
4
+ import os
5
+ import requests
6
+
7
+ def event_info(event_name, ifos):
8
+ """
9
+ Retrieve key information about the specified gravitational wave event.
10
+
11
+ Parameters:
12
+ -----------
13
+ event_name : str
14
+ The name of the gravitational wave event (e.g., "GW150914").
15
+
16
+ Returns:
17
+ --------
18
+ tuple :
19
+ - A list of detectors that observed the event, filtered to include only allowed detectors.
20
+ - The GPS time of the event.
21
+ - The start and end GPS time of the event segment.
22
+ """
23
+ allowed_cWB_detectors = ifos
24
+ detectors = event_detectors(event_name)
25
+ detectors = [detector for detector in detectors if detector in allowed_cWB_detectors]
26
+ event_gps_time = event_gps(event_name)
27
+ start_time, end_time = event_segment(event_name)
28
+
29
+ return detectors, event_gps_time, start_time, end_time
30
+
31
+ def download_frames_files(event_name, output_dir, ifos):
32
+ """
33
+ Download frame files for the given gravitational wave event and save a list of their paths.
34
+
35
+ Parameters:
36
+ -----------
37
+ event_name : str
38
+ The name of the gravitational wave event (e.g., "GW150914").
39
+ output_dir : str
40
+ The directory where frame files and associated lists will be saved.
41
+
42
+ Returns:
43
+ --------
44
+ None
45
+ """
46
+ os.makedirs(output_dir, exist_ok=True)
47
+
48
+ detectors, event_gps_time, start_time, end_time = event_info(event_name, ifos)
49
+
50
+ for detector in detectors:
51
+ urls = get_urls(detector=detector, start=start_time, end=end_time, dataset=event_name, format='gwf', sample_rate=4096)
52
+
53
+ # Exclude files with '-32.gwf'
54
+ urls = [url for url in urls if "-32.gwf" not in url]
55
+
56
+ frame_dir = os.path.join(f"{output_dir}/frames/", f"{detector}_frames")
57
+ os.makedirs(frame_dir, exist_ok=True)
58
+
59
+ local_paths = []
60
+
61
+ # Download files
62
+ for url in urls:
63
+ frame_file_path = os.path.join(frame_dir, os.path.basename(url))
64
+ print(f"Downloading {frame_file_path} from {url}...")
65
+ response = requests.get(url)
66
+ with open(frame_file_path, 'wb') as frame_file:
67
+ frame_file.write(response.content)
68
+ local_paths.append(frame_file_path)
69
+
70
+ # Save *_frames.in file
71
+ frame_list_file = os.path.join(output_dir, f"{detector}_frames.in")
72
+ with open(frame_list_file, 'w') as f:
73
+ for path in local_paths:
74
+ f.write(path + "\n")
75
+
76
+ print(f"Frame list saved to {frame_list_file}")
77
+
78
+ def get_cat_files(event_name, output_dir, ifos):
79
+ """
80
+ Generate files containing Data Quality (DQ) segments for the given gravitational wave event.
81
+
82
+ Parameters:
83
+ -----------
84
+ event_name : str
85
+ The name of the gravitational wave event (e.g., "GW150914").
86
+ output_dir : str
87
+ The directory where DQ segment files will be saved.
88
+
89
+ Returns:
90
+ --------
91
+ None
92
+ """
93
+ os.makedirs(output_dir, exist_ok=True)
94
+
95
+ detectors, event_gps_time, start_time, end_time = event_info(event_name, ifos)
96
+
97
+ for detector in detectors:
98
+ for category, cat_name in [
99
+ (f'{detector}_DATA', f'{detector}_cat0.txt'),
100
+ (f'{detector}_BURST_CAT1', f'{detector}_cat1.txt'),
101
+ (f'{detector}_BURST_CAT2', f'{detector}_cat2.txt'),
102
+ ]:
103
+ segments = get_segments(category, start_time, end_time)
104
+ cat_file_path = os.path.join(output_dir, cat_name)
105
+
106
+ with open(cat_file_path, 'w') as cat_file:
107
+ for segment in segments:
108
+ cat_file.write(f"{segment[0]} {segment[1]}\n")
109
+
110
+ print(f"Segments saved in {cat_file_path}")
111
+
112
+ def analysis_period(event_name, output_dir, time_left, time_right, ifos):
113
+ """
114
+ Calculate the analysis period for cWB based on the event GPS time and save it to a file.
115
+
116
+ This function calculates the start and end times for the cWB analysis period by subtracting
117
+ and adding the specified offsets (`time_left` and `time_right`) to the GPS time of the
118
+ gravitational wave event. The resulting period is saved in a file named `cwb_period.txt`.
119
+
120
+ Parameters:
121
+ -----------
122
+ event_name : str
123
+ The name of the gravitational wave event (e.g., "GW150914").
124
+ time_left : int, optional
125
+ Time in seconds to subtract from the event GPS time to determine the start of the analysis period
126
+ (default is 610 seconds).
127
+ time_right : int, optional
128
+ Time in seconds to add to the event GPS time to determine the end of the analysis period
129
+ (default is 610 seconds).
130
+
131
+ Returns:
132
+ --------
133
+ None
134
+ """
135
+ _, event_gps_time, _, _ = event_info(event_name, ifos)
136
+ print(f"Event gps time: {event_gps_time}")
137
+ analysis_period = [event_gps_time - time_left, event_gps_time + time_right]
138
+
139
+ cwb_period_file_path = os.path.join(output_dir, "cwb_period.txt")
140
+ with open(cwb_period_file_path, 'w') as cwb_period_file:
141
+ cwb_period_file.write(f"{analysis_period[0]} {analysis_period[1]}\n")
142
+ print(f"cWB analysis period saved in {cwb_period_file_path}")