lalsuite 7.26.2.dev20251206__cp312-cp312-manylinux_2_28_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 (733) hide show
  1. lal/__init__.py +145 -0
  2. lal/_lal.cpython-312-x86_64-linux-gnu.so +0 -0
  3. lal/_lal_swig.py +12 -0
  4. lal/antenna.py +1200 -0
  5. lal/git_version.py +64 -0
  6. lal/gpstime.py +233 -0
  7. lal/iterutils.py +408 -0
  8. lal/pipeline.py +3139 -0
  9. lal/rate.py +2455 -0
  10. lal/series.py +244 -0
  11. lal/utils/__init__.py +29 -0
  12. lal/utils/cache.py +379 -0
  13. lal/utils/series.py +277 -0
  14. lalapps/__init__.py +26 -0
  15. lalapps/bin/lal_cache +0 -0
  16. lalapps/bin/lal_fftw_wisdom +0 -0
  17. lalapps/bin/lal_fftwf_wisdom +0 -0
  18. lalapps/bin/lal_simd_detect +0 -0
  19. lalapps/bin/lal_tconvert +0 -0
  20. lalapps/bin/lal_version +0 -0
  21. lalapps/bin/lalapps_ComputeAntennaPattern +16 -0
  22. lalapps/bin/lalapps_ComputeFstatBenchmark +16 -0
  23. lalapps/bin/lalapps_ComputeFstatLatticeCount +16 -0
  24. lalapps/bin/lalapps_ComputeFstatMCUpperLimit +16 -0
  25. lalapps/bin/lalapps_ComputeFstatistic_v2 +16 -0
  26. lalapps/bin/lalapps_ComputePSD +16 -0
  27. lalapps/bin/lalapps_CopySFTs +16 -0
  28. lalapps/bin/lalapps_DistanceVsMass +0 -0
  29. lalapps/bin/lalapps_DriveHoughMulti +16 -0
  30. lalapps/bin/lalapps_FstatMetric_v2 +16 -0
  31. lalapps/bin/lalapps_HierarchSearchGCT +16 -0
  32. lalapps/bin/lalapps_HierarchicalSearch +16 -0
  33. lalapps/bin/lalapps_MakeSFTDAG +16 -0
  34. lalapps/bin/lalapps_MakeSFTs +16 -0
  35. lalapps/bin/lalapps_Makefakedata_v4 +16 -0
  36. lalapps/bin/lalapps_Makefakedata_v5 +16 -0
  37. lalapps/bin/lalapps_PredictFstat +16 -0
  38. lalapps/bin/lalapps_PrintDetectorState +16 -0
  39. lalapps/bin/lalapps_SFTclean +16 -0
  40. lalapps/bin/lalapps_SFTvalidate +16 -0
  41. lalapps/bin/lalapps_StringAddFrame +0 -0
  42. lalapps/bin/lalapps_StringSearch +0 -0
  43. lalapps/bin/lalapps_Weave +16 -0
  44. lalapps/bin/lalapps_WeaveCompare +16 -0
  45. lalapps/bin/lalapps_WeaveConcat +16 -0
  46. lalapps/bin/lalapps_WeaveSetup +16 -0
  47. lalapps/bin/lalapps_WriteSFTsfromSFDBs +16 -0
  48. lalapps/bin/lalapps_animate +0 -0
  49. lalapps/bin/lalapps_binj +0 -0
  50. lalapps/bin/lalapps_blindinj +0 -0
  51. lalapps/bin/lalapps_cache +16 -0
  52. lalapps/bin/lalapps_calfacs +0 -0
  53. lalapps/bin/lalapps_cbc_stochasticbank +0 -0
  54. lalapps/bin/lalapps_chirplen +0 -0
  55. lalapps/bin/lalapps_coh_PTF_inspiral +0 -0
  56. lalapps/bin/lalapps_coinj +0 -0
  57. lalapps/bin/lalapps_combine_crosscorr_toplists +16 -0
  58. lalapps/bin/lalapps_compareFstats +16 -0
  59. lalapps/bin/lalapps_compareSFTs +16 -0
  60. lalapps/bin/lalapps_create_time_correction_ephemeris +16 -0
  61. lalapps/bin/lalapps_dumpSFT +16 -0
  62. lalapps/bin/lalapps_effdist +0 -0
  63. lalapps/bin/lalapps_exc_resp +0 -0
  64. lalapps/bin/lalapps_fftw_wisdom +16 -0
  65. lalapps/bin/lalapps_fftwf_wisdom +16 -0
  66. lalapps/bin/lalapps_fits_header_getval +16 -0
  67. lalapps/bin/lalapps_fits_header_list +16 -0
  68. lalapps/bin/lalapps_fits_overview +16 -0
  69. lalapps/bin/lalapps_fits_table_list +16 -0
  70. lalapps/bin/lalapps_fr_ninja +0 -0
  71. lalapps/bin/lalapps_frextr +0 -0
  72. lalapps/bin/lalapps_frinfo +0 -0
  73. lalapps/bin/lalapps_frjoin +0 -0
  74. lalapps/bin/lalapps_frread +0 -0
  75. lalapps/bin/lalapps_frview +0 -0
  76. lalapps/bin/lalapps_gwf2xml +0 -0
  77. lalapps/bin/lalapps_heterodyne_pulsar +16 -0
  78. lalapps/bin/lalapps_inspawgfile +0 -0
  79. lalapps/bin/lalapps_inspfrinj +0 -0
  80. lalapps/bin/lalapps_inspinj +0 -0
  81. lalapps/bin/lalapps_inspiralDistance +0 -0
  82. lalapps/bin/lalapps_knope +16 -0
  83. lalapps/bin/lalapps_knope_automation_script +16 -0
  84. lalapps/bin/lalapps_knope_collate_results +16 -0
  85. lalapps/bin/lalapps_knope_result_page +16 -0
  86. lalapps/bin/lalapps_makeblindinj +85 -0
  87. lalapps/bin/lalapps_makeblindinj_himass +67 -0
  88. lalapps/bin/lalapps_ninja +0 -0
  89. lalapps/bin/lalapps_path2cache +16 -0
  90. lalapps/bin/lalapps_power +0 -0
  91. lalapps/bin/lalapps_pulsar_crosscorr_v2 +16 -0
  92. lalapps/bin/lalapps_pulsar_frequency_evolution +16 -0
  93. lalapps/bin/lalapps_pulsar_parameter_estimation_nested +16 -0
  94. lalapps/bin/lalapps_random_bank +0 -0
  95. lalapps/bin/lalapps_randombank +0 -0
  96. lalapps/bin/lalapps_run_pulsar_crosscorr_v2 +16 -0
  97. lalapps/bin/lalapps_searchsum2cache +16 -0
  98. lalapps/bin/lalapps_spec_avg +16 -0
  99. lalapps/bin/lalapps_spec_avg_long +16 -0
  100. lalapps/bin/lalapps_spec_coherence +16 -0
  101. lalapps/bin/lalapps_spininj +0 -0
  102. lalapps/bin/lalapps_splitSFTs +16 -0
  103. lalapps/bin/lalapps_splitbank +0 -0
  104. lalapps/bin/lalapps_ssbtodetector +16 -0
  105. lalapps/bin/lalapps_synthesizeBstatMC +16 -0
  106. lalapps/bin/lalapps_synthesizeLVStats +16 -0
  107. lalapps/bin/lalapps_synthesizeTransientStats +16 -0
  108. lalapps/bin/lalapps_tconvert +16 -0
  109. lalapps/bin/lalapps_tmpltbank +0 -0
  110. lalapps/bin/lalapps_version +0 -0
  111. lalapps/bin/lalapps_xtefitstoframe +0 -0
  112. lalapps/bin/lalburst_version +0 -0
  113. lalapps/bin/lalfr-cat +0 -0
  114. lalapps/bin/lalfr-cksum +0 -0
  115. lalapps/bin/lalfr-cut +0 -0
  116. lalapps/bin/lalfr-dump +0 -0
  117. lalapps/bin/lalfr-fmt +0 -0
  118. lalapps/bin/lalfr-paste +0 -0
  119. lalapps/bin/lalfr-print +0 -0
  120. lalapps/bin/lalfr-split +0 -0
  121. lalapps/bin/lalfr-stat +0 -0
  122. lalapps/bin/lalfr-stream +0 -0
  123. lalapps/bin/lalfr-vis +0 -0
  124. lalapps/bin/lalframe_version +0 -0
  125. lalapps/bin/lalinference_bench +0 -0
  126. lalapps/bin/lalinference_burst +0 -0
  127. lalapps/bin/lalinference_datadump +0 -0
  128. lalapps/bin/lalinference_injectedlike +0 -0
  129. lalapps/bin/lalinference_mpi_wrapper +59 -0
  130. lalapps/bin/lalinference_nest +0 -0
  131. lalapps/bin/lalinference_version +0 -0
  132. lalapps/bin/lalinspiral_version +0 -0
  133. lalapps/bin/lalmetaio_version +0 -0
  134. lalapps/bin/lalpulsar_ComputeAntennaPattern +0 -0
  135. lalapps/bin/lalpulsar_ComputeFstatBenchmark +0 -0
  136. lalapps/bin/lalpulsar_ComputeFstatLatticeCount +0 -0
  137. lalapps/bin/lalpulsar_ComputeFstatMCUpperLimit +0 -0
  138. lalapps/bin/lalpulsar_ComputeFstatistic_v2 +0 -0
  139. lalapps/bin/lalpulsar_ComputePSD +0 -0
  140. lalapps/bin/lalpulsar_DriveHoughMulti +0 -0
  141. lalapps/bin/lalpulsar_FstatMetric_v2 +0 -0
  142. lalapps/bin/lalpulsar_HierarchSearchGCT +0 -0
  143. lalapps/bin/lalpulsar_HierarchicalSearch +0 -0
  144. lalapps/bin/lalpulsar_MakeSFTs +0 -0
  145. lalapps/bin/lalpulsar_Makefakedata_v4 +0 -0
  146. lalapps/bin/lalpulsar_Makefakedata_v5 +0 -0
  147. lalapps/bin/lalpulsar_PredictFstat +0 -0
  148. lalapps/bin/lalpulsar_PrintDetectorState +0 -0
  149. lalapps/bin/lalpulsar_SFTclean +0 -0
  150. lalapps/bin/lalpulsar_SFTvalidate +0 -0
  151. lalapps/bin/lalpulsar_Weave +0 -0
  152. lalapps/bin/lalpulsar_WeaveCompare +0 -0
  153. lalapps/bin/lalpulsar_WeaveConcat +0 -0
  154. lalapps/bin/lalpulsar_WeaveSetup +0 -0
  155. lalapps/bin/lalpulsar_WriteSFTsfromSFDBs +0 -0
  156. lalapps/bin/lalpulsar_compareFstats +0 -0
  157. lalapps/bin/lalpulsar_compareSFTs +0 -0
  158. lalapps/bin/lalpulsar_create_time_correction_ephemeris +0 -0
  159. lalapps/bin/lalpulsar_crosscorr_v2 +0 -0
  160. lalapps/bin/lalpulsar_dumpSFT +0 -0
  161. lalapps/bin/lalpulsar_fits_header_getval +0 -0
  162. lalapps/bin/lalpulsar_fits_header_list +0 -0
  163. lalapps/bin/lalpulsar_fits_overview +0 -0
  164. lalapps/bin/lalpulsar_fits_table_list +0 -0
  165. lalapps/bin/lalpulsar_frequency_evolution +0 -0
  166. lalapps/bin/lalpulsar_heterodyne +0 -0
  167. lalapps/bin/lalpulsar_parameter_estimation_nested +0 -0
  168. lalapps/bin/lalpulsar_spec_avg +0 -0
  169. lalapps/bin/lalpulsar_spec_avg_long +0 -0
  170. lalapps/bin/lalpulsar_spec_coherence +0 -0
  171. lalapps/bin/lalpulsar_splitSFTs +0 -0
  172. lalapps/bin/lalpulsar_ssbtodetector +0 -0
  173. lalapps/bin/lalpulsar_synthesizeBstatMC +0 -0
  174. lalapps/bin/lalpulsar_synthesizeLVStats +0 -0
  175. lalapps/bin/lalpulsar_synthesizeTransientStats +0 -0
  176. lalapps/bin/lalpulsar_version +0 -0
  177. lalapps/bin/lalsim-bh-qnmode +0 -0
  178. lalapps/bin/lalsim-bh-ringdown +0 -0
  179. lalapps/bin/lalsim-bh-sphwf +0 -0
  180. lalapps/bin/lalsim-burst +0 -0
  181. lalapps/bin/lalsim-detector-noise +0 -0
  182. lalapps/bin/lalsim-detector-strain +0 -0
  183. lalapps/bin/lalsim-inject +0 -0
  184. lalapps/bin/lalsim-inspiral +0 -0
  185. lalapps/bin/lalsim-ns-eos-table +0 -0
  186. lalapps/bin/lalsim-ns-mass-radius +0 -0
  187. lalapps/bin/lalsim-ns-params +0 -0
  188. lalapps/bin/lalsim-sgwb +0 -0
  189. lalapps/bin/lalsim-unicorn +0 -0
  190. lalapps/bin/lalsimulation_version +0 -0
  191. lalapps/cosmicstring.py +691 -0
  192. lalapps/data/BNSMasses.dat +65022 -0
  193. lalapps/data/CorrelationMatrix.csv +15 -0
  194. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF1_META.dat +1882 -0
  195. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF2_META.dat +1939 -0
  196. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF3_META.dat +1784 -0
  197. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF4_META.dat +2074 -0
  198. lalapps/data/LALSimNeutronStarEOS_ALF1.dat +435 -0
  199. lalapps/data/LALSimNeutronStarEOS_ALF2.dat +453 -0
  200. lalapps/data/LALSimNeutronStarEOS_ALF3.dat +441 -0
  201. lalapps/data/LALSimNeutronStarEOS_ALF4.dat +441 -0
  202. lalapps/data/LALSimNeutronStarEOS_AP1.dat +212 -0
  203. lalapps/data/LALSimNeutronStarEOS_AP2.dat +212 -0
  204. lalapps/data/LALSimNeutronStarEOS_AP3.dat +212 -0
  205. lalapps/data/LALSimNeutronStarEOS_AP4.dat +210 -0
  206. lalapps/data/LALSimNeutronStarEOS_APR.dat +500 -0
  207. lalapps/data/LALSimNeutronStarEOS_APR4_EPP.dat +1447 -0
  208. lalapps/data/LALSimNeutronStarEOS_BBB2.dat +84 -0
  209. lalapps/data/LALSimNeutronStarEOS_BGN1H1.dat +123 -0
  210. lalapps/data/LALSimNeutronStarEOS_BHF_BBB2.dat +499 -0
  211. lalapps/data/LALSimNeutronStarEOS_BL_CHIRAL_META.dat +1534 -0
  212. lalapps/data/LALSimNeutronStarEOS_BPAL12.dat +61 -0
  213. lalapps/data/LALSimNeutronStarEOS_BSK19.dat +310 -0
  214. lalapps/data/LALSimNeutronStarEOS_BSK20.dat +310 -0
  215. lalapps/data/LALSimNeutronStarEOS_BSK21.dat +310 -0
  216. lalapps/data/LALSimNeutronStarEOS_ENG.dat +108 -0
  217. lalapps/data/LALSimNeutronStarEOS_FPS.dat +129 -0
  218. lalapps/data/LALSimNeutronStarEOS_GMSR_BSK14_BSK24.dat +1010 -0
  219. lalapps/data/LALSimNeutronStarEOS_GMSR_DHSL59_BSK24.dat +1009 -0
  220. lalapps/data/LALSimNeutronStarEOS_GMSR_DHSL69_BSK24.dat +1009 -0
  221. lalapps/data/LALSimNeutronStarEOS_GMSR_F0_BSK24.dat +1010 -0
  222. lalapps/data/LALSimNeutronStarEOS_GMSR_H1_BSK24.dat +1009 -0
  223. lalapps/data/LALSimNeutronStarEOS_GMSR_H2_BSK24.dat +1010 -0
  224. lalapps/data/LALSimNeutronStarEOS_GMSR_H3_BSK24.dat +1010 -0
  225. lalapps/data/LALSimNeutronStarEOS_GMSR_H4_BSK24.dat +1010 -0
  226. lalapps/data/LALSimNeutronStarEOS_GMSR_H5_BSK24.dat +1009 -0
  227. lalapps/data/LALSimNeutronStarEOS_GMSR_LN55_BSK24.dat +1010 -0
  228. lalapps/data/LALSimNeutronStarEOS_GMSR_SLY5_BSK24.dat +1010 -0
  229. lalapps/data/LALSimNeutronStarEOS_GNH3.dat +71 -0
  230. lalapps/data/LALSimNeutronStarEOS_GPPVA_DD2_BSK24.dat +1009 -0
  231. lalapps/data/LALSimNeutronStarEOS_GPPVA_DDME2_BSK24.dat +1010 -0
  232. lalapps/data/LALSimNeutronStarEOS_GPPVA_FSU2H_BSK24.dat +1009 -0
  233. lalapps/data/LALSimNeutronStarEOS_GPPVA_FSU2_BSK24.dat +1010 -0
  234. lalapps/data/LALSimNeutronStarEOS_GPPVA_NL3WRL55_BSK24.dat +1010 -0
  235. lalapps/data/LALSimNeutronStarEOS_GS1.dat +136 -0
  236. lalapps/data/LALSimNeutronStarEOS_GS2.dat +100 -0
  237. lalapps/data/LALSimNeutronStarEOS_H1.dat +114 -0
  238. lalapps/data/LALSimNeutronStarEOS_H2.dat +114 -0
  239. lalapps/data/LALSimNeutronStarEOS_H3.dat +98 -0
  240. lalapps/data/LALSimNeutronStarEOS_H4.dat +664 -0
  241. lalapps/data/LALSimNeutronStarEOS_H5.dat +703 -0
  242. lalapps/data/LALSimNeutronStarEOS_H6.dat +509 -0
  243. lalapps/data/LALSimNeutronStarEOS_H7.dat +703 -0
  244. lalapps/data/LALSimNeutronStarEOS_HQC18.dat +388 -0
  245. lalapps/data/LALSimNeutronStarEOS_KDE0V.dat +500 -0
  246. lalapps/data/LALSimNeutronStarEOS_KDE0V1.dat +500 -0
  247. lalapps/data/LALSimNeutronStarEOS_KDE0V1_BSK24.dat +1388 -0
  248. lalapps/data/LALSimNeutronStarEOS_KDE0V_BSK24.dat +1398 -0
  249. lalapps/data/LALSimNeutronStarEOS_MPA1.dat +102 -0
  250. lalapps/data/LALSimNeutronStarEOS_MS1.dat +122 -0
  251. lalapps/data/LALSimNeutronStarEOS_MS1B.dat +126 -0
  252. lalapps/data/LALSimNeutronStarEOS_MS1B_PP.dat +1447 -0
  253. lalapps/data/LALSimNeutronStarEOS_MS1_PP.dat +1447 -0
  254. lalapps/data/LALSimNeutronStarEOS_MS2.dat +48 -0
  255. lalapps/data/LALSimNeutronStarEOS_PAL6.dat +148 -0
  256. lalapps/data/LALSimNeutronStarEOS_PCL2.dat +134 -0
  257. lalapps/data/LALSimNeutronStarEOS_PCP_BSK24_BSK24.dat +1010 -0
  258. lalapps/data/LALSimNeutronStarEOS_PS.dat +165 -0
  259. lalapps/data/LALSimNeutronStarEOS_QMC700.dat +117 -0
  260. lalapps/data/LALSimNeutronStarEOS_RG_SLY4_BSK24.dat +1010 -0
  261. lalapps/data/LALSimNeutronStarEOS_RS.dat +500 -0
  262. lalapps/data/LALSimNeutronStarEOS_RS_BSK24.dat +1356 -0
  263. lalapps/data/LALSimNeutronStarEOS_SK255.dat +500 -0
  264. lalapps/data/LALSimNeutronStarEOS_SK255_BSK24.dat +1066 -0
  265. lalapps/data/LALSimNeutronStarEOS_SK272.dat +500 -0
  266. lalapps/data/LALSimNeutronStarEOS_SKA.dat +500 -0
  267. lalapps/data/LALSimNeutronStarEOS_SKA_BSK24.dat +1433 -0
  268. lalapps/data/LALSimNeutronStarEOS_SKB.dat +500 -0
  269. lalapps/data/LALSimNeutronStarEOS_SKB_BSK24.dat +1373 -0
  270. lalapps/data/LALSimNeutronStarEOS_SKI2.dat +500 -0
  271. lalapps/data/LALSimNeutronStarEOS_SKI2_BSK24.dat +1348 -0
  272. lalapps/data/LALSimNeutronStarEOS_SKI3.dat +500 -0
  273. lalapps/data/LALSimNeutronStarEOS_SKI3_BSK24.dat +1355 -0
  274. lalapps/data/LALSimNeutronStarEOS_SKI4.dat +497 -0
  275. lalapps/data/LALSimNeutronStarEOS_SKI4_BSK24.dat +1348 -0
  276. lalapps/data/LALSimNeutronStarEOS_SKI5.dat +500 -0
  277. lalapps/data/LALSimNeutronStarEOS_SKI6.dat +500 -0
  278. lalapps/data/LALSimNeutronStarEOS_SKI6_BSK24.dat +1358 -0
  279. lalapps/data/LALSimNeutronStarEOS_SKMP.dat +498 -0
  280. lalapps/data/LALSimNeutronStarEOS_SKOP.dat +500 -0
  281. lalapps/data/LALSimNeutronStarEOS_SKOP_BSK24.dat +1373 -0
  282. lalapps/data/LALSimNeutronStarEOS_SLY.dat +99 -0
  283. lalapps/data/LALSimNeutronStarEOS_SLY2.dat +500 -0
  284. lalapps/data/LALSimNeutronStarEOS_SLY230A.dat +500 -0
  285. lalapps/data/LALSimNeutronStarEOS_SLY230A_BSK24.dat +1116 -0
  286. lalapps/data/LALSimNeutronStarEOS_SLY2_BSK24.dat +1106 -0
  287. lalapps/data/LALSimNeutronStarEOS_SLY4.dat +100 -0
  288. lalapps/data/LALSimNeutronStarEOS_SLY9.dat +498 -0
  289. lalapps/data/LALSimNeutronStarEOS_SLY9_BSK24.dat +1083 -0
  290. lalapps/data/LALSimNeutronStarEOS_SQM1.dat +176 -0
  291. lalapps/data/LALSimNeutronStarEOS_SQM2.dat +180 -0
  292. lalapps/data/LALSimNeutronStarEOS_SQM3.dat +176 -0
  293. lalapps/data/LALSimNeutronStarEOS_WFF1.dat +109 -0
  294. lalapps/data/LALSimNeutronStarEOS_WFF2.dat +109 -0
  295. lalapps/data/LALSimNeutronStarEOS_WFF3.dat +107 -0
  296. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDLZ1_BSK24.dat +1227 -0
  297. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDME2_BSK24.dat +1272 -0
  298. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDMEX_BSK24.dat +1280 -0
  299. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_GM1_BSK24.dat +1288 -0
  300. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_MTVTC_BSK24.dat +1288 -0
  301. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_NL3_BSK24.dat +1230 -0
  302. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_PKDD_BSK24.dat +1288 -0
  303. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_TM1_BSK24.dat +1288 -0
  304. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_TW99_BSK24.dat +1288 -0
  305. lalapps/data/LIGO-P1200087-v18-AdV_BNS_OPTIMIZED.txt +3000 -0
  306. lalapps/data/LIGO-P1200087-v18-AdV_DESIGN.txt +3000 -0
  307. lalapps/data/LIGO-P1200087-v18-AdV_EARLY_HIGH.txt +3000 -0
  308. lalapps/data/LIGO-P1200087-v18-AdV_EARLY_LOW.txt +3000 -0
  309. lalapps/data/LIGO-P1200087-v18-AdV_LATE_HIGH.txt +3000 -0
  310. lalapps/data/LIGO-P1200087-v18-AdV_LATE_LOW.txt +3000 -0
  311. lalapps/data/LIGO-P1200087-v18-AdV_MID_HIGH.txt +3000 -0
  312. lalapps/data/LIGO-P1200087-v18-AdV_MID_LOW.txt +3000 -0
  313. lalapps/data/LIGO-P1200087-v18-aLIGO_BNS_OPTIMIZED.txt +3000 -0
  314. lalapps/data/LIGO-P1200087-v18-aLIGO_DESIGN.txt +3000 -0
  315. lalapps/data/LIGO-P1200087-v18-aLIGO_EARLY_HIGH.txt +3000 -0
  316. lalapps/data/LIGO-P1200087-v18-aLIGO_EARLY_LOW.txt +3000 -0
  317. lalapps/data/LIGO-P1200087-v18-aLIGO_LATE_HIGH.txt +3000 -0
  318. lalapps/data/LIGO-P1200087-v18-aLIGO_LATE_LOW.txt +3000 -0
  319. lalapps/data/LIGO-P1200087-v18-aLIGO_MID_HIGH.txt +3000 -0
  320. lalapps/data/LIGO-P1200087-v18-aLIGO_MID_LOW.txt +3000 -0
  321. lalapps/data/LIGO-P1600143-v18-CE.txt +3000 -0
  322. lalapps/data/LIGO-P1600143-v18-CE_Pessimistic.txt +3000 -0
  323. lalapps/data/LIGO-P1600143-v18-CE_Wideband.txt +3000 -0
  324. lalapps/data/LIGO-P1600143-v18-ET_D.txt +3000 -0
  325. lalapps/data/LIGO-T0900288-v3-BHBH_20deg.txt +3000 -0
  326. lalapps/data/LIGO-T0900288-v3-High_Freq.txt +3000 -0
  327. lalapps/data/LIGO-T0900288-v3-NO_SRM.txt +3000 -0
  328. lalapps/data/LIGO-T0900288-v3-NSNS_Opt.txt +3000 -0
  329. lalapps/data/LIGO-T0900288-v3-ZERO_DET_high_P.txt +3000 -0
  330. lalapps/data/LIGO-T0900288-v3-ZERO_DET_low_P.txt +3000 -0
  331. lalapps/data/LIGO-T1600593-v1-KAGRA_Design.txt +4000 -0
  332. lalapps/data/LIGO-T1600593-v1-KAGRA_Early.txt +4000 -0
  333. lalapps/data/LIGO-T1600593-v1-KAGRA_Late.txt +4000 -0
  334. lalapps/data/LIGO-T1600593-v1-KAGRA_Mid.txt +4000 -0
  335. lalapps/data/LIGO-T1600593-v1-KAGRA_Opening.txt +4000 -0
  336. lalapps/data/LIGO-T1800042-v5-aLIGO_APLUS.txt +3000 -0
  337. lalapps/data/LIGO-T1800044-v5-aLIGO_DESIGN.txt +3000 -0
  338. lalapps/data/LIGO-T1800545-v1-AdV_O3low.txt +3000 -0
  339. lalapps/data/LIGO-T1800545-v1-AdV_O4.txt +3000 -0
  340. lalapps/data/LIGO-T1800545-v1-AdV_O4intermediate.txt +3000 -0
  341. lalapps/data/LIGO-T1800545-v1-KAGRA_128Mpc.txt +1000 -0
  342. lalapps/data/LIGO-T1800545-v1-KAGRA_25Mpc.txt +1000 -0
  343. lalapps/data/LIGO-T1800545-v1-KAGRA_80Mpc.txt +1000 -0
  344. lalapps/data/LIGO-T1800545-v1-aLIGO_140Mpc.txt +1000 -0
  345. lalapps/data/LIGO-T1800545-v1-aLIGO_175Mpc.txt +2792 -0
  346. lalapps/data/LIGO-T1800545-v1-aLIGO_O3low.txt +2792 -0
  347. lalapps/data/bimodalMeans.csv +3 -0
  348. lalapps/data/config_tiger_example.ini +150 -0
  349. lalapps/data/fiducialBBH.xml +67 -0
  350. lalapps/data/fiducialBNS.xml +67 -0
  351. lalapps/data/inspsrcs100Mpc.errors +38735 -0
  352. lalapps/data/lalinference_pipe_example.ini +573 -0
  353. lalapps/data/lib_pipe_example.ini +303 -0
  354. lalapps/data/power_pipe.ini +129 -0
  355. lalapps/data/unimodalMeans.csv +2 -0
  356. lalapps/git_version.py +64 -0
  357. lalburst/SimBurstUtils.py +324 -0
  358. lalburst/SnglBurstUtils.py +367 -0
  359. lalburst/__init__.py +7 -0
  360. lalburst/_lalburst.cpython-312-x86_64-linux-gnu.so +0 -0
  361. lalburst/_lalburst_swig.py +16 -0
  362. lalburst/binjfind.py +824 -0
  363. lalburst/bucluster.py +409 -0
  364. lalburst/burca.py +315 -0
  365. lalburst/burca_tailor.py +349 -0
  366. lalburst/cafe.py +579 -0
  367. lalburst/calc_likelihood.py +145 -0
  368. lalburst/cs_gamma.cpython-312-x86_64-linux-gnu.so +0 -0
  369. lalburst/date.py +118 -0
  370. lalburst/git_version.py +64 -0
  371. lalburst/offsetvector.py +278 -0
  372. lalburst/packing.py +170 -0
  373. lalburst/power.py +1457 -0
  374. lalburst/snglcluster.py +136 -0
  375. lalburst/snglcoinc.py +2637 -0
  376. lalburst/stringutils.py +607 -0
  377. lalburst/timeslides.py +236 -0
  378. lalframe/__init__.py +7 -0
  379. lalframe/_lalframe.cpython-312-x86_64-linux-gnu.so +0 -0
  380. lalframe/_lalframe_swig.py +14 -0
  381. lalframe/frread.py +324 -0
  382. lalframe/git_version.py +64 -0
  383. lalframe/utils/__init__.py +25 -0
  384. lalframe/utils/frtools.py +61 -0
  385. lalinference/__init__.py +7 -0
  386. lalinference/_bayespputils.cpython-312-x86_64-linux-gnu.so +0 -0
  387. lalinference/_lalinference.cpython-312-x86_64-linux-gnu.so +0 -0
  388. lalinference/_lalinference_swig.py +19 -0
  389. lalinference/bayespputils.py +7479 -0
  390. lalinference/bayestar/__init__.py +2 -0
  391. lalinference/bayestar/deprecation.py +72 -0
  392. lalinference/git_version.py +64 -0
  393. lalinference/imrtgr/__init__.py +0 -0
  394. lalinference/imrtgr/imrtgrutils.py +168 -0
  395. lalinference/imrtgr/nrutils.py +1366 -0
  396. lalinference/imrtgr/pneqns.py +250 -0
  397. lalinference/io/__init__.py +31 -0
  398. lalinference/io/hdf5.py +365 -0
  399. lalinference/lalinference_pipe_utils.py +3617 -0
  400. lalinference/nest2pos.py +151 -0
  401. lalinference/plot/__init__.py +34 -0
  402. lalinference/plot/spindisk.py +104 -0
  403. lalinference/tiger/__init__.py +0 -0
  404. lalinference/tiger/make_injtimes.py +634 -0
  405. lalinference/tiger/omegascans_dag.py +691 -0
  406. lalinference/tiger/postproc.py +1338 -0
  407. lalinference/wrapper.py +231 -0
  408. lalinspiral/__init__.py +7 -0
  409. lalinspiral/_lalinspiral.cpython-312-x86_64-linux-gnu.so +0 -0
  410. lalinspiral/_lalinspiral_swig.py +18 -0
  411. lalinspiral/_thinca.cpython-312-x86_64-linux-gnu.so +0 -0
  412. lalinspiral/git_version.py +64 -0
  413. lalinspiral/inspinjfind.py +485 -0
  414. lalinspiral/thinca.py +509 -0
  415. lalmetaio/__init__.py +7 -0
  416. lalmetaio/_lalmetaio.cpython-312-x86_64-linux-gnu.so +0 -0
  417. lalmetaio/_lalmetaio_swig.py +14 -0
  418. lalmetaio/git_version.py +64 -0
  419. lalpulsar/NstarTools.py +259 -0
  420. lalpulsar/PulsarParametersWrapper.py +938 -0
  421. lalpulsar/__init__.py +7 -0
  422. lalpulsar/_lalpulsar.cpython-312-x86_64-linux-gnu.so +0 -0
  423. lalpulsar/_lalpulsar_swig.py +17 -0
  424. lalpulsar/git_version.py +64 -0
  425. lalpulsar/knope_utils.py +6497 -0
  426. lalpulsar/lineFileParser.py +264 -0
  427. lalpulsar/metric_utils.py +78 -0
  428. lalpulsar/piecewise_model/__init__.py +7 -0
  429. lalpulsar/piecewise_model/basis_functions.py +156 -0
  430. lalpulsar/piecewise_model/class_definitions.py +323 -0
  431. lalpulsar/piecewise_model/errors.py +37 -0
  432. lalpulsar/piecewise_model/estimating_knots.py +833 -0
  433. lalpulsar/piecewise_model/gte_and_other_methods.py +189 -0
  434. lalpulsar/piecewise_model/mols_for_gte.py +269 -0
  435. lalpulsar/piecewise_model/pw_fstat.py +813 -0
  436. lalpulsar/piecewise_model/pw_model_simulations.py +156 -0
  437. lalpulsar/piecewise_model/sampling_methods.py +186 -0
  438. lalpulsar/piecewise_model/semicoherent_metric_methods.py +375 -0
  439. lalpulsar/piecewise_model/tbank_estimates.py +293 -0
  440. lalpulsar/public_sft_directory.py +82 -0
  441. lalpulsar/pulsarhtmlutils.py +1395 -0
  442. lalpulsar/pulsarpputils.py +3638 -0
  443. lalpulsar/simulateCW.py +602 -0
  444. lalpulsar/simulateHeterodynedCW.py +591 -0
  445. lalsimulation/__init__.py +7 -0
  446. lalsimulation/_lalsimulation.cpython-312-x86_64-linux-gnu.so +0 -0
  447. lalsimulation/_lalsimulation_swig.py +14 -0
  448. lalsimulation/git_version.py +64 -0
  449. lalsimulation/gwsignal/__init__.py +9 -0
  450. lalsimulation/gwsignal/core/__init__.py +2 -0
  451. lalsimulation/gwsignal/core/conditioning_subroutines.py +196 -0
  452. lalsimulation/gwsignal/core/errors.py +136 -0
  453. lalsimulation/gwsignal/core/gw.py +206 -0
  454. lalsimulation/gwsignal/core/parameter_conventions.py +122 -0
  455. lalsimulation/gwsignal/core/utils.py +329 -0
  456. lalsimulation/gwsignal/core/waveform.py +725 -0
  457. lalsimulation/gwsignal/core/waveform_conditioning.py +455 -0
  458. lalsimulation/gwsignal/models/__init__.py +29 -0
  459. lalsimulation/gwsignal/models/pyseobnr_model.py +452 -0
  460. lalsimulation/nrfits/NRSur3dq8Remnant.py +92 -0
  461. lalsimulation/nrfits/NRSur7dq4Remnant.py +469 -0
  462. lalsimulation/nrfits/__init__.py +1 -0
  463. lalsimulation/nrfits/eval_fits.py +364 -0
  464. lalsimulation/nrfits/nrfits.py +78 -0
  465. lalsimulation/nrfits/pn_spin_evolution_wrapper.py +92 -0
  466. lalsimulation/nrfits/quaternion_utils.py +74 -0
  467. lalsimulation/tilts_at_infinity/__init__.py +2 -0
  468. lalsimulation/tilts_at_infinity/calc_tilts_prec_avg_regularized.py +1424 -0
  469. lalsimulation/tilts_at_infinity/hybrid_spin_evolution.py +461 -0
  470. lalsimulation/tilts_at_infinity/tilts_at_infinity_utils.py +167 -0
  471. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesBurstPPAnalysis +305 -0
  472. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesBurstPostProc +1364 -0
  473. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesCombinePTMCMCh5s +100 -0
  474. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesCombinePosteriors +235 -0
  475. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesCompPos +1121 -0
  476. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesDIEvidence +68 -0
  477. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesGraceDBinfo +182 -0
  478. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesMCMC2pos +314 -0
  479. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPPAnalysis +322 -0
  480. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPlotSpinDisk +42 -0
  481. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPosToSimBurst +227 -0
  482. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPosToSimInspiral +307 -0
  483. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPostProc +1345 -0
  484. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesThermoInt +107 -0
  485. lalsuite-7.26.2.dev20251206.data/scripts/imrtgr_imr_consistency_test +796 -0
  486. lalsuite-7.26.2.dev20251206.data/scripts/lal_cache +6 -0
  487. lalsuite-7.26.2.dev20251206.data/scripts/lal_fftw_wisdom +6 -0
  488. lalsuite-7.26.2.dev20251206.data/scripts/lal_fftwf_wisdom +6 -0
  489. lalsuite-7.26.2.dev20251206.data/scripts/lal_path2cache +148 -0
  490. lalsuite-7.26.2.dev20251206.data/scripts/lal_searchsum2cache +172 -0
  491. lalsuite-7.26.2.dev20251206.data/scripts/lal_simd_detect +6 -0
  492. lalsuite-7.26.2.dev20251206.data/scripts/lal_tconvert +6 -0
  493. lalsuite-7.26.2.dev20251206.data/scripts/lal_version +6 -0
  494. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeAntennaPattern +6 -0
  495. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeFstatBenchmark +6 -0
  496. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeFstatLatticeCount +6 -0
  497. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeFstatMCUpperLimit +6 -0
  498. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeFstatistic_v2 +6 -0
  499. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputePSD +6 -0
  500. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_CopySFTs +6 -0
  501. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_DistanceVsMass +6 -0
  502. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_DriveHoughMulti +6 -0
  503. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_FstatMetric_v2 +6 -0
  504. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_HierarchSearchGCT +6 -0
  505. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_HierarchicalSearch +6 -0
  506. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_MakeSFTDAG +6 -0
  507. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_MakeSFTs +6 -0
  508. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_Makefakedata_v4 +6 -0
  509. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_Makefakedata_v5 +6 -0
  510. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_PredictFstat +6 -0
  511. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_PrintDetectorState +6 -0
  512. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_SFTclean +6 -0
  513. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_SFTvalidate +6 -0
  514. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_StringAddFrame +6 -0
  515. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_StringSearch +6 -0
  516. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_Weave +6 -0
  517. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_WeaveCompare +6 -0
  518. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_WeaveConcat +6 -0
  519. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_WeaveSetup +6 -0
  520. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_WriteSFTsfromSFDBs +6 -0
  521. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_animate +6 -0
  522. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_binj +6 -0
  523. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_blindinj +6 -0
  524. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_cache +6 -0
  525. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_cafe +99 -0
  526. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_calfacs +6 -0
  527. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_cbc_stochasticbank +6 -0
  528. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_chirplen +6 -0
  529. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_coh_PTF_inspiral +6 -0
  530. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_coinj +6 -0
  531. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_combine_crosscorr_toplists +6 -0
  532. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_compareFstats +6 -0
  533. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_compareSFTs +6 -0
  534. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_cosmicstring_pipe +525 -0
  535. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_create_time_correction_ephemeris +6 -0
  536. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_dumpSFT +6 -0
  537. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_effdist +6 -0
  538. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_exc_resp +6 -0
  539. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fftw_wisdom +6 -0
  540. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fftwf_wisdom +6 -0
  541. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fits_header_getval +6 -0
  542. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fits_header_list +6 -0
  543. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fits_overview +6 -0
  544. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fits_table_list +6 -0
  545. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fr_ninja +6 -0
  546. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frextr +6 -0
  547. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frinfo +6 -0
  548. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frjoin +6 -0
  549. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frread +6 -0
  550. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frview +6 -0
  551. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_gwf2xml +6 -0
  552. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_heterodyne_pulsar +6 -0
  553. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_inspawgfile +6 -0
  554. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_inspfrinj +6 -0
  555. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_inspinj +6 -0
  556. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_inspiralDistance +6 -0
  557. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_knope +6 -0
  558. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_knope_automation_script +6 -0
  559. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_knope_collate_results +6 -0
  560. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_knope_result_page +6 -0
  561. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_makeblindinj +6 -0
  562. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_makeblindinj_himass +6 -0
  563. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ninja +6 -0
  564. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_path2cache +6 -0
  565. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_power +6 -0
  566. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_power_likelihood_pipe +219 -0
  567. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_power_pipe +417 -0
  568. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_pulsar_crosscorr_v2 +6 -0
  569. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_pulsar_frequency_evolution +6 -0
  570. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_pulsar_parameter_estimation_nested +6 -0
  571. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_random_bank +6 -0
  572. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_randombank +6 -0
  573. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_run_pulsar_crosscorr_v2 +6 -0
  574. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_searchsum2cache +6 -0
  575. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_spec_avg +6 -0
  576. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_spec_avg_long +6 -0
  577. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_spec_coherence +6 -0
  578. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_spininj +6 -0
  579. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_splitSFTs +6 -0
  580. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_splitbank +6 -0
  581. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ssbtodetector +6 -0
  582. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_apply_vetoes +171 -0
  583. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_calc_likelihood +172 -0
  584. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_contour_plotter +141 -0
  585. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_contour_plotter_largeloops +133 -0
  586. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_cs_gamma +110 -0
  587. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_cs_gamma_largeloops +119 -0
  588. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_final +1064 -0
  589. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_meas_likelihood +264 -0
  590. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_plot_binj +543 -0
  591. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_plot_likelihood +380 -0
  592. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_synthesizeBstatMC +6 -0
  593. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_synthesizeLVStats +6 -0
  594. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_synthesizeTransientStats +6 -0
  595. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_tconvert +6 -0
  596. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_tmpltbank +6 -0
  597. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_version +6 -0
  598. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_xtefitstoframe +6 -0
  599. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_cluster +156 -0
  600. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_coinc +224 -0
  601. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_cut +425 -0
  602. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_gen_timeslides +254 -0
  603. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_inj_pic +254 -0
  604. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_injfind +170 -0
  605. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_plot_tisi +165 -0
  606. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_calc_likelihood +182 -0
  607. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_final +1369 -0
  608. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_meas_likelihood +206 -0
  609. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_plot_binj +934 -0
  610. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_plot_binjtf +302 -0
  611. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_version +6 -0
  612. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-cat +6 -0
  613. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-cksum +6 -0
  614. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-cut +6 -0
  615. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-dump +6 -0
  616. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-fmt +6 -0
  617. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-paste +6 -0
  618. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-print +6 -0
  619. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-split +6 -0
  620. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-stat +6 -0
  621. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-stream +6 -0
  622. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-vis +6 -0
  623. lalsuite-7.26.2.dev20251206.data/scripts/lalframe_version +6 -0
  624. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_bench +6 -0
  625. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_burst +6 -0
  626. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_burst_pp_pipe +220 -0
  627. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_coherence_test +139 -0
  628. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_compute_roq_weights +404 -0
  629. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_cpnest +58 -0
  630. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_datadump +6 -0
  631. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_evolve_spins_and_append_samples +202 -0
  632. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_injectedlike +6 -0
  633. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_merge_posteriors +57 -0
  634. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_mpi_wrapper +6 -0
  635. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_multi_pipe +144 -0
  636. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_nest +6 -0
  637. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_nest2pos +286 -0
  638. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_pipe +512 -0
  639. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_pp_pipe +229 -0
  640. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_review_test +362 -0
  641. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_version +6 -0
  642. lalsuite-7.26.2.dev20251206.data/scripts/lalinspiral_injfind +206 -0
  643. lalsuite-7.26.2.dev20251206.data/scripts/lalinspiral_thinca +240 -0
  644. lalsuite-7.26.2.dev20251206.data/scripts/lalinspiral_version +6 -0
  645. lalsuite-7.26.2.dev20251206.data/scripts/lalmetaio_version +6 -0
  646. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeAntennaPattern +6 -0
  647. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeFstatBenchmark +6 -0
  648. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeFstatLatticeCount +6 -0
  649. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeFstatMCUpperLimit +6 -0
  650. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeFstatistic_v2 +6 -0
  651. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputePSD +6 -0
  652. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_CopyPublicSFTs +216 -0
  653. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_DriveHoughMulti +6 -0
  654. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_FstatMetric_v2 +6 -0
  655. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_HierarchSearchGCT +6 -0
  656. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_HierarchicalSearch +6 -0
  657. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_MakeSFTDAG +1142 -0
  658. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_MakeSFTs +6 -0
  659. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_Makefakedata_v4 +6 -0
  660. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_Makefakedata_v5 +6 -0
  661. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_MoveSFTs +208 -0
  662. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_PiecewiseSearch +963 -0
  663. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_PredictFstat +6 -0
  664. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_PrintDetectorState +6 -0
  665. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_SFTclean +6 -0
  666. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_SFTvalidate +6 -0
  667. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_Weave +6 -0
  668. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_WeaveCompare +6 -0
  669. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_WeaveConcat +6 -0
  670. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_WeaveSetup +6 -0
  671. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_WriteSFTsfromSFDBs +6 -0
  672. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_compareFstats +6 -0
  673. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_compareSFTs +6 -0
  674. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_create_time_correction_ephemeris +6 -0
  675. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_crosscorr_v2 +6 -0
  676. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_dumpSFT +6 -0
  677. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_fits_header_getval +6 -0
  678. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_fits_header_list +6 -0
  679. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_fits_overview +6 -0
  680. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_fits_table_list +6 -0
  681. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_frequency_evolution +6 -0
  682. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_heterodyne +6 -0
  683. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_knope +145 -0
  684. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_knope_automation_script +731 -0
  685. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_knope_collate_results +675 -0
  686. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_knope_result_page +2977 -0
  687. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_parameter_estimation_nested +6 -0
  688. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_spec_avg +6 -0
  689. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_spec_avg_long +6 -0
  690. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_spec_coherence +6 -0
  691. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_splitSFTs +6 -0
  692. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ssbtodetector +6 -0
  693. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_synthesizeBstatMC +6 -0
  694. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_synthesizeLVStats +6 -0
  695. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_synthesizeTransientStats +6 -0
  696. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_version +6 -0
  697. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-bh-qnmode +6 -0
  698. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-bh-ringdown +6 -0
  699. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-bh-sphwf +6 -0
  700. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-burst +6 -0
  701. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-detector-noise +6 -0
  702. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-detector-strain +6 -0
  703. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-inject +6 -0
  704. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-inspiral +6 -0
  705. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-ns-eos-table +6 -0
  706. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-ns-mass-radius +6 -0
  707. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-ns-params +6 -0
  708. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-sgwb +6 -0
  709. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-unicorn +6 -0
  710. lalsuite-7.26.2.dev20251206.data/scripts/lalsimulation_version +6 -0
  711. lalsuite-7.26.2.dev20251206.dist-info/METADATA +90 -0
  712. lalsuite-7.26.2.dev20251206.dist-info/RECORD +733 -0
  713. lalsuite-7.26.2.dev20251206.dist-info/WHEEL +5 -0
  714. lalsuite-7.26.2.dev20251206.dist-info/licenses/COPYING +339 -0
  715. lalsuite-7.26.2.dev20251206.dist-info/top_level.txt +9 -0
  716. lalsuite.libs/libcfitsio-729ee1b7.so.10.0.0 +0 -0
  717. lalsuite.libs/libfftw3-6b983104.so.3.5.5 +0 -0
  718. lalsuite.libs/libfftw3f-b4465a35.so.3.5.5 +0 -0
  719. lalsuite.libs/libframel-8cf74372.so.8.48.4 +0 -0
  720. lalsuite.libs/libgsl-e30be130.so.28.0.0 +0 -0
  721. lalsuite.libs/libgslcblas-460f042a.so.0.0.0 +0 -0
  722. lalsuite.libs/libhdf5-d02936e2.so.310.5.1 +0 -0
  723. lalsuite.libs/libhdf5_hl-0e40b553.so.310.0.6 +0 -0
  724. lalsuite.libs/liblal-d17109e0.so.20.5.0 +0 -0
  725. lalsuite.libs/liblalburst-d9edfb9d.so.8.0.0 +0 -0
  726. lalsuite.libs/liblalframe-d677044f.so.14.0.3 +0 -0
  727. lalsuite.libs/liblalinference-a50f0a8e.so.23.1.7 +0 -0
  728. lalsuite.libs/liblalinspiral-22638799.so.18.0.2 +0 -0
  729. lalsuite.libs/liblalmetaio-42c5bc5c.so.11.0.1 +0 -0
  730. lalsuite.libs/liblalpulsar-95c25f8c.so.30.1.1 +0 -0
  731. lalsuite.libs/liblalsimulation-bf7c4c31.so.37.2.0 +0 -0
  732. lalsuite.libs/liblalsupport-282d4115.so.14.4.0 +0 -0
  733. lalsuite.libs/libmetaio-abda72ec.so.1.1.0 +0 -0
@@ -0,0 +1,796 @@
1
+ #!python
2
+ """
3
+ Perform the consistency check between the inspiral and ringdown estimates of the mass and spin of the final
4
+ black hole in a binary black hole merger.
5
+
6
+ P. Ajith, Abhirup Ghosh, Archisman Ghosh, 2015-09-18
7
+
8
+ $Id:$
9
+ """
10
+
11
+ import matplotlib as mpl
12
+ mpl.use('Agg')
13
+ import matplotlib.pyplot as plt
14
+ import numpy as np
15
+ import scipy
16
+ from scipy import interpolate
17
+ from optparse import OptionParser
18
+ import time, os
19
+ import lalinference.imrtgr.imrtgrutils as tgr
20
+ import pickle, gzip
21
+ import sys
22
+ from lalinference import git_version
23
+
24
+ from scipy.stats import gaussian_kde #rahul: for KDE implementation
25
+
26
+ from matplotlib import rc
27
+ import matplotlib
28
+ matplotlib.rc('text.latex', preamble=r'\usepackage{txfonts}')
29
+
30
+ rc('text', usetex=True)
31
+ rc('font', family='serif')
32
+ rc('font', serif='times')
33
+ rc('mathtext', default='sf')
34
+ rc("lines", markeredgewidth=1)
35
+ rc("lines", linewidth=2)
36
+ rc('axes', labelsize=10)
37
+ rc("axes", linewidth=0.5)
38
+ rc('xtick', labelsize=8)
39
+ rc('ytick', labelsize=8)
40
+ rc('legend', fontsize=10)
41
+ rc('xtick.major', pad=6)
42
+ rc('ytick.major', pad=6)
43
+ rc('xtick.minor', size=5)
44
+ rc('ytick.minor', size=5)
45
+
46
+ def set_tick_sizes(ax, major, minor):
47
+ for l in ax.get_xticklines() + ax.get_yticklines():
48
+ l.set_markersize(major)
49
+ for tick in ax.xaxis.get_minor_ticks() + ax.yaxis.get_minor_ticks():
50
+ tick.tick1line.set_markersize(minor)
51
+ tick.tick2line.set_markersize(minor)
52
+ ax.xaxis.LABELPAD=10.
53
+ ax.xaxis.OFFSETTEXTPAD=10.
54
+
55
+ # Module for confidence calculations
56
+ class confidence(object):
57
+ def __init__(self, counts):
58
+ # Sort in descending order in frequency
59
+ self.counts_sorted = np.sort(counts.flatten())[::-1]
60
+ # Get a normalized cumulative distribution from the mode
61
+ self.norm_cumsum_counts_sorted = np.cumsum(self.counts_sorted) / np.sum(counts)
62
+ # Set interpolations between heights, bins and levels
63
+ self._set_interp()
64
+ def _set_interp(self):
65
+ self._length = len(self.counts_sorted)
66
+ # height from index
67
+ self._height_from_idx = interpolate.interp1d(np.arange(self._length), self.counts_sorted, bounds_error=False, fill_value=0.)
68
+ # index from height
69
+ self._idx_from_height = interpolate.interp1d(self.counts_sorted[::-1], np.arange(self._length)[::-1], bounds_error=False, fill_value=self._length)
70
+ # level from index
71
+ self._level_from_idx = interpolate.interp1d(np.arange(self._length), self.norm_cumsum_counts_sorted, bounds_error=False, fill_value=1.)
72
+ # index from level
73
+ self._idx_from_level = interpolate.interp1d(self.norm_cumsum_counts_sorted, np.arange(self._length), bounds_error=False, fill_value=self._length)
74
+ def level_from_height(self, height):
75
+ return self._level_from_idx(self._idx_from_height(height))
76
+ def height_from_level(self, level):
77
+ return self._height_from_idx(self._idx_from_level(level))
78
+
79
+ ######################################################################################
80
+ ################################# MAIN PROGRAM #######################################
81
+ ######################################################################################
82
+
83
+ if __name__ == '__main__':
84
+
85
+ start_time = time.time()
86
+
87
+ # read inputs from command line
88
+ parser = OptionParser()
89
+ parser.add_option("-i", "--insp-post", dest="insp_post", help="file containing the posterior samples from the PE inspiral run")
90
+ parser.add_option("-r", "--ring-post", dest="ring_post", help="file containing the posterior samples from the PE ringdown run")
91
+ parser.add_option("-m", "--imr-post", dest="imr_post", help="file containing the posterior samples from the full PE IMR run")
92
+ parser.add_option("-f", "--fit-formula", dest="fit_formula", help="fitting formula to be used for the calculation of final mass/spin [options: 'nospin_Pan2011', 'nonprecspin_Healy2014', 'bbh_average_fits_precessing'", default="nonprecspin_Healy2014")
93
+ parser.add_option("-p", "--mf-chif-prior", dest="prior_Mfchif_file", help="pickle file containing the interpolation object of the prior in (Mf, chif) used in the PE runs", default=None)
94
+ parser.add_option("-o", "--out-dir", dest="out_dir", help="output directory")
95
+ parser.add_option("--insp-fhigh", dest="insp_fhigh", help="Upper cutoff freq for the inspiral analysis")
96
+ parser.add_option("--ring-flow", dest="ring_flow", help="Lower cutoff freq for the ringdown analysis")
97
+ parser.add_option("--m1-inj", dest="m1_inj", help="injected value of component mass m1 (if this is an injection)")
98
+ parser.add_option("--m2-inj", dest="m2_inj", help="injected value of component mass m2 (if this is an injection)")
99
+ parser.add_option("--chi1-inj", dest="chi1_inj", help="injected value of spin magnitude of mass m1 (if this is an injection)")
100
+ parser.add_option("--chi2-inj", dest="chi2_inj", help="injected value of spin magnitude of mass m2 (if this is an injection)")
101
+ parser.add_option("--chi1z-inj", dest="chi1z_inj", help="injected value of z-component of spin of mass m1 (if this is an injection)")
102
+ parser.add_option("--chi2z-inj", dest="chi2z_inj", help="injected value of z-component of spin of mass m2 (if this is an injection)")
103
+ parser.add_option("--phi12-inj", dest="phi12_inj", help="injected value of the azimuth angle of (hats2 - hats1) from vecL (if this is an injection)", default=0.)
104
+ parser.add_option("-w", "--waveform", dest="waveform", help="waveform used for recovery")
105
+ parser.add_option("-d", "--debug-plots", dest="debug_plots", help="debug plots")
106
+ parser.add_option("--N_bins", type="int", dest="N_bins", default=201, help="number of bins (default=201)")
107
+ parser.add_option("--dMfbyMf_lim", type="float", dest="dMfbyMf_lim", default=1., help="absolute value of limit for range of dMfbyMf_vec, defined as [-dMfbyMf_lim, +dMfbyMf_lim]")
108
+ parser.add_option("--dchifbychif_lim", type="float", dest="dchifbychif_lim", default=1., help="absolute value of limit for range of dchifbychif_vec, defined as [-dchifbychif_lim, +dchifbychif_lim]")
109
+ parser.add_option("--use_KDE", type="int", dest="MfafKDE", help="use KDE or not after getting samples of Mf, af")
110
+ parser.add_option("-s", "--pepostproc", dest="pepostproc", default= "cbcbayespostproc", help="package used to generate summary webpage to visualize the output [options: 'cbcbayespostproc', 'pesummary']")
111
+
112
+ (options, args) = parser.parse_args()
113
+ MfafKDE = options.MfafKDE
114
+ insp_post = options.insp_post
115
+ ring_post = options.ring_post
116
+ imr_post = options.imr_post
117
+ prior_Mfchif_file = options.prior_Mfchif_file
118
+ out_dir = options.out_dir
119
+ fit_formula = options.fit_formula
120
+ debug_plots = options.debug_plots
121
+ pepostproc = options.pepostproc
122
+ if options.insp_fhigh is not None:
123
+ insp_fhigh = float(options.insp_fhigh)
124
+ else:
125
+ print('Inspiral cutoff freq not provided. To have it displayed on the results page, please pass command line option --insp-fhigh.')
126
+ insp_fhigh = np.nan
127
+ if options.ring_flow is not None:
128
+ ring_flow = float(options.ring_flow)
129
+ else:
130
+ print('Ringdown cutoff freq not provided. To have it displayed on the results page, please pass command line option --ring-flow.')
131
+ ring_flow = np.nan
132
+ waveform = options.waveform
133
+ if waveform is None:
134
+ print('Recovery approximant not provided. To have it displayed on the results page, please pass command line option --waveform.')
135
+
136
+ N_bins = int(options.N_bins) # Number of grid points along either axis (dMfbyMf, dchifbychif) for computation of the posteriors
137
+ dMfbyMf_lim = float(options.dMfbyMf_lim)
138
+ dchifbychif_lim = float(options.dchifbychif_lim)
139
+ lalinference_datadir = os.getenv('LALINFERENCE_DATADIR')
140
+
141
+ # create output directory and copy the script
142
+ os.system('mkdir -p %s' %out_dir)
143
+ os.system('mkdir -p %s/data' %out_dir)
144
+ os.system('mkdir -p %s/img' %out_dir)
145
+ os.system('cp %s %s' %(__file__, out_dir))
146
+ os.system('cp %s %s/'%(os.path.join(lalinference_datadir, 'imrtgr_webpage_templates/*.*'), out_dir))
147
+
148
+ # creating file to save the run command
149
+ run_command = open('%s/command.txt'%(out_dir),'w')
150
+ for arg in sys.argv:
151
+ run_command.write('%s\n' %arg)
152
+ run_command.write("\n")
153
+ run_command.write("\n")
154
+ run_command.write("%s"%git_version.verbose_msg)
155
+ run_command.close()
156
+
157
+ # creating soft links for PE results
158
+ if pepostproc == 'cbcbayespostproc':
159
+ insp_post_link = insp_post
160
+ ring_post_link = ring_post
161
+ imr_post_link = imr_post
162
+ # posterior samples data file generated by pesummary is stored in
163
+ # <path to summary directory>/samples/<posterior_samples>.dat
164
+ # need to go to the parent directory before creating soft link
165
+ elif pepostproc == 'pesummary':
166
+ insp_post_link = os.path.realpath(os.path.dirname(insp_post))
167
+ ring_post_link = os.path.realpath(os.path.dirname(ring_post))
168
+ imr_post_link = os.path.realpath(os.path.dirname(imr_post))
169
+ os.system("sed -i 's/posplots/home/g' %s/result.html"%out_dir)
170
+ else:
171
+ raise ValueError('Package to generate summary webpage unknown !')
172
+
173
+ insp_posplots = os.path.realpath(os.path.dirname(insp_post_link))
174
+ ring_posplots = os.path.realpath(os.path.dirname(ring_post_link))
175
+ imr_posplots = os.path.realpath(os.path.dirname(imr_post_link))
176
+
177
+ insp_target = os.path.join(out_dir, 'pe_insp')
178
+ ring_target = os.path.join(out_dir, 'pe_ring')
179
+ imr_target = os.path.join(out_dir, 'pe_imr')
180
+
181
+ if insp_posplots != insp_target:
182
+ if os.path.islink(insp_target):
183
+ print('... removing existing link %s'%(insp_target))
184
+ os.system('rm %s'%(insp_target))
185
+ print('... linking %s to %s' %(insp_posplots, insp_target))
186
+ os.system('ln -s %s %s' %(insp_posplots, insp_target))
187
+ if ring_posplots != ring_target:
188
+ if os.path.islink(ring_target):
189
+ print('... removing existing link %s'%(ring_target))
190
+ os.system('rm %s'%(ring_target))
191
+ print('... linking %s to %s' %(ring_posplots, ring_target))
192
+ os.system('ln -s %s %s' %(ring_posplots, ring_target))
193
+ if imr_posplots != imr_target:
194
+ if os.path.islink(imr_target):
195
+ print('... removing existing link %s'%(imr_target))
196
+ os.system('rm %s'%(imr_target))
197
+ print('... linking %s to %s' %(imr_posplots, imr_target))
198
+ os.system('ln -s %s %s' %(imr_posplots, imr_target))
199
+
200
+ # read the injection mass parameters if this is an injection
201
+ m1_inj = options.m1_inj
202
+ m2_inj = options.m2_inj
203
+ chi1_inj = options.chi1_inj
204
+ chi2_inj = options.chi2_inj
205
+ chi1z_inj = options.chi1z_inj
206
+ chi2z_inj = options.chi2z_inj
207
+ phi12_inj = options.phi12_inj
208
+
209
+ if m1_inj == None or m2_inj == None or chi1_inj == None or chi2_inj == None or chi1z_inj == None or chi2z_inj == None or phi12_inj == None:
210
+ plot_injection_lines = False
211
+ else:
212
+ m1_inj = float(m1_inj)
213
+ m2_inj = float(m2_inj)
214
+ chi1_inj = float(chi1_inj)
215
+ chi2_inj = float(chi2_inj)
216
+ chi1z_inj = float(chi1z_inj)
217
+ chi2z_inj = float(chi2z_inj)
218
+ phi12_inj = float(phi12_inj)
219
+ plot_injection_lines = True
220
+ q_inj = m1_inj/m2_inj
221
+ eta_inj = q_inj/(1.+q_inj)**2.
222
+ Mf_inj, chif_inj = tgr.calc_final_mass_spin(m1_inj, m2_inj, chi1_inj, chi2_inj, chi1z_inj, chi2z_inj, phi12_inj, fit_formula)
223
+
224
+ ###############################################################################################
225
+ # Read the posteriors from the inspiral, ringdown and imr PE runs (after post-processing)
226
+ ###############################################################################################
227
+
228
+ # parameter names assigned according to the package used to generate summary webpage
229
+ if pepostproc == 'cbcbayespostproc':
230
+ m1_id, m2_id, a1_id, a2_id, a1z_id, a2z_id, phi12_id = 'm1', 'm2', 'a1', 'a2', 'a1z', 'a2z', 'phi12'
231
+ elif pepostproc == 'pesummary':
232
+ m1_id, m2_id, a1_id, a2_id, a1z_id, a2z_id, phi12_id = 'mass_1', 'mass_2', 'a_1', 'a_2', 'spin_1z', 'spin_2z', 'phi_12'
233
+ else:
234
+ raise ValueError('Package to generate summary webpage unknown !')
235
+
236
+ # read data from the inspiral posterior file
237
+ insp_data = np.genfromtxt(insp_post, dtype=None, names=True)
238
+
239
+ m1_i, m2_i, chi1_i, chi2_i, chi1z_i, chi2z_i = insp_data[m1_id], insp_data[m2_id], insp_data[a1_id], insp_data[a2_id], insp_data[a1z_id], insp_data[a2z_id]
240
+ # if there is phi12 in the posterior, read the values.
241
+ if phi12_id in insp_data.dtype.names:
242
+ phi12_i = insp_data[phi12_id]
243
+ else:
244
+ phi12_i = np.zeros(len(m1_i))
245
+ # compute the final mass and spin
246
+ Mf_i, chif_i = tgr.calc_final_mass_spin(m1_i, m2_i, chi1_i, chi2_i, chi1z_i, chi2z_i, phi12_i, fit_formula)
247
+
248
+ # read data from the ringdown posterior file
249
+ ring_data = np.genfromtxt(ring_post, dtype=None, names=True)
250
+
251
+ m1_r, m2_r, chi1_r, chi2_r, chi1z_r, chi2z_r = ring_data[m1_id], ring_data[m2_id], ring_data[a1_id], ring_data[a2_id], ring_data[a1z_id], ring_data[a2z_id]
252
+ # if there is phi12 in the posterior, read the values.
253
+ if phi12_id in ring_data.dtype.names:
254
+ phi12_r = ring_data[phi12_id]
255
+ else:
256
+ phi12_r = np.zeros(len(m1_r))
257
+ # compute the final mass and spin
258
+ Mf_r, chif_r = tgr.calc_final_mass_spin(m1_r, m2_r, chi1_r, chi2_r, chi1z_r, chi2z_r, phi12_r, fit_formula)
259
+
260
+ # read data from the IMR posterior file
261
+ imr_data = np.genfromtxt(imr_post, dtype=None, names=True)
262
+
263
+ m1_imr, m2_imr, chi1_imr, chi2_imr, chi1z_imr, chi2z_imr = imr_data[m1_id], imr_data[m2_id], imr_data[a1_id], imr_data[a2_id], imr_data[a1z_id], imr_data[a2z_id]
264
+ # if there is phi12 in the posterior, read the values.
265
+ if phi12_id in imr_data.dtype.names:
266
+ phi12_imr = imr_data[phi12_id]
267
+ else:
268
+ phi12_imr = np.zeros(len(m1_imr))
269
+ # compute the final mass and spin
270
+ Mf_imr, chif_imr = tgr.calc_final_mass_spin(m1_imr, m2_imr, chi1_imr, chi2_imr, chi1z_imr, chi2z_imr, phi12_imr, fit_formula)
271
+
272
+
273
+ print('... read posteriors')
274
+ ###############################################################################################
275
+
276
+ ###############################################################################################
277
+ # compute the limits of integration for computing delta_Mf and delta_chif
278
+ ###############################################################################################
279
+ Mf_lim = max(abs(np.append(np.append(Mf_i, Mf_r), Mf_imr)))
280
+ chif_lim = max(abs(np.append(np.append(chif_i, chif_r), chif_imr)))
281
+
282
+ # the integral used to compute (Delta Mf, Delta af) has limits from -infinity to +infinity. We
283
+ # are approximating this by setting the limits to (-Mf_lim to Mf_lim) and (-chif_lim to chif_lim)
284
+ # where Mf_lim and chif_lim are the max values of Mf and chif where the posteriors have nonzero
285
+ # support. The scipy.signal.correlate2d function requires arguments x_bins and y_bins that need
286
+ # to be symmetric around zero
287
+ Mf_bins = np.linspace(-Mf_lim, Mf_lim, N_bins)
288
+ chif_bins = np.linspace(-chif_lim, chif_lim, N_bins)
289
+
290
+ dMf = np.mean(np.diff(Mf_bins))
291
+ dchif = np.mean(np.diff(chif_bins))
292
+
293
+ Mf_intp = (Mf_bins[:-1] + Mf_bins[1:])/2.
294
+ chif_intp = (chif_bins[:-1] + chif_bins[1:])/2.
295
+
296
+
297
+ print('useKDE=',MfafKDE)
298
+ if MfafKDE==1:
299
+ print('replacing lal P(Mfaf) with its KDE pdf')
300
+ M_i,C_i=np.meshgrid(Mf_intp,chif_intp)
301
+
302
+ joint_data=np.vstack([Mf_i,chif_i]);kernel=gaussian_kde(joint_data)
303
+ f_i = lambda x,y:kernel.evaluate([x,y])
304
+ print("for inspiral kernel",kernel.integrate_box([-Mf_lim,-chif_lim],[Mf_lim,chif_lim]))
305
+ P_Mfchif_i = np.vectorize(f_i)(M_i,C_i)/kernel.integrate_box([-Mf_lim,-chif_lim],[Mf_lim,chif_lim])
306
+
307
+ joint_data=np.vstack([Mf_r,chif_r]);kernel=gaussian_kde(joint_data)#;M_i,C_i=np.meshgrid(Mf_bins,chif_bins)
308
+ f_r = lambda x,y:kernel.evaluate([x,y])
309
+ print("for post-inspiral kernel",kernel.integrate_box([-Mf_lim,-chif_lim],[Mf_lim,chif_lim]))
310
+ P_Mfchif_r = np.vectorize(f_r)(M_i,C_i)/kernel.integrate_box([-Mf_lim,-chif_lim],[Mf_lim,chif_lim])
311
+
312
+ joint_data=np.vstack([Mf_imr,chif_imr]);kernel=gaussian_kde(joint_data)#;M_i,C_i=np.meshgrid(Mf_bins,chif_bins)
313
+ f_imr = lambda x,y:kernel.evaluate([x,y])
314
+ print("for imr kernel",kernel.integrate_box([-Mf_lim,-chif_lim],[Mf_lim,chif_lim]))
315
+ P_Mfchif_imr = np.vectorize(f_imr)(M_i,C_i)/kernel.integrate_box([-Mf_lim,-chif_lim],[Mf_lim,chif_lim])
316
+
317
+
318
+ #rahul: end KDE of Mf,af
319
+
320
+ elif MfafKDE==0:
321
+ print('using default samples, NOKDE')
322
+ # compute the 2D posterior distributions for the inspiral, ringodwn and IMR analyses
323
+ P_Mfchif_i, Mf_bins, chif_bins = np.histogram2d(Mf_i, chif_i, bins=(Mf_bins, chif_bins), density=True)
324
+ P_Mfchif_r, Mf_bins, chif_bins = np.histogram2d(Mf_r, chif_r, bins=(Mf_bins, chif_bins), density=True)
325
+ P_Mfchif_imr, Mf_bins, chif_bins = np.histogram2d(Mf_imr, chif_imr, bins=(Mf_bins, chif_bins), density=True)
326
+ # transpose to go from (X,Y) indexing returned by np.histogram2d() to array (i,j) indexing for further
327
+ # computations. From now onwards, different rows (i) correspond to different values of Mf and different
328
+ # columns (j) correspond to different values of chif
329
+ #rahul:Transpose is forbidden if using KDE
330
+ P_Mfchif_i = P_Mfchif_i.T
331
+ P_Mfchif_r = P_Mfchif_r.T
332
+ P_Mfchif_imr = P_Mfchif_imr.T
333
+ print('computed P_Mfchif without using KDE')
334
+
335
+
336
+ ###############################################################################################
337
+
338
+
339
+ ###############################################################################################
340
+ # Undo the effect of the prior from the lalinference posterior. Lalinference assumes a #
341
+ # uniform prior in component masses. We need to assume a uniform prior in Mf, chif #
342
+ ###############################################################################################
343
+
344
+ if prior_Mfchif_file is not None:
345
+
346
+ os.system('cp %s %s/data'%(prior_Mfchif_file, out_dir))
347
+
348
+ # read the interpolation object, reconstruct the data from the interpolation object
349
+ f = gzip.open(prior_Mfchif_file,'rb')
350
+ P_Mfchif_pr_interp_obj = pickle.load(f)
351
+ P_Mfchif_pr = P_Mfchif_pr_interp_obj(Mf_intp, chif_intp)
352
+
353
+ # compute the corrected 2D posteriors in Mf and chif by dividing by the prior distribution
354
+ P_Mfchif_i = P_Mfchif_i/P_Mfchif_pr
355
+ P_Mfchif_r = P_Mfchif_r/P_Mfchif_pr
356
+ P_Mfchif_imr = P_Mfchif_imr/P_Mfchif_pr
357
+
358
+ # removing nan's
359
+ P_Mfchif_i[np.isnan(P_Mfchif_i)] = 0.
360
+ P_Mfchif_r[np.isnan(P_Mfchif_r)] = 0.
361
+ P_Mfchif_imr[np.isnan(P_Mfchif_imr)] = 0.
362
+
363
+ # removing infinities
364
+ P_Mfchif_i[np.isinf(P_Mfchif_i)] = 0.
365
+ P_Mfchif_r[np.isinf(P_Mfchif_r)] = 0.
366
+ P_Mfchif_imr[np.isinf(P_Mfchif_imr)] = 0.
367
+
368
+ print('... computed (prior) corrected posteriors')
369
+
370
+ ################################################################################################
371
+ # compute the posterior of (delta_Mf/Mf, delta_chif/chif)
372
+ ################################################################################################
373
+
374
+ # compute interpolation objects for the Mf,chif posterior and delta_Mf and delta_chif posterior
375
+ P_Mfchif_i_interp_object = scipy.interpolate.interp2d(Mf_intp, chif_intp, P_Mfchif_i, fill_value=0., bounds_error=False)
376
+ P_Mfchif_r_interp_object = scipy.interpolate.interp2d(Mf_intp, chif_intp, P_Mfchif_r, fill_value=0., bounds_error=False)
377
+
378
+ # defining limits of delta_Mf/Mf and delta_chif/chif.
379
+ dMfbyMf_vec = np.linspace(-dMfbyMf_lim, dMfbyMf_lim, N_bins)
380
+ dchifbychif_vec = np.linspace(-dchifbychif_lim, dchifbychif_lim, N_bins)
381
+
382
+ # compute the P(dMf/Mf, dchif/chif) by evaluating the integral
383
+ diff_dMfbyMf = np.mean(np.diff(dMfbyMf_vec))
384
+ diff_dchifbychif = np.mean(np.diff(dchifbychif_vec))
385
+ P_dMfbyMf_dchifbychif = np.zeros(shape=(N_bins,N_bins))
386
+
387
+ # compute the posterior on the fractional deviation parameters (delta_Mf/Mf, delta_chif/chif).
388
+ # Approximate the integral in Eq.(6) of the document LIGO-P1500185-v5 by a discrete sum
389
+ for i, v2 in enumerate(dchifbychif_vec):
390
+ for j, v1 in enumerate(dMfbyMf_vec):
391
+ P_dMfbyMf_dchifbychif[i,j] = tgr.calc_sum(Mf_intp, chif_intp, v1, v2, P_Mfchif_i_interp_object, P_Mfchif_r_interp_object)
392
+
393
+ # normalization
394
+ P_dMfbyMf_dchifbychif /= np.sum(P_dMfbyMf_dchifbychif) * diff_dMfbyMf * diff_dchifbychif
395
+
396
+ # Marginalization to one-dimensional joint_posteriors
397
+ P_dMfbyMf = np.sum(P_dMfbyMf_dchifbychif, axis=0) * diff_dchifbychif
398
+ P_dchifbychif = np.sum(P_dMfbyMf_dchifbychif, axis=1) * diff_dMfbyMf
399
+
400
+ # compute the confidence region corresponding to the GR value (delta_Mf/Mf = 0, delta_chif/chif = 0).
401
+ # the 'confidence' class is defined on top of this script
402
+ conf_v1v2 = confidence(P_dMfbyMf_dchifbychif)
403
+ gr_height = P_dMfbyMf_dchifbychif[np.argmin(abs(dMfbyMf_vec)), np.argmin(abs(dchifbychif_vec))] # taking value closest to (0,0)
404
+ gr_conf_level = conf_v1v2.level_from_height(gr_height)
405
+ print('... no deviation from GR above %.1f%% confidence level'%(100.*gr_conf_level))
406
+
407
+ # creating the parameter table
408
+ param_table = [['Upper cutoff freq for the inspiral analysis: %s Hz'%insp_fhigh],
409
+ ['Lower cutoff freq for the ringdown analysis: %s Hz'%ring_flow],
410
+ ['Waveform approximant: %s'%(waveform)],
411
+ ['Final mass/spin fitting formula: %s'%(fit_formula)],
412
+ ['No deviation from GR above %.1f%% confidence level'%(100.*gr_conf_level)]]
413
+ np.savetxt('%s/summary_table.txt'%(out_dir), np.array(param_table), delimiter='\t', fmt='%s')
414
+
415
+ # save results
416
+ np.savetxt(out_dir+'/data/Mfchif.dat.gz', (Mf_bins,chif_bins))
417
+ np.savetxt(out_dir+'/data/P_Mfchif_i.dat.gz', P_Mfchif_i)
418
+ np.savetxt(out_dir+'/data/P_Mfchif_r.dat.gz', P_Mfchif_r)
419
+ np.savetxt(out_dir+'/data/P_Mfchif_imr.dat.gz', P_Mfchif_imr)
420
+ np.savetxt(out_dir+'/data/dMfbyMf_vec.dat.gz', dMfbyMf_vec)
421
+ np.savetxt(out_dir+'/data/dchifbychif_vec.dat.gz', dchifbychif_vec)
422
+ np.savetxt(out_dir+'/data/P_dMfbyMf_dchifbychif.dat.gz', P_dMfbyMf_dchifbychif)
423
+ np.savetxt(out_dir+'/data/P_dMfbyMf.dat.gz', P_dMfbyMf)
424
+ np.savetxt(out_dir+'/data/P_dchifbychif.dat.gz', P_dchifbychif)
425
+ np.savetxt(out_dir+'/data/GR_confidence.txt', [gr_conf_level])
426
+
427
+ #########################################################################################
428
+
429
+ #########################################################################################
430
+ # plotting
431
+ #########################################################################################
432
+ #inspiral
433
+ P_m1m2_i, m1_bins_i, m2_bins_i = np.histogram2d(m1_i, m2_i, bins=50, density=True)
434
+ P_chi1chi2_i, chi1_bins_i, chi2_bins_i = np.histogram2d(chi1_i, chi2_i, bins=50, density=True)
435
+
436
+ P_m1m2_i = P_m1m2_i.T
437
+ P_chi1chi2_i = P_chi1chi2_i.T
438
+
439
+ conf_m1m2_i = confidence(P_m1m2_i)
440
+ s1_m1m2_i = conf_m1m2_i.height_from_level(0.68)
441
+ s2_m1m2_i = conf_m1m2_i.height_from_level(0.95)
442
+
443
+ conf_chi1chi2_i = confidence(P_chi1chi2_i)
444
+ s1_chi1chi2_i = conf_chi1chi2_i.height_from_level(0.68)
445
+ s2_chi1chi2_i = conf_chi1chi2_i.height_from_level(0.95)
446
+
447
+ conf_Mfchif_i = confidence(P_Mfchif_i)
448
+ s1_Mfchif_i = conf_Mfchif_i.height_from_level(0.68)
449
+ s2_Mfchif_i = conf_Mfchif_i.height_from_level(0.95)
450
+
451
+ plt.figure(figsize=(5,5))
452
+ plt.pcolormesh(m1_bins_i, m2_bins_i, tgr.gf(P_m1m2_i), cmap='YlOrBr')
453
+ plt.contour(m1_bins_i[:-1], m2_bins_i[:-1], tgr.gf(P_m1m2_i), levels=(s2_m1m2_i,s1_m1m2_i), linewidths=(1,1.5))
454
+ if plot_injection_lines == True:
455
+ plt.axvline(x=m1_inj, ls='--', color='k')
456
+ plt.axhline(y=m2_inj, ls='--', color='k')
457
+ plt.xlabel(r'$m_1 [M_{\odot}]$')
458
+ plt.ylabel(r'$m_2 [M_{\odot}]$')
459
+ plt.xlim([min(m1_i), max(m1_i)])
460
+ plt.ylim([min(m2_i), max(m2_i)])
461
+ plt.grid()
462
+ plt.savefig('%s/img/inspiral_m1m2_thumb.png'%(out_dir), dpi=72)
463
+ plt.savefig('%s/img/inspiral_m1m2.png'%(out_dir), dpi=300)
464
+
465
+ plt.figure(figsize=(5,5))
466
+ plt.plot(m1_i, m2_i, 'k.', ms=0.1)
467
+ if plot_injection_lines == True:
468
+ plt.axvline(x=m1_inj, ls='--', color='k')
469
+ plt.axhline(y=m2_inj, ls='--', color='k')
470
+ plt.xlabel(r'$m_1 [M_{\odot}]$')
471
+ plt.ylabel(r'$m_2 [M_{\odot}]$')
472
+ plt.xlim([min(m1_i), max(m1_i)])
473
+ plt.ylim([min(m2_i), max(m2_i)])
474
+ plt.grid()
475
+ plt.savefig('%s/img/inspiral_m1m2_scatter_thumb.png'%(out_dir), dpi=72)
476
+ plt.savefig('%s/img/inspiral_m1m2_scatter.png'%(out_dir), dpi=300)
477
+
478
+ plt.figure(figsize=(5,5))
479
+ plt.pcolormesh(chi1_bins_i, chi2_bins_i, tgr.gf(P_chi1chi2_i), cmap='YlOrBr')
480
+ plt.contour(chi1_bins_i[:-1], chi2_bins_i[:-1], tgr.gf(P_chi1chi2_i), levels=(s2_chi1chi2_i,s1_chi1chi2_i), linewidths=(1,1.5))
481
+ if plot_injection_lines == True:
482
+ plt.axvline(x=chi1_inj, ls='--', color='k')
483
+ plt.axhline(y=chi2_inj, ls='--', color='k')
484
+ plt.xlabel(r'$\chi _1$')
485
+ plt.ylabel(r'$\chi _2$')
486
+ plt.xlim([min(chi1_i), max(chi1_i)])
487
+ plt.ylim([min(chi2_i), max(chi2_i)])
488
+ plt.grid()
489
+ plt.savefig('%s/img/inspiral_chi1chi2_thumb.png'%(out_dir), dpi=72)
490
+ plt.savefig('%s/img/inspiral_chi1chi2.png'%(out_dir), dpi=300)
491
+
492
+ plt.figure(figsize=(5,5))
493
+ plt.plot(chi1_i, chi2_i, 'k.', ms=0.1)
494
+ if plot_injection_lines == True:
495
+ plt.axvline(x=chi1_inj, ls='--', color='k')
496
+ plt.axhline(y=chi2_inj, ls='--', color='k')
497
+ plt.xlabel(r'$\chi _1$')
498
+ plt.ylabel(r'$\chi _2$')
499
+ plt.xlim([min(chi1_i), max(chi1_i)])
500
+ plt.ylim([min(chi2_i), max(chi2_i)])
501
+ plt.grid()
502
+ plt.savefig('%s/img/inspiral_chi1chi2_scatter_thumb.png'%(out_dir), dpi=72)
503
+ plt.savefig('%s/img/inspiral_chi1chi2_scatter.png'%(out_dir), dpi=300)
504
+
505
+ plt.figure(figsize=(5,5))
506
+ plt.pcolormesh(Mf_bins, chif_bins, tgr.gf(P_Mfchif_i), cmap='YlOrBr')
507
+ plt.contour(Mf_bins[:-1], chif_bins[:-1], tgr.gf(P_Mfchif_i), levels=(s2_Mfchif_i,s1_Mfchif_i), linewidths=(1,1.5))
508
+ if plot_injection_lines == True:
509
+ plt.axvline(x=Mf_inj, ls='--', color='k')
510
+ plt.axhline(y=chif_inj, ls='--', color='k')
511
+ plt.xlabel(r'$M_f [M_{\odot}]$')
512
+ plt.ylabel(r'$\chi_f$')
513
+ plt.xlim([min(Mf_i), max(Mf_i)])
514
+ plt.ylim([min(chif_i), max(chif_i)])
515
+ plt.grid()
516
+ plt.savefig('%s/img/inspiral_Mfchif_thumb.png'%(out_dir), dpi=72)
517
+ plt.savefig('%s/img/inspiral_Mfchif.png'%(out_dir), dpi=300)
518
+
519
+
520
+ #ringdown
521
+ P_m1m2_r, m1_bins_r, m2_bins_r = np.histogram2d(m1_r, m2_r, bins=50, density=True)
522
+ P_chi1chi2_r, chi1_bins_r, chi2_bins_r = np.histogram2d(chi1_r, chi2_r, bins=50, density=True)
523
+
524
+ P_m1m2_r = P_m1m2_r.T
525
+ P_chi1chi2_r = P_chi1chi2_r.T
526
+
527
+ conf_m1m2_r = confidence(P_m1m2_r)
528
+ s1_m1m2_r = conf_m1m2_r.height_from_level(0.68)
529
+ s2_m1m2_r = conf_m1m2_r.height_from_level(0.95)
530
+
531
+ conf_chi1chi2_r = confidence(P_chi1chi2_r)
532
+ s1_chi1chi2_r = conf_chi1chi2_r.height_from_level(0.68)
533
+ s2_chi1chi2_r = conf_chi1chi2_r.height_from_level(0.95)
534
+
535
+ conf_Mfchif_r = confidence(P_Mfchif_r)
536
+ s1_Mfchif_r = conf_Mfchif_r.height_from_level(0.68)
537
+ s2_Mfchif_r = conf_Mfchif_r.height_from_level(0.95)
538
+
539
+ plt.figure(figsize=(5,5))
540
+ plt.pcolormesh(m1_bins_r, m2_bins_r, tgr.gf(P_m1m2_r), cmap='YlOrBr')
541
+ plt.contour(m1_bins_r[:-1], m2_bins_r[:-1], tgr.gf(P_m1m2_r), levels=(s2_m1m2_r,s1_m1m2_r), linewidths=(1,1.5))
542
+ if plot_injection_lines == True:
543
+ plt.axvline(x=m1_inj, ls='--', color='k')
544
+ plt.axhline(y=m2_inj, ls='--', color='k')
545
+ plt.xlabel(r'$m_1 [M_{\odot}]$')
546
+ plt.ylabel(r'$m_2 [M_{\odot}]$')
547
+ plt.xlim([min(m1_r), max(m1_r)])
548
+ plt.ylim([min(m2_r), max(m2_r)])
549
+ plt.grid()
550
+ plt.savefig('%s/img/ringdown_m1m2.png'%(out_dir), dpi=300)
551
+ plt.savefig('%s/img/ringdown_m1m2_thumb.png'%(out_dir), dpi=72)
552
+
553
+ plt.figure(figsize=(5,5))
554
+ plt.plot(m1_r, m2_r, 'k.', ms=0.1)
555
+ if plot_injection_lines == True:
556
+ plt.axvline(x=m1_inj, ls='--', color='k')
557
+ plt.axhline(y=m2_inj, ls='--', color='k')
558
+ plt.xlabel(r'$m_1 [M_{\odot}]$')
559
+ plt.ylabel(r'$m_2 [M_{\odot}]$')
560
+ plt.xlim([min(m1_r), max(m1_r)])
561
+ plt.ylim([min(m2_r), max(m2_r)])
562
+ plt.grid()
563
+ plt.savefig('%s/img/ringdown_m1m2_scatter_thumb.png'%(out_dir), dpi=72)
564
+ plt.savefig('%s/img/ringdown_m1m2_scatter.png'%(out_dir), dpi=300)
565
+
566
+ plt.figure(figsize=(5,5))
567
+ plt.pcolormesh(chi1_bins_r, chi2_bins_r, tgr.gf(P_chi1chi2_r), cmap='YlOrBr')
568
+ plt.contour(chi1_bins_r[:-1], chi2_bins_r[:-1], tgr.gf(P_chi1chi2_r), levels=(s2_chi1chi2_r,s1_chi1chi2_r), linewidths=(1,1.5))
569
+ if plot_injection_lines == True:
570
+ plt.axvline(x=chi1_inj, ls='--', color='k')
571
+ plt.axhline(y=chi2_inj, ls='--', color='k')
572
+ plt.xlabel(r'$\chi _1$')
573
+ plt.ylabel(r'$\chi _2$')
574
+ plt.xlim([min(chi1_r), max(chi1_r)])
575
+ plt.ylim([min(chi2_r), max(chi2_r)])
576
+ plt.grid()
577
+ plt.savefig('%s/img/ringdown_chi1chi2_thumb.png'%(out_dir), dpi=72)
578
+ plt.savefig('%s/img/ringdown_chi1chi2.png'%(out_dir), dpi=300)
579
+
580
+ plt.figure(figsize=(5,5))
581
+ plt.plot(chi1_r, chi2_r, 'k.', ms=0.1)
582
+ if plot_injection_lines == True:
583
+ plt.axvline(x=chi1_inj, ls='--', color='k')
584
+ plt.axhline(y=chi2_inj, ls='--', color='k')
585
+ plt.xlabel(r'$\chi _1$')
586
+ plt.ylabel(r'$\chi _2$')
587
+ plt.xlim([min(chi1_r), max(chi1_r)])
588
+ plt.ylim([min(chi2_r), max(chi2_r)])
589
+ plt.grid()
590
+ plt.savefig('%s/img/ringdown_chi1chi2_scatter_thumb.png'%(out_dir), dpi=72)
591
+ plt.savefig('%s/img/ringdown_chi1chi2_scatter.png'%(out_dir), dpi=300)
592
+
593
+ plt.figure(figsize=(5,5))
594
+ plt.pcolormesh(Mf_bins, chif_bins, tgr.gf(P_Mfchif_r), cmap='YlOrBr')
595
+ plt.contour(Mf_bins[:-1], chif_bins[:-1], tgr.gf(P_Mfchif_r), levels=(s2_Mfchif_r,s1_Mfchif_r), linewidths=(1,1.5))
596
+ if plot_injection_lines == True:
597
+ plt.axvline(x=Mf_inj, ls='--', color='k')
598
+ plt.axhline(y=chif_inj, ls='--', color='k')
599
+ plt.xlabel(r'$M_f [M_{\odot}]$')
600
+ plt.ylabel(r'$\chi_f$')
601
+ plt.xlim([min(Mf_r), max(Mf_r)])
602
+ plt.ylim([min(chif_r), max(chif_r)])
603
+ plt.grid()
604
+ plt.savefig('%s/img/ringdown_Mfchif.png'%(out_dir), dpi=300)
605
+ plt.savefig('%s/img/ringdown_Mfchif_thumb.png'%(out_dir), dpi=72)
606
+
607
+ #IMR
608
+ P_m1m2_imr, m1_bins_imr, m2_bins_imr = np.histogram2d(m1_imr, m2_imr, bins=50, density=True)
609
+ P_chi1chi2_imr, chi1_bins_imr, chi2_bins_imr = np.histogram2d(chi1_imr, chi2_imr, bins=50, density=True)
610
+
611
+ P_m1m2_imr = P_m1m2_imr.T
612
+ P_chi1chi2_imr = P_chi1chi2_imr.T
613
+
614
+ conf_m1m2_imr = confidence(P_m1m2_imr)
615
+ s1_m1m2_imr = conf_m1m2_imr.height_from_level(0.68)
616
+ s2_m1m2_imr = conf_m1m2_imr.height_from_level(0.95)
617
+
618
+ conf_chi1chi2_imr = confidence(P_chi1chi2_imr)
619
+ s1_chi1chi2_imr = conf_chi1chi2_imr.height_from_level(0.68)
620
+ s2_chi1chi2_imr = conf_chi1chi2_imr.height_from_level(0.95)
621
+
622
+ conf_Mfchif_imr = confidence(P_Mfchif_imr)
623
+ s1_Mfchif_imr = conf_Mfchif_imr.height_from_level(0.68)
624
+ s2_Mfchif_imr = conf_Mfchif_imr.height_from_level(0.95)
625
+
626
+ plt.figure(figsize=(5,5))
627
+ plt.pcolormesh(m1_bins_imr, m2_bins_imr, tgr.gf(P_m1m2_imr), cmap='YlOrBr')
628
+ plt.contour(m1_bins_imr[:-1], m2_bins_imr[:-1], tgr.gf(P_m1m2_imr), levels=(s2_m1m2_imr,s1_m1m2_imr), linewidths=(1,1.5))
629
+ if plot_injection_lines == True:
630
+ plt.axvline(x=m1_inj, ls='--', color='k')
631
+ plt.axhline(y=m2_inj, ls='--', color='k')
632
+ plt.xlabel(r'$m_1 [M_{\odot}]$')
633
+ plt.ylabel(r'$m_2 [M_{\odot}]$')
634
+ plt.xlim([min(m1_imr), max(m1_imr)])
635
+ plt.ylim([min(m2_imr), max(m2_imr)])
636
+ plt.grid()
637
+ plt.savefig('%s/img/imr_m1m2.png'%(out_dir), dpi=300)
638
+ plt.savefig('%s/img/imr_m1m2_thumb.png'%(out_dir), dpi=72)
639
+
640
+ plt.figure(figsize=(5,5))
641
+ plt.plot(m1_imr, m2_imr, 'k.', ms=0.1)
642
+ if plot_injection_lines == True:
643
+ plt.axvline(x=m1_inj, ls='--', color='k')
644
+ plt.axhline(y=m2_inj, ls='--', color='k')
645
+ plt.xlabel(r'$m_1 [M_{\odot}]$')
646
+ plt.ylabel(r'$m_2 [M_{\odot}]$')
647
+ plt.xlim([min(m1_imr), max(m1_imr)])
648
+ plt.ylim([min(m2_imr), max(m2_imr)])
649
+ plt.grid()
650
+ plt.savefig('%s/img/imr_m1m2_scatter_thumb.png'%(out_dir), dpi=72)
651
+ plt.savefig('%s/img/imr_m1m2_scatter.png'%(out_dir), dpi=300)
652
+
653
+ plt.figure(figsize=(5,5))
654
+ plt.pcolormesh(chi1_bins_imr, chi2_bins_imr, tgr.gf(P_chi1chi2_imr), cmap='YlOrBr')
655
+ plt.contour(chi1_bins_imr[:-1], chi2_bins_imr[:-1], tgr.gf(P_chi1chi2_imr), levels=(s2_chi1chi2_imr,s1_chi1chi2_imr), linewidths=(1,1.5))
656
+ if plot_injection_lines == True:
657
+ plt.axvline(x=chi1_inj, ls='--', color='k')
658
+ plt.axhline(y=chi2_inj, ls='--', color='k')
659
+ plt.xlabel(r'$\chi _1$')
660
+ plt.ylabel(r'$\chi _2$')
661
+ plt.xlim([min(chi1_imr), max(chi1_imr)])
662
+ plt.ylim([min(chi2_imr), max(chi2_imr)])
663
+ plt.grid()
664
+ plt.savefig('%s/img/imr_chi1chi2_thumb.png'%(out_dir), dpi=72)
665
+ plt.savefig('%s/img/imr_chi1chi2.png'%(out_dir), dpi=300)
666
+
667
+ plt.figure(figsize=(5,5))
668
+ plt.plot(chi1_imr, chi2_imr, 'k.', ms=0.1)
669
+ if plot_injection_lines == True:
670
+ plt.axvline(x=chi1_inj, ls='--', color='k')
671
+ plt.axhline(y=chi2_inj, ls='--', color='k')
672
+ plt.xlabel(r'$\chi _1$')
673
+ plt.ylabel(r'$\chi _2$')
674
+ plt.xlim([min(chi1_imr), max(chi1_imr)])
675
+ plt.ylim([min(chi2_imr), max(chi2_imr)])
676
+ plt.grid()
677
+ plt.savefig('%s/img/imr_chi1chi2_scatter_thumb.png'%(out_dir), dpi=72)
678
+ plt.savefig('%s/img/imr_chi1chi2_scatter.png'%(out_dir), dpi=300)
679
+
680
+ plt.figure(figsize=(5,5))
681
+ plt.pcolormesh(Mf_bins, chif_bins, tgr.gf(P_Mfchif_imr), cmap='YlOrBr')
682
+ plt.contour(Mf_bins[:-1], chif_bins[:-1], tgr.gf(P_Mfchif_imr), levels=(s2_Mfchif_imr,s1_Mfchif_imr), linewidths=(1,1.5))
683
+ if plot_injection_lines == True:
684
+ plt.axvline(x=Mf_inj, ls='--', color='k')
685
+ plt.axhline(y=chif_inj, ls='--', color='k')
686
+ plt.xlabel(r'$M_f [M_{\odot}]$')
687
+ plt.ylabel(r'$\chi_f$')
688
+ plt.xlim([min(Mf_imr), max(Mf_imr)])
689
+ plt.ylim([min(chif_imr), max(chif_imr)])
690
+ plt.grid()
691
+ plt.savefig('%s/img/imr_Mfchif.png'%(out_dir), dpi=300)
692
+ plt.savefig('%s/img/imr_Mfchif_thumb.png'%(out_dir), dpi=72)
693
+
694
+ # IR overlap
695
+ plt.figure(figsize=(5,5))
696
+ CSi = plt.contour(Mf_bins[:-1], chif_bins[:-1], tgr.gf(P_Mfchif_i), levels=(s2_Mfchif_i,s1_Mfchif_i), linewidths=(1,1.5), colors='orange')
697
+ CSr = plt.contour(Mf_bins[:-1], chif_bins[:-1], tgr.gf(P_Mfchif_r), levels=(s2_Mfchif_r,s1_Mfchif_r), linewidths=(1,1.5), colors='red')
698
+ CSimr = plt.contour(Mf_bins[:-1], chif_bins[:-1], tgr.gf(P_Mfchif_imr), levels=(s2_Mfchif_imr,s1_Mfchif_imr), linewidths=(1,1.5), colors='k')
699
+ if plot_injection_lines == True:
700
+ plt.axvline(x=Mf_inj, ls='--', color='k')
701
+ plt.axhline(y=chif_inj, ls='--', color='k')
702
+ plt.xlim([min(np.append(Mf_i, Mf_r)), max(np.append(Mf_i, Mf_r))])
703
+ plt.ylim([min(np.append(chif_i, chif_r)), max(np.append(chif_i, chif_r))])
704
+ plt.xlabel(r'$M_f~[M_\odot]$')
705
+ plt.ylabel(r'$\chi_f$')
706
+ plt.grid()
707
+
708
+ CSi.levels = np.asarray(CSi.levels)
709
+ CSr.levels = np.asarray(CSr.levels)
710
+ CSimr.levels = np.asarray(CSimr.levels)
711
+
712
+ strs_i = [ 'inspiral', 'inspiral' ]
713
+ strs_r = [ 'ringdown', 'ringdown' ]
714
+ strs_imr = [ 'IMR', 'IMR' ]
715
+ fmt_i = {}
716
+ fmt_r = {}
717
+ fmt_imr = {}
718
+ for l,s in zip(CSi.levels, strs_i):
719
+ fmt_i[l] = s
720
+ for l,s in zip(CSr.levels, strs_r):
721
+ fmt_r[l] = s
722
+ for l,s in zip(CSimr.levels, strs_imr):
723
+ fmt_imr[l] = s
724
+
725
+ ## Label every other level using strings
726
+ plt.clabel(CSi,CSi.levels[::2],inline=True,fmt=fmt_i,fontsize=14, use_clabeltext=True)
727
+ plt.clabel(CSr,CSr.levels[::2],inline=True,fmt=fmt_r,fontsize=14, use_clabeltext=True)
728
+ plt.clabel(CSimr,CSimr.levels[::2],inline=True,fmt=fmt_imr,fontsize=10)
729
+
730
+ plt.savefig('%s/img/IMR_overlap.png'%(out_dir), dpi=300)
731
+ plt.savefig('%s/img/IMR_overlap_thumb.png'%(out_dir), dpi=72)
732
+
733
+ #(dMf/Mf, dchif/chif)
734
+ conf_v1v2 = confidence(P_dMfbyMf_dchifbychif)
735
+ s1_v1v2 = conf_v1v2.height_from_level(0.68)
736
+ s2_v1v2 = conf_v1v2.height_from_level(0.95)
737
+
738
+ conf_v1 = confidence(P_dMfbyMf)
739
+ s1_v1 = conf_v1.height_from_level(0.68)
740
+ s2_v1 = conf_v1.height_from_level(0.95)
741
+
742
+ conf_v2 = confidence(P_dchifbychif)
743
+ s1_v2 = conf_v2.height_from_level(0.68)
744
+ s2_v2 = conf_v2.height_from_level(0.95)
745
+
746
+ # Calculation of condifence edges
747
+ left1_v1 = min(dMfbyMf_vec[np.where(P_dMfbyMf>=s1_v1)[0]])
748
+ right1_v1 = max(dMfbyMf_vec[np.where(P_dMfbyMf>=s1_v1)[0]])
749
+
750
+ left2_v1 = min(dMfbyMf_vec[np.where(P_dMfbyMf>=s2_v1)[0]])
751
+ right2_v1 = max(dMfbyMf_vec[np.where(P_dMfbyMf>=s2_v1)[0]])
752
+
753
+ left1_v2 = min(dchifbychif_vec[np.where(P_dchifbychif>s1_v2)[0]])
754
+ right1_v2 = max(dchifbychif_vec[np.where(P_dchifbychif>s1_v2)[0]])
755
+
756
+ left2_v2 = min(dchifbychif_vec[np.where(P_dchifbychif>s2_v2)[0]])
757
+ right2_v2 = max(dchifbychif_vec[np.where(P_dchifbychif>s2_v2)[0]])
758
+
759
+ plt.figure(figsize=(5,5))
760
+ plt.subplot2grid((3,3), (0,0), colspan=2)
761
+ plt.plot(dMfbyMf_vec, P_dMfbyMf, color='k', lw=1)
762
+ plt.axvline(x=left1_v1, color='c', lw=0.5, ls='-.')
763
+ plt.axvline(x=right1_v1, color='c', lw=0.5, ls='-.')
764
+ plt.axvline(x=left2_v1, color='b', lw=0.5, ls='-.')
765
+ plt.axvline(x=right2_v1, color='b', lw=0.5, ls='-.')
766
+ #plt.xlabel(r'$\Delta M_f/M_f$')
767
+ plt.ylabel(r'$P(\Delta M_f/M_f)$')
768
+ #plt.grid()
769
+
770
+ plt.subplot2grid((3,3), (1,0), colspan=2, rowspan=2)
771
+ plt.pcolormesh(dMfbyMf_vec,dchifbychif_vec,P_dMfbyMf_dchifbychif, cmap='YlOrBr')
772
+ plt.contour(dMfbyMf_vec,dchifbychif_vec,tgr.gf(P_dMfbyMf_dchifbychif), levels=(s2_v1v2,s1_v1v2), linewidths=(1,1.5))
773
+ plt.plot(0, 0, 'k+', ms=12, mew=2)
774
+ plt.xlabel(r'$\Delta M_f/M_f$')
775
+ plt.ylabel(r'$\Delta \chi_f/\chi_f$')
776
+ plt.xlim([-dMfbyMf_lim,dMfbyMf_lim])
777
+ plt.ylim([-dchifbychif_lim,dchifbychif_lim])
778
+ plt.grid()
779
+
780
+ plt.subplot2grid((3,3), (1,2), rowspan=2)
781
+ plt.plot(P_dchifbychif, dchifbychif_vec,'k', lw=1)
782
+ plt.axhline(y=left1_v2, color='c', lw=0.5, ls='-.')
783
+ plt.axhline(y=right1_v2, color='c', lw=0.5, ls='-.')
784
+ plt.axhline(y=left2_v2, color='b', lw=0.5, ls='-.')
785
+ plt.axhline(y=right2_v2, color='b', lw=0.5, ls='-.')
786
+ #plt.ylabel(r'$\Delta \chi_f/\chi_f$')
787
+ plt.xlabel(r'$P(\Delta \chi_f/\chi_f)$')
788
+ #plt.grid()
789
+
790
+ plt.savefig('%s/img/dMfbyMfdchifbychif.png' %(out_dir), dpi=300)
791
+ plt.savefig('%s/img/dMfbyMfdchifbychif_thumb.png' %(out_dir), dpi=72)
792
+
793
+ print('... made summary plots')
794
+
795
+ print('... completed in %f seconds' %(time.time()-start_time))
796
+ #########################################################################################