lalsuite 7.26.2.dev20260106__cp314-cp314-macosx_13_0_x86_64.whl

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 (749) hide show
  1. lal/.dylibs/Python +0 -0
  2. lal/.dylibs/libaec.0.dylib +0 -0
  3. lal/.dylibs/libbrotlicommon.1.2.0.dylib +0 -0
  4. lal/.dylibs/libbrotlidec.1.2.0.dylib +0 -0
  5. lal/.dylibs/libcfitsio.10.4.4.1.dylib +0 -0
  6. lal/.dylibs/libcrypto.3.dylib +0 -0
  7. lal/.dylibs/libcurl.4.dylib +0 -0
  8. lal/.dylibs/libfftw3.3.dylib +0 -0
  9. lal/.dylibs/libfftw3f.3.dylib +0 -0
  10. lal/.dylibs/libframel.8.48.4.dylib +0 -0
  11. lal/.dylibs/libgsl.28.dylib +0 -0
  12. lal/.dylibs/libgslcblas.0.dylib +0 -0
  13. lal/.dylibs/libhdf5.310.dylib +0 -0
  14. lal/.dylibs/libhdf5_hl.310.dylib +0 -0
  15. lal/.dylibs/libiconv.2.dylib +0 -0
  16. lal/.dylibs/libidn2.0.dylib +0 -0
  17. lal/.dylibs/libintl.8.dylib +0 -0
  18. lal/.dylibs/liblal.20.dylib +0 -0
  19. lal/.dylibs/liblalburst.8.dylib +0 -0
  20. lal/.dylibs/liblalframe.14.dylib +0 -0
  21. lal/.dylibs/liblalinference.23.dylib +0 -0
  22. lal/.dylibs/liblalinspiral.18.dylib +0 -0
  23. lal/.dylibs/liblalmetaio.11.dylib +0 -0
  24. lal/.dylibs/liblalpulsar.30.dylib +0 -0
  25. lal/.dylibs/liblalsimulation.37.dylib +0 -0
  26. lal/.dylibs/liblalsupport.14.dylib +0 -0
  27. lal/.dylibs/libmetaio.1.dylib +0 -0
  28. lal/.dylibs/libnghttp2.14.dylib +0 -0
  29. lal/.dylibs/libpsl.5.dylib +0 -0
  30. lal/.dylibs/libssl.3.dylib +0 -0
  31. lal/.dylibs/libsz.2.dylib +0 -0
  32. lal/.dylibs/libunistring.5.dylib +0 -0
  33. lal/.dylibs/libz.1.3.1.dylib +0 -0
  34. lal/.dylibs/libzstd.1.5.7.dylib +0 -0
  35. lal/__init__.py +145 -0
  36. lal/_lal.cpython-314-darwin.so +0 -0
  37. lal/_lal_swig.py +12 -0
  38. lal/antenna.py +1200 -0
  39. lal/git_version.py +64 -0
  40. lal/gpstime.py +233 -0
  41. lal/iterutils.py +408 -0
  42. lal/pipeline.py +3139 -0
  43. lal/rate.py +2455 -0
  44. lal/series.py +244 -0
  45. lal/utils/__init__.py +29 -0
  46. lal/utils/cache.py +379 -0
  47. lal/utils/series.py +277 -0
  48. lalapps/__init__.py +26 -0
  49. lalapps/bin/lal_cache +0 -0
  50. lalapps/bin/lal_fftw_wisdom +0 -0
  51. lalapps/bin/lal_fftwf_wisdom +0 -0
  52. lalapps/bin/lal_simd_detect +0 -0
  53. lalapps/bin/lal_tconvert +0 -0
  54. lalapps/bin/lal_version +0 -0
  55. lalapps/bin/lalapps_ComputeAntennaPattern +16 -0
  56. lalapps/bin/lalapps_ComputeFstatBenchmark +16 -0
  57. lalapps/bin/lalapps_ComputeFstatLatticeCount +16 -0
  58. lalapps/bin/lalapps_ComputeFstatMCUpperLimit +16 -0
  59. lalapps/bin/lalapps_ComputeFstatistic_v2 +16 -0
  60. lalapps/bin/lalapps_ComputePSD +16 -0
  61. lalapps/bin/lalapps_CopySFTs +16 -0
  62. lalapps/bin/lalapps_DistanceVsMass +0 -0
  63. lalapps/bin/lalapps_DriveHoughMulti +16 -0
  64. lalapps/bin/lalapps_FstatMetric_v2 +16 -0
  65. lalapps/bin/lalapps_HierarchSearchGCT +16 -0
  66. lalapps/bin/lalapps_HierarchicalSearch +16 -0
  67. lalapps/bin/lalapps_MakeSFTDAG +16 -0
  68. lalapps/bin/lalapps_MakeSFTs +16 -0
  69. lalapps/bin/lalapps_Makefakedata_v4 +16 -0
  70. lalapps/bin/lalapps_Makefakedata_v5 +16 -0
  71. lalapps/bin/lalapps_PredictFstat +16 -0
  72. lalapps/bin/lalapps_PrintDetectorState +16 -0
  73. lalapps/bin/lalapps_SFTclean +16 -0
  74. lalapps/bin/lalapps_SFTvalidate +16 -0
  75. lalapps/bin/lalapps_StringAddFrame +0 -0
  76. lalapps/bin/lalapps_StringSearch +0 -0
  77. lalapps/bin/lalapps_Weave +16 -0
  78. lalapps/bin/lalapps_WeaveCompare +16 -0
  79. lalapps/bin/lalapps_WeaveConcat +16 -0
  80. lalapps/bin/lalapps_WeaveSetup +16 -0
  81. lalapps/bin/lalapps_WriteSFTsfromSFDBs +16 -0
  82. lalapps/bin/lalapps_animate +0 -0
  83. lalapps/bin/lalapps_binj +0 -0
  84. lalapps/bin/lalapps_blindinj +0 -0
  85. lalapps/bin/lalapps_cache +16 -0
  86. lalapps/bin/lalapps_calfacs +0 -0
  87. lalapps/bin/lalapps_cbc_stochasticbank +0 -0
  88. lalapps/bin/lalapps_chirplen +0 -0
  89. lalapps/bin/lalapps_coh_PTF_inspiral +0 -0
  90. lalapps/bin/lalapps_coinj +0 -0
  91. lalapps/bin/lalapps_combine_crosscorr_toplists +16 -0
  92. lalapps/bin/lalapps_compareFstats +16 -0
  93. lalapps/bin/lalapps_compareSFTs +16 -0
  94. lalapps/bin/lalapps_create_time_correction_ephemeris +16 -0
  95. lalapps/bin/lalapps_dumpSFT +16 -0
  96. lalapps/bin/lalapps_effdist +0 -0
  97. lalapps/bin/lalapps_exc_resp +0 -0
  98. lalapps/bin/lalapps_fftw_wisdom +16 -0
  99. lalapps/bin/lalapps_fftwf_wisdom +16 -0
  100. lalapps/bin/lalapps_fits_header_getval +16 -0
  101. lalapps/bin/lalapps_fits_header_list +16 -0
  102. lalapps/bin/lalapps_fits_overview +16 -0
  103. lalapps/bin/lalapps_fits_table_list +16 -0
  104. lalapps/bin/lalapps_fr_ninja +0 -0
  105. lalapps/bin/lalapps_frextr +0 -0
  106. lalapps/bin/lalapps_frinfo +0 -0
  107. lalapps/bin/lalapps_frjoin +0 -0
  108. lalapps/bin/lalapps_frread +0 -0
  109. lalapps/bin/lalapps_frview +0 -0
  110. lalapps/bin/lalapps_gwf2xml +0 -0
  111. lalapps/bin/lalapps_heterodyne_pulsar +16 -0
  112. lalapps/bin/lalapps_inspawgfile +0 -0
  113. lalapps/bin/lalapps_inspfrinj +0 -0
  114. lalapps/bin/lalapps_inspinj +0 -0
  115. lalapps/bin/lalapps_inspiralDistance +0 -0
  116. lalapps/bin/lalapps_knope +16 -0
  117. lalapps/bin/lalapps_knope_automation_script +16 -0
  118. lalapps/bin/lalapps_knope_collate_results +16 -0
  119. lalapps/bin/lalapps_knope_result_page +16 -0
  120. lalapps/bin/lalapps_makeblindinj +85 -0
  121. lalapps/bin/lalapps_makeblindinj_himass +67 -0
  122. lalapps/bin/lalapps_ninja +0 -0
  123. lalapps/bin/lalapps_path2cache +16 -0
  124. lalapps/bin/lalapps_power +0 -0
  125. lalapps/bin/lalapps_pulsar_crosscorr_v2 +16 -0
  126. lalapps/bin/lalapps_pulsar_frequency_evolution +16 -0
  127. lalapps/bin/lalapps_pulsar_parameter_estimation_nested +16 -0
  128. lalapps/bin/lalapps_random_bank +0 -0
  129. lalapps/bin/lalapps_randombank +0 -0
  130. lalapps/bin/lalapps_run_pulsar_crosscorr_v2 +16 -0
  131. lalapps/bin/lalapps_searchsum2cache +16 -0
  132. lalapps/bin/lalapps_spec_avg +16 -0
  133. lalapps/bin/lalapps_spec_avg_long +16 -0
  134. lalapps/bin/lalapps_spec_coherence +16 -0
  135. lalapps/bin/lalapps_spininj +0 -0
  136. lalapps/bin/lalapps_splitSFTs +16 -0
  137. lalapps/bin/lalapps_splitbank +0 -0
  138. lalapps/bin/lalapps_ssbtodetector +16 -0
  139. lalapps/bin/lalapps_synthesizeBstatMC +16 -0
  140. lalapps/bin/lalapps_synthesizeLVStats +16 -0
  141. lalapps/bin/lalapps_synthesizeTransientStats +16 -0
  142. lalapps/bin/lalapps_tconvert +16 -0
  143. lalapps/bin/lalapps_tmpltbank +0 -0
  144. lalapps/bin/lalapps_version +0 -0
  145. lalapps/bin/lalapps_xtefitstoframe +0 -0
  146. lalapps/bin/lalburst_version +0 -0
  147. lalapps/bin/lalfr-cat +0 -0
  148. lalapps/bin/lalfr-cksum +0 -0
  149. lalapps/bin/lalfr-cut +0 -0
  150. lalapps/bin/lalfr-dump +0 -0
  151. lalapps/bin/lalfr-fmt +0 -0
  152. lalapps/bin/lalfr-paste +0 -0
  153. lalapps/bin/lalfr-print +0 -0
  154. lalapps/bin/lalfr-split +0 -0
  155. lalapps/bin/lalfr-stat +0 -0
  156. lalapps/bin/lalfr-stream +0 -0
  157. lalapps/bin/lalfr-vis +0 -0
  158. lalapps/bin/lalframe_version +0 -0
  159. lalapps/bin/lalinference_bench +0 -0
  160. lalapps/bin/lalinference_burst +0 -0
  161. lalapps/bin/lalinference_datadump +0 -0
  162. lalapps/bin/lalinference_injectedlike +0 -0
  163. lalapps/bin/lalinference_mpi_wrapper +59 -0
  164. lalapps/bin/lalinference_nest +0 -0
  165. lalapps/bin/lalinference_version +0 -0
  166. lalapps/bin/lalinspiral_version +0 -0
  167. lalapps/bin/lalmetaio_version +0 -0
  168. lalapps/bin/lalpulsar_ComputeAntennaPattern +0 -0
  169. lalapps/bin/lalpulsar_ComputeFstatBenchmark +0 -0
  170. lalapps/bin/lalpulsar_ComputeFstatLatticeCount +0 -0
  171. lalapps/bin/lalpulsar_ComputeFstatMCUpperLimit +0 -0
  172. lalapps/bin/lalpulsar_ComputeFstatistic_v2 +0 -0
  173. lalapps/bin/lalpulsar_ComputePSD +0 -0
  174. lalapps/bin/lalpulsar_DriveHoughMulti +0 -0
  175. lalapps/bin/lalpulsar_FstatMetric_v2 +0 -0
  176. lalapps/bin/lalpulsar_HierarchSearchGCT +0 -0
  177. lalapps/bin/lalpulsar_HierarchicalSearch +0 -0
  178. lalapps/bin/lalpulsar_MakeSFTs +0 -0
  179. lalapps/bin/lalpulsar_Makefakedata_v4 +0 -0
  180. lalapps/bin/lalpulsar_Makefakedata_v5 +0 -0
  181. lalapps/bin/lalpulsar_PredictFstat +0 -0
  182. lalapps/bin/lalpulsar_PrintDetectorState +0 -0
  183. lalapps/bin/lalpulsar_SFTclean +0 -0
  184. lalapps/bin/lalpulsar_SFTvalidate +0 -0
  185. lalapps/bin/lalpulsar_Weave +0 -0
  186. lalapps/bin/lalpulsar_WeaveCompare +0 -0
  187. lalapps/bin/lalpulsar_WeaveConcat +0 -0
  188. lalapps/bin/lalpulsar_WeaveSetup +0 -0
  189. lalapps/bin/lalpulsar_WriteSFTsfromSFDBs +0 -0
  190. lalapps/bin/lalpulsar_compareFstats +0 -0
  191. lalapps/bin/lalpulsar_compareSFTs +0 -0
  192. lalapps/bin/lalpulsar_create_time_correction_ephemeris +0 -0
  193. lalapps/bin/lalpulsar_crosscorr_v2 +0 -0
  194. lalapps/bin/lalpulsar_dumpSFT +0 -0
  195. lalapps/bin/lalpulsar_fits_header_getval +0 -0
  196. lalapps/bin/lalpulsar_fits_header_list +0 -0
  197. lalapps/bin/lalpulsar_fits_overview +0 -0
  198. lalapps/bin/lalpulsar_fits_table_list +0 -0
  199. lalapps/bin/lalpulsar_frequency_evolution +0 -0
  200. lalapps/bin/lalpulsar_heterodyne +0 -0
  201. lalapps/bin/lalpulsar_parameter_estimation_nested +0 -0
  202. lalapps/bin/lalpulsar_spec_avg +0 -0
  203. lalapps/bin/lalpulsar_spec_avg_long +0 -0
  204. lalapps/bin/lalpulsar_spec_coherence +0 -0
  205. lalapps/bin/lalpulsar_splitSFTs +0 -0
  206. lalapps/bin/lalpulsar_ssbtodetector +0 -0
  207. lalapps/bin/lalpulsar_synthesizeBstatMC +0 -0
  208. lalapps/bin/lalpulsar_synthesizeLVStats +0 -0
  209. lalapps/bin/lalpulsar_synthesizeTransientStats +0 -0
  210. lalapps/bin/lalpulsar_version +0 -0
  211. lalapps/bin/lalsim-bh-qnmode +0 -0
  212. lalapps/bin/lalsim-bh-ringdown +0 -0
  213. lalapps/bin/lalsim-bh-sphwf +0 -0
  214. lalapps/bin/lalsim-burst +0 -0
  215. lalapps/bin/lalsim-detector-noise +0 -0
  216. lalapps/bin/lalsim-detector-strain +0 -0
  217. lalapps/bin/lalsim-inject +0 -0
  218. lalapps/bin/lalsim-inspiral +0 -0
  219. lalapps/bin/lalsim-ns-eos-table +0 -0
  220. lalapps/bin/lalsim-ns-mass-radius +0 -0
  221. lalapps/bin/lalsim-ns-params +0 -0
  222. lalapps/bin/lalsim-sgwb +0 -0
  223. lalapps/bin/lalsim-unicorn +0 -0
  224. lalapps/bin/lalsimulation_version +0 -0
  225. lalapps/cosmicstring.py +691 -0
  226. lalapps/data/BNSMasses.dat +65022 -0
  227. lalapps/data/CorrelationMatrix.csv +15 -0
  228. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF1_META.dat +1882 -0
  229. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF2_META.dat +1939 -0
  230. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF3_META.dat +1784 -0
  231. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF4_META.dat +2074 -0
  232. lalapps/data/LALSimNeutronStarEOS_ALF1.dat +435 -0
  233. lalapps/data/LALSimNeutronStarEOS_ALF2.dat +453 -0
  234. lalapps/data/LALSimNeutronStarEOS_ALF3.dat +441 -0
  235. lalapps/data/LALSimNeutronStarEOS_ALF4.dat +441 -0
  236. lalapps/data/LALSimNeutronStarEOS_AP1.dat +212 -0
  237. lalapps/data/LALSimNeutronStarEOS_AP2.dat +212 -0
  238. lalapps/data/LALSimNeutronStarEOS_AP3.dat +212 -0
  239. lalapps/data/LALSimNeutronStarEOS_AP4.dat +210 -0
  240. lalapps/data/LALSimNeutronStarEOS_APR.dat +500 -0
  241. lalapps/data/LALSimNeutronStarEOS_APR4_EPP.dat +1447 -0
  242. lalapps/data/LALSimNeutronStarEOS_BBB2.dat +84 -0
  243. lalapps/data/LALSimNeutronStarEOS_BGN1H1.dat +123 -0
  244. lalapps/data/LALSimNeutronStarEOS_BHF_BBB2.dat +499 -0
  245. lalapps/data/LALSimNeutronStarEOS_BL_CHIRAL_META.dat +1534 -0
  246. lalapps/data/LALSimNeutronStarEOS_BPAL12.dat +61 -0
  247. lalapps/data/LALSimNeutronStarEOS_BSK19.dat +310 -0
  248. lalapps/data/LALSimNeutronStarEOS_BSK20.dat +310 -0
  249. lalapps/data/LALSimNeutronStarEOS_BSK21.dat +310 -0
  250. lalapps/data/LALSimNeutronStarEOS_ENG.dat +108 -0
  251. lalapps/data/LALSimNeutronStarEOS_FPS.dat +129 -0
  252. lalapps/data/LALSimNeutronStarEOS_GMSR_BSK14_BSK24.dat +1010 -0
  253. lalapps/data/LALSimNeutronStarEOS_GMSR_DHSL59_BSK24.dat +1009 -0
  254. lalapps/data/LALSimNeutronStarEOS_GMSR_DHSL69_BSK24.dat +1009 -0
  255. lalapps/data/LALSimNeutronStarEOS_GMSR_F0_BSK24.dat +1010 -0
  256. lalapps/data/LALSimNeutronStarEOS_GMSR_H1_BSK24.dat +1009 -0
  257. lalapps/data/LALSimNeutronStarEOS_GMSR_H2_BSK24.dat +1010 -0
  258. lalapps/data/LALSimNeutronStarEOS_GMSR_H3_BSK24.dat +1010 -0
  259. lalapps/data/LALSimNeutronStarEOS_GMSR_H4_BSK24.dat +1010 -0
  260. lalapps/data/LALSimNeutronStarEOS_GMSR_H5_BSK24.dat +1009 -0
  261. lalapps/data/LALSimNeutronStarEOS_GMSR_LN55_BSK24.dat +1010 -0
  262. lalapps/data/LALSimNeutronStarEOS_GMSR_SLY5_BSK24.dat +1010 -0
  263. lalapps/data/LALSimNeutronStarEOS_GNH3.dat +71 -0
  264. lalapps/data/LALSimNeutronStarEOS_GPPVA_DD2_BSK24.dat +1009 -0
  265. lalapps/data/LALSimNeutronStarEOS_GPPVA_DDME2_BSK24.dat +1010 -0
  266. lalapps/data/LALSimNeutronStarEOS_GPPVA_FSU2H_BSK24.dat +1009 -0
  267. lalapps/data/LALSimNeutronStarEOS_GPPVA_FSU2_BSK24.dat +1010 -0
  268. lalapps/data/LALSimNeutronStarEOS_GPPVA_NL3WRL55_BSK24.dat +1010 -0
  269. lalapps/data/LALSimNeutronStarEOS_GS1.dat +136 -0
  270. lalapps/data/LALSimNeutronStarEOS_GS2.dat +100 -0
  271. lalapps/data/LALSimNeutronStarEOS_H1.dat +114 -0
  272. lalapps/data/LALSimNeutronStarEOS_H2.dat +114 -0
  273. lalapps/data/LALSimNeutronStarEOS_H3.dat +98 -0
  274. lalapps/data/LALSimNeutronStarEOS_H4.dat +664 -0
  275. lalapps/data/LALSimNeutronStarEOS_H5.dat +703 -0
  276. lalapps/data/LALSimNeutronStarEOS_H6.dat +509 -0
  277. lalapps/data/LALSimNeutronStarEOS_H7.dat +703 -0
  278. lalapps/data/LALSimNeutronStarEOS_HQC18.dat +388 -0
  279. lalapps/data/LALSimNeutronStarEOS_KDE0V.dat +500 -0
  280. lalapps/data/LALSimNeutronStarEOS_KDE0V1.dat +500 -0
  281. lalapps/data/LALSimNeutronStarEOS_KDE0V1_BSK24.dat +1388 -0
  282. lalapps/data/LALSimNeutronStarEOS_KDE0V_BSK24.dat +1398 -0
  283. lalapps/data/LALSimNeutronStarEOS_MPA1.dat +102 -0
  284. lalapps/data/LALSimNeutronStarEOS_MS1.dat +122 -0
  285. lalapps/data/LALSimNeutronStarEOS_MS1B.dat +126 -0
  286. lalapps/data/LALSimNeutronStarEOS_MS1B_PP.dat +1447 -0
  287. lalapps/data/LALSimNeutronStarEOS_MS1_PP.dat +1447 -0
  288. lalapps/data/LALSimNeutronStarEOS_MS2.dat +48 -0
  289. lalapps/data/LALSimNeutronStarEOS_PAL6.dat +148 -0
  290. lalapps/data/LALSimNeutronStarEOS_PCL2.dat +134 -0
  291. lalapps/data/LALSimNeutronStarEOS_PCP_BSK24_BSK24.dat +1010 -0
  292. lalapps/data/LALSimNeutronStarEOS_PS.dat +165 -0
  293. lalapps/data/LALSimNeutronStarEOS_QMC700.dat +117 -0
  294. lalapps/data/LALSimNeutronStarEOS_RG_SLY4_BSK24.dat +1010 -0
  295. lalapps/data/LALSimNeutronStarEOS_RS.dat +500 -0
  296. lalapps/data/LALSimNeutronStarEOS_RS_BSK24.dat +1356 -0
  297. lalapps/data/LALSimNeutronStarEOS_SK255.dat +500 -0
  298. lalapps/data/LALSimNeutronStarEOS_SK255_BSK24.dat +1066 -0
  299. lalapps/data/LALSimNeutronStarEOS_SK272.dat +500 -0
  300. lalapps/data/LALSimNeutronStarEOS_SKA.dat +500 -0
  301. lalapps/data/LALSimNeutronStarEOS_SKA_BSK24.dat +1433 -0
  302. lalapps/data/LALSimNeutronStarEOS_SKB.dat +500 -0
  303. lalapps/data/LALSimNeutronStarEOS_SKB_BSK24.dat +1373 -0
  304. lalapps/data/LALSimNeutronStarEOS_SKI2.dat +500 -0
  305. lalapps/data/LALSimNeutronStarEOS_SKI2_BSK24.dat +1348 -0
  306. lalapps/data/LALSimNeutronStarEOS_SKI3.dat +500 -0
  307. lalapps/data/LALSimNeutronStarEOS_SKI3_BSK24.dat +1355 -0
  308. lalapps/data/LALSimNeutronStarEOS_SKI4.dat +497 -0
  309. lalapps/data/LALSimNeutronStarEOS_SKI4_BSK24.dat +1348 -0
  310. lalapps/data/LALSimNeutronStarEOS_SKI5.dat +500 -0
  311. lalapps/data/LALSimNeutronStarEOS_SKI6.dat +500 -0
  312. lalapps/data/LALSimNeutronStarEOS_SKI6_BSK24.dat +1358 -0
  313. lalapps/data/LALSimNeutronStarEOS_SKMP.dat +498 -0
  314. lalapps/data/LALSimNeutronStarEOS_SKOP.dat +500 -0
  315. lalapps/data/LALSimNeutronStarEOS_SKOP_BSK24.dat +1373 -0
  316. lalapps/data/LALSimNeutronStarEOS_SLY.dat +99 -0
  317. lalapps/data/LALSimNeutronStarEOS_SLY2.dat +500 -0
  318. lalapps/data/LALSimNeutronStarEOS_SLY230A.dat +500 -0
  319. lalapps/data/LALSimNeutronStarEOS_SLY230A_BSK24.dat +1116 -0
  320. lalapps/data/LALSimNeutronStarEOS_SLY2_BSK24.dat +1106 -0
  321. lalapps/data/LALSimNeutronStarEOS_SLY4.dat +100 -0
  322. lalapps/data/LALSimNeutronStarEOS_SLY9.dat +498 -0
  323. lalapps/data/LALSimNeutronStarEOS_SLY9_BSK24.dat +1083 -0
  324. lalapps/data/LALSimNeutronStarEOS_SQM1.dat +176 -0
  325. lalapps/data/LALSimNeutronStarEOS_SQM2.dat +180 -0
  326. lalapps/data/LALSimNeutronStarEOS_SQM3.dat +176 -0
  327. lalapps/data/LALSimNeutronStarEOS_WFF1.dat +109 -0
  328. lalapps/data/LALSimNeutronStarEOS_WFF2.dat +109 -0
  329. lalapps/data/LALSimNeutronStarEOS_WFF3.dat +107 -0
  330. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDLZ1_BSK24.dat +1227 -0
  331. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDME2_BSK24.dat +1272 -0
  332. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDMEX_BSK24.dat +1280 -0
  333. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_GM1_BSK24.dat +1288 -0
  334. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_MTVTC_BSK24.dat +1288 -0
  335. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_NL3_BSK24.dat +1230 -0
  336. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_PKDD_BSK24.dat +1288 -0
  337. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_TM1_BSK24.dat +1288 -0
  338. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_TW99_BSK24.dat +1288 -0
  339. lalapps/data/LIGO-P1200087-v18-AdV_BNS_OPTIMIZED.txt +3000 -0
  340. lalapps/data/LIGO-P1200087-v18-AdV_DESIGN.txt +3000 -0
  341. lalapps/data/LIGO-P1200087-v18-AdV_EARLY_HIGH.txt +3000 -0
  342. lalapps/data/LIGO-P1200087-v18-AdV_EARLY_LOW.txt +3000 -0
  343. lalapps/data/LIGO-P1200087-v18-AdV_LATE_HIGH.txt +3000 -0
  344. lalapps/data/LIGO-P1200087-v18-AdV_LATE_LOW.txt +3000 -0
  345. lalapps/data/LIGO-P1200087-v18-AdV_MID_HIGH.txt +3000 -0
  346. lalapps/data/LIGO-P1200087-v18-AdV_MID_LOW.txt +3000 -0
  347. lalapps/data/LIGO-P1200087-v18-aLIGO_BNS_OPTIMIZED.txt +3000 -0
  348. lalapps/data/LIGO-P1200087-v18-aLIGO_DESIGN.txt +3000 -0
  349. lalapps/data/LIGO-P1200087-v18-aLIGO_EARLY_HIGH.txt +3000 -0
  350. lalapps/data/LIGO-P1200087-v18-aLIGO_EARLY_LOW.txt +3000 -0
  351. lalapps/data/LIGO-P1200087-v18-aLIGO_LATE_HIGH.txt +3000 -0
  352. lalapps/data/LIGO-P1200087-v18-aLIGO_LATE_LOW.txt +3000 -0
  353. lalapps/data/LIGO-P1200087-v18-aLIGO_MID_HIGH.txt +3000 -0
  354. lalapps/data/LIGO-P1200087-v18-aLIGO_MID_LOW.txt +3000 -0
  355. lalapps/data/LIGO-P1600143-v18-CE.txt +3000 -0
  356. lalapps/data/LIGO-P1600143-v18-CE_Pessimistic.txt +3000 -0
  357. lalapps/data/LIGO-P1600143-v18-CE_Wideband.txt +3000 -0
  358. lalapps/data/LIGO-P1600143-v18-ET_D.txt +3000 -0
  359. lalapps/data/LIGO-T0900288-v3-BHBH_20deg.txt +3000 -0
  360. lalapps/data/LIGO-T0900288-v3-High_Freq.txt +3000 -0
  361. lalapps/data/LIGO-T0900288-v3-NO_SRM.txt +3000 -0
  362. lalapps/data/LIGO-T0900288-v3-NSNS_Opt.txt +3000 -0
  363. lalapps/data/LIGO-T0900288-v3-ZERO_DET_high_P.txt +3000 -0
  364. lalapps/data/LIGO-T0900288-v3-ZERO_DET_low_P.txt +3000 -0
  365. lalapps/data/LIGO-T1600593-v1-KAGRA_Design.txt +4000 -0
  366. lalapps/data/LIGO-T1600593-v1-KAGRA_Early.txt +4000 -0
  367. lalapps/data/LIGO-T1600593-v1-KAGRA_Late.txt +4000 -0
  368. lalapps/data/LIGO-T1600593-v1-KAGRA_Mid.txt +4000 -0
  369. lalapps/data/LIGO-T1600593-v1-KAGRA_Opening.txt +4000 -0
  370. lalapps/data/LIGO-T1800042-v5-aLIGO_APLUS.txt +3000 -0
  371. lalapps/data/LIGO-T1800044-v5-aLIGO_DESIGN.txt +3000 -0
  372. lalapps/data/LIGO-T1800545-v1-AdV_O3low.txt +3000 -0
  373. lalapps/data/LIGO-T1800545-v1-AdV_O4.txt +3000 -0
  374. lalapps/data/LIGO-T1800545-v1-AdV_O4intermediate.txt +3000 -0
  375. lalapps/data/LIGO-T1800545-v1-KAGRA_128Mpc.txt +1000 -0
  376. lalapps/data/LIGO-T1800545-v1-KAGRA_25Mpc.txt +1000 -0
  377. lalapps/data/LIGO-T1800545-v1-KAGRA_80Mpc.txt +1000 -0
  378. lalapps/data/LIGO-T1800545-v1-aLIGO_140Mpc.txt +1000 -0
  379. lalapps/data/LIGO-T1800545-v1-aLIGO_175Mpc.txt +2792 -0
  380. lalapps/data/LIGO-T1800545-v1-aLIGO_O3low.txt +2792 -0
  381. lalapps/data/bimodalMeans.csv +3 -0
  382. lalapps/data/config_tiger_example.ini +150 -0
  383. lalapps/data/fiducialBBH.xml +67 -0
  384. lalapps/data/fiducialBNS.xml +67 -0
  385. lalapps/data/inspsrcs100Mpc.errors +38735 -0
  386. lalapps/data/lalinference_pipe_example.ini +573 -0
  387. lalapps/data/lib_pipe_example.ini +303 -0
  388. lalapps/data/power_pipe.ini +129 -0
  389. lalapps/data/unimodalMeans.csv +2 -0
  390. lalapps/git_version.py +64 -0
  391. lalburst/SimBurstUtils.py +324 -0
  392. lalburst/SnglBurstUtils.py +367 -0
  393. lalburst/__init__.py +7 -0
  394. lalburst/_lalburst.cpython-314-darwin.so +0 -0
  395. lalburst/_lalburst_swig.py +16 -0
  396. lalburst/binjfind.py +824 -0
  397. lalburst/bucluster.py +409 -0
  398. lalburst/burca.py +315 -0
  399. lalburst/burca_tailor.py +349 -0
  400. lalburst/cafe.py +579 -0
  401. lalburst/calc_likelihood.py +145 -0
  402. lalburst/cs_gamma.cpython-314-darwin.so +0 -0
  403. lalburst/date.py +118 -0
  404. lalburst/git_version.py +64 -0
  405. lalburst/offsetvector.py +278 -0
  406. lalburst/packing.py +170 -0
  407. lalburst/power.py +1457 -0
  408. lalburst/snglcluster.py +136 -0
  409. lalburst/snglcoinc.py +2637 -0
  410. lalburst/stringutils.py +607 -0
  411. lalburst/timeslides.py +236 -0
  412. lalframe/__init__.py +7 -0
  413. lalframe/_lalframe.cpython-314-darwin.so +0 -0
  414. lalframe/_lalframe_swig.py +14 -0
  415. lalframe/frread.py +324 -0
  416. lalframe/git_version.py +64 -0
  417. lalframe/utils/__init__.py +25 -0
  418. lalframe/utils/frtools.py +61 -0
  419. lalinference/__init__.py +7 -0
  420. lalinference/_bayespputils.cpython-314-darwin.so +0 -0
  421. lalinference/_lalinference.cpython-314-darwin.so +0 -0
  422. lalinference/_lalinference_swig.py +19 -0
  423. lalinference/bayespputils.py +7479 -0
  424. lalinference/bayestar/__init__.py +2 -0
  425. lalinference/bayestar/deprecation.py +72 -0
  426. lalinference/git_version.py +64 -0
  427. lalinference/imrtgr/__init__.py +0 -0
  428. lalinference/imrtgr/imrtgrutils.py +168 -0
  429. lalinference/imrtgr/nrutils.py +1366 -0
  430. lalinference/imrtgr/pneqns.py +250 -0
  431. lalinference/io/__init__.py +31 -0
  432. lalinference/io/hdf5.py +365 -0
  433. lalinference/lalinference_pipe_utils.py +3617 -0
  434. lalinference/nest2pos.py +151 -0
  435. lalinference/plot/__init__.py +34 -0
  436. lalinference/plot/spindisk.py +104 -0
  437. lalinference/tiger/__init__.py +0 -0
  438. lalinference/tiger/make_injtimes.py +634 -0
  439. lalinference/tiger/omegascans_dag.py +691 -0
  440. lalinference/tiger/postproc.py +1338 -0
  441. lalinference/wrapper.py +231 -0
  442. lalinspiral/__init__.py +7 -0
  443. lalinspiral/_lalinspiral.cpython-314-darwin.so +0 -0
  444. lalinspiral/_lalinspiral_swig.py +18 -0
  445. lalinspiral/_thinca.cpython-314-darwin.so +0 -0
  446. lalinspiral/git_version.py +64 -0
  447. lalinspiral/inspinjfind.py +485 -0
  448. lalinspiral/thinca.py +509 -0
  449. lalmetaio/__init__.py +7 -0
  450. lalmetaio/_lalmetaio.cpython-314-darwin.so +0 -0
  451. lalmetaio/_lalmetaio_swig.py +14 -0
  452. lalmetaio/git_version.py +64 -0
  453. lalpulsar/NstarTools.py +259 -0
  454. lalpulsar/PulsarParametersWrapper.py +938 -0
  455. lalpulsar/__init__.py +7 -0
  456. lalpulsar/_lalpulsar.cpython-314-darwin.so +0 -0
  457. lalpulsar/_lalpulsar_swig.py +17 -0
  458. lalpulsar/git_version.py +64 -0
  459. lalpulsar/knope_utils.py +6497 -0
  460. lalpulsar/lineFileParser.py +264 -0
  461. lalpulsar/metric_utils.py +78 -0
  462. lalpulsar/piecewise_model/__init__.py +7 -0
  463. lalpulsar/piecewise_model/basis_functions.py +156 -0
  464. lalpulsar/piecewise_model/class_definitions.py +323 -0
  465. lalpulsar/piecewise_model/errors.py +37 -0
  466. lalpulsar/piecewise_model/estimating_knots.py +833 -0
  467. lalpulsar/piecewise_model/gte_and_other_methods.py +189 -0
  468. lalpulsar/piecewise_model/mols_for_gte.py +269 -0
  469. lalpulsar/piecewise_model/pw_fstat.py +813 -0
  470. lalpulsar/piecewise_model/pw_model_simulations.py +156 -0
  471. lalpulsar/piecewise_model/sampling_methods.py +186 -0
  472. lalpulsar/piecewise_model/semicoherent_metric_methods.py +375 -0
  473. lalpulsar/piecewise_model/tbank_estimates.py +293 -0
  474. lalpulsar/public_sft_directory.py +82 -0
  475. lalpulsar/pulsarhtmlutils.py +1395 -0
  476. lalpulsar/pulsarpputils.py +3638 -0
  477. lalpulsar/simulateCW.py +602 -0
  478. lalpulsar/simulateHeterodynedCW.py +591 -0
  479. lalsimulation/__init__.py +7 -0
  480. lalsimulation/_lalsimulation.cpython-314-darwin.so +0 -0
  481. lalsimulation/_lalsimulation_swig.py +14 -0
  482. lalsimulation/git_version.py +64 -0
  483. lalsimulation/gwsignal/__init__.py +9 -0
  484. lalsimulation/gwsignal/core/__init__.py +2 -0
  485. lalsimulation/gwsignal/core/conditioning_subroutines.py +196 -0
  486. lalsimulation/gwsignal/core/errors.py +136 -0
  487. lalsimulation/gwsignal/core/gw.py +206 -0
  488. lalsimulation/gwsignal/core/parameter_conventions.py +122 -0
  489. lalsimulation/gwsignal/core/utils.py +329 -0
  490. lalsimulation/gwsignal/core/waveform.py +725 -0
  491. lalsimulation/gwsignal/core/waveform_conditioning.py +455 -0
  492. lalsimulation/gwsignal/models/__init__.py +29 -0
  493. lalsimulation/gwsignal/models/pyseobnr_model.py +452 -0
  494. lalsimulation/nrfits/NRSur3dq8Remnant.py +92 -0
  495. lalsimulation/nrfits/NRSur7dq4Remnant.py +469 -0
  496. lalsimulation/nrfits/__init__.py +1 -0
  497. lalsimulation/nrfits/eval_fits.py +364 -0
  498. lalsimulation/nrfits/nrfits.py +78 -0
  499. lalsimulation/nrfits/pn_spin_evolution_wrapper.py +92 -0
  500. lalsimulation/nrfits/quaternion_utils.py +74 -0
  501. lalsimulation/tilts_at_infinity/__init__.py +2 -0
  502. lalsimulation/tilts_at_infinity/calc_tilts_prec_avg_regularized.py +1424 -0
  503. lalsimulation/tilts_at_infinity/hybrid_spin_evolution.py +461 -0
  504. lalsimulation/tilts_at_infinity/tilts_at_infinity_utils.py +167 -0
  505. lalsuite-7.26.2.dev20260106.data/scripts/cbcBayesBurstPPAnalysis +305 -0
  506. lalsuite-7.26.2.dev20260106.data/scripts/cbcBayesBurstPostProc +1364 -0
  507. lalsuite-7.26.2.dev20260106.data/scripts/cbcBayesCombinePTMCMCh5s +100 -0
  508. lalsuite-7.26.2.dev20260106.data/scripts/cbcBayesCombinePosteriors +235 -0
  509. lalsuite-7.26.2.dev20260106.data/scripts/cbcBayesCompPos +1121 -0
  510. lalsuite-7.26.2.dev20260106.data/scripts/cbcBayesDIEvidence +68 -0
  511. lalsuite-7.26.2.dev20260106.data/scripts/cbcBayesGraceDBinfo +182 -0
  512. lalsuite-7.26.2.dev20260106.data/scripts/cbcBayesMCMC2pos +314 -0
  513. lalsuite-7.26.2.dev20260106.data/scripts/cbcBayesPPAnalysis +322 -0
  514. lalsuite-7.26.2.dev20260106.data/scripts/cbcBayesPlotSpinDisk +42 -0
  515. lalsuite-7.26.2.dev20260106.data/scripts/cbcBayesPosToSimBurst +227 -0
  516. lalsuite-7.26.2.dev20260106.data/scripts/cbcBayesPosToSimInspiral +307 -0
  517. lalsuite-7.26.2.dev20260106.data/scripts/cbcBayesPostProc +1345 -0
  518. lalsuite-7.26.2.dev20260106.data/scripts/cbcBayesThermoInt +107 -0
  519. lalsuite-7.26.2.dev20260106.data/scripts/imrtgr_imr_consistency_test +796 -0
  520. lalsuite-7.26.2.dev20260106.data/scripts/lal_cache +6 -0
  521. lalsuite-7.26.2.dev20260106.data/scripts/lal_fftw_wisdom +6 -0
  522. lalsuite-7.26.2.dev20260106.data/scripts/lal_fftwf_wisdom +6 -0
  523. lalsuite-7.26.2.dev20260106.data/scripts/lal_path2cache +148 -0
  524. lalsuite-7.26.2.dev20260106.data/scripts/lal_searchsum2cache +172 -0
  525. lalsuite-7.26.2.dev20260106.data/scripts/lal_simd_detect +6 -0
  526. lalsuite-7.26.2.dev20260106.data/scripts/lal_tconvert +6 -0
  527. lalsuite-7.26.2.dev20260106.data/scripts/lal_version +6 -0
  528. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_ComputeAntennaPattern +6 -0
  529. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_ComputeFstatBenchmark +6 -0
  530. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_ComputeFstatLatticeCount +6 -0
  531. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_ComputeFstatMCUpperLimit +6 -0
  532. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_ComputeFstatistic_v2 +6 -0
  533. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_ComputePSD +6 -0
  534. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_CopySFTs +6 -0
  535. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_DistanceVsMass +6 -0
  536. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_DriveHoughMulti +6 -0
  537. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_FstatMetric_v2 +6 -0
  538. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_HierarchSearchGCT +6 -0
  539. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_HierarchicalSearch +6 -0
  540. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_MakeSFTDAG +6 -0
  541. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_MakeSFTs +6 -0
  542. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_Makefakedata_v4 +6 -0
  543. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_Makefakedata_v5 +6 -0
  544. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_PredictFstat +6 -0
  545. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_PrintDetectorState +6 -0
  546. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_SFTclean +6 -0
  547. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_SFTvalidate +6 -0
  548. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_StringAddFrame +6 -0
  549. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_StringSearch +6 -0
  550. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_Weave +6 -0
  551. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_WeaveCompare +6 -0
  552. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_WeaveConcat +6 -0
  553. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_WeaveSetup +6 -0
  554. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_WriteSFTsfromSFDBs +6 -0
  555. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_animate +6 -0
  556. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_binj +6 -0
  557. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_blindinj +6 -0
  558. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_cache +6 -0
  559. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_cafe +99 -0
  560. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_calfacs +6 -0
  561. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_cbc_stochasticbank +6 -0
  562. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_chirplen +6 -0
  563. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_coh_PTF_inspiral +6 -0
  564. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_coinj +6 -0
  565. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_combine_crosscorr_toplists +6 -0
  566. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_compareFstats +6 -0
  567. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_compareSFTs +6 -0
  568. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_cosmicstring_pipe +525 -0
  569. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_create_time_correction_ephemeris +6 -0
  570. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_dumpSFT +6 -0
  571. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_effdist +6 -0
  572. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_exc_resp +6 -0
  573. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_fftw_wisdom +6 -0
  574. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_fftwf_wisdom +6 -0
  575. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_fits_header_getval +6 -0
  576. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_fits_header_list +6 -0
  577. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_fits_overview +6 -0
  578. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_fits_table_list +6 -0
  579. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_fr_ninja +6 -0
  580. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_frextr +6 -0
  581. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_frinfo +6 -0
  582. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_frjoin +6 -0
  583. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_frread +6 -0
  584. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_frview +6 -0
  585. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_gwf2xml +6 -0
  586. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_heterodyne_pulsar +6 -0
  587. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_inspawgfile +6 -0
  588. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_inspfrinj +6 -0
  589. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_inspinj +6 -0
  590. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_inspiralDistance +6 -0
  591. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_knope +6 -0
  592. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_knope_automation_script +6 -0
  593. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_knope_collate_results +6 -0
  594. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_knope_result_page +6 -0
  595. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_makeblindinj +6 -0
  596. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_makeblindinj_himass +6 -0
  597. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_ninja +6 -0
  598. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_path2cache +6 -0
  599. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_power +6 -0
  600. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_power_likelihood_pipe +219 -0
  601. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_power_pipe +417 -0
  602. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_pulsar_crosscorr_v2 +6 -0
  603. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_pulsar_frequency_evolution +6 -0
  604. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_pulsar_parameter_estimation_nested +6 -0
  605. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_random_bank +6 -0
  606. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_randombank +6 -0
  607. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_run_pulsar_crosscorr_v2 +6 -0
  608. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_searchsum2cache +6 -0
  609. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_spec_avg +6 -0
  610. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_spec_avg_long +6 -0
  611. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_spec_coherence +6 -0
  612. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_spininj +6 -0
  613. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_splitSFTs +6 -0
  614. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_splitbank +6 -0
  615. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_ssbtodetector +6 -0
  616. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_string_apply_vetoes +171 -0
  617. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_string_calc_likelihood +172 -0
  618. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_string_contour_plotter +141 -0
  619. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_string_contour_plotter_largeloops +133 -0
  620. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_string_cs_gamma +110 -0
  621. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_string_cs_gamma_largeloops +119 -0
  622. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_string_final +1064 -0
  623. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_string_meas_likelihood +264 -0
  624. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_string_plot_binj +543 -0
  625. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_string_plot_likelihood +380 -0
  626. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_synthesizeBstatMC +6 -0
  627. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_synthesizeLVStats +6 -0
  628. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_synthesizeTransientStats +6 -0
  629. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_tconvert +6 -0
  630. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_tmpltbank +6 -0
  631. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_version +6 -0
  632. lalsuite-7.26.2.dev20260106.data/scripts/lalapps_xtefitstoframe +6 -0
  633. lalsuite-7.26.2.dev20260106.data/scripts/lalburst_cluster +156 -0
  634. lalsuite-7.26.2.dev20260106.data/scripts/lalburst_coinc +224 -0
  635. lalsuite-7.26.2.dev20260106.data/scripts/lalburst_cut +425 -0
  636. lalsuite-7.26.2.dev20260106.data/scripts/lalburst_gen_timeslides +254 -0
  637. lalsuite-7.26.2.dev20260106.data/scripts/lalburst_inj_pic +254 -0
  638. lalsuite-7.26.2.dev20260106.data/scripts/lalburst_injfind +170 -0
  639. lalsuite-7.26.2.dev20260106.data/scripts/lalburst_plot_tisi +165 -0
  640. lalsuite-7.26.2.dev20260106.data/scripts/lalburst_power_calc_likelihood +182 -0
  641. lalsuite-7.26.2.dev20260106.data/scripts/lalburst_power_final +1369 -0
  642. lalsuite-7.26.2.dev20260106.data/scripts/lalburst_power_meas_likelihood +206 -0
  643. lalsuite-7.26.2.dev20260106.data/scripts/lalburst_power_plot_binj +934 -0
  644. lalsuite-7.26.2.dev20260106.data/scripts/lalburst_power_plot_binjtf +302 -0
  645. lalsuite-7.26.2.dev20260106.data/scripts/lalburst_version +6 -0
  646. lalsuite-7.26.2.dev20260106.data/scripts/lalfr-cat +6 -0
  647. lalsuite-7.26.2.dev20260106.data/scripts/lalfr-cksum +6 -0
  648. lalsuite-7.26.2.dev20260106.data/scripts/lalfr-cut +6 -0
  649. lalsuite-7.26.2.dev20260106.data/scripts/lalfr-dump +6 -0
  650. lalsuite-7.26.2.dev20260106.data/scripts/lalfr-fmt +6 -0
  651. lalsuite-7.26.2.dev20260106.data/scripts/lalfr-paste +6 -0
  652. lalsuite-7.26.2.dev20260106.data/scripts/lalfr-print +6 -0
  653. lalsuite-7.26.2.dev20260106.data/scripts/lalfr-split +6 -0
  654. lalsuite-7.26.2.dev20260106.data/scripts/lalfr-stat +6 -0
  655. lalsuite-7.26.2.dev20260106.data/scripts/lalfr-stream +6 -0
  656. lalsuite-7.26.2.dev20260106.data/scripts/lalfr-vis +6 -0
  657. lalsuite-7.26.2.dev20260106.data/scripts/lalframe_version +6 -0
  658. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_bench +6 -0
  659. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_burst +6 -0
  660. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_burst_pp_pipe +220 -0
  661. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_coherence_test +139 -0
  662. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_compute_roq_weights +404 -0
  663. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_cpnest +58 -0
  664. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_datadump +6 -0
  665. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_evolve_spins_and_append_samples +202 -0
  666. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_injectedlike +6 -0
  667. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_merge_posteriors +57 -0
  668. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_mpi_wrapper +6 -0
  669. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_multi_pipe +144 -0
  670. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_nest +6 -0
  671. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_nest2pos +286 -0
  672. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_pipe +512 -0
  673. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_pp_pipe +229 -0
  674. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_review_test +362 -0
  675. lalsuite-7.26.2.dev20260106.data/scripts/lalinference_version +6 -0
  676. lalsuite-7.26.2.dev20260106.data/scripts/lalinspiral_injfind +206 -0
  677. lalsuite-7.26.2.dev20260106.data/scripts/lalinspiral_thinca +240 -0
  678. lalsuite-7.26.2.dev20260106.data/scripts/lalinspiral_version +6 -0
  679. lalsuite-7.26.2.dev20260106.data/scripts/lalmetaio_version +6 -0
  680. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_ComputeAntennaPattern +6 -0
  681. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_ComputeFstatBenchmark +6 -0
  682. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_ComputeFstatLatticeCount +6 -0
  683. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_ComputeFstatMCUpperLimit +6 -0
  684. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_ComputeFstatistic_v2 +6 -0
  685. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_ComputePSD +6 -0
  686. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_CopyPublicSFTs +216 -0
  687. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_DriveHoughMulti +6 -0
  688. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_FstatMetric_v2 +6 -0
  689. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_HierarchSearchGCT +6 -0
  690. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_HierarchicalSearch +6 -0
  691. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_MakeSFTDAG +1142 -0
  692. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_MakeSFTs +6 -0
  693. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_Makefakedata_v4 +6 -0
  694. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_Makefakedata_v5 +6 -0
  695. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_MoveSFTs +208 -0
  696. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_PiecewiseSearch +963 -0
  697. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_PredictFstat +6 -0
  698. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_PrintDetectorState +6 -0
  699. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_SFTclean +6 -0
  700. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_SFTvalidate +6 -0
  701. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_Weave +6 -0
  702. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_WeaveCompare +6 -0
  703. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_WeaveConcat +6 -0
  704. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_WeaveSetup +6 -0
  705. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_WriteSFTsfromSFDBs +6 -0
  706. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_compareFstats +6 -0
  707. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_compareSFTs +6 -0
  708. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_create_time_correction_ephemeris +6 -0
  709. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_crosscorr_v2 +6 -0
  710. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_dumpSFT +6 -0
  711. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_fits_header_getval +6 -0
  712. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_fits_header_list +6 -0
  713. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_fits_overview +6 -0
  714. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_fits_table_list +6 -0
  715. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_frequency_evolution +6 -0
  716. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_heterodyne +6 -0
  717. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_knope +145 -0
  718. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_knope_automation_script +731 -0
  719. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_knope_collate_results +675 -0
  720. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_knope_result_page +2977 -0
  721. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_parameter_estimation_nested +6 -0
  722. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_spec_avg +6 -0
  723. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_spec_avg_long +6 -0
  724. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_spec_coherence +6 -0
  725. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_splitSFTs +6 -0
  726. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_ssbtodetector +6 -0
  727. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_synthesizeBstatMC +6 -0
  728. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_synthesizeLVStats +6 -0
  729. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_synthesizeTransientStats +6 -0
  730. lalsuite-7.26.2.dev20260106.data/scripts/lalpulsar_version +6 -0
  731. lalsuite-7.26.2.dev20260106.data/scripts/lalsim-bh-qnmode +6 -0
  732. lalsuite-7.26.2.dev20260106.data/scripts/lalsim-bh-ringdown +6 -0
  733. lalsuite-7.26.2.dev20260106.data/scripts/lalsim-bh-sphwf +6 -0
  734. lalsuite-7.26.2.dev20260106.data/scripts/lalsim-burst +6 -0
  735. lalsuite-7.26.2.dev20260106.data/scripts/lalsim-detector-noise +6 -0
  736. lalsuite-7.26.2.dev20260106.data/scripts/lalsim-detector-strain +6 -0
  737. lalsuite-7.26.2.dev20260106.data/scripts/lalsim-inject +6 -0
  738. lalsuite-7.26.2.dev20260106.data/scripts/lalsim-inspiral +6 -0
  739. lalsuite-7.26.2.dev20260106.data/scripts/lalsim-ns-eos-table +6 -0
  740. lalsuite-7.26.2.dev20260106.data/scripts/lalsim-ns-mass-radius +6 -0
  741. lalsuite-7.26.2.dev20260106.data/scripts/lalsim-ns-params +6 -0
  742. lalsuite-7.26.2.dev20260106.data/scripts/lalsim-sgwb +6 -0
  743. lalsuite-7.26.2.dev20260106.data/scripts/lalsim-unicorn +6 -0
  744. lalsuite-7.26.2.dev20260106.data/scripts/lalsimulation_version +6 -0
  745. lalsuite-7.26.2.dev20260106.dist-info/METADATA +90 -0
  746. lalsuite-7.26.2.dev20260106.dist-info/RECORD +749 -0
  747. lalsuite-7.26.2.dev20260106.dist-info/WHEEL +6 -0
  748. lalsuite-7.26.2.dev20260106.dist-info/licenses/COPYING +339 -0
  749. lalsuite-7.26.2.dev20260106.dist-info/top_level.txt +9 -0
@@ -0,0 +1,634 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Michalis Agathos (2014)
4
+
5
+ This script provides a set of good gps times for injecting a GW signal
6
+ into real multiple detector data.
7
+ The input consists of a set of science segment and veto segment ASCII files
8
+ having the 4-column format:
9
+
10
+ segid gpsstart gpsend duration
11
+
12
+ The output consists of an ASCII file containing a list of gps injection times.
13
+ If the timeslides functionality is activated, an additional ASCII file is
14
+ output, containing timeslide information (in seconds) for each IFO, with
15
+ respect to the nominal times provided in the first file.
16
+ """
17
+
18
+ __author__ = "Michalis Agathos"
19
+ __maintainer__ = "Michalis Agathos"
20
+ __email__ = "michalis.agathos@ligo.org"
21
+ __version__ = "1.0.0"
22
+ __status__ = "Production"
23
+
24
+ import matplotlib as mpl
25
+ import argparse
26
+ import os
27
+ import sys
28
+ import random as rd
29
+ mpl.use('Agg')
30
+ from pylab import *
31
+ py_version = sys.version_info[:2]
32
+ np_version = np.__version__
33
+
34
+ colordict={'H1':'r', 'L1':'g', 'V1':'b', 'H1L1':'c', 'L1H1':'c', 'H1V1':'m', 'V1H1':'m', 'L1V1':'y', 'V1L1':'y', 'H1L1V1':'k'}
35
+
36
+ '''Exclude segments that contain the following gpstimes'''
37
+ excludetimes = [966951349, 967054240, 968021010]
38
+
39
+ ###########################
40
+ #
41
+ # CLASS DEFINITIONS
42
+ #
43
+ ###########################
44
+
45
+
46
+ class IFO:
47
+ '''An interferometer. Can also refer to multiple interferometers to host doubles, triples etc.'''
48
+ def __init__(self, name, segments, vetoes, minlen=1):
49
+ self._name = name
50
+ self._minlen = minlen
51
+
52
+ if type(segments) is str:
53
+ print("Reading segments for " + self._name + "")
54
+ self._allsegments = self.readSegments(segments)
55
+ elif type(segments) is ndarray:
56
+ self._allsegments = segmentData(list(segments))
57
+ elif isinstance(segments, segmentData):
58
+ self._allsegments = segments
59
+ else:
60
+ print("Cannot recognize segments!")
61
+ return -1
62
+ self._segments = self._allsegments.fits(self._minlen)
63
+
64
+ if type(vetoes) is str:
65
+ print("Reading veto segments for " + self._name + "")
66
+ self._vetoes = self.readSegments(vetoes)
67
+ elif type(vetoes) is ndarray:
68
+ self._vetoes = segmentData(list(vetoes))
69
+ elif isinstance(vetoes, segmentData):
70
+ self._vetoes = vetoes
71
+ else:
72
+ print("Cannot recognize veto segments!")
73
+ return -1
74
+
75
+ self.setUnvetoed()
76
+ print("Number of unvetoed segments that fit " + str(self._minlen) + ": " + str(self._unvetoed.length()))
77
+
78
+ def setUnvetoed(self):
79
+ '''This is getting a list of unvetoed segments that fit the minimum length'''
80
+ self._unvetoed = self._segments.getUnvetoed(self._vetoes).fits(self._minlen)
81
+ #self._unvetoed = self._segments.fits(self._minlen).getUnvetoed(self._vetoes).fits(self._minlen)
82
+
83
+ def readSegments(self, segfname):
84
+ print("Reading " + segfname)
85
+ segdata = genfromtxt(segfname, dtype=int)
86
+ return segmentData(list(segdata))
87
+
88
+ def printUnvetoedToFile(self, outname):
89
+ self._unvetoed.printToFile(outname)
90
+
91
+ def getTrigTimes(self, whereInj='middle', interval=None, rmargin=2, lmargin=2, n=None, outfile=None):
92
+ '''Returns a list of gps times on which injections can be made'''
93
+ trigtimes = []
94
+ if interval is None:
95
+ l = self._minlen
96
+ else:
97
+ l = interval
98
+ for seg in self._unvetoed._seglist:
99
+ t = int(seg[1])
100
+ if whereInj == 'often':
101
+ '''Inject every l seconds until you reach rmargin seconds from end of segment.'''
102
+ t += lmargin
103
+ while t + rmargin <= seg[2]:
104
+ if t >= seg[1] + lmargin:
105
+ trigtimes.append(t)
106
+ t += l
107
+ elif whereInj == 'middle':
108
+ '''Inject in the middle of minlen-long intervals.'''
109
+ while t + self._minlen <= seg[2]:
110
+ if (t + self._minlen//2 >= seg[1] + lmargin) and (t + self._minlen//2 + rmargin <= seg[2]):
111
+ trigtimes.append(t + self._minlen//2)
112
+ t += self._minlen
113
+ else:
114
+ print("Invalid whereInj argument. Output times will be empty.")
115
+
116
+ if n is not None:
117
+ trigtimes = trigtimes[:n]
118
+ if outfile is None:
119
+ return array(trigtimes)
120
+ else:
121
+ savetxt(outfile, array(trigtimes), fmt='%i')
122
+
123
+ def plotCumulativeDurations(self, outfile, maxdur=None):
124
+ print("Plotting segment lengths distribution to file " + outfile)
125
+ fig = figure()
126
+ ax = fig.add_subplot(111)
127
+ ax.set_xlabel("segment length")
128
+ ax.set_ylabel("Cumulative # segments")
129
+ sdur = array(self._segments._seglist)[:,-1]
130
+ udur = array(self._unvetoed._seglist)[:,-1]
131
+ if maxdur is not None:
132
+ sdur = sdur[where(sdur <= maxdur)[0]]
133
+ udur = udur[where(udur <= maxdur)[0]]
134
+ ax.set_ylim((0,max([len(udur),len(sdur)])))
135
+ ax.set_title("Segment length distribution for " + self._name)
136
+ ax.hist(sdur, bins=sort(sdur), cumulative=True, histtype='stepfilled', alpha=0.3, label="All segments (" + str(self._segments.length()) + ")")
137
+ ax.hist(udur, bins=sort(udur), cumulative=True, histtype='stepfilled', alpha=0.3, label="Unvetoed segments (" + str(self._unvetoed.length()) + ")")
138
+ ax.legend(loc=4)
139
+ fig.savefig(outfile)
140
+
141
+ def plotSegments(self, outfile=None, lenperline=200000, segcolorlist=['b','r','g'], title=None):
142
+ '''Plot segments in rows of lenperline seconds'''
143
+ start = min(self._allsegments._start, self._vetoes._start)
144
+ end = max(self._allsegments._end, self._vetoes._end)
145
+ n = ceil((end-start)/lenperline)
146
+ plot_params = {'figure.figsize': [fig_width,fig_height*2]}
147
+ rcParams.update(plot_params)
148
+ fig = figure()
149
+ for k, segs in zip([0,1,2],[self._segments, self._vetoes, self._unvetoed]):
150
+ s = array(segs._seglist)
151
+ t = sort(hstack((s[:,1],s[:,1],s[:,2],s[:,2])))
152
+ y = array(len(s)*[0,1,1,0])
153
+ for i in arange(n):
154
+ ax=fig.add_subplot(n,1,i+1)
155
+ ax.tick_params(axis='y', which='both', left='off', right='off', labelleft='off')
156
+ ax.tick_params(axis='x', which='both', top='on', bottom='off', labelbottom='off')
157
+ ax.set_ylim(0,2)
158
+ ax.xaxis.set_major_formatter(FormatStrFormatter('%0.0f'))
159
+ t0 = start + i*lenperline
160
+ t1 = t0 + lenperline
161
+ ax.set_ylabel(int(t0), verticalalignment='top', rotation=45)
162
+ ax.set_xlim(t0, t1)
163
+ ax.fill_between(t, 0*y + 2*(k//2), y + 2*(1-y)*(k//2), alpha=0.3, color=segcolorlist[k])
164
+ if title is not None:
165
+ fig.suptitle(title)
166
+ if outfile is None:
167
+ return fig
168
+ else:
169
+ print('Plotting segments to ', outfile)
170
+ fig.savefig(outfile)
171
+ plot_params = {'figure.figsize': [fig_width,fig_height]}
172
+ rcParams.update(plot_params)
173
+
174
+
175
+ # def distToVeto(self, time):
176
+ # '''Returns the distance to the closest veto segment in seconds'''
177
+ # dist = self._unvetoed
178
+
179
+ class segment:
180
+ '''A time segment in an IFO'''
181
+
182
+ def __init__(self, data, gpsstart=None, gpsend=None):
183
+ '''Creates a segment'''
184
+ if gpsstart is not None and gpsend is not None:
185
+ self._id = data[0]
186
+ self._start = gpsstart
187
+ self._end = gpsend
188
+ self._len = max(gpsend-gpsstart, 0)
189
+ elif gpsstart is None and gpsend is None:
190
+ '''Overloading to generate segment from an array (id, start, end, length)'''
191
+ if len(data) != 4:
192
+ print("Segment data doesn't have the correct length!")
193
+ return -1
194
+ self._id = data[0]
195
+ self._start = data[1]
196
+ self._end = data[2]
197
+ self._len = data[3]
198
+ else:
199
+ print("Wrong arguments to create segment!")
200
+ return -1
201
+ # if self._len != (self._end - self._start):
202
+ # print("Error in segment data: inconsistent length! " + str(self._len) + " " + str(self._end - self._start))
203
+
204
+ def intersectWithList(self, id0, other, sortedlist=True, startid=None):
205
+ '''Intersect segment with list of (non-overlapping) segments'''
206
+ newlist = []
207
+ id = id0
208
+ minid = startid
209
+ '''Cut list short from the left'''
210
+ for oseg in other[startid:]:
211
+ if segment(oseg)._start > self._end and sortedlist:
212
+ minid = max((0,segment(oseg)._id - 1))
213
+ break
214
+ newseg = self.intersectWith(segment(oseg))
215
+ if newseg._start < newseg._end:
216
+ newseg._id = id
217
+ id += 1
218
+ newlist.append(newseg.toArray())
219
+ if startid is None:
220
+ return newlist
221
+ else:
222
+ return (newlist, minid)
223
+
224
+ def hasTime(self, time):
225
+ '''Checks if time is in (open) segment'''
226
+ if (time < self._start or time > self._end):
227
+ dist = min(self._start - time, time - self._end)
228
+ else:
229
+ dist = 0
230
+ return dist
231
+
232
+ def intersectWith(self, other):
233
+ '''Intersects with another segment'''
234
+ newstart = max(self._start, other._start)
235
+ newend = min(self._end, other._end)
236
+ newseg = segment([self._id], newstart, newend)
237
+ return newseg
238
+
239
+ def toArray(self):
240
+ a = array([self._id, self._start, self._end, self._len])
241
+ return a
242
+
243
+ class segmentData:
244
+ '''Data that holds segments for one or more IFOs.'''
245
+
246
+ def __init__(self, seglist, gpsstart=None, gpsend=None):
247
+ if gpsstart is None:
248
+ gpsstart = seglist[0][1]
249
+ if gpsend is None:
250
+ gpsend = seglist[-1][2]
251
+ sortedlist = list(array(seglist)[argsort(array(seglist)[:,1])])
252
+ self._seglist = sortedlist
253
+ self._start = gpsstart
254
+ self._end = gpsend
255
+
256
+ def length(self):
257
+ return len(self._seglist)
258
+
259
+ def fits(self, minlen):
260
+ '''Returns the list of segments that fit a minimum required length.'''
261
+ data = array(self._seglist)
262
+ fitted = data[where(data[:,3] >= minlen)[0]]
263
+ fitted = vstack( (arange(len(fitted)),fitted[:, 1:].T) ).T
264
+ return segmentData(list(fitted), self._start, self._end)
265
+
266
+ def intersectSegments(self, other):
267
+ '''Returns the intersection with another list of segments.'''
268
+ newdata = []
269
+ startfrom = 0
270
+ id0 = self._seglist[0][0]
271
+ for s in self._seglist:
272
+ exclude = False
273
+ seg = segment(s)
274
+ for et in excludetimes:
275
+ exclude = exclude or (seg.hasTime(et) == 0)
276
+ if not exclude:
277
+ id = id0 + len(newdata)
278
+ nd, minid= seg.intersectWithList(id, other._seglist, startid=startfrom)
279
+ # nd= seg.intersectWithList(id, other._seglist, startid=None)
280
+ newdata += nd
281
+ startfrom = minid
282
+ return segmentData(newdata)
283
+
284
+ def notSegments(self, start, end):
285
+ '''Get the complement of the (non-overlapping) segments in this data'''
286
+ notlist = []
287
+ c = 0
288
+ times = array(self._seglist)[:,[1,2]]
289
+ # print(shape(times))
290
+ times = times[argsort(times[:,1])]
291
+ t1 = start
292
+ for i in (arange(len(times))):
293
+ t2 = times[i,0]
294
+ if t2 > t1 and t1 >= start and t2 <= end:
295
+ newseg = array([c, t1, t2, t2-t1]) #FIXME: check c initial value
296
+ notlist.append(newseg)
297
+ c += 1
298
+ t1 = times[i,1]
299
+ if t1 < end:
300
+ newseg = array([c, t1, end, end-t1])
301
+ notlist.append(newseg)
302
+ return segmentData(notlist, start, end)
303
+
304
+ def getUnvetoed(self, vetodata):
305
+ '''Returns a segmentData object with unvetoed segments'''
306
+ noveto = vetodata.notSegments(self._start, self._end)
307
+ unvetoed = self.intersectSegments(noveto)
308
+ return unvetoed
309
+
310
+ def unionSegments(self, other):
311
+ '''Take the union of segment lists. This is used for combining veto segments of different detectors.'''
312
+ '''Here I use AUB = not(notA^notB)'''
313
+ start = min(self._start, other._start)
314
+ end = max(self._end, other._end)
315
+ united = self.notSegments(start, end).intersectSegments(other.notSegments(start, end)).notSegments(start, end)
316
+ return united
317
+
318
+ def hasTime(self, time):
319
+ '''Checks whether time is in the segments. Gives 0 if true and the distance of time to the segment list otherwise.'''
320
+ dist = max(abs(self._start - time), abs(self._end - time))
321
+ for s in self._seglist:
322
+ dist = min(dist, s.hasTime(time))
323
+ return dist
324
+
325
+ def timeIn(self, time):
326
+ '''If t is in a segment returns the distance to the edges, otherwise returns False'''
327
+ sl = array(self._seglist)
328
+ ds = time - sl[:,1]
329
+ de = time - sl[:,2]
330
+ sgn = ds*de #should be negative if segment contains t
331
+ ids = where(sgn < 0)[0]
332
+ if len(ids) > 1:
333
+ print("Time " + time + " contained in more than one segment!")
334
+ if len(ids) == 1:
335
+ return [ds[ids[0]], -de[ids[0]]]
336
+ else:
337
+ return False
338
+
339
+
340
+ def printToFile(self, outfile):
341
+ print("Printing segment list to file " + outfile)
342
+ savetxt(outfile, array(self._seglist), fmt='%i')
343
+
344
+ def plotSegments(self, outfile=None, lenperline=200000, segcolor='b', title=None):
345
+ '''Plot segments in rows of lenperline seconds'''
346
+ s = array(self._seglist)
347
+ t = sort(hstack((s[:,1],s[:,1],s[:,2],s[:,2])))
348
+ y = len(s)*[0,1,1,0]
349
+ n = ceil((t[-1]-t[0])/lenperline)
350
+ fig = figure()
351
+ for i in arange(n):
352
+ ax=fig.add_subplot(n,1,i+1)
353
+ ax.tick_params(axis='y', which='both', left='off', right='off', labelleft='off')
354
+ ax.tick_params(axis='x', which='both', top='on', bottom='off', labelbottom='off')
355
+ ax.set_ylim(0,2)
356
+ ax.xaxis.set_major_formatter(FormatStrFormatter('%0.0f'))
357
+ t0 = t[0] + i*lenperline
358
+ t1 = t0 + lenperline
359
+ ax.set_ylabel(int(t0), verticalalignment='top', rotation=45)
360
+ ax.set_xlim(t0, t1)
361
+ ax.fill_between(t, 0*array(y), y, alpha=0.3, color=segcolor)
362
+ if title is not None:
363
+ fig.suptitle(title)
364
+ if outfile is None:
365
+ return fig
366
+ else:
367
+ print('Plotting segments to ', outfile)
368
+ fig.savefig(outfile)
369
+
370
+
371
+ def plotCumulativeDurations(self, outfile, maxdur=None):
372
+ print("Plotting segment lengths distribution to file " + outfile)
373
+ fig = figure()
374
+ ax = fig.add_subplot(111)
375
+ ax.set_xlabel("segment length")
376
+ ax.set_ylabel("# segments")
377
+ dur = array(self._seglist)[:,-1]
378
+ if maxdur is not None:
379
+ dur = dur[where(dur <= maxdur)[0]]
380
+ ax.hist(dur, bins=sort(dur), cumulative=True, histtype='stepfilled', alpha=0.3)
381
+ fig.savefig(outfile)
382
+
383
+
384
+
385
+ ###########################
386
+ #
387
+ # OTHER FUNCTIONS
388
+ #
389
+ ###########################
390
+
391
+
392
+ def ensure_dir(f):
393
+ """
394
+ CREATE FOLDER IF IT DOES NOT EXIST
395
+ """
396
+ if not os.path.exists(f):
397
+ os.makedirs(f)
398
+
399
+
400
+ def getDoubles(ifo1, ifo2, unvetoed=False):
401
+ '''
402
+ Combines 2 interferometer objects into a new one, taking intersection of segments and union of vetoes
403
+ Setting unvetoed=True will speed up the calculations by ignoring
404
+ small/vetoed segments. Use with caution! (not good for plotting seglen distr)
405
+ '''
406
+ name1 = ifo1._name
407
+ name2 = ifo2._name
408
+ seg1 = ifo1._allsegments
409
+ seg2 = ifo2._allsegments
410
+ vet1 = ifo1._vetoes
411
+ vet2 = ifo2._vetoes
412
+ unv1 = ifo1._unvetoed
413
+ unv2 = ifo2._unvetoed
414
+ minl1 = ifo1._minlen
415
+ minl2 = ifo2._minlen
416
+
417
+ name12 = name1 + name2
418
+ print('Combining ' + name1 + ' and ' + name2 + ' into ' + name12)
419
+ if unvetoed:
420
+ seg12 = unv1.intersectSegments(unv2) # only uses unvetoed long segment list for each IFO
421
+ else:
422
+ seg12 = seg1.intersectSegments(seg2) # uses full segment lists including small&vetoed segments
423
+ vet12 = vet1.unionSegments(vet2)
424
+ minl12 = max(minl1, minl2)
425
+ ifo12 = IFO(name12, seg12, vet12, minl12)
426
+ # if ifo12
427
+ return ifo12
428
+
429
+
430
+ def getTriples(ifo1, ifo2, ifo3, unvetoed=False):
431
+ '''Combines 3 IFO objects into one'''
432
+ ifo12 = getDoubles(ifo1, ifo2, unvetoed)
433
+ ifo123 = getDoubles(ifo12, ifo3, unvetoed)
434
+ return ifo123
435
+
436
+
437
+ def generateTimeslides(tdict, n, ref=None, outfolder=None, verbose=False):
438
+ '''
439
+ Generate a list of injection times and timeslides,
440
+ given a dictionary of (single) injection times
441
+ '''
442
+ ifos = tdict.keys()
443
+ # nifo = len(ifos)
444
+ if ref is None:
445
+ ref = ifos[0]
446
+ injtimes = []
447
+ injdict = {}
448
+ slidedict = {}
449
+ for k in tdict.keys():
450
+ injdict[k] = []
451
+ slidedict[k] = []
452
+ for i in arange(n):
453
+ for ifo in ifos:
454
+ injdict[ifo].append(rd.sample(tdict[ifo], 1)[0])
455
+
456
+ injtimes = injdict[ref]
457
+ for ifo in ifos:
458
+ slidedict[ifo] = array(injdict[ifo]) - array(injdict[ref])
459
+
460
+ if outfolder is None:
461
+ return injtimes, slidedict
462
+ else:
463
+ label=''.join(ifos) + '_' + str(n)
464
+ injtimesfile = os.path.join(outfolder,'injtimes_'+label+'.dat')
465
+ slidefilename = os.path.join(outfolder,'timeslides_'+label+'.dat')
466
+ slidefile = open(slidefilename, 'w')
467
+ header = " ".join(ifos)
468
+ slidefile.write(header+'\n')
469
+ slidedata = array(slidedict.values()).T
470
+ if verbose:
471
+ print(injtimes)
472
+ print(slidedict)
473
+ savetxt(injtimesfile, array(injtimes), fmt='%i')
474
+ savetxt(slidefile, slidedata, delimiter=' ', fmt='%i')
475
+ slidefile.close()
476
+ return (injtimesfile, slidefilename)
477
+
478
+
479
+
480
+ ###########################
481
+ #
482
+ # MAIN FUNCTION
483
+ #
484
+ ###########################
485
+
486
+ if __name__ == "__main__":
487
+
488
+ ###########################################
489
+ #
490
+ # Parse arguments (argparser)
491
+ #
492
+ ###########################################
493
+
494
+ #parser = OptionParser()
495
+ parser = argparse.ArgumentParser(description="Reads segment files and outputs injection times in veto-free segments.")
496
+
497
+
498
+ parser.add_argument('-i', '--ifos', nargs=3, type=str, metavar='IFO', dest='ifos', help='List of IFOs to be considered (currently takes 3)') # FIXME: Variable length???
499
+ parser.add_argument('-s', '--segfiles', nargs=3, type=str, metavar='FILE', dest='segf', help='path to the segment files for IFOS in the order entered above')
500
+ parser.add_argument('-v', '--vetofiles', nargs=3, type=str, metavar='FILE', dest='vetof', help='path to the veto files for IFOS in the order entered above')
501
+ parser.add_argument('-o', '--outfolder', type=str, metavar='FILE', dest='outf', help='path to the output folder', default='.')
502
+ parser.add_argument('-l', '--length', type=int, metavar='INT', dest='length', help='length of signal segments in seconds', default=45.0)
503
+ parser.add_argument('-P', '--psdlength', type=int, metavar='INT', dest='psdlength', help='minimum length for calculating PSD in seconds', default=1024)
504
+ parser.add_argument('-N', '--Ninj', type=int, dest="Ninj", help="# injections", default=1000)
505
+ parser.add_argument('-I', '--interval', type=int, metavar='INT', dest='interval', help='minimum space between injections in seconds (defaults to injecting only in the middle of segments)', default=None)
506
+ parser.add_argument('-S', '--singles', action="store_true", dest="singles", help="process singles (default for timeslides)", default=False)
507
+ parser.add_argument('-D', '--doubles', action="store_true", dest="doubles", help="process doubles (N/A for timeslides)", default=False)
508
+ parser.add_argument('-T', '--triples', action="store_true", dest="triples", help="process triples (N/A for timeslides)", default=False)
509
+ parser.add_argument('-t', '--timeslides', action="store_true", dest="timeslides", help="Enable timeslides. This automatically deactivates --triples and --doubles.", default=False)
510
+ parser.add_argument('-p', '--plot', action="store_true", dest="plotsegdist", help="plot cumulative segment length distribution", default=False)
511
+ parser.add_argument('-c', '--checkslides', action="store_true", dest="check", help="verbose check that all timeslid times are in unvetoed segments", default=False)
512
+ parser.add_argument('-u', '--dumpunvetoed', action="store_true", dest="dumpunvetoed", help="dump list of unvetoed segments to file and plot segments", default=False)
513
+
514
+ #TODO:
515
+ # * add option to dump to pickle (IFOlist, doubleIFOs, tripleIFO)
516
+ # * add option to read IFOs from pickle
517
+
518
+ args = parser.parse_args()
519
+
520
+ outfolder = str(args.outf)
521
+ segfiles = args.segf
522
+ vetofiles = args.vetof
523
+ ifos = args.ifos
524
+ nifos = len(ifos)
525
+ Ninj = args.Ninj
526
+ seglen = args.length
527
+ psdlen = args.psdlength
528
+ plotsegdist = args.plotsegdist
529
+ dumpunvetoed = args.dumpunvetoed
530
+ interval = args.interval
531
+ singles = args.singles
532
+ doubles = args.doubles
533
+ triples = args.triples
534
+ timeslides = args.timeslides
535
+ check = args.check
536
+ maxplot = 40000
537
+
538
+ # Ensure that directories exist
539
+ ensure_dir(outfolder)
540
+ if dumpunvetoed:
541
+ ensure_dir(os.path.join(outfolder, 'segments'))
542
+
543
+ # Choose where to inject (currently middle of segment or every interval)
544
+ if interval is None:
545
+ whereInj = 'middle'
546
+ else:
547
+ whereInj = 'often'
548
+
549
+ # Read segments data in rawlist and only keep long enough segments in fitlist for each of the IFOs
550
+ timesdict = {}
551
+ minlen = max(psdlen, seglen)
552
+
553
+ # Read in segment files and veto files and create IFO list
554
+ IFOlist = []
555
+ for i in arange(nifos):
556
+ IFOlist.append(IFO(ifos[i], segfiles[i], vetofiles[i], minlen))
557
+ # Generate triggers for each IFO (for timeslides only)
558
+ if timeslides:
559
+ if plotsegdist:
560
+ IFOlist[-1].plotCumulativeDurations(os.path.join(outfolder,'singleseg_' + IFOlist[-1]._name +'.png'), maxplot)
561
+ timesdict[ifos[i]] = IFOlist[-1].getTrigTimes(whereInj=whereInj, interval=interval, lmargin=seglen)
562
+
563
+ # Generate timeslide output
564
+ if timeslides:
565
+ ensure_dir(os.path.join(outfolder, 'timeslides'))
566
+ generateTimeslides(timesdict, Ninj, ref='H1', outfolder=os.path.join(outfolder,'timeslides'))
567
+ singles = True
568
+ doubles = False
569
+ triples = False
570
+
571
+ if singles:
572
+ for single in IFOlist:
573
+ if plotsegdist:
574
+ single.plotCumulativeDurations(os.path.join(outfolder, 'singleseg_' + single._name + '.png'), maxplot)
575
+ if not timeslides:
576
+ single.getTrigTimes(whereInj=whereInj, n=Ninj, interval=interval, lmargin=seglen, outfile=os.path.join(outfolder, 'injtimes_' + single._name + '_' + str(single._minlen) + '.dat'))
577
+ # Check unvetoedness and prints the distance of trigger times to edges of unvetoed segments
578
+ if check:
579
+ print('checking single ' + single._name)
580
+ for time in single.getTrigTimes(whereInj=whereInj, n=Ninj, interval=interval, lmargin=seglen):
581
+ dist = single._unvetoed.timeIn(time)
582
+ print(dist, dist > 0)
583
+ # Dump unvetoed segment list to file and plot segments to file
584
+ if dumpunvetoed:
585
+ single._unvetoed.printToFile(os.path.join(outfolder, 'segments', single._name + '_unvetoed_segs.dat'))
586
+ figseg = single._unvetoed.plotSegments(os.path.join(outfolder, 'segments', single._name + '_unvetoed_segs.pdf'), title=single._name + ' unvetoed segments', segcolor=colordict[single._name])
587
+
588
+
589
+ # Combine IFOs into doubles
590
+ if doubles:
591
+ doubleIFOs = []
592
+ doubleIFOs.append( getDoubles(IFOlist[0], IFOlist[1]) ) #, unvetoed=not plotsegdist) ) #FIXME: test it with plots!
593
+ doubleIFOs.append( getDoubles(IFOlist[1], IFOlist[2]) ) #, unvetoed=not plotsegdist) ) # speedup is ~3s for full triples set
594
+ doubleIFOs.append( getDoubles(IFOlist[0], IFOlist[2]) ) #, unvetoed=not plotsegdist) ) # not worth overall?
595
+
596
+ # Generate output for doubles
597
+ for double in doubleIFOs:
598
+ double.getTrigTimes(whereInj=whereInj, n=Ninj, interval=interval, lmargin=seglen, outfile=os.path.join(outfolder, 'injtimes_' + double._name + '_' + str(double._minlen) +'.dat'))
599
+ if plotsegdist:
600
+ double.plotCumulativeDurations(os.path.join(outfolder,'doubleseg_' + double._name +'.png'), maxplot)
601
+ # Check unvetoedness and prints the distance of trigger times to edges of unvetoed segments
602
+ if check:
603
+ print('checking double ' + double._name)
604
+ for time in double.getTrigTimes(whereInj=whereInj, n=Ninj, interval=interval, lmargin=seglen):
605
+ dist = double._unvetoed.timeIn(time)
606
+ print(dist, dist > 0)
607
+ # Dump unvetoed segment list to file and plot segments to file
608
+ if dumpunvetoed:
609
+ double._unvetoed.printToFile(os.path.join(outfolder, 'segments', double._name + '_unvetoed_segs.dat'))
610
+ figseg = double._unvetoed.plotSegments(os.path.join(outfolder, 'segments', double._name + '_unvetoed_segs.pdf'), title=double._name + ' unvetoed segments')
611
+
612
+
613
+ # Combine IFOs into triples
614
+ if triples:
615
+ # If doubles are combined half of the work is already done
616
+ if doubles:
617
+ tripleIFO = getDoubles(doubleIFOs[0], IFOlist[2]) #, unvetoed=not plotsegdist)
618
+ else:
619
+ tripleIFO = getTriples(IFOlist[0], IFOlist[1], IFOlist[2]) #, unvetoed=not plotsegdist)
620
+
621
+ # Generate output for doubles
622
+ tripleIFO.getTrigTimes(whereInj=whereInj, n=Ninj, interval=interval, lmargin=seglen, outfile=os.path.join(outfolder,'injtimes_' + tripleIFO._name + '_' + str(tripleIFO._minlen) +'.dat'))
623
+ if plotsegdist:
624
+ tripleIFO.plotCumulativeDurations(os.path.join(outfolder,'tripleseg_' + tripleIFO._name +'.png'), maxplot)
625
+ # Check unvetoedness and prints the distance of trigger times to edges of unvetoed segments
626
+ if check:
627
+ print('checking triple ' + tripleIFO._name)
628
+ for time in tripleIFO.getTrigTimes(whereInj=whereInj, n=Ninj, interval=interval, lmargin=seglen):
629
+ dist = tripleIFO._unvetoed.timeIn(time)
630
+ print(dist, dist > 0)
631
+ # Dump unvetoed segment list to file and plot segments to file
632
+ if dumpunvetoed:
633
+ tripleIFO._unvetoed.printToFile(os.path.join(outfolder, 'segments', tripleIFO._name + '_unvetoed_segs.dat'))
634
+ figseg = tripleIFO._unvetoed.plotSegments(os.path.join(outfolder, 'segments', tripleIFO._name + '_unvetoed_segs.pdf'), title=tripleIFO._name + ' unvetoed segments')