lalsuite 7.22.1.dev20240408__cp312-cp312-manylinux_2_28_aarch64.whl → 7.26.2.dev20251202__cp312-cp312-manylinux_2_28_aarch64.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 (852) hide show
  1. lal/__init__.py +5 -5
  2. lal/_lal.cpython-312-aarch64-linux-gnu.so +0 -0
  3. lal/{lal.py → _lal_swig.py} +1 -1
  4. lal/git_version.py +5 -5
  5. lal/gpstime.py +1 -1
  6. lal/pipeline.py +3139 -0
  7. lal/rate.py +14 -16
  8. lal/series.py +28 -32
  9. lal/utils/cache.py +27 -7
  10. lal/utils/series.py +1 -1
  11. lalapps/__init__.py +1 -1
  12. lalapps/bin/lal_cache +0 -0
  13. lalapps/bin/lal_fftw_wisdom +0 -0
  14. lalapps/bin/lal_fftwf_wisdom +0 -0
  15. lalapps/bin/lal_simd_detect +0 -0
  16. lalapps/bin/lal_tconvert +0 -0
  17. lalapps/bin/lal_version +0 -0
  18. lalapps/bin/lalapps_ComputeAntennaPattern +1 -1
  19. lalapps/bin/lalapps_ComputeFstatBenchmark +1 -1
  20. lalapps/bin/lalapps_ComputeFstatLatticeCount +1 -1
  21. lalapps/bin/lalapps_ComputeFstatMCUpperLimit +1 -1
  22. lalapps/bin/lalapps_ComputeFstatistic_v2 +1 -1
  23. lalapps/bin/lalapps_ComputePSD +1 -1
  24. lalapps/bin/lalapps_CopySFTs +1 -1
  25. lalapps/bin/lalapps_DistanceVsMass +0 -0
  26. lalapps/bin/lalapps_DriveHoughMulti +1 -1
  27. lalapps/bin/lalapps_FstatMetric_v2 +1 -1
  28. lalapps/bin/lalapps_HierarchSearchGCT +1 -1
  29. lalapps/bin/lalapps_HierarchicalSearch +1 -1
  30. lalapps/bin/lalapps_MakeSFTDAG +1 -1
  31. lalapps/bin/lalapps_MakeSFTs +1 -1
  32. lalapps/bin/lalapps_Makefakedata_v4 +1 -1
  33. lalapps/bin/lalapps_Makefakedata_v5 +1 -1
  34. lalapps/bin/lalapps_PredictFstat +1 -1
  35. lalapps/bin/lalapps_PrintDetectorState +1 -1
  36. lalapps/bin/lalapps_SFTclean +1 -1
  37. lalapps/bin/lalapps_SFTvalidate +1 -1
  38. lalapps/bin/lalapps_StringAddFrame +0 -0
  39. lalapps/bin/lalapps_StringSearch +0 -0
  40. lalapps/bin/lalapps_Weave +1 -1
  41. lalapps/bin/lalapps_WeaveCompare +1 -1
  42. lalapps/bin/lalapps_WeaveConcat +1 -1
  43. lalapps/bin/lalapps_WeaveSetup +1 -1
  44. lalapps/bin/lalapps_WriteSFTsfromSFDBs +1 -1
  45. lalapps/bin/lalapps_animate +0 -0
  46. lalapps/bin/lalapps_binj +0 -0
  47. lalapps/bin/lalapps_blindinj +0 -0
  48. lalapps/bin/lalapps_cache +1 -1
  49. lalapps/bin/lalapps_calfacs +0 -0
  50. lalapps/bin/lalapps_cbc_stochasticbank +0 -0
  51. lalapps/bin/lalapps_chirplen +0 -0
  52. lalapps/bin/lalapps_coh_PTF_inspiral +0 -0
  53. lalapps/bin/lalapps_coinj +0 -0
  54. lalapps/bin/lalapps_combine_crosscorr_toplists +1 -1
  55. lalapps/bin/lalapps_compareFstats +1 -1
  56. lalapps/bin/lalapps_compareSFTs +1 -1
  57. lalapps/bin/lalapps_create_time_correction_ephemeris +1 -1
  58. lalapps/bin/lalapps_dumpSFT +1 -1
  59. lalapps/bin/lalapps_effdist +0 -0
  60. lalapps/bin/lalapps_exc_resp +0 -0
  61. lalapps/bin/lalapps_fftw_wisdom +1 -1
  62. lalapps/bin/lalapps_fftwf_wisdom +1 -1
  63. lalapps/bin/lalapps_fits_header_getval +1 -1
  64. lalapps/bin/lalapps_fits_header_list +1 -1
  65. lalapps/bin/lalapps_fits_overview +1 -1
  66. lalapps/bin/lalapps_fits_table_list +1 -1
  67. lalapps/bin/lalapps_fr_ninja +0 -0
  68. lalapps/bin/lalapps_frextr +0 -0
  69. lalapps/bin/lalapps_frinfo +0 -0
  70. lalapps/bin/lalapps_frjoin +0 -0
  71. lalapps/bin/lalapps_frread +0 -0
  72. lalapps/bin/lalapps_frview +0 -0
  73. lalapps/bin/lalapps_gwf2xml +0 -0
  74. lalapps/bin/lalapps_heterodyne_pulsar +1 -1
  75. lalapps/bin/lalapps_inspawgfile +0 -0
  76. lalapps/bin/lalapps_inspfrinj +0 -0
  77. lalapps/bin/lalapps_inspinj +0 -0
  78. lalapps/bin/lalapps_inspiralDistance +0 -0
  79. lalapps/bin/lalapps_knope +1 -1
  80. lalapps/bin/lalapps_knope_automation_script +1 -1
  81. lalapps/bin/lalapps_knope_collate_results +1 -1
  82. lalapps/bin/lalapps_knope_result_page +1 -1
  83. lalapps/bin/lalapps_ninja +0 -0
  84. lalapps/bin/lalapps_path2cache +1 -1
  85. lalapps/bin/lalapps_power +0 -0
  86. lalapps/bin/lalapps_pulsar_crosscorr_v2 +1 -1
  87. lalapps/bin/lalapps_pulsar_frequency_evolution +1 -1
  88. lalapps/bin/lalapps_pulsar_parameter_estimation_nested +1 -1
  89. lalapps/bin/lalapps_random_bank +0 -0
  90. lalapps/bin/lalapps_randombank +0 -0
  91. lalapps/bin/lalapps_run_pulsar_crosscorr_v2 +1 -1
  92. lalapps/bin/lalapps_searchsum2cache +1 -1
  93. lalapps/bin/lalapps_spec_avg +1 -1
  94. lalapps/bin/lalapps_spec_avg_long +1 -1
  95. lalapps/bin/lalapps_spec_coherence +1 -1
  96. lalapps/bin/lalapps_spininj +0 -0
  97. lalapps/bin/lalapps_splitSFTs +1 -1
  98. lalapps/bin/lalapps_splitbank +0 -0
  99. lalapps/bin/lalapps_ssbtodetector +1 -1
  100. lalapps/bin/lalapps_synthesizeBstatMC +1 -1
  101. lalapps/bin/lalapps_synthesizeLVStats +1 -1
  102. lalapps/bin/lalapps_synthesizeTransientStats +1 -1
  103. lalapps/bin/lalapps_tconvert +1 -1
  104. lalapps/bin/lalapps_tmpltbank +0 -0
  105. lalapps/bin/lalapps_version +0 -0
  106. lalapps/bin/lalapps_xtefitstoframe +0 -0
  107. lalapps/bin/lalburst_version +0 -0
  108. lalapps/bin/lalfr-cat +0 -0
  109. lalapps/bin/lalfr-cksum +0 -0
  110. lalapps/bin/lalfr-cut +0 -0
  111. lalapps/bin/lalfr-dump +0 -0
  112. lalapps/bin/lalfr-fmt +0 -0
  113. lalapps/bin/lalfr-paste +0 -0
  114. lalapps/bin/lalfr-print +0 -0
  115. lalapps/bin/lalfr-split +0 -0
  116. lalapps/bin/lalfr-stat +0 -0
  117. lalapps/bin/lalfr-stream +0 -0
  118. lalapps/bin/lalfr-vis +0 -0
  119. lalapps/bin/lalframe_version +0 -0
  120. lalapps/bin/lalinference_bench +0 -0
  121. lalapps/bin/lalinference_burst +0 -0
  122. lalapps/bin/lalinference_datadump +0 -0
  123. lalapps/bin/lalinference_injectedlike +0 -0
  124. lalapps/bin/lalinference_mpi_wrapper +17 -15
  125. lalapps/bin/lalinference_nest +0 -0
  126. lalapps/bin/lalinference_version +0 -0
  127. lalapps/bin/lalinspiral_version +0 -0
  128. lalapps/bin/lalmetaio_version +0 -0
  129. lalapps/bin/lalpulsar_ComputeAntennaPattern +0 -0
  130. lalapps/bin/lalpulsar_ComputeFstatBenchmark +0 -0
  131. lalapps/bin/lalpulsar_ComputeFstatLatticeCount +0 -0
  132. lalapps/bin/lalpulsar_ComputeFstatMCUpperLimit +0 -0
  133. lalapps/bin/lalpulsar_ComputeFstatistic_v2 +0 -0
  134. lalapps/bin/lalpulsar_ComputePSD +0 -0
  135. lalapps/bin/lalpulsar_DriveHoughMulti +0 -0
  136. lalapps/bin/lalpulsar_FstatMetric_v2 +0 -0
  137. lalapps/bin/lalpulsar_HierarchSearchGCT +0 -0
  138. lalapps/bin/lalpulsar_HierarchicalSearch +0 -0
  139. lalapps/bin/lalpulsar_MakeSFTs +0 -0
  140. lalapps/bin/lalpulsar_Makefakedata_v4 +0 -0
  141. lalapps/bin/lalpulsar_Makefakedata_v5 +0 -0
  142. lalapps/bin/lalpulsar_PredictFstat +0 -0
  143. lalapps/bin/lalpulsar_PrintDetectorState +0 -0
  144. lalapps/bin/lalpulsar_SFTclean +0 -0
  145. lalapps/bin/lalpulsar_SFTvalidate +0 -0
  146. lalapps/bin/lalpulsar_Weave +0 -0
  147. lalapps/bin/lalpulsar_WeaveCompare +0 -0
  148. lalapps/bin/lalpulsar_WeaveConcat +0 -0
  149. lalapps/bin/lalpulsar_WeaveSetup +0 -0
  150. lalapps/bin/lalpulsar_WriteSFTsfromSFDBs +0 -0
  151. lalapps/bin/lalpulsar_compareFstats +0 -0
  152. lalapps/bin/lalpulsar_compareSFTs +0 -0
  153. lalapps/bin/lalpulsar_create_time_correction_ephemeris +0 -0
  154. lalapps/bin/lalpulsar_crosscorr_v2 +0 -0
  155. lalapps/bin/lalpulsar_dumpSFT +0 -0
  156. lalapps/bin/lalpulsar_fits_header_getval +0 -0
  157. lalapps/bin/lalpulsar_fits_header_list +0 -0
  158. lalapps/bin/lalpulsar_fits_overview +0 -0
  159. lalapps/bin/lalpulsar_fits_table_list +0 -0
  160. lalapps/bin/lalpulsar_frequency_evolution +0 -0
  161. lalapps/bin/lalpulsar_heterodyne +0 -0
  162. lalapps/bin/lalpulsar_parameter_estimation_nested +0 -0
  163. lalapps/bin/lalpulsar_spec_avg +0 -0
  164. lalapps/bin/lalpulsar_spec_avg_long +0 -0
  165. lalapps/bin/lalpulsar_spec_coherence +0 -0
  166. lalapps/bin/lalpulsar_splitSFTs +0 -0
  167. lalapps/bin/lalpulsar_ssbtodetector +0 -0
  168. lalapps/bin/lalpulsar_synthesizeBstatMC +0 -0
  169. lalapps/bin/lalpulsar_synthesizeLVStats +0 -0
  170. lalapps/bin/lalpulsar_synthesizeTransientStats +0 -0
  171. lalapps/bin/lalpulsar_version +0 -0
  172. lalapps/bin/lalsim-bh-qnmode +0 -0
  173. lalapps/bin/lalsim-bh-ringdown +0 -0
  174. lalapps/bin/lalsim-bh-sphwf +0 -0
  175. lalapps/bin/lalsim-burst +0 -0
  176. lalapps/bin/lalsim-detector-noise +0 -0
  177. lalapps/bin/lalsim-detector-strain +0 -0
  178. lalapps/bin/lalsim-inject +0 -0
  179. lalapps/bin/lalsim-inspiral +0 -0
  180. lalapps/bin/lalsim-ns-eos-table +0 -0
  181. lalapps/bin/lalsim-ns-mass-radius +0 -0
  182. lalapps/bin/lalsim-ns-params +0 -0
  183. lalapps/bin/lalsim-sgwb +0 -0
  184. lalapps/bin/lalsim-unicorn +0 -0
  185. lalapps/bin/lalsimulation_version +0 -0
  186. lalapps/cosmicstring.py +2 -2
  187. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF1_META.dat +1877 -1877
  188. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF2_META.dat +1934 -1934
  189. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF3_META.dat +1779 -1779
  190. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF4_META.dat +2069 -2069
  191. lalapps/data/LALSimNeutronStarEOS_BL_CHIRAL_META.dat +1529 -1529
  192. lalapps/data/LALSimNeutronStarEOS_GMSR_BSK14_BSK24.dat +2 -2
  193. lalapps/data/LALSimNeutronStarEOS_GMSR_DHSL59_BSK24.dat +2 -2
  194. lalapps/data/LALSimNeutronStarEOS_GMSR_DHSL69_BSK24.dat +2 -2
  195. lalapps/data/LALSimNeutronStarEOS_GMSR_F0_BSK24.dat +2 -2
  196. lalapps/data/LALSimNeutronStarEOS_GMSR_H1_BSK24.dat +2 -2
  197. lalapps/data/LALSimNeutronStarEOS_GMSR_H2_BSK24.dat +2 -2
  198. lalapps/data/LALSimNeutronStarEOS_GMSR_H3_BSK24.dat +2 -2
  199. lalapps/data/LALSimNeutronStarEOS_GMSR_H4_BSK24.dat +2 -2
  200. lalapps/data/LALSimNeutronStarEOS_GMSR_H5_BSK24.dat +2 -2
  201. lalapps/data/LALSimNeutronStarEOS_GMSR_LN55_BSK24.dat +2 -2
  202. lalapps/data/LALSimNeutronStarEOS_GMSR_SLY5_BSK24.dat +2 -2
  203. lalapps/data/LALSimNeutronStarEOS_GPPVA_DD2_BSK24.dat +2 -2
  204. lalapps/data/LALSimNeutronStarEOS_GPPVA_DDME2_BSK24.dat +2 -2
  205. lalapps/data/LALSimNeutronStarEOS_GPPVA_FSU2H_BSK24.dat +2 -2
  206. lalapps/data/LALSimNeutronStarEOS_GPPVA_FSU2_BSK24.dat +2 -2
  207. lalapps/data/LALSimNeutronStarEOS_GPPVA_NL3WRL55_BSK24.dat +2 -2
  208. lalapps/data/LALSimNeutronStarEOS_KDE0V1_BSK24.dat +1 -1
  209. lalapps/data/LALSimNeutronStarEOS_KDE0V_BSK24.dat +1 -1
  210. lalapps/data/LALSimNeutronStarEOS_PCP_BSK24_BSK24.dat +2 -2
  211. lalapps/data/LALSimNeutronStarEOS_RG_SLY4_BSK24.dat +2 -2
  212. lalapps/data/LALSimNeutronStarEOS_RS_BSK24.dat +1 -1
  213. lalapps/data/LALSimNeutronStarEOS_SK255_BSK24.dat +2 -2
  214. lalapps/data/LALSimNeutronStarEOS_SKA_BSK24.dat +1 -1
  215. lalapps/data/LALSimNeutronStarEOS_SKB_BSK24.dat +1 -1
  216. lalapps/data/LALSimNeutronStarEOS_SKI2_BSK24.dat +1 -1
  217. lalapps/data/LALSimNeutronStarEOS_SKI3_BSK24.dat +1 -1
  218. lalapps/data/LALSimNeutronStarEOS_SKI4_BSK24.dat +1 -1
  219. lalapps/data/LALSimNeutronStarEOS_SKI6_BSK24.dat +1 -1
  220. lalapps/data/LALSimNeutronStarEOS_SKOP_BSK24.dat +1 -1
  221. lalapps/data/LALSimNeutronStarEOS_SLY230A_BSK24.dat +1 -1
  222. lalapps/data/LALSimNeutronStarEOS_SLY2_BSK24.dat +1 -1
  223. lalapps/data/LALSimNeutronStarEOS_SLY9_BSK24.dat +1 -1
  224. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDLZ1_BSK24.dat +2 -2
  225. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDME2_BSK24.dat +1 -1
  226. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDMEX_BSK24.dat +1 -1
  227. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_GM1_BSK24.dat +1 -1
  228. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_MTVTC_BSK24.dat +1 -1
  229. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_NL3_BSK24.dat +1 -1
  230. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_PKDD_BSK24.dat +1 -1
  231. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_TM1_BSK24.dat +1 -1
  232. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_TW99_BSK24.dat +1 -1
  233. lalapps/data/LIGO-T1800545-v1-aLIGO_140Mpc.txt +1000 -1000
  234. lalapps/data/config_tiger_example.ini +2 -2
  235. lalapps/data/lalinference_pipe_example.ini +2 -3
  236. lalapps/data/lib_pipe_example.ini +5 -6
  237. lalapps/data/power_pipe.ini +1 -1
  238. lalapps/data/unimodalMeans.csv +0 -1
  239. lalapps/git_version.py +5 -5
  240. lalburst/SnglBurstUtils.py +5 -5
  241. lalburst/__init__.py +2 -2
  242. lalburst/_lalburst.cpython-312-aarch64-linux-gnu.so +0 -0
  243. lalburst/{lalburst.py → _lalburst_swig.py} +1 -1
  244. lalburst/binjfind.py +8 -8
  245. lalburst/bucluster.py +4 -4
  246. lalburst/burca.py +3 -3
  247. lalburst/burca_tailor.py +8 -16
  248. lalburst/cafe.py +3 -3
  249. lalburst/calc_likelihood.py +1 -1
  250. lalburst/cs_gamma.cpython-312-aarch64-linux-gnu.so +0 -0
  251. lalburst/git_version.py +5 -5
  252. lalburst/power.py +3 -3
  253. lalburst/snglcluster.py +1 -1
  254. lalburst/snglcoinc.py +97 -118
  255. lalburst/stringutils.py +8 -16
  256. lalburst/timeslides.py +46 -0
  257. lalframe/__init__.py +2 -2
  258. lalframe/_lalframe.cpython-312-aarch64-linux-gnu.so +0 -0
  259. lalframe/{lalframe.py → _lalframe_swig.py} +1 -1
  260. lalframe/frread.py +4 -2
  261. lalframe/git_version.py +5 -5
  262. lalframe/utils/frtools.py +1 -1
  263. lalinference/__init__.py +2 -2
  264. lalinference/_bayespputils.cpython-312-aarch64-linux-gnu.so +0 -0
  265. lalinference/_lalinference.cpython-312-aarch64-linux-gnu.so +0 -0
  266. lalinference/{lalinference.py → _lalinference_swig.py} +1 -1
  267. lalinference/bayespputils.py +35 -39
  268. lalinference/git_version.py +5 -5
  269. lalinference/imrtgr/nrutils.py +118 -135
  270. lalinference/io/__init__.py +4 -6
  271. lalinference/lalinference_pipe_utils.py +12 -21
  272. lalinference/nest2pos.py +0 -1
  273. lalinference/plot/__init__.py +4 -5
  274. lalinference/plot/spindisk.py +2 -3
  275. lalinference/tiger/make_injtimes.py +0 -1
  276. lalinference/tiger/omegascans_dag.py +6 -3
  277. lalinference/tiger/postproc.py +11 -13
  278. lalinference/wrapper.py +0 -1
  279. lalinspiral/__init__.py +2 -2
  280. lalinspiral/_lalinspiral.cpython-312-aarch64-linux-gnu.so +0 -0
  281. lalinspiral/{lalinspiral.py → _lalinspiral_swig.py} +1 -1
  282. lalinspiral/_thinca.cpython-312-aarch64-linux-gnu.so +0 -0
  283. lalinspiral/git_version.py +5 -5
  284. lalinspiral/inspinjfind.py +6 -11
  285. lalinspiral/thinca.py +11 -11
  286. lalmetaio/__init__.py +2 -2
  287. lalmetaio/_lalmetaio.cpython-312-aarch64-linux-gnu.so +0 -0
  288. lalmetaio/{lalmetaio.py → _lalmetaio_swig.py} +1 -1
  289. lalmetaio/git_version.py +5 -5
  290. lalpulsar/PulsarParametersWrapper.py +18 -10
  291. lalpulsar/__init__.py +2 -2
  292. lalpulsar/_lalpulsar.cpython-312-aarch64-linux-gnu.so +0 -0
  293. lalpulsar/{lalpulsar.py → _lalpulsar_swig.py} +1 -1
  294. lalpulsar/git_version.py +5 -5
  295. lalpulsar/knope_utils.py +9 -10
  296. lalpulsar/piecewise_model/__init__.py +7 -0
  297. lalpulsar/piecewise_model/basis_functions.py +156 -0
  298. lalpulsar/piecewise_model/class_definitions.py +323 -0
  299. lalpulsar/piecewise_model/errors.py +37 -0
  300. lalpulsar/piecewise_model/estimating_knots.py +833 -0
  301. lalpulsar/piecewise_model/gte_and_other_methods.py +189 -0
  302. lalpulsar/piecewise_model/mols_for_gte.py +269 -0
  303. lalpulsar/piecewise_model/pw_fstat.py +813 -0
  304. lalpulsar/piecewise_model/pw_model_simulations.py +156 -0
  305. lalpulsar/piecewise_model/sampling_methods.py +186 -0
  306. lalpulsar/piecewise_model/semicoherent_metric_methods.py +375 -0
  307. lalpulsar/piecewise_model/tbank_estimates.py +293 -0
  308. lalpulsar/public_sft_directory.py +7 -0
  309. lalpulsar/pulsarhtmlutils.py +52 -53
  310. lalpulsar/pulsarpputils.py +28 -25
  311. lalpulsar/simulateCW.py +49 -6
  312. lalpulsar/simulateHeterodynedCW.py +4 -5
  313. lalsimulation/__init__.py +2 -2
  314. lalsimulation/_lalsimulation.cpython-312-aarch64-linux-gnu.so +0 -0
  315. lalsimulation/{lalsimulation.py → _lalsimulation_swig.py} +1 -1
  316. lalsimulation/git_version.py +5 -5
  317. lalsimulation/gwsignal/models/__init__.py +2 -0
  318. lalsimulation/gwsignal/models/pyseobnr_model.py +174 -1
  319. lalsimulation/nrfits/NRSur3dq8Remnant.py +1 -1
  320. lalsimulation/nrfits/NRSur7dq4Remnant.py +1 -1
  321. lalsimulation/nrfits/eval_fits.py +1 -1
  322. lalsimulation/nrfits/nrfits.py +0 -2
  323. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/cbcBayesBurstPPAnalysis +4 -8
  324. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/cbcBayesBurstPostProc +10 -20
  325. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/cbcBayesCombinePTMCMCh5s +0 -1
  326. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/cbcBayesCombinePosteriors +0 -2
  327. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/cbcBayesCompPos +3 -4
  328. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/cbcBayesDIEvidence +0 -1
  329. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/cbcBayesGraceDBinfo +0 -1
  330. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/cbcBayesMCMC2pos +7 -5
  331. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/cbcBayesPPAnalysis +3 -6
  332. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/cbcBayesPlotSpinDisk +0 -1
  333. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/cbcBayesPosToSimBurst +6 -9
  334. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/cbcBayesPosToSimInspiral +5 -8
  335. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/cbcBayesPostProc +5 -9
  336. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/cbcBayesThermoInt +7 -7
  337. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/imrtgr_imr_consistency_test +38 -40
  338. lalsuite-7.26.2.dev20251202.data/scripts/lal_cache +6 -0
  339. lalsuite-7.26.2.dev20251202.data/scripts/lal_fftw_wisdom +6 -0
  340. lalsuite-7.26.2.dev20251202.data/scripts/lal_fftwf_wisdom +6 -0
  341. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lal_path2cache +1 -2
  342. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lal_searchsum2cache +3 -5
  343. lalsuite-7.26.2.dev20251202.data/scripts/lal_simd_detect +6 -0
  344. lalsuite-7.26.2.dev20251202.data/scripts/lal_tconvert +6 -0
  345. lalsuite-7.26.2.dev20251202.data/scripts/lal_version +6 -0
  346. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_ComputeAntennaPattern +6 -0
  347. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_ComputeFstatBenchmark +6 -0
  348. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_ComputeFstatLatticeCount +6 -0
  349. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_ComputeFstatMCUpperLimit +6 -0
  350. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_ComputeFstatistic_v2 +6 -0
  351. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_ComputePSD +6 -0
  352. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_CopySFTs +6 -0
  353. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_DistanceVsMass +6 -0
  354. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_DriveHoughMulti +6 -0
  355. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_FstatMetric_v2 +6 -0
  356. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_HierarchSearchGCT +6 -0
  357. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_HierarchicalSearch +6 -0
  358. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_MakeSFTDAG +6 -0
  359. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_MakeSFTs +6 -0
  360. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_Makefakedata_v4 +6 -0
  361. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_Makefakedata_v5 +6 -0
  362. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_PredictFstat +6 -0
  363. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_PrintDetectorState +6 -0
  364. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_SFTclean +6 -0
  365. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_SFTvalidate +6 -0
  366. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_StringAddFrame +6 -0
  367. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_StringSearch +6 -0
  368. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_Weave +6 -0
  369. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_WeaveCompare +6 -0
  370. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_WeaveConcat +6 -0
  371. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_WeaveSetup +6 -0
  372. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_WriteSFTsfromSFDBs +6 -0
  373. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_animate +6 -0
  374. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_binj +6 -0
  375. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_blindinj +6 -0
  376. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_cache +6 -0
  377. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_cafe +3 -8
  378. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_calfacs +6 -0
  379. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_cbc_stochasticbank +6 -0
  380. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_chirplen +6 -0
  381. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_coh_PTF_inspiral +6 -0
  382. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_coinj +6 -0
  383. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_combine_crosscorr_toplists +6 -0
  384. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_compareFstats +6 -0
  385. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_compareSFTs +6 -0
  386. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_cosmicstring_pipe +8 -9
  387. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_create_time_correction_ephemeris +1 -4
  388. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_dumpSFT +6 -0
  389. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_effdist +6 -0
  390. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_exc_resp +6 -0
  391. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_fftw_wisdom +6 -0
  392. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_fftwf_wisdom +6 -0
  393. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_fits_header_getval +6 -0
  394. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_fits_header_list +6 -0
  395. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_fits_overview +6 -0
  396. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_fits_table_list +6 -0
  397. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_fr_ninja +6 -0
  398. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_frextr +6 -0
  399. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_frinfo +6 -0
  400. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_frjoin +6 -0
  401. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_frread +6 -0
  402. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_frview +6 -0
  403. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_gwf2xml +6 -0
  404. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_heterodyne_pulsar +6 -0
  405. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_inspawgfile +6 -0
  406. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_inspfrinj +6 -0
  407. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_inspinj +6 -0
  408. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_inspiralDistance +6 -0
  409. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_knope +6 -0
  410. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_knope_automation_script +6 -0
  411. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_knope_collate_results +6 -0
  412. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_knope_result_page +6 -0
  413. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_makeblindinj +6 -0
  414. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_makeblindinj_himass +6 -0
  415. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_ninja +6 -0
  416. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_path2cache +6 -0
  417. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_power +6 -0
  418. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_power_likelihood_pipe +2 -3
  419. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_power_pipe +3 -12
  420. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_pulsar_crosscorr_v2 +6 -0
  421. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_pulsar_frequency_evolution +6 -0
  422. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_pulsar_parameter_estimation_nested +1 -4
  423. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_random_bank +6 -0
  424. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_randombank +6 -0
  425. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_run_pulsar_crosscorr_v2 +6 -0
  426. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_searchsum2cache +6 -0
  427. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_spec_avg +6 -0
  428. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_spec_avg_long +6 -0
  429. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_spec_coherence +6 -0
  430. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_spininj +6 -0
  431. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_splitSFTs +6 -0
  432. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_splitbank +6 -0
  433. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_ssbtodetector +6 -0
  434. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_string_apply_vetoes +4 -5
  435. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_string_calc_likelihood +1 -2
  436. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_string_contour_plotter +0 -1
  437. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_string_contour_plotter_largeloops +0 -1
  438. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_string_cs_gamma +0 -1
  439. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_string_cs_gamma_largeloops +0 -1
  440. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_string_final +4 -5
  441. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_string_meas_likelihood +6 -7
  442. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_string_plot_binj +5 -6
  443. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalapps_string_plot_likelihood +1 -2
  444. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_synthesizeBstatMC +6 -0
  445. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_synthesizeLVStats +6 -0
  446. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_synthesizeTransientStats +6 -0
  447. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_tconvert +6 -0
  448. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_tmpltbank +6 -0
  449. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_version +6 -0
  450. lalsuite-7.26.2.dev20251202.data/scripts/lalapps_xtefitstoframe +6 -0
  451. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalburst_cluster +2 -8
  452. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalburst_coinc +5 -11
  453. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalburst_cut +9 -15
  454. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalburst_gen_timeslides +8 -13
  455. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalburst_inj_pic +6 -12
  456. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalburst_injfind +4 -9
  457. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalburst_plot_tisi +3 -8
  458. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalburst_power_calc_likelihood +1 -2
  459. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalburst_power_final +1 -2
  460. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalburst_power_meas_likelihood +3 -4
  461. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalburst_power_plot_binj +3 -4
  462. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalburst_power_plot_binjtf +4 -5
  463. lalsuite-7.26.2.dev20251202.data/scripts/lalburst_version +6 -0
  464. lalsuite-7.26.2.dev20251202.data/scripts/lalfr-cat +6 -0
  465. lalsuite-7.26.2.dev20251202.data/scripts/lalfr-cksum +6 -0
  466. lalsuite-7.26.2.dev20251202.data/scripts/lalfr-cut +6 -0
  467. lalsuite-7.26.2.dev20251202.data/scripts/lalfr-dump +6 -0
  468. lalsuite-7.26.2.dev20251202.data/scripts/lalfr-fmt +6 -0
  469. lalsuite-7.26.2.dev20251202.data/scripts/lalfr-paste +6 -0
  470. lalsuite-7.26.2.dev20251202.data/scripts/lalfr-print +6 -0
  471. lalsuite-7.26.2.dev20251202.data/scripts/lalfr-split +6 -0
  472. lalsuite-7.26.2.dev20251202.data/scripts/lalfr-stat +6 -0
  473. lalsuite-7.26.2.dev20251202.data/scripts/lalfr-stream +6 -0
  474. lalsuite-7.26.2.dev20251202.data/scripts/lalfr-vis +6 -0
  475. lalsuite-7.26.2.dev20251202.data/scripts/lalframe_version +6 -0
  476. lalsuite-7.26.2.dev20251202.data/scripts/lalinference_bench +6 -0
  477. lalsuite-7.26.2.dev20251202.data/scripts/lalinference_burst +6 -0
  478. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalinference_burst_pp_pipe +10 -7
  479. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalinference_coherence_test +0 -1
  480. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalinference_compute_roq_weights +1 -2
  481. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalinference_cpnest +12 -11
  482. lalsuite-7.26.2.dev20251202.data/scripts/lalinference_datadump +6 -0
  483. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalinference_evolve_spins_and_append_samples +0 -1
  484. lalsuite-7.26.2.dev20251202.data/scripts/lalinference_injectedlike +6 -0
  485. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalinference_merge_posteriors +0 -3
  486. lalsuite-7.26.2.dev20251202.data/scripts/lalinference_mpi_wrapper +6 -0
  487. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalinference_multi_pipe +5 -3
  488. lalsuite-7.26.2.dev20251202.data/scripts/lalinference_nest +6 -0
  489. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalinference_nest2pos +0 -1
  490. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalinference_pipe +11 -10
  491. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalinference_pp_pipe +10 -6
  492. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalinference_review_test +6 -5
  493. lalsuite-7.26.2.dev20251202.data/scripts/lalinference_version +6 -0
  494. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalinspiral_injfind +4 -5
  495. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalinspiral_thinca +7 -12
  496. lalsuite-7.26.2.dev20251202.data/scripts/lalinspiral_version +6 -0
  497. lalsuite-7.26.2.dev20251202.data/scripts/lalmetaio_version +6 -0
  498. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_ComputeAntennaPattern +6 -0
  499. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_ComputeFstatBenchmark +6 -0
  500. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_ComputeFstatLatticeCount +6 -0
  501. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_ComputeFstatMCUpperLimit +6 -0
  502. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_ComputeFstatistic_v2 +6 -0
  503. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_ComputePSD +6 -0
  504. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalpulsar_CopyPublicSFTs +18 -1
  505. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_DriveHoughMulti +6 -0
  506. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_FstatMetric_v2 +6 -0
  507. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_HierarchSearchGCT +6 -0
  508. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_HierarchicalSearch +6 -0
  509. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalpulsar_MakeSFTDAG +595 -390
  510. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_MakeSFTs +6 -0
  511. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_Makefakedata_v4 +6 -0
  512. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_Makefakedata_v5 +6 -0
  513. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_MoveSFTs +200 -0
  514. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_PiecewiseSearch +963 -0
  515. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_PredictFstat +6 -0
  516. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_PrintDetectorState +6 -0
  517. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_SFTclean +6 -0
  518. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_SFTvalidate +6 -0
  519. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_Weave +6 -0
  520. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_WeaveCompare +6 -0
  521. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_WeaveConcat +6 -0
  522. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_WeaveSetup +6 -0
  523. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_WriteSFTsfromSFDBs +6 -0
  524. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_compareFstats +6 -0
  525. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_compareSFTs +6 -0
  526. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalpulsar_create_time_correction_ephemeris +1 -4
  527. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_crosscorr_v2 +6 -0
  528. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_dumpSFT +6 -0
  529. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_fits_header_getval +6 -0
  530. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_fits_header_list +6 -0
  531. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_fits_overview +6 -0
  532. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_fits_table_list +6 -0
  533. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_frequency_evolution +6 -0
  534. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_heterodyne +6 -0
  535. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalpulsar_knope +8 -4
  536. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalpulsar_knope_automation_script +5 -2
  537. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalpulsar_knope_collate_results +12 -7
  538. {lalsuite-7.22.1.dev20240408.data → lalsuite-7.26.2.dev20251202.data}/scripts/lalpulsar_knope_result_page +9 -4
  539. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_parameter_estimation_nested +6 -0
  540. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_spec_avg +6 -0
  541. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_spec_avg_long +6 -0
  542. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_spec_coherence +6 -0
  543. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_splitSFTs +6 -0
  544. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_ssbtodetector +6 -0
  545. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_synthesizeBstatMC +6 -0
  546. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_synthesizeLVStats +6 -0
  547. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_synthesizeTransientStats +6 -0
  548. lalsuite-7.26.2.dev20251202.data/scripts/lalpulsar_version +6 -0
  549. lalsuite-7.26.2.dev20251202.data/scripts/lalsim-bh-qnmode +6 -0
  550. lalsuite-7.26.2.dev20251202.data/scripts/lalsim-bh-ringdown +6 -0
  551. lalsuite-7.26.2.dev20251202.data/scripts/lalsim-bh-sphwf +6 -0
  552. lalsuite-7.26.2.dev20251202.data/scripts/lalsim-burst +6 -0
  553. lalsuite-7.26.2.dev20251202.data/scripts/lalsim-detector-noise +6 -0
  554. lalsuite-7.26.2.dev20251202.data/scripts/lalsim-detector-strain +6 -0
  555. lalsuite-7.26.2.dev20251202.data/scripts/lalsim-inject +6 -0
  556. lalsuite-7.26.2.dev20251202.data/scripts/lalsim-inspiral +6 -0
  557. lalsuite-7.26.2.dev20251202.data/scripts/lalsim-ns-eos-table +6 -0
  558. lalsuite-7.26.2.dev20251202.data/scripts/lalsim-ns-mass-radius +6 -0
  559. lalsuite-7.26.2.dev20251202.data/scripts/lalsim-ns-params +6 -0
  560. lalsuite-7.26.2.dev20251202.data/scripts/lalsim-sgwb +6 -0
  561. lalsuite-7.26.2.dev20251202.data/scripts/lalsim-unicorn +6 -0
  562. lalsuite-7.26.2.dev20251202.data/scripts/lalsimulation_version +6 -0
  563. {lalsuite-7.22.1.dev20240408.dist-info → lalsuite-7.26.2.dev20251202.dist-info}/METADATA +28 -11
  564. lalsuite-7.26.2.dev20251202.dist-info/RECORD +733 -0
  565. {lalsuite-7.22.1.dev20240408.dist-info → lalsuite-7.26.2.dev20251202.dist-info}/WHEEL +1 -1
  566. lalsuite.libs/libcfitsio-d1819b02.so.10.0.0 +0 -0
  567. lalsuite.libs/libframel-7c053be1.so.8.48.4 +0 -0
  568. lalsuite.libs/{libgsl-94dbbcc0.so.25.1.0 → libgsl-7aa43ddc.so.28.0.0} +0 -0
  569. lalsuite.libs/libgslcblas-3b2ae915.so.0.0.0 +0 -0
  570. lalsuite.libs/libhdf5-7a791ae9.so.310.5.1 +0 -0
  571. lalsuite.libs/libhdf5_hl-79b5d5b8.so.310.0.6 +0 -0
  572. lalsuite.libs/liblal-debd2aa1.so.20.5.0 +0 -0
  573. lalsuite.libs/liblalburst-308bbb81.so.8.0.0 +0 -0
  574. lalsuite.libs/liblalframe-6516e1c3.so.14.0.3 +0 -0
  575. lalsuite.libs/liblalinference-1721c8ba.so.23.1.7 +0 -0
  576. lalsuite.libs/liblalinspiral-98f96f4d.so.18.0.2 +0 -0
  577. lalsuite.libs/{liblalmetaio-e1c21f30.so.11.0.0 → liblalmetaio-62eed54a.so.11.0.1} +0 -0
  578. lalsuite.libs/liblalpulsar-044eaf70.so.30.1.1 +0 -0
  579. lalsuite.libs/{liblalsimulation-11365514.so.32.4.0 → liblalsimulation-c9131b72.so.37.2.0} +0 -0
  580. lalsuite.libs/liblalsupport-9153c561.so.14.4.0 +0 -0
  581. lalsuite.libs/{liblalburst-a9696b55.so.8.0.0 → libmetaio-b1be2527.so.1.1.0} +0 -0
  582. lalapps/bin/cbcBayesBurstPPAnalysis +0 -5
  583. lalapps/bin/cbcBayesBurstPostProc +0 -5
  584. lalapps/bin/cbcBayesCombinePTMCMCh5s +0 -5
  585. lalapps/bin/cbcBayesCombinePosteriors +0 -5
  586. lalapps/bin/cbcBayesCompPos +0 -5
  587. lalapps/bin/cbcBayesDIEvidence +0 -5
  588. lalapps/bin/cbcBayesGraceDBinfo +0 -5
  589. lalapps/bin/cbcBayesMCMC2pos +0 -5
  590. lalapps/bin/cbcBayesPPAnalysis +0 -5
  591. lalapps/bin/cbcBayesPlotSpinDisk +0 -5
  592. lalapps/bin/cbcBayesPosToSimBurst +0 -5
  593. lalapps/bin/cbcBayesPosToSimInspiral +0 -5
  594. lalapps/bin/cbcBayesPostProc +0 -5
  595. lalapps/bin/cbcBayesThermoInt +0 -5
  596. lalapps/bin/imrtgr_imr_consistency_test +0 -5
  597. lalapps/bin/lal_path2cache +0 -5
  598. lalapps/bin/lal_searchsum2cache +0 -5
  599. lalapps/bin/lalapps_cafe +0 -5
  600. lalapps/bin/lalapps_calcexpsnr +0 -0
  601. lalapps/bin/lalapps_cosmicstring_pipe +0 -5
  602. lalapps/bin/lalapps_create_solar_system_ephemeris +0 -16
  603. lalapps/bin/lalapps_create_solar_system_ephemeris_python +0 -16
  604. lalapps/bin/lalapps_power_likelihood_pipe +0 -5
  605. lalapps/bin/lalapps_power_pipe +0 -5
  606. lalapps/bin/lalapps_string_apply_vetoes +0 -5
  607. lalapps/bin/lalapps_string_calc_likelihood +0 -5
  608. lalapps/bin/lalapps_string_contour_plotter +0 -5
  609. lalapps/bin/lalapps_string_contour_plotter_largeloops +0 -5
  610. lalapps/bin/lalapps_string_cs_gamma +0 -5
  611. lalapps/bin/lalapps_string_cs_gamma_largeloops +0 -5
  612. lalapps/bin/lalapps_string_final +0 -5
  613. lalapps/bin/lalapps_string_meas_likelihood +0 -5
  614. lalapps/bin/lalapps_string_plot_binj +0 -5
  615. lalapps/bin/lalapps_string_plot_likelihood +0 -5
  616. lalapps/bin/lalburst_cluster +0 -5
  617. lalapps/bin/lalburst_coinc +0 -5
  618. lalapps/bin/lalburst_cut +0 -5
  619. lalapps/bin/lalburst_gen_timeslides +0 -5
  620. lalapps/bin/lalburst_inj_pic +0 -5
  621. lalapps/bin/lalburst_injfind +0 -5
  622. lalapps/bin/lalburst_plot_tisi +0 -5
  623. lalapps/bin/lalburst_power_calc_likelihood +0 -5
  624. lalapps/bin/lalburst_power_final +0 -5
  625. lalapps/bin/lalburst_power_meas_likelihood +0 -5
  626. lalapps/bin/lalburst_power_plot_binj +0 -5
  627. lalapps/bin/lalburst_power_plot_binjtf +0 -5
  628. lalapps/bin/lalinference_burst_pp_pipe +0 -5
  629. lalapps/bin/lalinference_coherence_test +0 -5
  630. lalapps/bin/lalinference_compute_roq_weights +0 -5
  631. lalapps/bin/lalinference_cpnest +0 -5
  632. lalapps/bin/lalinference_evolve_spins_and_append_samples +0 -5
  633. lalapps/bin/lalinference_kombine +0 -0
  634. lalapps/bin/lalinference_mcmc +0 -0
  635. lalapps/bin/lalinference_merge_posteriors +0 -5
  636. lalapps/bin/lalinference_multi_pipe +0 -5
  637. lalapps/bin/lalinference_nest2pos +0 -5
  638. lalapps/bin/lalinference_pipe +0 -5
  639. lalapps/bin/lalinference_pp_pipe +0 -5
  640. lalapps/bin/lalinference_review_test +0 -5
  641. lalapps/bin/lalinspiral_injfind +0 -5
  642. lalapps/bin/lalinspiral_thinca +0 -5
  643. lalapps/bin/lalpulsar_CopyPublicSFTs +0 -5
  644. lalapps/bin/lalpulsar_MakeSFTDAG +0 -5
  645. lalapps/bin/lalpulsar_combine_crosscorr_toplists +0 -5
  646. lalapps/bin/lalpulsar_create_solar_system_ephemeris +0 -0
  647. lalapps/bin/lalpulsar_create_solar_system_ephemeris_python +0 -5
  648. lalapps/bin/lalpulsar_knope +0 -5
  649. lalapps/bin/lalpulsar_knope_automation_script +0 -5
  650. lalapps/bin/lalpulsar_knope_collate_results +0 -5
  651. lalapps/bin/lalpulsar_knope_result_page +0 -5
  652. lalapps/bin/lalpulsar_run_crosscorr_v2 +0 -5
  653. lalapps/inspiral.py +0 -3394
  654. lalsuite-7.22.1.dev20240408.data/scripts/lal_cache +0 -9
  655. lalsuite-7.22.1.dev20240408.data/scripts/lal_fftw_wisdom +0 -9
  656. lalsuite-7.22.1.dev20240408.data/scripts/lal_fftwf_wisdom +0 -9
  657. lalsuite-7.22.1.dev20240408.data/scripts/lal_simd_detect +0 -9
  658. lalsuite-7.22.1.dev20240408.data/scripts/lal_tconvert +0 -9
  659. lalsuite-7.22.1.dev20240408.data/scripts/lal_version +0 -9
  660. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_ComputeAntennaPattern +0 -9
  661. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_ComputeFstatBenchmark +0 -9
  662. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_ComputeFstatLatticeCount +0 -9
  663. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_ComputeFstatMCUpperLimit +0 -9
  664. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_ComputeFstatistic_v2 +0 -9
  665. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_ComputePSD +0 -9
  666. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_CopySFTs +0 -9
  667. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_DistanceVsMass +0 -9
  668. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_DriveHoughMulti +0 -9
  669. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_FstatMetric_v2 +0 -9
  670. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_HierarchSearchGCT +0 -9
  671. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_HierarchicalSearch +0 -9
  672. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_MakeSFTDAG +0 -9
  673. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_MakeSFTs +0 -9
  674. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_Makefakedata_v4 +0 -9
  675. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_Makefakedata_v5 +0 -9
  676. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_PredictFstat +0 -9
  677. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_PrintDetectorState +0 -9
  678. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_SFTclean +0 -9
  679. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_SFTvalidate +0 -9
  680. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_StringAddFrame +0 -9
  681. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_StringSearch +0 -9
  682. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_Weave +0 -9
  683. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_WeaveCompare +0 -9
  684. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_WeaveConcat +0 -9
  685. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_WeaveSetup +0 -9
  686. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_WriteSFTsfromSFDBs +0 -9
  687. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_animate +0 -9
  688. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_binj +0 -9
  689. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_blindinj +0 -9
  690. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_cache +0 -9
  691. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_calcexpsnr +0 -9
  692. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_calfacs +0 -9
  693. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_cbc_stochasticbank +0 -9
  694. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_chirplen +0 -9
  695. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_coh_PTF_inspiral +0 -9
  696. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_coinj +0 -9
  697. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_combine_crosscorr_toplists +0 -9
  698. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_compareFstats +0 -9
  699. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_compareSFTs +0 -9
  700. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_create_solar_system_ephemeris +0 -9
  701. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_create_solar_system_ephemeris_python +0 -9
  702. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_dumpSFT +0 -9
  703. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_effdist +0 -9
  704. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_exc_resp +0 -9
  705. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_fftw_wisdom +0 -9
  706. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_fftwf_wisdom +0 -9
  707. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_fits_header_getval +0 -9
  708. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_fits_header_list +0 -9
  709. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_fits_overview +0 -9
  710. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_fits_table_list +0 -9
  711. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_fr_ninja +0 -9
  712. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_frextr +0 -9
  713. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_frinfo +0 -9
  714. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_frjoin +0 -9
  715. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_frread +0 -9
  716. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_frview +0 -9
  717. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_gwf2xml +0 -9
  718. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_heterodyne_pulsar +0 -9
  719. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_inspawgfile +0 -9
  720. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_inspfrinj +0 -9
  721. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_inspinj +0 -9
  722. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_inspiralDistance +0 -9
  723. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_knope +0 -9
  724. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_knope_automation_script +0 -9
  725. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_knope_collate_results +0 -9
  726. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_knope_result_page +0 -9
  727. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_makeblindinj +0 -9
  728. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_makeblindinj_himass +0 -9
  729. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_ninja +0 -9
  730. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_path2cache +0 -9
  731. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_power +0 -9
  732. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_pulsar_crosscorr_v2 +0 -9
  733. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_pulsar_frequency_evolution +0 -9
  734. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_random_bank +0 -9
  735. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_randombank +0 -9
  736. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_run_pulsar_crosscorr_v2 +0 -9
  737. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_searchsum2cache +0 -9
  738. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_spec_avg +0 -9
  739. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_spec_avg_long +0 -9
  740. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_spec_coherence +0 -9
  741. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_spininj +0 -9
  742. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_splitSFTs +0 -9
  743. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_splitbank +0 -9
  744. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_ssbtodetector +0 -9
  745. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_synthesizeBstatMC +0 -9
  746. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_synthesizeLVStats +0 -9
  747. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_synthesizeTransientStats +0 -9
  748. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_tconvert +0 -9
  749. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_tmpltbank +0 -9
  750. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_version +0 -9
  751. lalsuite-7.22.1.dev20240408.data/scripts/lalapps_xtefitstoframe +0 -9
  752. lalsuite-7.22.1.dev20240408.data/scripts/lalburst_version +0 -9
  753. lalsuite-7.22.1.dev20240408.data/scripts/lalfr-cat +0 -9
  754. lalsuite-7.22.1.dev20240408.data/scripts/lalfr-cksum +0 -9
  755. lalsuite-7.22.1.dev20240408.data/scripts/lalfr-cut +0 -9
  756. lalsuite-7.22.1.dev20240408.data/scripts/lalfr-dump +0 -9
  757. lalsuite-7.22.1.dev20240408.data/scripts/lalfr-fmt +0 -9
  758. lalsuite-7.22.1.dev20240408.data/scripts/lalfr-paste +0 -9
  759. lalsuite-7.22.1.dev20240408.data/scripts/lalfr-print +0 -9
  760. lalsuite-7.22.1.dev20240408.data/scripts/lalfr-split +0 -9
  761. lalsuite-7.22.1.dev20240408.data/scripts/lalfr-stat +0 -9
  762. lalsuite-7.22.1.dev20240408.data/scripts/lalfr-stream +0 -9
  763. lalsuite-7.22.1.dev20240408.data/scripts/lalfr-vis +0 -9
  764. lalsuite-7.22.1.dev20240408.data/scripts/lalframe_version +0 -9
  765. lalsuite-7.22.1.dev20240408.data/scripts/lalinference_bench +0 -9
  766. lalsuite-7.22.1.dev20240408.data/scripts/lalinference_burst +0 -9
  767. lalsuite-7.22.1.dev20240408.data/scripts/lalinference_datadump +0 -9
  768. lalsuite-7.22.1.dev20240408.data/scripts/lalinference_injectedlike +0 -9
  769. lalsuite-7.22.1.dev20240408.data/scripts/lalinference_kombine +0 -9
  770. lalsuite-7.22.1.dev20240408.data/scripts/lalinference_mcmc +0 -9
  771. lalsuite-7.22.1.dev20240408.data/scripts/lalinference_mpi_wrapper +0 -9
  772. lalsuite-7.22.1.dev20240408.data/scripts/lalinference_nest +0 -9
  773. lalsuite-7.22.1.dev20240408.data/scripts/lalinference_version +0 -9
  774. lalsuite-7.22.1.dev20240408.data/scripts/lalinspiral_version +0 -9
  775. lalsuite-7.22.1.dev20240408.data/scripts/lalmetaio_version +0 -9
  776. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_ComputeAntennaPattern +0 -9
  777. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_ComputeFstatBenchmark +0 -9
  778. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_ComputeFstatLatticeCount +0 -9
  779. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_ComputeFstatMCUpperLimit +0 -9
  780. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_ComputeFstatistic_v2 +0 -9
  781. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_ComputePSD +0 -9
  782. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_DriveHoughMulti +0 -9
  783. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_FstatMetric_v2 +0 -9
  784. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_HierarchSearchGCT +0 -9
  785. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_HierarchicalSearch +0 -9
  786. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_MakeSFTs +0 -9
  787. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_Makefakedata_v4 +0 -9
  788. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_Makefakedata_v5 +0 -9
  789. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_PredictFstat +0 -9
  790. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_PrintDetectorState +0 -9
  791. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_SFTclean +0 -9
  792. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_SFTvalidate +0 -9
  793. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_Weave +0 -9
  794. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_WeaveCompare +0 -9
  795. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_WeaveConcat +0 -9
  796. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_WeaveSetup +0 -9
  797. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_WriteSFTsfromSFDBs +0 -9
  798. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_combine_crosscorr_toplists +0 -114
  799. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_compareFstats +0 -9
  800. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_compareSFTs +0 -9
  801. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_create_solar_system_ephemeris +0 -9
  802. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_create_solar_system_ephemeris_python +0 -314
  803. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_crosscorr_v2 +0 -9
  804. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_dumpSFT +0 -9
  805. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_fits_header_getval +0 -9
  806. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_fits_header_list +0 -9
  807. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_fits_overview +0 -9
  808. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_fits_table_list +0 -9
  809. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_frequency_evolution +0 -9
  810. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_heterodyne +0 -9
  811. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_parameter_estimation_nested +0 -9
  812. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_run_crosscorr_v2 +0 -114
  813. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_spec_avg +0 -9
  814. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_spec_avg_long +0 -9
  815. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_spec_coherence +0 -9
  816. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_splitSFTs +0 -9
  817. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_ssbtodetector +0 -9
  818. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_synthesizeBstatMC +0 -9
  819. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_synthesizeLVStats +0 -9
  820. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_synthesizeTransientStats +0 -9
  821. lalsuite-7.22.1.dev20240408.data/scripts/lalpulsar_version +0 -9
  822. lalsuite-7.22.1.dev20240408.data/scripts/lalsim-bh-qnmode +0 -9
  823. lalsuite-7.22.1.dev20240408.data/scripts/lalsim-bh-ringdown +0 -9
  824. lalsuite-7.22.1.dev20240408.data/scripts/lalsim-bh-sphwf +0 -9
  825. lalsuite-7.22.1.dev20240408.data/scripts/lalsim-burst +0 -9
  826. lalsuite-7.22.1.dev20240408.data/scripts/lalsim-detector-noise +0 -9
  827. lalsuite-7.22.1.dev20240408.data/scripts/lalsim-detector-strain +0 -9
  828. lalsuite-7.22.1.dev20240408.data/scripts/lalsim-inject +0 -9
  829. lalsuite-7.22.1.dev20240408.data/scripts/lalsim-inspiral +0 -9
  830. lalsuite-7.22.1.dev20240408.data/scripts/lalsim-ns-eos-table +0 -9
  831. lalsuite-7.22.1.dev20240408.data/scripts/lalsim-ns-mass-radius +0 -9
  832. lalsuite-7.22.1.dev20240408.data/scripts/lalsim-ns-params +0 -9
  833. lalsuite-7.22.1.dev20240408.data/scripts/lalsim-sgwb +0 -9
  834. lalsuite-7.22.1.dev20240408.data/scripts/lalsim-unicorn +0 -9
  835. lalsuite-7.22.1.dev20240408.data/scripts/lalsimulation_version +0 -9
  836. lalsuite-7.22.1.dev20240408.dist-info/RECORD +0 -801
  837. lalsuite.libs/libcfitsio-532e331a.so.9.4.1.0 +0 -0
  838. lalsuite.libs/libframel-aeb609a2.so.8.43.1 +0 -0
  839. lalsuite.libs/libgslcblas-54d609c0.so.0.0.0 +0 -0
  840. lalsuite.libs/libhdf5-ea33c527.so.310.1.0 +0 -0
  841. lalsuite.libs/libhdf5_hl-0d80d0b5.so.310.0.1 +0 -0
  842. lalsuite.libs/libhwloc-8ede5728.so.15.2.0 +0 -0
  843. lalsuite.libs/liblal-64dd038b.so.20.3.3 +0 -0
  844. lalsuite.libs/liblalframe-fbdbee2a.so.14.0.1 +0 -0
  845. lalsuite.libs/liblalinference-23be231c.so.23.1.4 +0 -0
  846. lalsuite.libs/liblalinspiral-c9370bff.so.18.0.0 +0 -0
  847. lalsuite.libs/liblalpulsar-81ec7d94.so.29.0.4 +0 -0
  848. lalsuite.libs/liblalsupport-58f59a0d.so.14.2.0 +0 -0
  849. lalsuite.libs/libmetaio-2ada2150.so.1.1.0 +0 -0
  850. lalsuite.libs/libmpi-917c0d24.so.12.1.11 +0 -0
  851. {lalsuite-7.22.1.dev20240408.dist-info → lalsuite-7.26.2.dev20251202.dist-info/licenses}/COPYING +0 -0
  852. {lalsuite-7.22.1.dev20240408.dist-info → lalsuite-7.26.2.dev20251202.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,5 @@
1
1
  #!python
2
- ##(in place of shebang, for consistent line numbers)
3
- # Copyright (C) 2013, 2014, 2020--2022 Evan Goetz
2
+ # Copyright (C) 2013, 2014, 2020--2024 Evan Goetz
4
3
  # Copyright (C) 2011, 2021, 2022 Karl Wette
5
4
  # Copyright (C) 2005, 2007 Gregory Mendell
6
5
  #
@@ -19,19 +18,35 @@
19
18
  # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
19
  # MA 02110-1301 USA
21
20
 
21
+ ## \file
22
+ ## \ingroup lalpulsar_bin_SFTTools
22
23
  """Creates DAGs to run jobs that generates SFTs"""
23
24
 
24
25
  import math
25
26
  import argparse
26
27
  import os
27
28
  import re
29
+ from pathlib import Path
30
+ from urllib.parse import urlparse
28
31
 
29
- from lalpulsar import git_version
32
+ from gwdatafind import find_urls
33
+ from gwdatafind.utils import filename_metadata, file_segment
34
+
35
+ from igwn_segments import segment, segmentlist
36
+
37
+ from lalpulsar import (
38
+ git_version,
39
+ SFTFilenameSpec,
40
+ FillSFTFilenameSpecStrings,
41
+ BuildSFTFilenameFromSpec,
42
+ )
30
43
 
31
44
  __author__ = "Evan Goetz <evan.goetz@ligo.org>, Greg Mendell"
32
45
  __version__ = git_version.id
33
46
  __date__ = git_version.date
34
47
 
48
+ cache_re = re.compile(r"^([A-Z])(\s+)(\w+)(\s+)(\d+)(\s+)(\d+)(\s+)(.+gwf)")
49
+
35
50
 
36
51
  # REVISIONS:
37
52
  # 12/02/05 gam; generate datafind.sub and MakeSFTs.sub as well as dag file in
@@ -69,23 +84,139 @@ __date__ = git_version.date
69
84
  # 11/2022 kww; -R command line option now used for --observing-revision
70
85
  # instead of --output-jobs-per-node, which now uses -r
71
86
  # 11/2022 kww; --datafind-path and --makesfts-path accept executable names
87
+ # 03/2023 eag; Allow user to pass a frame cache file --cache-file
88
+ # 04/2023 kww; Improve documentation of --window-type argument
89
+ # 05/2023 eag; Add the --gaps flag to gw_data_find
90
+ # 08/2023 eag; Allow for multiple channel names to be provided
91
+ # 09/2023 eag; Modify use of environment variables
92
+ # 01/2024 eag; Allow skipping of channels if not in frames or too low data
93
+ # rate
94
+ # 10/2024 eag; Modify workflow for version 3 SFTs and HTCondor file transfer
95
+ # workflow
96
+ # 12/2024 eag; Modify workflow to use lalpulsar_MoveSFTs script instead of
97
+ # remapping files
98
+ # 03/2025 eag; Rewrite to generate cache files running lalpulsar_MakeSFTDAG
99
+ # enabling frame files on /home or OSDF
100
+
101
+
102
+ def sft_name_from_vars(
103
+ obs,
104
+ gpsstart,
105
+ Tsft,
106
+ channel=None,
107
+ kind=None,
108
+ rev=None,
109
+ window="unknown",
110
+ par=None,
111
+ miscstr=None,
112
+ ):
113
+ """Create SFT file name from specification"""
114
+
115
+ spec = SFTFilenameSpec()
116
+
117
+ FillSFTFilenameSpecStrings(
118
+ spec=spec,
119
+ path=None,
120
+ extn=None,
121
+ detector=channel[:2],
122
+ window_type=window,
123
+ privMisc=miscstr,
124
+ pubObsKind=kind,
125
+ pubChannel=channel,
126
+ )
127
+ spec.pubObsRun = obs or 0
128
+ spec.pubRevision = rev or 0
129
+ spec.window_param = par or 0
130
+ spec.numSFTs = 1 # MakeSFTDAG will only ever generate 1 SFT per file
131
+ spec.SFTtimebase = Tsft
132
+ spec.gpsStart = gpsstart
133
+ spec.SFTspan = Tsft # MakeSFTDAG will only ever generate 1 SFT per file
72
134
 
135
+ return BuildSFTFilenameFromSpec(spec)
136
+
137
+
138
+ def get_urls(args):
139
+ """Get frame file URL list from gwdatafind or cache file"""
140
+
141
+ if not args.cache_file:
142
+ urls = find_urls(
143
+ site,
144
+ args.input_data_type,
145
+ segList[0][0],
146
+ segList[-1][-1],
147
+ match=args.datafind_match,
148
+ urltype=args.datafind_urltype,
149
+ )
150
+ else:
151
+ urls = []
152
+ with open(args.cache_file, "r") as f:
153
+ for line in f:
154
+ m = cache_re.match(line)
155
+ if m:
156
+ framefile = m.group(9)
157
+ urls.append(framefile)
158
+
159
+ # sort the urls by gps time since find_urls() may not return a sorted list
160
+ sorted_urls = sorted(urls, key=lambda x: file_segment(x)[0])
161
+
162
+ return sorted_urls
163
+
164
+
165
+ def make_cache(
166
+ urls,
167
+ job_seg,
168
+ ):
169
+ """Make a frame list and cache list from a list of URLs"""
170
+
171
+ cache = [] # list of lines for the cache file
172
+ frames = [] # list of frame filenames used in the job
173
+ for idx, url in enumerate(urls):
174
+ obs, desc, dataseg = filename_metadata(url)
175
+ dataseg = segment(dataseg)
176
+ if dataseg.disjoint(job_seg) < 0:
177
+ continue
178
+ if dataseg.disjoint(job_seg) > 0:
179
+ break
180
+ if dataseg.intersects(job_seg):
181
+ framefileurl = urlparse(url)
182
+ framefilepath = Path(framefileurl.path)
183
+
184
+ # list in cache file if files not visible on execute node
185
+ # otherwise use file url
186
+ if "/home" in str(framefilepath.parent) or "osdf" in framefileurl.scheme:
187
+ newcache = (
188
+ f"{obs}\t{desc}\t{dataseg[0]}\t{abs(dataseg)}\t{framefilepath.name}"
189
+ )
190
+ else:
191
+ newcache = f"{obs}\t{desc}\t{dataseg[0]}\t{abs(dataseg)}\t{url}"
192
+ cache.append(newcache)
193
+
194
+ if "/home" in str(framefilepath.parent):
195
+ frames.append(framefilepath)
196
+ else:
197
+ frames.append(url)
198
+
199
+ return frames, cache
200
+
201
+
202
+ def writeToDag(dagFID, nodeCount, startTimeThisNode, endTimeThisNode, urls, args):
203
+ """Write one job to DAG file"""
73
204
 
74
- #
75
- # FUNCTION THAT WRITE ONE JOB TO DAG FILE
76
- #
77
- def writeToDag(dagFID, nodeCount, startTimeThisNode, endTimeThisNode, site, args):
78
- datafind = f"datafind_{nodeCount}"
79
205
  MakeSFTs = f"MakeSFTs_{nodeCount}"
80
- startTimeDatafind = startTimeThisNode - args.extra_datafind_time
81
- endTimeDatafind = endTimeThisNode + args.extra_datafind_time
82
206
  tagStringOut = f"{args.tag_string}_{nodeCount}"
83
- if args.cache_file:
84
- cacheFile = args.cache_file
85
- else:
86
- cacheFile = (
87
- f"{args.cache_path}/{site}-{startTimeDatafind}-{endTimeDatafind}.cache"
88
- )
207
+
208
+ job_segment = segment(
209
+ startTimeThisNode - args.extra_datafind_time,
210
+ endTimeThisNode + args.extra_datafind_time,
211
+ )
212
+
213
+ frames, cache = make_cache(urls, job_segment)
214
+
215
+ obs, desc, dataseg = filename_metadata(urls[0])
216
+ cacheFile = args.cache_path / f"{obs}-{job_segment[0]}-{job_segment[1]}.cache"
217
+ with open(cacheFile, "w") as f:
218
+ for l in cache:
219
+ f.write(f"{l}\n")
89
220
 
90
221
  argList = []
91
222
  argList.append(f"-O {args.observing_run}")
@@ -96,8 +227,14 @@ def writeToDag(dagFID, nodeCount, startTimeThisNode, endTimeThisNode, site, args
96
227
  argList.append(f"-X {args.misc_desc}")
97
228
  argList.append(f"-f {args.filter_knee_freq}")
98
229
  argList.append(f"-t {args.time_baseline}")
99
- argList.append(f"-p {','.join(args.output_sft_path)}")
100
- argList.append(f"-C {cacheFile}")
230
+ # To work with the condor file transfer protocol, we save everything to the
231
+ # scratch directory because the files will have unique names. Since
232
+ # lalpulsar_MakeSFTs wants to have a path to save the file to, we provide .
233
+ argList.append(f"-p {','.join(['.' for p in args.output_sft_path])}")
234
+ # To work with the condor file transfer protocol, the cache file is saved
235
+ # to the scratch directory on transfer so we just need the name, not the
236
+ # full path
237
+ argList.append(f"-C {cacheFile.name}")
101
238
  argList.append(f"-s {startTimeThisNode}")
102
239
  argList.append(f"-e {endTimeThisNode}")
103
240
  argList.append(f"-N {','.join(args.channel_name)}")
@@ -105,36 +242,59 @@ def writeToDag(dagFID, nodeCount, startTimeThisNode, endTimeThisNode, site, args
105
242
  argList.append(f"-B {args.band}")
106
243
  if args.comment_field:
107
244
  argList.append(f"-c {args.comment_field}")
108
- if args.window_type:
109
- if ":" in args.window_type:
110
- window_type, window_param = args.window_type.split(":")
111
- argList.append(f"-w {window_type} -r {window_param}")
112
- else:
113
- argList.append(f"-w {args.window_type}")
245
+ if ":" in args.window_type:
246
+ window_type, window_param = args.window_type.split(":")
247
+ window_param = float(window_param)
248
+ argList.append(f"-w {window_type} -r {window_param}")
249
+ else:
250
+ window_type = args.window_type
251
+ window_param = None
252
+ argList.append(f"-w {window_type}")
114
253
  if args.overlap_fraction:
115
254
  argList.append(f"-P {args.overlap_fraction}")
116
255
  if args.allow_skipping:
117
256
  argList.append("--allow-skipping TRUE")
118
257
  argStr = " ".join(argList)
119
258
 
120
- # gw_data_find job
121
- if not args.cache_file:
122
- dagFID.write(
123
- f"JOB {datafind} {os.path.join(os.path.dirname(dagFID.name), 'datafind.sub')}\n"
124
- )
125
- dagFID.write(f"RETRY {datafind} 1\n")
126
- dagFID.write(
127
- f'VARS {datafind} gpsstarttime="{startTimeDatafind}" gpsendtime="{endTimeDatafind}" observatory="{site}" inputdatatype="{args.input_data_type}" tagstring="{tagStringOut}"\n'
128
- )
259
+ # The files are going to go to specific directories, so we need to map
260
+ # the files to their output directories
261
+ outputfiles = []
262
+ remap = []
263
+ sft_start = startTimeThisNode
264
+ sft_end = sft_start + args.time_baseline
265
+ # loop over start times
266
+ while sft_end <= endTimeThisNode:
267
+ # loop over channels
268
+ for idx, c in enumerate(args.channel_name):
269
+ filename = sft_name_from_vars(
270
+ args.observing_run,
271
+ sft_start,
272
+ args.time_baseline,
273
+ c,
274
+ kind=args.observing_kind,
275
+ rev=args.observing_revision,
276
+ window=window_type,
277
+ par=window_param,
278
+ miscstr=args.misc_desc,
279
+ )
280
+ outputfiles.append(filename)
281
+ remap.append(f"{filename}={args.output_sft_path[idx]/filename}")
282
+
283
+ # update start and end times
284
+ if args.overlap_fraction:
285
+ sft_start += int(round((1 - args.overlap_fraction) * args.time_baseline))
286
+ else:
287
+ sft_start += args.time_baseline
288
+ sft_end = sft_start + args.time_baseline
129
289
 
130
290
  # MakeSFT job
131
- dagFID.write(
132
- f"JOB {MakeSFTs} {os.path.join(os.path.dirname(dagFID.name), 'MakeSFTs.sub')}\n"
133
- )
291
+ dagFID.write(f"JOB {MakeSFTs} {Path(dagFID.name).parent / 'MakeSFTs.sub'}\n")
134
292
  dagFID.write(f"RETRY {MakeSFTs} 1\n")
135
- dagFID.write(f'VARS {MakeSFTs} argList="{argStr}" tagstring="{tagStringOut}"\n')
136
- if not args.cache_file:
137
- dagFID.write(f"PARENT {datafind} CHILD {MakeSFTs}\n")
293
+ dagFID.write(f'VARS {MakeSFTs} argList="{argStr}" cachefile="{cacheFile}" ')
294
+ if args.transfer_frame_files:
295
+ framefiles = ",".join([str(fr) for fr in frames])
296
+ dagFID.write(f'framefiles="{framefiles}" ')
297
+ dagFID.write(f'tagstring="{tagStringOut}"\n')
138
298
 
139
299
 
140
300
  #
@@ -142,76 +302,157 @@ def writeToDag(dagFID, nodeCount, startTimeThisNode, endTimeThisNode, site, args
142
302
  #
143
303
 
144
304
  parser = argparse.ArgumentParser(
145
- description="This script creates datafind.sub, MakeSFTs.sub, and a dag \
305
+ description="This script creates MakeSFTs.sub, MoveSFTs.sub, and a dag \
146
306
  file that generates SFTs based on the options given.",
147
307
  fromfile_prefix_chars="@",
148
308
  )
149
- parser.add_argument(
150
- "-O",
151
- "--observing-run",
152
- required=True,
153
- type=int,
154
- help="For public SFTs, observing run data the SFTs are generated from, or \
155
- (in the case of mock data challenge data) the observing \
156
- run on which the data is most closely based",
309
+
310
+ dag_group = parser.add_argument_group(
311
+ "DAG organization", "Options for workflow control"
157
312
  )
158
- parser.add_argument(
159
- "-K",
160
- "--observing-kind",
161
- type=str,
162
- choices=["RUN", "AUX", "SIM", "DEV"],
163
- help='For public SFTs, one of: "RUN" for production SFTs of h(t) channels; \
164
- "AUX" for SFTs of non-h(t) channels; \
165
- "SIM" for mock data challenge or other simulated data; or \
166
- "DEV" for development/testing purposes',
313
+ datafind_group = parser.add_argument_group(
314
+ "Datafind", "Options for locating frame files"
167
315
  )
168
- parser.add_argument(
169
- "-R",
170
- "--observing-revision",
171
- type=int,
172
- help="For public SFTs: revision number starts at 1, and should be incremented once \
173
- SFTs have been widely distributed across clusters, advertised \
174
- as being ready for use, etc. For example, if mistakes are found \
175
- in the initial SFT production run after they have been published, \
176
- regenerated SFTs should have a revision number of at least 2",
316
+ makesfts_group = parser.add_argument_group(
317
+ "SFT creation", "Options for SFT creation and output"
177
318
  )
178
- parser.add_argument(
179
- "-X",
180
- "--misc-desc",
319
+ deprecated_group = parser.add_argument_group("DEPRECATED")
320
+
321
+ dag_group.add_argument(
322
+ "-f",
323
+ "--dag-file",
324
+ required=True,
325
+ type=Path,
326
+ help="filename for .dag file (should end in .dag)",
327
+ )
328
+ dag_group.add_argument(
329
+ "-G",
330
+ "--tag-string",
331
+ required=True,
181
332
  type=str,
182
- help="For private SFTs, miscellaneous part of the SFT \
183
- description field in the filename",
333
+ help="tag string used in names of various files unique to \
334
+ jobs that will run under the DAG",
184
335
  )
185
- parser.add_argument(
336
+ dag_group.add_argument(
186
337
  "-a",
187
338
  "--analysis-start-time",
188
339
  type=int,
189
340
  help="GPS start time of data from which to generate \
190
341
  SFTs (optional and unused if a segment file is given)",
191
342
  )
192
- parser.add_argument(
343
+ dag_group.add_argument(
193
344
  "-b",
194
345
  "--analysis-end-time",
195
346
  type=int,
196
347
  help="GPS end time of data from which to generate SFTs \
197
348
  (optional and unused if a segment file is given)",
198
349
  )
199
- parser.add_argument(
200
- "-f",
201
- "--dag-file",
350
+ dag_group.add_argument(
351
+ "-L",
352
+ "--max-length-all-jobs",
353
+ type=int,
354
+ help="maximum total amount of data to process, in seconds \
355
+ (optional and unused if a segment file is given)",
356
+ )
357
+ dag_group.add_argument(
358
+ "-g",
359
+ "--segment-file",
360
+ type=Path,
361
+ help="alternative file with segments to use, rather than \
362
+ the input times",
363
+ )
364
+ dag_group.add_argument(
365
+ "-l",
366
+ "--min-seg-length",
367
+ type=int,
368
+ default=0,
369
+ help="minimum length segments to process in seconds (used \
370
+ only if a segment file is given)",
371
+ )
372
+ dag_group.add_argument(
373
+ "-y",
374
+ "--synchronize-start",
375
+ action="store_true",
376
+ help="synchronize the start times of the SFTs so that the \
377
+ start times are synchronized when there are gaps in the \
378
+ data",
379
+ )
380
+ dag_group.add_argument(
381
+ "-o",
382
+ "--log-path",
383
+ type=Path,
384
+ default="logs",
385
+ help="path to log, output, and error files (default \
386
+ is $PWD/logs; this directory is created if it does not \
387
+ exist and usually should be under a local file system)",
388
+ )
389
+ dag_group.add_argument(
390
+ "-m",
391
+ "--max-num-per-node",
392
+ type=int,
393
+ default=1,
394
+ help="maximum number of SFTs to generate on one node",
395
+ )
396
+ dag_group.add_argument(
397
+ "-J",
398
+ "--makesfts-path",
399
+ type=Path,
400
+ help="string specifying the lalpulsar_MakeSFTs executable, \
401
+ or a path to it; if not set, will use \
402
+ MAKESFTS_PATH env variable or system default (in that \
403
+ order)",
404
+ )
405
+ dag_group.add_argument(
406
+ "--movesfts-path",
407
+ type=Path,
408
+ help="string specifying the lalpulsar_MoveSFTs executable, \
409
+ or a path to it; if not set, will use \
410
+ MOVESFTS_PATH env variable or system default (in that \
411
+ order)",
412
+ )
413
+ dag_group.add_argument(
414
+ "-Y",
415
+ "--request-memory",
416
+ type=int,
417
+ default=4096,
418
+ help="memory allocation in MB to request from condor for \
419
+ lalpulsar_MakeSFTs step",
420
+ )
421
+ dag_group.add_argument(
422
+ "-s",
423
+ "--request-disk",
424
+ type=int,
425
+ default=4096,
426
+ help="disk space allocation in MB to request from condor \
427
+ for lalpulsar_MakeSFTs step",
428
+ )
429
+ dag_group.add_argument(
430
+ "-A",
431
+ "--accounting-group",
202
432
  required=True,
203
433
  type=str,
204
- help="filename for .dag file (should end in .dag)",
434
+ help="Condor tag for the production of SFTs",
205
435
  )
206
- parser.add_argument(
207
- "-G",
208
- "--tag-string",
436
+ dag_group.add_argument(
437
+ "-U",
438
+ "--accounting-group-user",
209
439
  required=True,
210
440
  type=str,
211
- help="tag string used in names of various files unique to \
212
- jobs that will run under the DAG",
441
+ help="albert.einstein username (do not add @LIGO.ORG)",
442
+ )
443
+ dag_group.add_argument(
444
+ "-t",
445
+ "--transfer-frame-files",
446
+ action="store_true",
447
+ help="Transfer frame files via HTCondor file transfer system. \
448
+ This should be specified if frames are not visible to the \
449
+ compute node file system. Ex. this should be specified if \
450
+ frames are on /home or running on the open science grid. \
451
+ Usually frame files are visible on CIT, LHO, LLO clusters \
452
+ so that this does not need to be specified in that case.",
213
453
  )
214
- parser.add_argument(
454
+
455
+ datafind_group.add_argument(
215
456
  "-d",
216
457
  "--input-data-type",
217
458
  required=True,
@@ -219,7 +460,7 @@ parser.add_argument(
219
460
  help="input data type for use with the gw_data_find --type \
220
461
  option",
221
462
  )
222
- parser.add_argument(
463
+ datafind_group.add_argument(
223
464
  "-x",
224
465
  "--extra-datafind-time",
225
466
  type=int,
@@ -227,95 +468,136 @@ parser.add_argument(
227
468
  help="extra time to subtract/add from/to start/end time \
228
469
  arguments of gw_data_find",
229
470
  )
230
- parser.add_argument(
471
+ datafind_group.add_argument(
231
472
  "-M",
232
473
  "--datafind-match",
233
474
  type=str,
234
475
  help="string to use with the gw_data_find --match option",
235
476
  )
236
- parser.add_argument(
237
- "-y",
238
- "--synchronize-start",
239
- action="store_true",
240
- help="synchronize the start times of the SFTs so that the \
241
- start times are synchronized when there are gaps in the \
242
- data",
477
+ datafind_group.add_argument(
478
+ "--datafind-urltype",
479
+ type=str,
480
+ default="file",
481
+ choices=["file", "osdf"],
482
+ help="String for the gw_data_find --urltype option. \
483
+ Use 'file' if creating SFTs on a local LDG cluster. \
484
+ Use 'osdf' if creating SFTs on the open science grid",
485
+ )
486
+ datafind_group.add_argument(
487
+ "-e",
488
+ "--cache-file",
489
+ type=Path,
490
+ help="path and filename to frame cache file to use instead \
491
+ of gw_data_find",
243
492
  )
244
- parser.add_argument(
493
+
494
+ makesfts_group.add_argument(
495
+ "-O",
496
+ "--observing-run",
497
+ required=True,
498
+ type=int,
499
+ help="For public SFTs, observing run data the SFTs are generated from, or \
500
+ (in the case of mock data challenge data) the observing \
501
+ run on which the data is most closely based",
502
+ )
503
+ makesfts_group.add_argument(
504
+ "-K",
505
+ "--observing-kind",
506
+ type=str,
507
+ choices=["RUN", "AUX", "SIM", "DEV"],
508
+ help='For public SFTs, one of: "RUN" for production SFTs of h(t) channels; \
509
+ "AUX" for SFTs of non-h(t) channels; \
510
+ "SIM" for mock data challenge or other simulated data; or \
511
+ "DEV" for development/testing purposes',
512
+ )
513
+ makesfts_group.add_argument(
514
+ "-R",
515
+ "--observing-revision",
516
+ type=int,
517
+ help="For public SFTs: revision number starts at 1, and should be incremented once \
518
+ SFTs have been widely distributed across clusters, advertised \
519
+ as being ready for use, etc. For example, if mistakes are found \
520
+ in the initial SFT production run after they have been published, \
521
+ regenerated SFTs should have a revision number of at least 2",
522
+ )
523
+ makesfts_group.add_argument(
524
+ "-X",
525
+ "--misc-desc",
526
+ type=str,
527
+ help="For private SFTs, miscellaneous part of the SFT \
528
+ description field in the filename",
529
+ )
530
+ makesfts_group.add_argument(
245
531
  "-k",
246
532
  "--filter-knee-freq",
247
533
  required=True,
248
- type=int,
534
+ type=float,
249
535
  help="high pass filter knee frequency used on time domain \
250
536
  data before generating SFTs",
251
537
  )
252
- parser.add_argument(
538
+ makesfts_group.add_argument(
253
539
  "-T",
254
540
  "--time-baseline",
255
541
  required=True,
256
542
  type=int,
257
543
  help="time baseline of SFTs (e.g., 60 or 1800 seconds)",
258
544
  )
259
- parser.add_argument(
260
- "-p", "--output-sft-path", nargs="+", type=str, help="path to output SFTs"
545
+ makesfts_group.add_argument(
546
+ "-p",
547
+ "--output-sft-path",
548
+ nargs="+",
549
+ type=Path,
550
+ help="Path where to save the SFT files. Can specify multiple options, \
551
+ If specifying multiple options then it is required to specify the \
552
+ same number of output-sft-path options as the number of channels. \
553
+ The first listed channel will have the SFTs go into the first \
554
+ listed output-sft-path. Otherwise specify only one output path. \
555
+ If one path is specified and more than 1 channels are specified \
556
+ then --observing-run must be >= 1 and --observing-kind and \
557
+ --observing-revision must be set",
261
558
  )
262
- parser.add_argument(
559
+ makesfts_group.add_argument(
263
560
  "-C",
264
561
  "--cache-path",
265
- type=str,
562
+ type=Path,
266
563
  default="cache",
267
564
  help="path to cache files that will be produced by \
268
565
  gw_data_find (default is $PWD/cache; this directory is \
269
566
  created if it does not exist and must agree with that \
270
567
  given in .sub files)",
271
568
  )
272
- parser.add_argument(
273
- "-e",
274
- "--cache-file",
275
- type=str,
276
- help="path and filename to frame cache file to use instead \
277
- of gw_data_find",
278
- )
279
- parser.add_argument(
280
- "-o",
281
- "--log-path",
282
- type=str,
283
- default="logs",
284
- help="path to log, output, and error files (default \
285
- is $PWD/logs; this directory is created if it does not \
286
- exist and usually should be under a local file system)",
287
- )
288
- parser.add_argument(
569
+ makesfts_group.add_argument(
289
570
  "-N",
290
571
  "--channel-name",
291
572
  nargs="+",
292
573
  type=str,
293
- help="name of input time-domain channel to read from \
294
- frames",
574
+ help="Name of input time-domain channel to read from frames. \
575
+ Can specify multiple options. The number of channels must be \
576
+ equal to the number of output-sft-path options given. The \
577
+ first listed channel will have the SFTs go to the first listed \
578
+ output-sft-path. Can only specify one channel when generating \
579
+ private SFTs (--observing-run=0)",
295
580
  )
296
- parser.add_argument(
297
- "--allow-skipping",
298
- action="store_true",
299
- help="allow channels to be skipped if not in frames or too low sampling \
300
- frequency",
581
+ makesfts_group.add_argument(
582
+ "-c", "--comment-field", type=str, help="comment for SFT header"
301
583
  )
302
- parser.add_argument("-c", "--comment-field", type=str, help="comment for SFT header")
303
- parser.add_argument(
584
+ makesfts_group.add_argument(
304
585
  "-F", "--start-freq", type=int, default=10, help="start frequency of the SFTs"
305
586
  )
306
- parser.add_argument(
587
+ makesfts_group.add_argument(
307
588
  "-B", "--band", type=int, default=1990, help="frequency band of the SFTs"
308
589
  )
309
- parser.add_argument(
590
+ makesfts_group.add_argument(
310
591
  "-w",
311
592
  "--window-type",
312
593
  type=str,
594
+ default="tukey:0.001",
313
595
  help='type of windowing of time-domain to do \
314
596
  before generating SFTs, e.g. "rectangular", \
315
597
  "hann", "tukey:<beta in [0,1], required>"; \
316
- if unspecified use lalpulsar_MakeSFTs defaults',
598
+ (default is "tukey:0.001", standard choice for LVK production SFTs)',
317
599
  )
318
- parser.add_argument(
600
+ makesfts_group.add_argument(
319
601
  "-P",
320
602
  "--overlap-fraction",
321
603
  type=float,
@@ -323,112 +605,19 @@ parser.add_argument(
323
605
  help="overlap fraction (for use with windows; e.g., use \
324
606
  --overlap-fraction 0.5 with --window-type hann windows)",
325
607
  )
326
- parser.add_argument(
327
- "-m",
328
- "--max-num-per-node",
329
- type=int,
330
- default=1,
331
- help="maximum number of SFTs to generate on one node",
332
- )
333
- parser.add_argument(
334
- "-L",
335
- "--max-length-all-jobs",
336
- type=int,
337
- help="maximum total amount of data to process, in seconds \
338
- (optional and unused if a segment file is given)",
339
- )
340
- parser.add_argument(
341
- "-g",
342
- "--segment-file",
343
- type=str,
344
- help="alternative file with segments to use, rather than \
345
- the input times",
346
- )
347
- parser.add_argument(
348
- "-l",
349
- "--min-seg-length",
350
- type=int,
351
- default=0,
352
- help="minimum length segments to process in seconds (used \
353
- only if a segment file is given)",
354
- )
355
- parser.add_argument(
356
- "-q",
357
- "--list-of-nodes",
358
- type=str,
359
- help="file with list of nodes on which to output SFTs",
360
- )
361
- parser.add_argument(
362
- "-Q",
363
- "--node-path",
364
- type=str,
365
- help="path to nodes to output SFTs; the node name is \
366
- appended to this path, followed by path given by the -p \
367
- option; for example, if -q point to file with the list \
368
- node1 node2 ... and the -Q /data/ -p /frames/S5/sfts/LHO \
369
- options are given, the first output file will go into \
370
- /data/node1/frames/S5/sfts/LHO; the next node in the list \
371
- is used in constructing the path when the number of jobs \
372
- given by the -r option reached, and so on",
373
- )
374
- parser.add_argument(
375
- "-r",
376
- "--output-jobs-per-node",
377
- type=int,
378
- default=0,
379
- help="number of jobs to output per node in the list of \
380
- nodes given with the -q option",
381
- )
382
- parser.add_argument(
383
- "-j",
384
- "--datafind-path",
385
- type=str,
386
- help="string specifying the gw_data_find executable, \
387
- or a path to it; if not set, will use \
388
- LSC_DATAFIND_PATH env variable or system default (in \
389
- that order)",
390
- )
391
- parser.add_argument(
392
- "-J",
393
- "--makesfts-path",
394
- type=str,
395
- help="string specifying the lalpulsar_MakeSFTs executable, \
396
- or a path to it; if not set, will use \
397
- MAKESFTS_PATH env variable or system default (in that \
398
- order)",
399
- )
400
- parser.add_argument(
401
- "-Y",
402
- "--request-memory",
403
- type=int,
404
- default=2048,
405
- help="memory allocation in MB to request from condor for \
406
- lalpulsar_MakeSFTs step",
407
- )
408
- parser.add_argument(
409
- "-s",
410
- "--request-disk",
411
- type=int,
412
- default=1024,
413
- help="disk space allocation in MB to request from condor \
414
- for lalpulsar_MakeSFTs step",
608
+ makesfts_group.add_argument(
609
+ "--allow-skipping",
610
+ action="store_true",
611
+ help="allow channels to be skipped if not in frames or too low sampling \
612
+ frequency",
415
613
  )
416
- parser.add_argument(
417
- "-A",
418
- "--accounting-group",
419
- required=True,
420
- type=str,
421
- help="Condor tag for the production of SFTs",
422
- )
423
- parser.add_argument(
424
- "-U",
425
- "--accounting-group-user",
426
- required=True,
427
- type=str,
428
- help="albert.einstein username (do not add @LIGO.ORG)",
614
+ makesfts_group.add_argument(
615
+ "--no-validate",
616
+ dest="validate",
617
+ action="store_false",
618
+ help="do not validate created SFTs",
429
619
  )
430
620
 
431
-
432
621
  ##### DEPRECATED OPTIONS #####
433
622
  class DeprecateAction(argparse.Action):
434
623
  def __call__(self, parser, namespace, values, option_string=None):
@@ -437,7 +626,7 @@ class DeprecateAction(argparse.Action):
437
626
  )
438
627
 
439
628
 
440
- parser.add_argument(
629
+ deprecated_group.add_argument(
441
630
  "-u",
442
631
  "--frame-struct-type",
443
632
  nargs=0,
@@ -445,15 +634,15 @@ parser.add_argument(
445
634
  help="DEPRECATED. No longer required; \
446
635
  the frame channel type is determined automatically",
447
636
  )
448
- parser.add_argument(
637
+ deprecated_group.add_argument(
449
638
  "-H",
450
- "--use-hot",
639
+ "--use-hoft",
451
640
  nargs=0,
452
641
  action=DeprecateAction,
453
642
  help="DEPRECATED. No longer required; \
454
643
  the frame channel type is determined automatically",
455
644
  )
456
- parser.add_argument(
645
+ deprecated_group.add_argument(
457
646
  "-i",
458
647
  "--ifo",
459
648
  nargs=0,
@@ -461,158 +650,160 @@ parser.add_argument(
461
650
  help="DEPRECATED. No longer required; \
462
651
  the detector prefix is deduced from the channel name",
463
652
  )
464
- parser.add_argument(
653
+ deprecated_group.add_argument(
465
654
  "-D",
466
655
  "--make-gps-dirs",
467
656
  nargs=0,
468
657
  action=DeprecateAction,
469
658
  help="DEPRECATED. No longer supported",
470
659
  )
471
- parser.add_argument(
660
+ deprecated_group.add_argument(
472
661
  "-Z",
473
662
  "--make-tmp-file",
474
663
  nargs=0,
475
664
  action=DeprecateAction,
476
665
  help="DEPRECATED. Default behaviour",
477
666
  )
478
- parser.add_argument(
667
+ deprecated_group.add_argument(
479
668
  "-v",
480
669
  "--sft-version",
481
670
  nargs=0,
482
671
  action=DeprecateAction,
483
672
  help="DEPRECATED. No longer supported",
484
673
  )
485
- parser.add_argument(
674
+ deprecated_group.add_argument(
486
675
  "-S",
487
676
  "--use-single",
488
677
  nargs=0,
489
678
  action=DeprecateAction,
490
679
  help="DEPRECATED. No longer supported",
491
680
  )
681
+ deprecated_group.add_argument(
682
+ "-q",
683
+ "--list-of-nodes",
684
+ type=str,
685
+ action=DeprecateAction,
686
+ help="DEPCRECATED. No longer supported",
687
+ )
688
+ deprecated_group.add_argument(
689
+ "-Q",
690
+ "--node-path",
691
+ type=Path,
692
+ action=DeprecateAction,
693
+ help="DEPCRECATED. No longer supported",
694
+ )
695
+ deprecated_group.add_argument(
696
+ "-r",
697
+ "--output-jobs-per-node",
698
+ type=int,
699
+ default=0,
700
+ action=DeprecateAction,
701
+ help="DEPRECATED. No longer supported",
702
+ )
492
703
 
493
704
  args = parser.parse_args()
494
705
 
495
706
  # Some basic argument value checking
496
707
  if args.observing_run < 0:
497
- raise argparse.error("--observing-run must be >= 0")
708
+ raise parser.error("--observing-run must be >= 0")
498
709
 
499
710
  if args.observing_run > 0 and not args.observing_kind:
500
- raise argparse.error("--observing-run requires --observing-kind")
711
+ raise parser.error("--observing-run requires --observing-kind")
501
712
 
502
713
  if args.observing_run > 0 and not args.observing_revision:
503
- raise argparse.error("--observing-run requires --observing-revision")
714
+ raise parser.error("--observing-run requires --observing-revision")
504
715
 
505
716
  if args.observing_revision and args.observing_revision <= 0:
506
- raise argparse.error("--observing-revision must be > 0")
717
+ raise parser.error("--observing-revision must be > 0")
507
718
 
508
719
  if args.observing_run > 0 and args.misc_desc:
509
- raise argparse.error(
720
+ raise parser.error(
510
721
  f"--observing-run={args.observing_run} incompatible with --misc-desc"
511
722
  )
512
723
 
513
724
  if args.misc_desc and not re.compile(r"^[A-Za-z0-9]+$").match(args.misc_desc):
514
- raise argparse.error("--misc-desc may only contain A-Z, a-z, 0-9 characters")
725
+ raise parser.error("--misc-desc may only contain A-Z, a-z, 0-9 characters")
515
726
 
516
727
  if args.extra_datafind_time < 0:
517
- raise argparse.error("--extra-datafind-time must be >= 0")
728
+ raise parser.error("--extra-datafind-time must be >= 0")
518
729
 
519
730
  if args.filter_knee_freq < 0:
520
- raise argparse.error("--filter-knee-freq must be >= 0")
731
+ raise parser.error("--filter-knee-freq must be >= 0")
521
732
 
522
733
  if args.time_baseline <= 0:
523
- raise argparse.error("--time-baseline must be > 0")
734
+ raise parser.error("--time-baseline must be > 0")
524
735
 
525
736
  if args.overlap_fraction < 0.0 or args.overlap_fraction >= 1.0:
526
- raise argparse.error("--overlap-fraction must be in the range [0,1)")
737
+ raise parser.error("--overlap-fraction must be in the range [0,1)")
527
738
 
528
739
  if args.start_freq < 0.0 or args.start_freq >= 7192.0:
529
- raise argparse.error("--start-freq must be in the range [0,7192)")
740
+ raise parser.error("--start-freq must be in the range [0,7192)")
530
741
 
531
742
  if args.band <= 0 or args.band >= 8192.0:
532
- raise argparse.error("--band must be in the range (0,8192)")
743
+ raise parser.error("--band must be in the range (0,8192)")
533
744
 
534
745
  if args.start_freq + args.band >= 8192.0:
535
- raise argparse.error("--start-freq + --band must be < 8192")
746
+ raise parser.error("--start-freq + --band must be < 8192")
536
747
 
537
748
  if args.max_num_per_node <= 0:
538
- raise argparse.error("--max-num-per-node must be > 0")
749
+ raise parser.error("--max-num-per-node must be > 0")
539
750
 
540
751
  if (
541
752
  len(args.channel_name) != len(args.output_sft_path)
542
753
  and len(args.output_sft_path) != 1
543
754
  ):
544
- raise argparse.error(
755
+ raise parser.error(
545
756
  "--channel-name and --output-sft-path must be the "
546
757
  "same length or --output-sft-path must be length of 1"
547
758
  )
548
759
 
549
- # Set the data find executable and lalpulsar_MakeSFTs executable
550
- dataFindExe = "gw_data_find"
551
- if args.datafind_path:
552
- if os.path.isfile(args.datafind_path):
553
- dataFindExe = args.datafind_path
554
- else:
555
- dataFindExe = os.path.join(args.datafind_path, dataFindExe)
556
- elif "LSC_DATAFIND_PATH" in os.environ:
557
- dataFindExe = os.path.join("$ENV(LSC_DATAFIND_PATH)", dataFindExe)
558
- else:
559
- dataFindExe = os.path.join("/usr/bin", dataFindExe)
760
+ if len(args.channel_name) > 1 and args.observing_run == 0:
761
+ raise parser.error(
762
+ "When creating SFTs from multiple channels, public SFT naming "
763
+ "convention must be used: --observing-run > 0 and set "
764
+ "--observing-kind and --observing-revision"
765
+ )
766
+
767
+ if args.datafind_urltype == "osdf" and not args.transfer_frame_files:
768
+ raise parser.error(
769
+ "--transfer-frame-files must be specified when --datafind-urltype=osdf"
770
+ )
560
771
 
772
+ # Set executables for lalpulsar_MakeSFTs, and lalpulsar_MoveSFTs
561
773
  makeSFTsExe = "lalpulsar_MakeSFTs"
562
774
  if args.makesfts_path:
563
- if os.path.isfile(args.makesfts_path):
775
+ if args.makesfts_path.is_file():
564
776
  makeSFTsExe = args.makesfts_path
565
777
  else:
566
- makeSFTsExe = os.path.join(args.makesfts_path, makeSFTsExe)
778
+ makeSFTsExe = args.makesfts_path / makeSFTsExe
567
779
  elif "MAKESFTS_PATH" in os.environ:
568
- makeSFTsExe = os.path.join("$ENV(MAKESFTS_PATH)", makeSFTsExe)
780
+ makeSFTsExe = Path("$ENV(MAKESFTS_PATH)") / makeSFTsExe
569
781
  else:
570
- makeSFTsExe = os.path.join("/builds/lscsoft/lalsuite/wheel/build/inst/bin", makeSFTsExe)
571
-
572
- # try and make a directory to store the cache files and job logs
573
- try:
574
- os.mkdir(args.log_path)
575
- except:
576
- pass
577
- if not args.cache_file:
578
- try:
579
- os.mkdir(args.cache_path)
580
- except:
581
- pass
582
-
583
- # Check if list of nodes is given, on which to output SFTs.
584
- nodeList = []
585
- useNodeList = False
586
- savedOutputSFTPath = None
587
- if args.list_of_nodes is not None:
588
- if args.node_path is None:
589
- raise argparse.error("Node file list given, but no node path specified")
590
-
591
- if args.output_jobs_per_node < 1:
592
- raise argparse.error(
593
- "Node file list given, but invalid output jobs per node specified"
594
- )
782
+ makeSFTsExe = Path("/builds/lscsoft/lalsuite/wheel/build/inst/bin") / makeSFTsExe
595
783
 
596
- with open(args.list_of_nodes) as fp_nodelist:
597
- for idx, line in enumerate(fp_nodelist):
598
- splitLine = line.split()
599
- nodeList.append(splitLine[0])
600
- if len(nodeList) < 1:
601
- raise ValueError(
602
- "No nodes found in node list file: {}".format(args.list_of_nodes)
603
- )
784
+ moveSFTsExe = "lalpulsar_MoveSFTs"
785
+ if args.movesfts_path:
786
+ if args.movesfts_path.is_file():
787
+ moveSFTsExe = args.movesfts_path
788
+ else:
789
+ moveSFTsExe = args.movesfts_path / moveSFTsExe
790
+ elif "MOVESFTS_PATH" in os.environ:
791
+ moveSFTsExe = Path("$ENV(MOVESFTS_PATH)") / moveSFTsExe
792
+ else:
793
+ moveSFTsExe = Path("/builds/lscsoft/lalsuite/wheel/build/inst/bin") / moveSFTsExe
604
794
 
605
- # Set flag to use list of nodes in constructing output files
606
- useNodeList = True
607
- savedOutputSFTPath = args.output_sft_path
608
- # END if (args.list_of_nodes != None)
795
+ # make directories to store the cache files, job logs, and SFTs
796
+ args.log_path.mkdir(exist_ok=True)
797
+ args.cache_path.mkdir(exist_ok=True)
798
+ for p in args.output_sft_path:
799
+ p.mkdir(exist_ok=True)
609
800
 
610
801
  # Check if segment file was given, else set up one segment from the command line
611
- segList = []
802
+ segList = segmentlist()
612
803
  adjustSegExtraTime = False
613
804
  if args.segment_file is not None:
614
805
  if args.min_seg_length < 0:
615
- raise argparse.error("--min-seg-length must be >= 0")
806
+ raise parser.error("--min-seg-length must be >= 0")
616
807
 
617
808
  # the next flag causes extra time that cannot be processes to be trimmed
618
809
  # from the start and end of a segment
@@ -621,108 +812,125 @@ if args.segment_file is not None:
621
812
  with open(args.segment_file) as fp_segfile:
622
813
  for idx, line in enumerate(fp_segfile):
623
814
  splitLine = line.split()
624
- oneSeg = []
625
- oneSeg.append(int(splitLine[0]))
626
- oneSeg.append(int(splitLine[1]))
627
- if (oneSeg[1] - oneSeg[0]) >= args.min_seg_length:
815
+ oneSeg = segment(int(splitLine[0]), int(splitLine[1]))
816
+ if abs(oneSeg) >= args.min_seg_length:
628
817
  segList.append(oneSeg)
629
818
 
630
819
  if len(segList) < 1:
631
- raise ValueError(
632
- "No segments found in segment file: {}".format(args.segment_file)
633
- )
820
+ raise ValueError(f"No segments found in segment file: {args.segment_file}")
634
821
  else:
635
822
  if args.analysis_start_time is None:
636
- raise argparse.error(
637
- "--analysis-start-time must be specified if no segment file is \
638
- given"
823
+ raise parser.error(
824
+ "--analysis-start-time must be specified if no segment file is " "given"
639
825
  )
640
826
 
641
827
  if args.analysis_end_time is None:
642
- raise argparse.error(
643
- "--analysis-start-time must be specified if no segment file is \
644
- given"
828
+ raise parser.error(
829
+ "--analysis-start-time must be specified if no segment file is " "given"
645
830
  )
646
831
 
647
832
  if args.max_length_all_jobs is None:
648
- raise argparse.error(
649
- "--max-length-all-jobs must be specified if no segment file is \
650
- given"
833
+ raise parser.error(
834
+ "--max-length-all-jobs must be specified if no segment file is " "given"
651
835
  )
652
836
 
653
837
  # Make sure not to exceed maximum allow analysis
654
838
  if args.analysis_end_time > (args.analysis_start_time + args.max_length_all_jobs):
655
839
  args.analysis_end_time = args.analysis_start_time + args.max_length_all_jobs
656
840
 
657
- oneSeg = []
658
- oneSeg.append(args.analysis_start_time)
659
- oneSeg.append(args.analysis_end_time)
841
+ oneSeg = segment(args.analysis_start_time, args.analysis_end_time)
660
842
  segList.append(oneSeg)
661
843
  # END if (args.segment_file != None)
844
+ segList.coalesce()
662
845
 
663
846
  # Get the IFO site, which is the first letter of the channel name.
664
847
  site = args.channel_name[0][0]
665
848
 
849
+ # Get the frame file URL list
850
+ urls = get_urls(args)
851
+
852
+ # Basic check that the frame file url list are traditionally visible on EPs
853
+ if not args.transfer_frame_files:
854
+ for f in urls:
855
+ if "/home" in f:
856
+ raise parser.error(
857
+ "--transfer-frame-files must be specified when frame files are in /home"
858
+ )
859
+
860
+ # data segments created from the list of frame URLs
861
+ dataSegs = segmentlist()
862
+ for url in urls:
863
+ dataSegs.append(file_segment(url))
864
+ dataSegs.coalesce()
865
+
866
+ # intersection of segList with dataSegs
867
+ segList &= dataSegs
868
+ segList.coalesce() # just in case
869
+
666
870
  # initialize count of nodes
667
871
  nodeCount = 0
668
872
 
669
873
  # Create .sub files
670
- path_to_dag_file = os.path.dirname(args.dag_file)
671
- dag_filename = os.path.basename(args.dag_file)
672
- datafind_sub = os.path.join(path_to_dag_file, "datafind.sub")
673
- makesfts_sub = os.path.join(path_to_dag_file, "MakeSFTs.sub")
674
-
675
- # create datafind.sub
676
- if not args.cache_file:
677
- with open(datafind_sub, "w") as datafindFID:
678
- datafindLogFile = f"{args.log_path}/datafind_{dag_filename}.log"
679
- datafindFID.write("universe = vanilla\n")
680
- datafindFID.write(f"executable = {dataFindExe}\n")
681
- datafindFID.write("arguments = ")
682
- datafindFID.write("--observatory $(observatory) --url-type file ")
683
- datafindFID.write("--gps-start-time $(gpsstarttime) ")
684
- datafindFID.write("--gps-end-time $(gpsendtime) --lal-cache --gaps ")
685
- datafindFID.write(f"--type $(inputdatatype)")
686
- if args.datafind_match:
687
- datafindFID.write(f" --match {args.datafind_match}\n")
688
- else:
689
- datafindFID.write("\n")
690
- datafindFID.write(
691
- "getenv = *DATAFIND*, KRB5*, X509*, BEARER_TOKEN*, SCITOKEN*\n"
692
- )
693
- datafindFID.write("request_disk = 5MB\n")
694
- datafindFID.write("request_memory = 2000MB\n")
695
- datafindFID.write(f"accounting_group = {args.accounting_group}\n")
696
- datafindFID.write(f"accounting_group_user = {args.accounting_group_user}\n")
697
- datafindFID.write(f"log = {datafindLogFile}\n")
698
- datafindFID.write(f"error = {args.log_path}/datafind_$(tagstring).err\n")
699
- datafindFID.write(f"output = {args.cache_path}/")
700
- datafindFID.write("$(observatory)-$(gpsstarttime)-$(gpsendtime).cache\n")
701
- datafindFID.write("notification = never\n")
702
- datafindFID.write("queue 1\n")
874
+ path_to_dag_file = args.dag_file.parent
875
+ dag_filename = args.dag_file.name
876
+ makesfts_sub = path_to_dag_file / "MakeSFTs.sub"
877
+ movesfts_sub = path_to_dag_file / "MoveSFTs.sub"
703
878
 
704
879
  # create MakeSFTs.sub
705
880
  with open(makesfts_sub, "w") as MakeSFTsFID:
706
- MakeSFTsLogFile = "{}/MakeSFTs_{}.log".format(args.log_path, dag_filename)
881
+ MakeSFTsLogFile = f"{args.log_path}/MakeSFTs_{dag_filename}.log"
707
882
  MakeSFTsFID.write("universe = vanilla\n")
708
- MakeSFTsFID.write("executable = {}\n".format(makeSFTsExe))
883
+ MakeSFTsFID.write(f"executable = {makeSFTsExe}\n")
709
884
  MakeSFTsFID.write("arguments = $(argList)\n")
710
- MakeSFTsFID.write("accounting_group = {}\n".format(args.accounting_group))
711
- MakeSFTsFID.write("accounting_group_user = {}\n".format(args.accounting_group_user))
712
- MakeSFTsFID.write("log = {}\n".format(MakeSFTsLogFile))
713
- MakeSFTsFID.write("error = {}/MakeSFTs_$(tagstring).err\n".format(args.log_path))
714
- MakeSFTsFID.write("output = {}/MakeSFTs_$(tagstring).out\n".format(args.log_path))
885
+ MakeSFTsFID.write(f"accounting_group = {args.accounting_group}\n")
886
+ MakeSFTsFID.write(f"accounting_group_user = {args.accounting_group_user}\n")
887
+ MakeSFTsFID.write(f"log = {MakeSFTsLogFile}\n")
888
+ MakeSFTsFID.write(f"error = {args.log_path}/MakeSFTs_$(tagstring).err\n")
889
+ MakeSFTsFID.write(f"output = {args.log_path}/MakeSFTs_$(tagstring).out\n")
715
890
  MakeSFTsFID.write("notification = never\n")
716
891
  MakeSFTsFID.write(f"request_memory = {args.request_memory}MB\n")
717
892
  MakeSFTsFID.write(f"request_disk = {args.request_disk}MB\n")
718
893
  MakeSFTsFID.write("RequestCpus = 1\n")
894
+ MakeSFTsFID.write("should_transfer_files = yes\n")
895
+ if args.transfer_frame_files:
896
+ MakeSFTsFID.write("transfer_input_files = $(cachefile),$(framefiles)\n")
897
+ else:
898
+ MakeSFTsFID.write("transfer_input_files = $(cachefile)\n")
899
+ if "MAKESFTS_PATH" in os.environ and not args.makesfts_path:
900
+ MakeSFTsFID.write("getenv = MAKESFTS_PATH\n")
901
+ if args.datafind_urltype == "osdf":
902
+ MakeSFTsFID.write("use_oauth_services = scitokens\n")
903
+ MakeSFTsFID.write(
904
+ "environment = BEARER_TOKEN_FILE=$$(CondorScratchDir)/.condor_creds/scitokens.use\n"
905
+ )
719
906
  MakeSFTsFID.write("queue 1\n")
720
907
 
908
+ # create MoveSFTs.sub
909
+ with open(movesfts_sub, "w") as MoveSFTsFID:
910
+ MoveSFTsLogFile = f"{args.log_path}/MoveSFTs_{dag_filename}.log"
911
+ MoveSFTsFID.write("universe = local\n")
912
+ MoveSFTsFID.write(f"executable = {moveSFTsExe}\n")
913
+ MoveSFTsFID.write("arguments = ")
914
+ if not args.validate:
915
+ MoveSFTsFID.write("$(opts) ")
916
+ MoveSFTsFID.write("-s $(sourcedirectory) -c $(channels) -d $(destdirectory)\n")
917
+ MoveSFTsFID.write(f"accounting_group = {args.accounting_group}\n")
918
+ MoveSFTsFID.write(f"accounting_group_user = {args.accounting_group_user}\n")
919
+ MoveSFTsFID.write(f"log = {MoveSFTsLogFile}\n")
920
+ MoveSFTsFID.write(f"error = {args.log_path}/MoveSFTs.err\n")
921
+ MoveSFTsFID.write(f"output = {args.log_path}/MoveSFTs.out\n")
922
+ MoveSFTsFID.write("notification = never\n")
923
+ MoveSFTsFID.write(f"request_memory = 1GB\n")
924
+ MoveSFTsFID.write(f"request_disk = 10MB\n")
925
+ MoveSFTsFID.write("RequestCpus = 1\n")
926
+ if "MOVESFTS_PATH" in os.environ and not args.movesfts_path:
927
+ MoveSFTsFID.write("getenv = MOVESFTS_PATH\n")
928
+ MoveSFTsFID.write("queue 1\n")
929
+
721
930
  # create the DAG file with the jobs to run
722
931
  with open(args.dag_file, "w") as dagFID:
723
932
  startTimeAllNodes = None
724
933
  firstSFTstartTime = 0 # need this for the synchronized start option
725
- nodeListIndex = 0
726
934
 
727
935
  # Loop over the segment list to generate the SFTs for each segment
728
936
  for seg in segList:
@@ -867,17 +1075,6 @@ with open(args.dag_file, "w") as dagFID:
867
1075
  # write jobs to dag for this node
868
1076
  nodeCount = nodeCount + 1
869
1077
 
870
- if useNodeList:
871
- args.output_sft_path = (
872
- args.node_path
873
- + nodeList[nodeListIndex]
874
- + savedOutputSFTPath
875
- )
876
- if (nodeCount % args.output_jobs_per_node) == 0:
877
- nodeListIndex = nodeListIndex + 1
878
- # END if ((nodeCount % args.output_jobs_per_node) == 0L)
879
- # END if (useNodeList)
880
-
881
1078
  if nodeCount == 1:
882
1079
  startTimeAllNodes = startTimeThisNode
883
1080
  writeToDag(
@@ -885,7 +1082,7 @@ with open(args.dag_file, "w") as dagFID:
885
1082
  nodeCount,
886
1083
  startTimeThisNode,
887
1084
  endTimeThisNode,
888
- site,
1085
+ urls,
889
1086
  args,
890
1087
  )
891
1088
  # Update for next node
@@ -905,22 +1102,30 @@ with open(args.dag_file, "w") as dagFID:
905
1102
  # write jobs to dag for this node
906
1103
  nodeCount = nodeCount + 1
907
1104
 
908
- if useNodeList:
909
- args.output_sft_path = (
910
- args.node_path + nodeList[nodeListIndex] + savedOutputSFTPath
911
- )
912
- if (nodeCount % args.output_jobs_per_node) == 0:
913
- nodeListIndex = nodeListIndex + 1
914
- # END if ((nodeCount % args.output_jobs_per_node) == 0L)
915
- # END if (useNodeList)
916
-
917
1105
  if nodeCount == 1:
918
1106
  startTimeAllNodes = startTimeThisNode
919
1107
  writeToDag(
920
- dagFID, nodeCount, startTimeThisNode, endTimeThisNode, site, args
1108
+ dagFID, nodeCount, startTimeThisNode, endTimeThisNode, urls, args
921
1109
  )
922
1110
  # END while (endTimeAllNodes < args.analysis_end_time)
923
1111
  # END for seg in segList
1112
+
1113
+ # Write the move SFTs job to the DAG
1114
+ # Move SFTs
1115
+ dagFID.write(f"JOB MoveSFTs {Path(dagFID.name).parent / 'MoveSFTs.sub'}\n")
1116
+ dagFID.write(f"RETRY MoveSFTs 1\n")
1117
+ dagFID.write(f"VARS MoveSFTs ")
1118
+ if not args.validate:
1119
+ dagFID.write('opts="--no-validate" ')
1120
+ dagFID.write(
1121
+ f'sourcedirectory="." '
1122
+ f"channels=\"{' '.join(args.channel_name)}\" "
1123
+ f"destdirectory=\"{' '.join([str(p) for p in args.output_sft_path])}\"\n"
1124
+ )
1125
+ dagFID.write(
1126
+ f"PARENT {' '.join([f'MakeSFTs_{n}' for n in range(1, nodeCount+1)])} CHILD MoveSFTs\n"
1127
+ )
1128
+
924
1129
  # Close the DAG file
925
1130
 
926
1131
  # Update actual end time of the last job and print out the times all jobs will run on: