lalsuite 7.26.2.dev20251210__cp312-cp312-macosx_12_0_arm64.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.
- lal/.dylibs/Python +0 -0
- lal/.dylibs/libaec.0.dylib +0 -0
- lal/.dylibs/libbrotlicommon.1.2.0.dylib +0 -0
- lal/.dylibs/libbrotlidec.1.2.0.dylib +0 -0
- lal/.dylibs/libcfitsio.10.4.4.1.dylib +0 -0
- lal/.dylibs/libcrypto.3.dylib +0 -0
- lal/.dylibs/libcurl.4.dylib +0 -0
- lal/.dylibs/libfftw3.3.dylib +0 -0
- lal/.dylibs/libfftw3f.3.dylib +0 -0
- lal/.dylibs/libframel.8.48.4.dylib +0 -0
- lal/.dylibs/libgsl.28.dylib +0 -0
- lal/.dylibs/libgslcblas.0.dylib +0 -0
- lal/.dylibs/libhdf5.310.dylib +0 -0
- lal/.dylibs/libhdf5_hl.310.dylib +0 -0
- lal/.dylibs/libiconv.2.dylib +0 -0
- lal/.dylibs/libidn2.0.dylib +0 -0
- lal/.dylibs/libintl.8.dylib +0 -0
- lal/.dylibs/liblal.20.dylib +0 -0
- lal/.dylibs/liblalburst.8.dylib +0 -0
- lal/.dylibs/liblalframe.14.dylib +0 -0
- lal/.dylibs/liblalinference.23.dylib +0 -0
- lal/.dylibs/liblalinspiral.18.dylib +0 -0
- lal/.dylibs/liblalmetaio.11.dylib +0 -0
- lal/.dylibs/liblalpulsar.30.dylib +0 -0
- lal/.dylibs/liblalsimulation.37.dylib +0 -0
- lal/.dylibs/liblalsupport.14.dylib +0 -0
- lal/.dylibs/libmetaio.1.dylib +0 -0
- lal/.dylibs/libnghttp2.14.dylib +0 -0
- lal/.dylibs/libpsl.5.dylib +0 -0
- lal/.dylibs/libssl.3.dylib +0 -0
- lal/.dylibs/libsz.2.dylib +0 -0
- lal/.dylibs/libunistring.5.dylib +0 -0
- lal/.dylibs/libz.1.3.1.dylib +0 -0
- lal/.dylibs/libzstd.1.5.7.dylib +0 -0
- lal/__init__.py +145 -0
- lal/_lal.cpython-312-darwin.so +0 -0
- lal/_lal_swig.py +12 -0
- lal/antenna.py +1200 -0
- lal/git_version.py +64 -0
- lal/gpstime.py +233 -0
- lal/iterutils.py +408 -0
- lal/pipeline.py +3139 -0
- lal/rate.py +2455 -0
- lal/series.py +244 -0
- lal/utils/__init__.py +29 -0
- lal/utils/cache.py +379 -0
- lal/utils/series.py +277 -0
- lalapps/__init__.py +26 -0
- lalapps/bin/lal_cache +0 -0
- lalapps/bin/lal_fftw_wisdom +0 -0
- lalapps/bin/lal_fftwf_wisdom +0 -0
- lalapps/bin/lal_simd_detect +0 -0
- lalapps/bin/lal_tconvert +0 -0
- lalapps/bin/lal_version +0 -0
- lalapps/bin/lalapps_ComputeAntennaPattern +16 -0
- lalapps/bin/lalapps_ComputeFstatBenchmark +16 -0
- lalapps/bin/lalapps_ComputeFstatLatticeCount +16 -0
- lalapps/bin/lalapps_ComputeFstatMCUpperLimit +16 -0
- lalapps/bin/lalapps_ComputeFstatistic_v2 +16 -0
- lalapps/bin/lalapps_ComputePSD +16 -0
- lalapps/bin/lalapps_CopySFTs +16 -0
- lalapps/bin/lalapps_DistanceVsMass +0 -0
- lalapps/bin/lalapps_DriveHoughMulti +16 -0
- lalapps/bin/lalapps_FstatMetric_v2 +16 -0
- lalapps/bin/lalapps_HierarchSearchGCT +16 -0
- lalapps/bin/lalapps_HierarchicalSearch +16 -0
- lalapps/bin/lalapps_MakeSFTDAG +16 -0
- lalapps/bin/lalapps_MakeSFTs +16 -0
- lalapps/bin/lalapps_Makefakedata_v4 +16 -0
- lalapps/bin/lalapps_Makefakedata_v5 +16 -0
- lalapps/bin/lalapps_PredictFstat +16 -0
- lalapps/bin/lalapps_PrintDetectorState +16 -0
- lalapps/bin/lalapps_SFTclean +16 -0
- lalapps/bin/lalapps_SFTvalidate +16 -0
- lalapps/bin/lalapps_StringAddFrame +0 -0
- lalapps/bin/lalapps_StringSearch +0 -0
- lalapps/bin/lalapps_Weave +16 -0
- lalapps/bin/lalapps_WeaveCompare +16 -0
- lalapps/bin/lalapps_WeaveConcat +16 -0
- lalapps/bin/lalapps_WeaveSetup +16 -0
- lalapps/bin/lalapps_WriteSFTsfromSFDBs +16 -0
- lalapps/bin/lalapps_animate +0 -0
- lalapps/bin/lalapps_binj +0 -0
- lalapps/bin/lalapps_blindinj +0 -0
- lalapps/bin/lalapps_cache +16 -0
- lalapps/bin/lalapps_calfacs +0 -0
- lalapps/bin/lalapps_cbc_stochasticbank +0 -0
- lalapps/bin/lalapps_chirplen +0 -0
- lalapps/bin/lalapps_coh_PTF_inspiral +0 -0
- lalapps/bin/lalapps_coinj +0 -0
- lalapps/bin/lalapps_combine_crosscorr_toplists +16 -0
- lalapps/bin/lalapps_compareFstats +16 -0
- lalapps/bin/lalapps_compareSFTs +16 -0
- lalapps/bin/lalapps_create_time_correction_ephemeris +16 -0
- lalapps/bin/lalapps_dumpSFT +16 -0
- lalapps/bin/lalapps_effdist +0 -0
- lalapps/bin/lalapps_exc_resp +0 -0
- lalapps/bin/lalapps_fftw_wisdom +16 -0
- lalapps/bin/lalapps_fftwf_wisdom +16 -0
- lalapps/bin/lalapps_fits_header_getval +16 -0
- lalapps/bin/lalapps_fits_header_list +16 -0
- lalapps/bin/lalapps_fits_overview +16 -0
- lalapps/bin/lalapps_fits_table_list +16 -0
- lalapps/bin/lalapps_fr_ninja +0 -0
- lalapps/bin/lalapps_frextr +0 -0
- lalapps/bin/lalapps_frinfo +0 -0
- lalapps/bin/lalapps_frjoin +0 -0
- lalapps/bin/lalapps_frread +0 -0
- lalapps/bin/lalapps_frview +0 -0
- lalapps/bin/lalapps_gwf2xml +0 -0
- lalapps/bin/lalapps_heterodyne_pulsar +16 -0
- lalapps/bin/lalapps_inspawgfile +0 -0
- lalapps/bin/lalapps_inspfrinj +0 -0
- lalapps/bin/lalapps_inspinj +0 -0
- lalapps/bin/lalapps_inspiralDistance +0 -0
- lalapps/bin/lalapps_knope +16 -0
- lalapps/bin/lalapps_knope_automation_script +16 -0
- lalapps/bin/lalapps_knope_collate_results +16 -0
- lalapps/bin/lalapps_knope_result_page +16 -0
- lalapps/bin/lalapps_makeblindinj +85 -0
- lalapps/bin/lalapps_makeblindinj_himass +67 -0
- lalapps/bin/lalapps_ninja +0 -0
- lalapps/bin/lalapps_path2cache +16 -0
- lalapps/bin/lalapps_power +0 -0
- lalapps/bin/lalapps_pulsar_crosscorr_v2 +16 -0
- lalapps/bin/lalapps_pulsar_frequency_evolution +16 -0
- lalapps/bin/lalapps_pulsar_parameter_estimation_nested +16 -0
- lalapps/bin/lalapps_random_bank +0 -0
- lalapps/bin/lalapps_randombank +0 -0
- lalapps/bin/lalapps_run_pulsar_crosscorr_v2 +16 -0
- lalapps/bin/lalapps_searchsum2cache +16 -0
- lalapps/bin/lalapps_spec_avg +16 -0
- lalapps/bin/lalapps_spec_avg_long +16 -0
- lalapps/bin/lalapps_spec_coherence +16 -0
- lalapps/bin/lalapps_spininj +0 -0
- lalapps/bin/lalapps_splitSFTs +16 -0
- lalapps/bin/lalapps_splitbank +0 -0
- lalapps/bin/lalapps_ssbtodetector +16 -0
- lalapps/bin/lalapps_synthesizeBstatMC +16 -0
- lalapps/bin/lalapps_synthesizeLVStats +16 -0
- lalapps/bin/lalapps_synthesizeTransientStats +16 -0
- lalapps/bin/lalapps_tconvert +16 -0
- lalapps/bin/lalapps_tmpltbank +0 -0
- lalapps/bin/lalapps_version +0 -0
- lalapps/bin/lalapps_xtefitstoframe +0 -0
- lalapps/bin/lalburst_version +0 -0
- lalapps/bin/lalfr-cat +0 -0
- lalapps/bin/lalfr-cksum +0 -0
- lalapps/bin/lalfr-cut +0 -0
- lalapps/bin/lalfr-dump +0 -0
- lalapps/bin/lalfr-fmt +0 -0
- lalapps/bin/lalfr-paste +0 -0
- lalapps/bin/lalfr-print +0 -0
- lalapps/bin/lalfr-split +0 -0
- lalapps/bin/lalfr-stat +0 -0
- lalapps/bin/lalfr-stream +0 -0
- lalapps/bin/lalfr-vis +0 -0
- lalapps/bin/lalframe_version +0 -0
- lalapps/bin/lalinference_bench +0 -0
- lalapps/bin/lalinference_burst +0 -0
- lalapps/bin/lalinference_datadump +0 -0
- lalapps/bin/lalinference_injectedlike +0 -0
- lalapps/bin/lalinference_mpi_wrapper +59 -0
- lalapps/bin/lalinference_nest +0 -0
- lalapps/bin/lalinference_version +0 -0
- lalapps/bin/lalinspiral_version +0 -0
- lalapps/bin/lalmetaio_version +0 -0
- lalapps/bin/lalpulsar_ComputeAntennaPattern +0 -0
- lalapps/bin/lalpulsar_ComputeFstatBenchmark +0 -0
- lalapps/bin/lalpulsar_ComputeFstatLatticeCount +0 -0
- lalapps/bin/lalpulsar_ComputeFstatMCUpperLimit +0 -0
- lalapps/bin/lalpulsar_ComputeFstatistic_v2 +0 -0
- lalapps/bin/lalpulsar_ComputePSD +0 -0
- lalapps/bin/lalpulsar_DriveHoughMulti +0 -0
- lalapps/bin/lalpulsar_FstatMetric_v2 +0 -0
- lalapps/bin/lalpulsar_HierarchSearchGCT +0 -0
- lalapps/bin/lalpulsar_HierarchicalSearch +0 -0
- lalapps/bin/lalpulsar_MakeSFTs +0 -0
- lalapps/bin/lalpulsar_Makefakedata_v4 +0 -0
- lalapps/bin/lalpulsar_Makefakedata_v5 +0 -0
- lalapps/bin/lalpulsar_PredictFstat +0 -0
- lalapps/bin/lalpulsar_PrintDetectorState +0 -0
- lalapps/bin/lalpulsar_SFTclean +0 -0
- lalapps/bin/lalpulsar_SFTvalidate +0 -0
- lalapps/bin/lalpulsar_Weave +0 -0
- lalapps/bin/lalpulsar_WeaveCompare +0 -0
- lalapps/bin/lalpulsar_WeaveConcat +0 -0
- lalapps/bin/lalpulsar_WeaveSetup +0 -0
- lalapps/bin/lalpulsar_WriteSFTsfromSFDBs +0 -0
- lalapps/bin/lalpulsar_compareFstats +0 -0
- lalapps/bin/lalpulsar_compareSFTs +0 -0
- lalapps/bin/lalpulsar_create_time_correction_ephemeris +0 -0
- lalapps/bin/lalpulsar_crosscorr_v2 +0 -0
- lalapps/bin/lalpulsar_dumpSFT +0 -0
- lalapps/bin/lalpulsar_fits_header_getval +0 -0
- lalapps/bin/lalpulsar_fits_header_list +0 -0
- lalapps/bin/lalpulsar_fits_overview +0 -0
- lalapps/bin/lalpulsar_fits_table_list +0 -0
- lalapps/bin/lalpulsar_frequency_evolution +0 -0
- lalapps/bin/lalpulsar_heterodyne +0 -0
- lalapps/bin/lalpulsar_parameter_estimation_nested +0 -0
- lalapps/bin/lalpulsar_spec_avg +0 -0
- lalapps/bin/lalpulsar_spec_avg_long +0 -0
- lalapps/bin/lalpulsar_spec_coherence +0 -0
- lalapps/bin/lalpulsar_splitSFTs +0 -0
- lalapps/bin/lalpulsar_ssbtodetector +0 -0
- lalapps/bin/lalpulsar_synthesizeBstatMC +0 -0
- lalapps/bin/lalpulsar_synthesizeLVStats +0 -0
- lalapps/bin/lalpulsar_synthesizeTransientStats +0 -0
- lalapps/bin/lalpulsar_version +0 -0
- lalapps/bin/lalsim-bh-qnmode +0 -0
- lalapps/bin/lalsim-bh-ringdown +0 -0
- lalapps/bin/lalsim-bh-sphwf +0 -0
- lalapps/bin/lalsim-burst +0 -0
- lalapps/bin/lalsim-detector-noise +0 -0
- lalapps/bin/lalsim-detector-strain +0 -0
- lalapps/bin/lalsim-inject +0 -0
- lalapps/bin/lalsim-inspiral +0 -0
- lalapps/bin/lalsim-ns-eos-table +0 -0
- lalapps/bin/lalsim-ns-mass-radius +0 -0
- lalapps/bin/lalsim-ns-params +0 -0
- lalapps/bin/lalsim-sgwb +0 -0
- lalapps/bin/lalsim-unicorn +0 -0
- lalapps/bin/lalsimulation_version +0 -0
- lalapps/cosmicstring.py +691 -0
- lalapps/data/BNSMasses.dat +65022 -0
- lalapps/data/CorrelationMatrix.csv +15 -0
- lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF1_META.dat +1882 -0
- lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF2_META.dat +1939 -0
- lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF3_META.dat +1784 -0
- lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF4_META.dat +2074 -0
- lalapps/data/LALSimNeutronStarEOS_ALF1.dat +435 -0
- lalapps/data/LALSimNeutronStarEOS_ALF2.dat +453 -0
- lalapps/data/LALSimNeutronStarEOS_ALF3.dat +441 -0
- lalapps/data/LALSimNeutronStarEOS_ALF4.dat +441 -0
- lalapps/data/LALSimNeutronStarEOS_AP1.dat +212 -0
- lalapps/data/LALSimNeutronStarEOS_AP2.dat +212 -0
- lalapps/data/LALSimNeutronStarEOS_AP3.dat +212 -0
- lalapps/data/LALSimNeutronStarEOS_AP4.dat +210 -0
- lalapps/data/LALSimNeutronStarEOS_APR.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_APR4_EPP.dat +1447 -0
- lalapps/data/LALSimNeutronStarEOS_BBB2.dat +84 -0
- lalapps/data/LALSimNeutronStarEOS_BGN1H1.dat +123 -0
- lalapps/data/LALSimNeutronStarEOS_BHF_BBB2.dat +499 -0
- lalapps/data/LALSimNeutronStarEOS_BL_CHIRAL_META.dat +1534 -0
- lalapps/data/LALSimNeutronStarEOS_BPAL12.dat +61 -0
- lalapps/data/LALSimNeutronStarEOS_BSK19.dat +310 -0
- lalapps/data/LALSimNeutronStarEOS_BSK20.dat +310 -0
- lalapps/data/LALSimNeutronStarEOS_BSK21.dat +310 -0
- lalapps/data/LALSimNeutronStarEOS_ENG.dat +108 -0
- lalapps/data/LALSimNeutronStarEOS_FPS.dat +129 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_BSK14_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_DHSL59_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_DHSL69_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_F0_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H1_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H2_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H3_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H4_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H5_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_LN55_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_SLY5_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GNH3.dat +71 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_DD2_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_DDME2_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_FSU2H_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_FSU2_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_NL3WRL55_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GS1.dat +136 -0
- lalapps/data/LALSimNeutronStarEOS_GS2.dat +100 -0
- lalapps/data/LALSimNeutronStarEOS_H1.dat +114 -0
- lalapps/data/LALSimNeutronStarEOS_H2.dat +114 -0
- lalapps/data/LALSimNeutronStarEOS_H3.dat +98 -0
- lalapps/data/LALSimNeutronStarEOS_H4.dat +664 -0
- lalapps/data/LALSimNeutronStarEOS_H5.dat +703 -0
- lalapps/data/LALSimNeutronStarEOS_H6.dat +509 -0
- lalapps/data/LALSimNeutronStarEOS_H7.dat +703 -0
- lalapps/data/LALSimNeutronStarEOS_HQC18.dat +388 -0
- lalapps/data/LALSimNeutronStarEOS_KDE0V.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_KDE0V1.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_KDE0V1_BSK24.dat +1388 -0
- lalapps/data/LALSimNeutronStarEOS_KDE0V_BSK24.dat +1398 -0
- lalapps/data/LALSimNeutronStarEOS_MPA1.dat +102 -0
- lalapps/data/LALSimNeutronStarEOS_MS1.dat +122 -0
- lalapps/data/LALSimNeutronStarEOS_MS1B.dat +126 -0
- lalapps/data/LALSimNeutronStarEOS_MS1B_PP.dat +1447 -0
- lalapps/data/LALSimNeutronStarEOS_MS1_PP.dat +1447 -0
- lalapps/data/LALSimNeutronStarEOS_MS2.dat +48 -0
- lalapps/data/LALSimNeutronStarEOS_PAL6.dat +148 -0
- lalapps/data/LALSimNeutronStarEOS_PCL2.dat +134 -0
- lalapps/data/LALSimNeutronStarEOS_PCP_BSK24_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_PS.dat +165 -0
- lalapps/data/LALSimNeutronStarEOS_QMC700.dat +117 -0
- lalapps/data/LALSimNeutronStarEOS_RG_SLY4_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_RS.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_RS_BSK24.dat +1356 -0
- lalapps/data/LALSimNeutronStarEOS_SK255.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SK255_BSK24.dat +1066 -0
- lalapps/data/LALSimNeutronStarEOS_SK272.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKA.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKA_BSK24.dat +1433 -0
- lalapps/data/LALSimNeutronStarEOS_SKB.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKB_BSK24.dat +1373 -0
- lalapps/data/LALSimNeutronStarEOS_SKI2.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKI2_BSK24.dat +1348 -0
- lalapps/data/LALSimNeutronStarEOS_SKI3.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKI3_BSK24.dat +1355 -0
- lalapps/data/LALSimNeutronStarEOS_SKI4.dat +497 -0
- lalapps/data/LALSimNeutronStarEOS_SKI4_BSK24.dat +1348 -0
- lalapps/data/LALSimNeutronStarEOS_SKI5.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKI6.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKI6_BSK24.dat +1358 -0
- lalapps/data/LALSimNeutronStarEOS_SKMP.dat +498 -0
- lalapps/data/LALSimNeutronStarEOS_SKOP.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKOP_BSK24.dat +1373 -0
- lalapps/data/LALSimNeutronStarEOS_SLY.dat +99 -0
- lalapps/data/LALSimNeutronStarEOS_SLY2.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SLY230A.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SLY230A_BSK24.dat +1116 -0
- lalapps/data/LALSimNeutronStarEOS_SLY2_BSK24.dat +1106 -0
- lalapps/data/LALSimNeutronStarEOS_SLY4.dat +100 -0
- lalapps/data/LALSimNeutronStarEOS_SLY9.dat +498 -0
- lalapps/data/LALSimNeutronStarEOS_SLY9_BSK24.dat +1083 -0
- lalapps/data/LALSimNeutronStarEOS_SQM1.dat +176 -0
- lalapps/data/LALSimNeutronStarEOS_SQM2.dat +180 -0
- lalapps/data/LALSimNeutronStarEOS_SQM3.dat +176 -0
- lalapps/data/LALSimNeutronStarEOS_WFF1.dat +109 -0
- lalapps/data/LALSimNeutronStarEOS_WFF2.dat +109 -0
- lalapps/data/LALSimNeutronStarEOS_WFF3.dat +107 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDLZ1_BSK24.dat +1227 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDME2_BSK24.dat +1272 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDMEX_BSK24.dat +1280 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_GM1_BSK24.dat +1288 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_MTVTC_BSK24.dat +1288 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_NL3_BSK24.dat +1230 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_PKDD_BSK24.dat +1288 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_TM1_BSK24.dat +1288 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_TW99_BSK24.dat +1288 -0
- lalapps/data/LIGO-P1200087-v18-AdV_BNS_OPTIMIZED.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_DESIGN.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_EARLY_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_EARLY_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_LATE_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_LATE_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_MID_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_MID_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_BNS_OPTIMIZED.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_DESIGN.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_EARLY_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_EARLY_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_LATE_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_LATE_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_MID_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_MID_LOW.txt +3000 -0
- lalapps/data/LIGO-P1600143-v18-CE.txt +3000 -0
- lalapps/data/LIGO-P1600143-v18-CE_Pessimistic.txt +3000 -0
- lalapps/data/LIGO-P1600143-v18-CE_Wideband.txt +3000 -0
- lalapps/data/LIGO-P1600143-v18-ET_D.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-BHBH_20deg.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-High_Freq.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-NO_SRM.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-NSNS_Opt.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-ZERO_DET_high_P.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-ZERO_DET_low_P.txt +3000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Design.txt +4000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Early.txt +4000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Late.txt +4000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Mid.txt +4000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Opening.txt +4000 -0
- lalapps/data/LIGO-T1800042-v5-aLIGO_APLUS.txt +3000 -0
- lalapps/data/LIGO-T1800044-v5-aLIGO_DESIGN.txt +3000 -0
- lalapps/data/LIGO-T1800545-v1-AdV_O3low.txt +3000 -0
- lalapps/data/LIGO-T1800545-v1-AdV_O4.txt +3000 -0
- lalapps/data/LIGO-T1800545-v1-AdV_O4intermediate.txt +3000 -0
- lalapps/data/LIGO-T1800545-v1-KAGRA_128Mpc.txt +1000 -0
- lalapps/data/LIGO-T1800545-v1-KAGRA_25Mpc.txt +1000 -0
- lalapps/data/LIGO-T1800545-v1-KAGRA_80Mpc.txt +1000 -0
- lalapps/data/LIGO-T1800545-v1-aLIGO_140Mpc.txt +1000 -0
- lalapps/data/LIGO-T1800545-v1-aLIGO_175Mpc.txt +2792 -0
- lalapps/data/LIGO-T1800545-v1-aLIGO_O3low.txt +2792 -0
- lalapps/data/bimodalMeans.csv +3 -0
- lalapps/data/config_tiger_example.ini +150 -0
- lalapps/data/fiducialBBH.xml +67 -0
- lalapps/data/fiducialBNS.xml +67 -0
- lalapps/data/inspsrcs100Mpc.errors +38735 -0
- lalapps/data/lalinference_pipe_example.ini +573 -0
- lalapps/data/lib_pipe_example.ini +303 -0
- lalapps/data/power_pipe.ini +129 -0
- lalapps/data/unimodalMeans.csv +2 -0
- lalapps/git_version.py +64 -0
- lalburst/SimBurstUtils.py +324 -0
- lalburst/SnglBurstUtils.py +367 -0
- lalburst/__init__.py +7 -0
- lalburst/_lalburst.cpython-312-darwin.so +0 -0
- lalburst/_lalburst_swig.py +16 -0
- lalburst/binjfind.py +824 -0
- lalburst/bucluster.py +409 -0
- lalburst/burca.py +315 -0
- lalburst/burca_tailor.py +349 -0
- lalburst/cafe.py +579 -0
- lalburst/calc_likelihood.py +145 -0
- lalburst/cs_gamma.cpython-312-darwin.so +0 -0
- lalburst/date.py +118 -0
- lalburst/git_version.py +64 -0
- lalburst/offsetvector.py +278 -0
- lalburst/packing.py +170 -0
- lalburst/power.py +1457 -0
- lalburst/snglcluster.py +136 -0
- lalburst/snglcoinc.py +2637 -0
- lalburst/stringutils.py +607 -0
- lalburst/timeslides.py +236 -0
- lalframe/__init__.py +7 -0
- lalframe/_lalframe.cpython-312-darwin.so +0 -0
- lalframe/_lalframe_swig.py +14 -0
- lalframe/frread.py +324 -0
- lalframe/git_version.py +64 -0
- lalframe/utils/__init__.py +25 -0
- lalframe/utils/frtools.py +61 -0
- lalinference/__init__.py +7 -0
- lalinference/_bayespputils.cpython-312-darwin.so +0 -0
- lalinference/_lalinference.cpython-312-darwin.so +0 -0
- lalinference/_lalinference_swig.py +19 -0
- lalinference/bayespputils.py +7479 -0
- lalinference/bayestar/__init__.py +2 -0
- lalinference/bayestar/deprecation.py +72 -0
- lalinference/git_version.py +64 -0
- lalinference/imrtgr/__init__.py +0 -0
- lalinference/imrtgr/imrtgrutils.py +168 -0
- lalinference/imrtgr/nrutils.py +1366 -0
- lalinference/imrtgr/pneqns.py +250 -0
- lalinference/io/__init__.py +31 -0
- lalinference/io/hdf5.py +365 -0
- lalinference/lalinference_pipe_utils.py +3617 -0
- lalinference/nest2pos.py +151 -0
- lalinference/plot/__init__.py +34 -0
- lalinference/plot/spindisk.py +104 -0
- lalinference/tiger/__init__.py +0 -0
- lalinference/tiger/make_injtimes.py +634 -0
- lalinference/tiger/omegascans_dag.py +691 -0
- lalinference/tiger/postproc.py +1338 -0
- lalinference/wrapper.py +231 -0
- lalinspiral/__init__.py +7 -0
- lalinspiral/_lalinspiral.cpython-312-darwin.so +0 -0
- lalinspiral/_lalinspiral_swig.py +18 -0
- lalinspiral/_thinca.cpython-312-darwin.so +0 -0
- lalinspiral/git_version.py +64 -0
- lalinspiral/inspinjfind.py +485 -0
- lalinspiral/thinca.py +509 -0
- lalmetaio/__init__.py +7 -0
- lalmetaio/_lalmetaio.cpython-312-darwin.so +0 -0
- lalmetaio/_lalmetaio_swig.py +14 -0
- lalmetaio/git_version.py +64 -0
- lalpulsar/NstarTools.py +259 -0
- lalpulsar/PulsarParametersWrapper.py +938 -0
- lalpulsar/__init__.py +7 -0
- lalpulsar/_lalpulsar.cpython-312-darwin.so +0 -0
- lalpulsar/_lalpulsar_swig.py +17 -0
- lalpulsar/git_version.py +64 -0
- lalpulsar/knope_utils.py +6497 -0
- lalpulsar/lineFileParser.py +264 -0
- lalpulsar/metric_utils.py +78 -0
- lalpulsar/piecewise_model/__init__.py +7 -0
- lalpulsar/piecewise_model/basis_functions.py +156 -0
- lalpulsar/piecewise_model/class_definitions.py +323 -0
- lalpulsar/piecewise_model/errors.py +37 -0
- lalpulsar/piecewise_model/estimating_knots.py +833 -0
- lalpulsar/piecewise_model/gte_and_other_methods.py +189 -0
- lalpulsar/piecewise_model/mols_for_gte.py +269 -0
- lalpulsar/piecewise_model/pw_fstat.py +813 -0
- lalpulsar/piecewise_model/pw_model_simulations.py +156 -0
- lalpulsar/piecewise_model/sampling_methods.py +186 -0
- lalpulsar/piecewise_model/semicoherent_metric_methods.py +375 -0
- lalpulsar/piecewise_model/tbank_estimates.py +293 -0
- lalpulsar/public_sft_directory.py +82 -0
- lalpulsar/pulsarhtmlutils.py +1395 -0
- lalpulsar/pulsarpputils.py +3638 -0
- lalpulsar/simulateCW.py +602 -0
- lalpulsar/simulateHeterodynedCW.py +591 -0
- lalsimulation/__init__.py +7 -0
- lalsimulation/_lalsimulation.cpython-312-darwin.so +0 -0
- lalsimulation/_lalsimulation_swig.py +14 -0
- lalsimulation/git_version.py +64 -0
- lalsimulation/gwsignal/__init__.py +9 -0
- lalsimulation/gwsignal/core/__init__.py +2 -0
- lalsimulation/gwsignal/core/conditioning_subroutines.py +196 -0
- lalsimulation/gwsignal/core/errors.py +136 -0
- lalsimulation/gwsignal/core/gw.py +206 -0
- lalsimulation/gwsignal/core/parameter_conventions.py +122 -0
- lalsimulation/gwsignal/core/utils.py +329 -0
- lalsimulation/gwsignal/core/waveform.py +725 -0
- lalsimulation/gwsignal/core/waveform_conditioning.py +455 -0
- lalsimulation/gwsignal/models/__init__.py +29 -0
- lalsimulation/gwsignal/models/pyseobnr_model.py +452 -0
- lalsimulation/nrfits/NRSur3dq8Remnant.py +92 -0
- lalsimulation/nrfits/NRSur7dq4Remnant.py +469 -0
- lalsimulation/nrfits/__init__.py +1 -0
- lalsimulation/nrfits/eval_fits.py +364 -0
- lalsimulation/nrfits/nrfits.py +78 -0
- lalsimulation/nrfits/pn_spin_evolution_wrapper.py +92 -0
- lalsimulation/nrfits/quaternion_utils.py +74 -0
- lalsimulation/tilts_at_infinity/__init__.py +2 -0
- lalsimulation/tilts_at_infinity/calc_tilts_prec_avg_regularized.py +1424 -0
- lalsimulation/tilts_at_infinity/hybrid_spin_evolution.py +461 -0
- lalsimulation/tilts_at_infinity/tilts_at_infinity_utils.py +167 -0
- lalsuite-7.26.2.dev20251210.data/scripts/cbcBayesBurstPPAnalysis +305 -0
- lalsuite-7.26.2.dev20251210.data/scripts/cbcBayesBurstPostProc +1364 -0
- lalsuite-7.26.2.dev20251210.data/scripts/cbcBayesCombinePTMCMCh5s +100 -0
- lalsuite-7.26.2.dev20251210.data/scripts/cbcBayesCombinePosteriors +235 -0
- lalsuite-7.26.2.dev20251210.data/scripts/cbcBayesCompPos +1121 -0
- lalsuite-7.26.2.dev20251210.data/scripts/cbcBayesDIEvidence +68 -0
- lalsuite-7.26.2.dev20251210.data/scripts/cbcBayesGraceDBinfo +182 -0
- lalsuite-7.26.2.dev20251210.data/scripts/cbcBayesMCMC2pos +314 -0
- lalsuite-7.26.2.dev20251210.data/scripts/cbcBayesPPAnalysis +322 -0
- lalsuite-7.26.2.dev20251210.data/scripts/cbcBayesPlotSpinDisk +42 -0
- lalsuite-7.26.2.dev20251210.data/scripts/cbcBayesPosToSimBurst +227 -0
- lalsuite-7.26.2.dev20251210.data/scripts/cbcBayesPosToSimInspiral +307 -0
- lalsuite-7.26.2.dev20251210.data/scripts/cbcBayesPostProc +1345 -0
- lalsuite-7.26.2.dev20251210.data/scripts/cbcBayesThermoInt +107 -0
- lalsuite-7.26.2.dev20251210.data/scripts/imrtgr_imr_consistency_test +796 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lal_cache +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lal_fftw_wisdom +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lal_fftwf_wisdom +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lal_path2cache +148 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lal_searchsum2cache +172 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lal_simd_detect +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lal_tconvert +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lal_version +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_ComputeAntennaPattern +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_ComputeFstatBenchmark +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_ComputeFstatLatticeCount +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_ComputeFstatMCUpperLimit +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_ComputeFstatistic_v2 +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_ComputePSD +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_CopySFTs +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_DistanceVsMass +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_DriveHoughMulti +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_FstatMetric_v2 +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_HierarchSearchGCT +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_HierarchicalSearch +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_MakeSFTDAG +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_MakeSFTs +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_Makefakedata_v4 +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_Makefakedata_v5 +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_PredictFstat +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_PrintDetectorState +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_SFTclean +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_SFTvalidate +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_StringAddFrame +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_StringSearch +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_Weave +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_WeaveCompare +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_WeaveConcat +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_WeaveSetup +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_WriteSFTsfromSFDBs +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_animate +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_binj +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_blindinj +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_cache +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_cafe +99 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_calfacs +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_cbc_stochasticbank +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_chirplen +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_coh_PTF_inspiral +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_coinj +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_combine_crosscorr_toplists +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_compareFstats +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_compareSFTs +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_cosmicstring_pipe +525 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_create_time_correction_ephemeris +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_dumpSFT +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_effdist +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_exc_resp +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_fftw_wisdom +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_fftwf_wisdom +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_fits_header_getval +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_fits_header_list +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_fits_overview +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_fits_table_list +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_fr_ninja +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_frextr +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_frinfo +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_frjoin +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_frread +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_frview +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_gwf2xml +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_heterodyne_pulsar +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_inspawgfile +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_inspfrinj +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_inspinj +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_inspiralDistance +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_knope +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_knope_automation_script +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_knope_collate_results +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_knope_result_page +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_makeblindinj +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_makeblindinj_himass +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_ninja +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_path2cache +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_power +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_power_likelihood_pipe +219 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_power_pipe +417 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_pulsar_crosscorr_v2 +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_pulsar_frequency_evolution +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_pulsar_parameter_estimation_nested +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_random_bank +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_randombank +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_run_pulsar_crosscorr_v2 +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_searchsum2cache +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_spec_avg +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_spec_avg_long +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_spec_coherence +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_spininj +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_splitSFTs +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_splitbank +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_ssbtodetector +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_string_apply_vetoes +171 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_string_calc_likelihood +172 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_string_contour_plotter +141 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_string_contour_plotter_largeloops +133 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_string_cs_gamma +110 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_string_cs_gamma_largeloops +119 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_string_final +1064 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_string_meas_likelihood +264 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_string_plot_binj +543 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_string_plot_likelihood +380 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_synthesizeBstatMC +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_synthesizeLVStats +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_synthesizeTransientStats +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_tconvert +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_tmpltbank +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_version +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalapps_xtefitstoframe +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalburst_cluster +156 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalburst_coinc +224 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalburst_cut +425 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalburst_gen_timeslides +254 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalburst_inj_pic +254 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalburst_injfind +170 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalburst_plot_tisi +165 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalburst_power_calc_likelihood +182 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalburst_power_final +1369 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalburst_power_meas_likelihood +206 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalburst_power_plot_binj +934 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalburst_power_plot_binjtf +302 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalburst_version +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalfr-cat +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalfr-cksum +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalfr-cut +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalfr-dump +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalfr-fmt +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalfr-paste +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalfr-print +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalfr-split +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalfr-stat +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalfr-stream +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalfr-vis +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalframe_version +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_bench +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_burst +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_burst_pp_pipe +220 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_coherence_test +139 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_compute_roq_weights +404 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_cpnest +58 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_datadump +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_evolve_spins_and_append_samples +202 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_injectedlike +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_merge_posteriors +57 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_mpi_wrapper +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_multi_pipe +144 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_nest +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_nest2pos +286 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_pipe +512 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_pp_pipe +229 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_review_test +362 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinference_version +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinspiral_injfind +206 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinspiral_thinca +240 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalinspiral_version +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalmetaio_version +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_ComputeAntennaPattern +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_ComputeFstatBenchmark +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_ComputeFstatLatticeCount +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_ComputeFstatMCUpperLimit +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_ComputeFstatistic_v2 +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_ComputePSD +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_CopyPublicSFTs +216 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_DriveHoughMulti +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_FstatMetric_v2 +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_HierarchSearchGCT +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_HierarchicalSearch +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_MakeSFTDAG +1142 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_MakeSFTs +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_Makefakedata_v4 +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_Makefakedata_v5 +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_MoveSFTs +208 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_PiecewiseSearch +963 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_PredictFstat +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_PrintDetectorState +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_SFTclean +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_SFTvalidate +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_Weave +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_WeaveCompare +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_WeaveConcat +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_WeaveSetup +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_WriteSFTsfromSFDBs +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_compareFstats +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_compareSFTs +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_create_time_correction_ephemeris +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_crosscorr_v2 +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_dumpSFT +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_fits_header_getval +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_fits_header_list +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_fits_overview +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_fits_table_list +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_frequency_evolution +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_heterodyne +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_knope +145 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_knope_automation_script +731 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_knope_collate_results +675 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_knope_result_page +2977 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_parameter_estimation_nested +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_spec_avg +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_spec_avg_long +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_spec_coherence +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_splitSFTs +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_ssbtodetector +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_synthesizeBstatMC +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_synthesizeLVStats +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_synthesizeTransientStats +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalpulsar_version +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalsim-bh-qnmode +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalsim-bh-ringdown +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalsim-bh-sphwf +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalsim-burst +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalsim-detector-noise +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalsim-detector-strain +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalsim-inject +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalsim-inspiral +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalsim-ns-eos-table +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalsim-ns-mass-radius +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalsim-ns-params +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalsim-sgwb +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalsim-unicorn +6 -0
- lalsuite-7.26.2.dev20251210.data/scripts/lalsimulation_version +6 -0
- lalsuite-7.26.2.dev20251210.dist-info/METADATA +90 -0
- lalsuite-7.26.2.dev20251210.dist-info/RECORD +749 -0
- lalsuite-7.26.2.dev20251210.dist-info/WHEEL +6 -0
- lalsuite-7.26.2.dev20251210.dist-info/licenses/COPYING +339 -0
- lalsuite-7.26.2.dev20251210.dist-info/top_level.txt +9 -0
|
@@ -0,0 +1,963 @@
|
|
|
1
|
+
#!python
|
|
2
|
+
# Copyright (C) 2019--2023 Benjamin Grace
|
|
3
|
+
#
|
|
4
|
+
# This program is free software; you can redistribute it and/or modify it
|
|
5
|
+
# under the terms of the GNU General Public License as published by the
|
|
6
|
+
# Free Software Foundation; either version 2 of the License, or (at your
|
|
7
|
+
# option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful, but
|
|
10
|
+
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
12
|
+
# Public License for more details.
|
|
13
|
+
#
|
|
14
|
+
# You should have received a copy of the GNU General Public License along
|
|
15
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
16
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
17
|
+
|
|
18
|
+
## \defgroup lalpulsar_bin_PiecewiseSearch Piecewise Search Applications
|
|
19
|
+
## \ingroup lalpulsar_bin_Apps
|
|
20
|
+
|
|
21
|
+
## \file
|
|
22
|
+
## \ingroup lalpulsar_bin_PiecewiseSearch
|
|
23
|
+
"""Search for long-transient gravitational waves using a piecewise frequency model"""
|
|
24
|
+
|
|
25
|
+
import argparse as ap
|
|
26
|
+
import cProfile
|
|
27
|
+
import io
|
|
28
|
+
import logging
|
|
29
|
+
import os
|
|
30
|
+
import pstats
|
|
31
|
+
import random
|
|
32
|
+
import signal
|
|
33
|
+
import time
|
|
34
|
+
|
|
35
|
+
import numpy as np
|
|
36
|
+
|
|
37
|
+
import lal
|
|
38
|
+
import lalpulsar as lp
|
|
39
|
+
import lalpulsar.piecewise_model.basis_functions as bf
|
|
40
|
+
import lalpulsar.piecewise_model.class_definitions as cd
|
|
41
|
+
import lalpulsar.piecewise_model.estimating_knots as ek
|
|
42
|
+
import lalpulsar.piecewise_model.gte_and_other_methods as gom
|
|
43
|
+
import lalpulsar.piecewise_model.pw_fstat as pwf
|
|
44
|
+
import lalpulsar.piecewise_model.pw_model_simulations as pwsim
|
|
45
|
+
import lalpulsar.piecewise_model.semicoherent_metric_methods as scmm
|
|
46
|
+
import lalpulsar.piecewise_model.tbank_estimates as tbe
|
|
47
|
+
|
|
48
|
+
start_time = time.time()
|
|
49
|
+
|
|
50
|
+
# Allow liblalpulsar C code to be interrupted with Ctrl+C
|
|
51
|
+
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
|
52
|
+
|
|
53
|
+
parser = ap.ArgumentParser()
|
|
54
|
+
|
|
55
|
+
# Thoughts on this module
|
|
56
|
+
# It is beginning to get quite convoluted. Is it worth writing a new python module where a lot of this set up is written as functions? It may make this module more succinct
|
|
57
|
+
# and readable
|
|
58
|
+
|
|
59
|
+
# Required parameters
|
|
60
|
+
parser.add_argument(
|
|
61
|
+
"--tbankcode",
|
|
62
|
+
type=str,
|
|
63
|
+
help="Specifies the tbank object to use for a search",
|
|
64
|
+
required=True,
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
# Random seed, typically chosen as the job array number of OzSTAR. To ensure unique random seeds, j < 10,000
|
|
68
|
+
parser.add_argument(
|
|
69
|
+
"--j",
|
|
70
|
+
type=int,
|
|
71
|
+
help="The job array number on OzSTAR, to ensure unique random seeds, j < 10,000",
|
|
72
|
+
default=0,
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
# Parameters used for specifying signals to inject in SFTs as well as other parameters for F-Statistic calculations
|
|
76
|
+
parser.add_argument("--tstart", type=int, help="Start time of SFTs", default=None)
|
|
77
|
+
parser.add_argument(
|
|
78
|
+
"--trefsegfrac",
|
|
79
|
+
type=float,
|
|
80
|
+
help="What percentage tref occurs on each segment. E.g. if 1/2, then tref will be halfway through each segment",
|
|
81
|
+
default=0.0,
|
|
82
|
+
)
|
|
83
|
+
parser.add_argument(
|
|
84
|
+
"--noise_sqrt_Sh",
|
|
85
|
+
type=float,
|
|
86
|
+
help="Noise level to be added to data",
|
|
87
|
+
nargs="+",
|
|
88
|
+
default=[],
|
|
89
|
+
)
|
|
90
|
+
parser.add_argument(
|
|
91
|
+
"--tempsperfile",
|
|
92
|
+
type=int,
|
|
93
|
+
help="The number of templates with the greatest fstats to record",
|
|
94
|
+
default=1000,
|
|
95
|
+
)
|
|
96
|
+
parser.add_argument(
|
|
97
|
+
"--rtnsum",
|
|
98
|
+
help="Whether to return the 2F stat averaged over all segments",
|
|
99
|
+
action="store_true",
|
|
100
|
+
)
|
|
101
|
+
parser.add_argument(
|
|
102
|
+
"--SFTFiles",
|
|
103
|
+
help="Whether to write SFT files or have them stored in memory",
|
|
104
|
+
action="store_true",
|
|
105
|
+
)
|
|
106
|
+
parser.add_argument(
|
|
107
|
+
"--UseLocal",
|
|
108
|
+
help="If selected all files will be written to local storage and deleted once job finished except return values of pwf.semifstatcatalogue",
|
|
109
|
+
action="store_true",
|
|
110
|
+
)
|
|
111
|
+
parser.add_argument(
|
|
112
|
+
"--BaseSeed",
|
|
113
|
+
type=int,
|
|
114
|
+
help="BaseSeed * 10e7 + job number * 10e3 + iterations is the seed for generating random signal params",
|
|
115
|
+
default=0,
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
# Parameters to be used when creating the necessary elements to use lp.ComputeFStat
|
|
119
|
+
parser.add_argument(
|
|
120
|
+
"--Tsft", type=int, help="The length of each SFT to be built", default=10
|
|
121
|
+
)
|
|
122
|
+
parser.add_argument("--h0", type=float, help="Strain of the injected signal", default=0)
|
|
123
|
+
parser.add_argument(
|
|
124
|
+
"--cosi", type=float, help="Default injection cos-iota", default=None
|
|
125
|
+
)
|
|
126
|
+
parser.add_argument("--psi", type=float, help="Default injection psi", default=None)
|
|
127
|
+
parser.add_argument("--phi0", type=float, help="Default injection phi0", default=None)
|
|
128
|
+
parser.add_argument(
|
|
129
|
+
"--dt_wf", type=float, help="Sampling time for waveform generation", default=10
|
|
130
|
+
)
|
|
131
|
+
parser.add_argument(
|
|
132
|
+
"--Alpha",
|
|
133
|
+
type=float,
|
|
134
|
+
help="Right Ascension to sky position of source",
|
|
135
|
+
default=None,
|
|
136
|
+
)
|
|
137
|
+
parser.add_argument(
|
|
138
|
+
"--Delta", type=float, help="Declination to sky position of source", default=None
|
|
139
|
+
)
|
|
140
|
+
parser.add_argument(
|
|
141
|
+
"--detectors",
|
|
142
|
+
type=str,
|
|
143
|
+
help="Set detector being used. Options H1, V1, etc.",
|
|
144
|
+
nargs="+",
|
|
145
|
+
default=[],
|
|
146
|
+
)
|
|
147
|
+
parser.add_argument(
|
|
148
|
+
"--dfreq", type=float, help="Frequency spacing for ComputeFstat()", default=0
|
|
149
|
+
)
|
|
150
|
+
parser.add_argument(
|
|
151
|
+
"--sourceDeltaT",
|
|
152
|
+
type=float,
|
|
153
|
+
help="sourceDeltaT option for ComputeFstat()",
|
|
154
|
+
default=0.1,
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
# Parameters used in defining the parameter space
|
|
158
|
+
parser.add_argument(
|
|
159
|
+
"--s", type=int, help="Set the s parameter", nargs="?", const=1, default=None
|
|
160
|
+
)
|
|
161
|
+
parser.add_argument(
|
|
162
|
+
"--fmin",
|
|
163
|
+
type=float,
|
|
164
|
+
help="Set the fmin parameter",
|
|
165
|
+
nargs="?",
|
|
166
|
+
const=1,
|
|
167
|
+
default=None,
|
|
168
|
+
)
|
|
169
|
+
parser.add_argument(
|
|
170
|
+
"--fmax",
|
|
171
|
+
type=float,
|
|
172
|
+
help="Set the fmax parameter",
|
|
173
|
+
nargs="?",
|
|
174
|
+
const=1,
|
|
175
|
+
default=None,
|
|
176
|
+
)
|
|
177
|
+
parser.add_argument(
|
|
178
|
+
"--nmin",
|
|
179
|
+
type=float,
|
|
180
|
+
help="Set the nmin parameter",
|
|
181
|
+
nargs="?",
|
|
182
|
+
const=1,
|
|
183
|
+
default=None,
|
|
184
|
+
)
|
|
185
|
+
parser.add_argument(
|
|
186
|
+
"--nmax",
|
|
187
|
+
type=float,
|
|
188
|
+
help="Set the nmax parameter",
|
|
189
|
+
nargs="?",
|
|
190
|
+
const=1,
|
|
191
|
+
default=None,
|
|
192
|
+
)
|
|
193
|
+
parser.add_argument(
|
|
194
|
+
"--Izz",
|
|
195
|
+
type=float,
|
|
196
|
+
help="Inertia of the NS. Used to calculate default k values",
|
|
197
|
+
nargs="?",
|
|
198
|
+
const=1,
|
|
199
|
+
default=None,
|
|
200
|
+
)
|
|
201
|
+
parser.add_argument(
|
|
202
|
+
"--ellip",
|
|
203
|
+
type=float,
|
|
204
|
+
help="Ellipticity of NS. Used to calculate default k values",
|
|
205
|
+
nargs="?",
|
|
206
|
+
const=1,
|
|
207
|
+
default=None,
|
|
208
|
+
)
|
|
209
|
+
parser.add_argument(
|
|
210
|
+
"--radius",
|
|
211
|
+
type=float,
|
|
212
|
+
help="Radius of the NS. Used to calculate default k values",
|
|
213
|
+
nargs="?",
|
|
214
|
+
const=1,
|
|
215
|
+
default=None,
|
|
216
|
+
)
|
|
217
|
+
parser.add_argument(
|
|
218
|
+
"--kmin",
|
|
219
|
+
type=float,
|
|
220
|
+
help="Set the kmin parameter. Overrides Izz, ellip and radius values",
|
|
221
|
+
nargs="?",
|
|
222
|
+
const=1,
|
|
223
|
+
default=None,
|
|
224
|
+
)
|
|
225
|
+
parser.add_argument(
|
|
226
|
+
"--kmax",
|
|
227
|
+
type=float,
|
|
228
|
+
help="Set the kmax parameter. Overrides Izz, ellip and radius values",
|
|
229
|
+
nargs="?",
|
|
230
|
+
const=1,
|
|
231
|
+
default=None,
|
|
232
|
+
)
|
|
233
|
+
parser.add_argument(
|
|
234
|
+
"--dur",
|
|
235
|
+
type=float,
|
|
236
|
+
help="The maximum duration the knot algorithm to calculate up to",
|
|
237
|
+
nargs="?",
|
|
238
|
+
const=1,
|
|
239
|
+
default=None,
|
|
240
|
+
)
|
|
241
|
+
parser.add_argument(
|
|
242
|
+
"--knots", type=float, help="Use user defined knots", nargs="+", default=[0]
|
|
243
|
+
)
|
|
244
|
+
parser.add_argument(
|
|
245
|
+
"--maxmismatch",
|
|
246
|
+
type=float,
|
|
247
|
+
help="Set the mismatch parameter",
|
|
248
|
+
nargs="?",
|
|
249
|
+
const=1,
|
|
250
|
+
default=None,
|
|
251
|
+
)
|
|
252
|
+
parser.add_argument(
|
|
253
|
+
"--knotnum",
|
|
254
|
+
type=int,
|
|
255
|
+
help="Use a knotnum number of knots generated by algorithm",
|
|
256
|
+
nargs="?",
|
|
257
|
+
const=1,
|
|
258
|
+
default=None,
|
|
259
|
+
)
|
|
260
|
+
parser.add_argument(
|
|
261
|
+
"--knot_alg_dur",
|
|
262
|
+
type=float,
|
|
263
|
+
help="Uses knots generated by the algorithm extending to this duration",
|
|
264
|
+
nargs="?",
|
|
265
|
+
const=1,
|
|
266
|
+
default=None,
|
|
267
|
+
)
|
|
268
|
+
parser.add_argument(
|
|
269
|
+
"--flags_bbox",
|
|
270
|
+
type=float,
|
|
271
|
+
help="Fractional bounding box padding to use on each dimension",
|
|
272
|
+
nargs="+",
|
|
273
|
+
default=[],
|
|
274
|
+
)
|
|
275
|
+
parser.add_argument(
|
|
276
|
+
"--flags_intbox",
|
|
277
|
+
type=int,
|
|
278
|
+
help="Integer points to use for padding on each dimension",
|
|
279
|
+
nargs="+",
|
|
280
|
+
default=[],
|
|
281
|
+
)
|
|
282
|
+
|
|
283
|
+
# Different modes for the code to run
|
|
284
|
+
parser.add_argument(
|
|
285
|
+
"--det_prob",
|
|
286
|
+
help="If selected, does an iterations number of searches, with signal h0 varying from min_h0 to max_h0. Also includes h0 = 0 for computing 2F* simultaneously",
|
|
287
|
+
action="store_true",
|
|
288
|
+
)
|
|
289
|
+
parser.add_argument(
|
|
290
|
+
"--threshold_2F",
|
|
291
|
+
help="Does an iterations number of searches with no injected signal. Useful for calculating 2F* without calculating det_prob",
|
|
292
|
+
action="store_true",
|
|
293
|
+
)
|
|
294
|
+
parser.add_argument(
|
|
295
|
+
"--min_h0",
|
|
296
|
+
type=float,
|
|
297
|
+
help="Minimum h0 for calculating detection probabilities, det_prob must be true",
|
|
298
|
+
default=1e-30,
|
|
299
|
+
)
|
|
300
|
+
parser.add_argument(
|
|
301
|
+
"--max_h0",
|
|
302
|
+
type=float,
|
|
303
|
+
help="Maximum h0 for calculating detection probabilities, det_prob must be true",
|
|
304
|
+
default=1e-10,
|
|
305
|
+
)
|
|
306
|
+
parser.add_argument(
|
|
307
|
+
"--template_count",
|
|
308
|
+
help="Returns the template count for the parameter space. Does not compute anything else",
|
|
309
|
+
action="store_true",
|
|
310
|
+
)
|
|
311
|
+
parser.add_argument(
|
|
312
|
+
"--mis_hist",
|
|
313
|
+
help="If selected with Fstat_mismatch, only returns the lowest mis_match",
|
|
314
|
+
action="store_true",
|
|
315
|
+
)
|
|
316
|
+
parser.add_argument(
|
|
317
|
+
"--fake_data",
|
|
318
|
+
help="If selected, carries out a search on fake data with an injected signal",
|
|
319
|
+
action="store_true",
|
|
320
|
+
)
|
|
321
|
+
parser.add_argument(
|
|
322
|
+
"--inject_data",
|
|
323
|
+
help="If selected, injects a randomly generated signal into the SFTs located at the path set by . Can be selected alongside other modes",
|
|
324
|
+
action="store_true",
|
|
325
|
+
)
|
|
326
|
+
|
|
327
|
+
# Other options available
|
|
328
|
+
parser.add_argument(
|
|
329
|
+
"--Fstat_mismatch",
|
|
330
|
+
help="If selected, determines mismatches using the 2F definition, otherwise uses the metric",
|
|
331
|
+
action="store_true",
|
|
332
|
+
)
|
|
333
|
+
parser.add_argument(
|
|
334
|
+
"--signal_as_template",
|
|
335
|
+
help="If selected, the random injected signal will coincide with a template",
|
|
336
|
+
action="store_true",
|
|
337
|
+
)
|
|
338
|
+
parser.add_argument(
|
|
339
|
+
"--iterations",
|
|
340
|
+
type=int,
|
|
341
|
+
help="Number of loops for the code to perform. For unique random seeds, iterations < 1000",
|
|
342
|
+
default=1,
|
|
343
|
+
)
|
|
344
|
+
parser.add_argument(
|
|
345
|
+
"--freq_bands",
|
|
346
|
+
type=float,
|
|
347
|
+
help="Defines frequency bands for search to cover. Frequency bands chosen as fmin=freq_bands[j], fmax=freq_bands[j+1]",
|
|
348
|
+
nargs="+",
|
|
349
|
+
default=[],
|
|
350
|
+
)
|
|
351
|
+
parser.add_argument(
|
|
352
|
+
"--fstat_hist",
|
|
353
|
+
help="If selected, returns data on the distribution of 2Fs as a histogram",
|
|
354
|
+
action="store_true",
|
|
355
|
+
)
|
|
356
|
+
parser.add_argument(
|
|
357
|
+
"--data_psd",
|
|
358
|
+
help="Use simulated data with a noise level equal to the PSD of data",
|
|
359
|
+
action="store_true",
|
|
360
|
+
)
|
|
361
|
+
|
|
362
|
+
# Parameters controlling outputs
|
|
363
|
+
parser.add_argument("--outbasedir", type=str, help="Output base directory", default=".")
|
|
364
|
+
parser.add_argument(
|
|
365
|
+
"--logfile",
|
|
366
|
+
help="If true, log to file; if false, log to standard output",
|
|
367
|
+
action="store_true",
|
|
368
|
+
)
|
|
369
|
+
parser.add_argument(
|
|
370
|
+
"--loglevel", help="Level at which to log messages", default=logging.INFO
|
|
371
|
+
)
|
|
372
|
+
parser.add_argument("--profile", help="Profile the code", action="store_true")
|
|
373
|
+
parser.add_argument(
|
|
374
|
+
"--noise_path",
|
|
375
|
+
type=str,
|
|
376
|
+
help="Path to noise data.",
|
|
377
|
+
default=None,
|
|
378
|
+
)
|
|
379
|
+
parser.add_argument(
|
|
380
|
+
"--psd_path",
|
|
381
|
+
type=str,
|
|
382
|
+
help="Path to psd data.",
|
|
383
|
+
default=None,
|
|
384
|
+
)
|
|
385
|
+
parser.add_argument(
|
|
386
|
+
"--sft_path",
|
|
387
|
+
type=str,
|
|
388
|
+
help="Path to sfts.",
|
|
389
|
+
default=None,
|
|
390
|
+
)
|
|
391
|
+
|
|
392
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
393
|
+
# Logging, profiling and setting the directory for the knots list
|
|
394
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
395
|
+
|
|
396
|
+
args = parser.parse_args()
|
|
397
|
+
outbasedirectory = args.outbasedir
|
|
398
|
+
|
|
399
|
+
ek.setknotarchivepath(outbasedirectory)
|
|
400
|
+
|
|
401
|
+
# For logging
|
|
402
|
+
logging_format = "%(asctime)s : %(levelname)s : %(message)s"
|
|
403
|
+
if args.logfile:
|
|
404
|
+
logging_filename = os.path.join(outbasedirectory, f"PiecewiseSearchLog_{j}.log")
|
|
405
|
+
logging.basicConfig(
|
|
406
|
+
filename=logging_filename,
|
|
407
|
+
filemode="w",
|
|
408
|
+
level=args.loglevel,
|
|
409
|
+
format=logging_format,
|
|
410
|
+
)
|
|
411
|
+
logging.info(f"Logging to {logging_filename}")
|
|
412
|
+
else:
|
|
413
|
+
logging.basicConfig(level=args.loglevel, format=logging_format)
|
|
414
|
+
logging.info(f"Logging to standard output")
|
|
415
|
+
logging.captureWarnings(True)
|
|
416
|
+
if logging.getLogger().isEnabledFor(logging.INFO):
|
|
417
|
+
lp.globalvar.LatticeTilingProgressLogLevel = lal.LOG_NORMAL
|
|
418
|
+
|
|
419
|
+
job_num = os.getenv("SLURM_ARRAY_TASK_ID")
|
|
420
|
+
logging.info("Job_array_num_is_" + str(job_num))
|
|
421
|
+
|
|
422
|
+
# For profiling
|
|
423
|
+
if args.profile:
|
|
424
|
+
logging.info("Making the profiler")
|
|
425
|
+
pr = cProfile.Profile()
|
|
426
|
+
pr.enable()
|
|
427
|
+
|
|
428
|
+
logging.debug("Doing the arg stuff")
|
|
429
|
+
|
|
430
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
431
|
+
# Required arguments
|
|
432
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
433
|
+
|
|
434
|
+
tbankcode = args.tbankcode
|
|
435
|
+
|
|
436
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
437
|
+
# Optional arguments and Random Seed
|
|
438
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
439
|
+
|
|
440
|
+
j = args.j
|
|
441
|
+
trefsegfrac = args.trefsegfrac
|
|
442
|
+
rtnsum = args.rtnsum
|
|
443
|
+
tempsperfile = args.tempsperfile
|
|
444
|
+
SFTFiles = args.SFTFiles
|
|
445
|
+
UseLocal = args.UseLocal
|
|
446
|
+
BaseSeed = args.BaseSeed
|
|
447
|
+
iterations = args.iterations
|
|
448
|
+
|
|
449
|
+
Random_Seed = BaseSeed * 10000000 + j * 1000
|
|
450
|
+
Random_Seed_Str = "{:0>9d}".format(Random_Seed)
|
|
451
|
+
|
|
452
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
453
|
+
# Setting the mode the code is run in, influencing its output
|
|
454
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
455
|
+
mode = "search"
|
|
456
|
+
|
|
457
|
+
if args.det_prob:
|
|
458
|
+
mode = "det_prob"
|
|
459
|
+
elif args.threshold_2F:
|
|
460
|
+
mode = "threshold_2F"
|
|
461
|
+
elif args.template_count:
|
|
462
|
+
mode = "template_count"
|
|
463
|
+
elif args.mis_hist:
|
|
464
|
+
mode = "mis_hist"
|
|
465
|
+
elif args.fake_data:
|
|
466
|
+
mode = "fake_data"
|
|
467
|
+
|
|
468
|
+
logging.info(f"Search mode: {mode}")
|
|
469
|
+
|
|
470
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
471
|
+
# Setting the template bank object and changing user specified parameters
|
|
472
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
473
|
+
tbank = cd.TBank()
|
|
474
|
+
|
|
475
|
+
if tbankcode == "GW170817":
|
|
476
|
+
logging.info(f"Starting with default parameter space: {tbankcode}")
|
|
477
|
+
tbank.SetDefaultGW170817()
|
|
478
|
+
|
|
479
|
+
elif tbankcode == "GW190425":
|
|
480
|
+
logging.info(f"Starting with default parameter space: {tbankcode}")
|
|
481
|
+
tbank.SetDefaultGW190425()
|
|
482
|
+
|
|
483
|
+
elif tbankcode == "1987A":
|
|
484
|
+
logging.info(f"Starting with default parameter space: {tbankcode}")
|
|
485
|
+
tbank.SetDefault1987A()
|
|
486
|
+
|
|
487
|
+
elif tbankcode == "CasA":
|
|
488
|
+
logging.info(f"Starting with default parameter space: {tbankcode}")
|
|
489
|
+
tbank.SetDefaultCasA()
|
|
490
|
+
else:
|
|
491
|
+
logging.info("No tbank selected! Put an error here!")
|
|
492
|
+
|
|
493
|
+
# If using custom frequency bands
|
|
494
|
+
if args.freq_bands:
|
|
495
|
+
args.fmin = args.freq_bands[j]
|
|
496
|
+
args.fmax = args.freq_bands[j + 1]
|
|
497
|
+
|
|
498
|
+
# Override any tbank arguments set on the command line
|
|
499
|
+
tbank.SetTBankParams(args)
|
|
500
|
+
|
|
501
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
502
|
+
# Checking for user defined knots, or if knots need to be recalculated based on any changed default parameters
|
|
503
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
504
|
+
if args.knots != [0]:
|
|
505
|
+
logging.info("Setting knots from command line")
|
|
506
|
+
bf.knotslist = args.knots
|
|
507
|
+
elif args.knot_alg_dur:
|
|
508
|
+
logging.info("Setting knots from algorithm")
|
|
509
|
+
tbank.dur = args.knot_alg_dur
|
|
510
|
+
tbank.SetKnotsByAlg()
|
|
511
|
+
else:
|
|
512
|
+
logging.info("Using default knots")
|
|
513
|
+
bf.knotslist = tbank.knots
|
|
514
|
+
|
|
515
|
+
tbank.knots = bf.knotslist
|
|
516
|
+
tbank.dur = tbank.knots[-1] - tbank.knots[0]
|
|
517
|
+
|
|
518
|
+
# Adjusting knot start time and duration
|
|
519
|
+
if bf.knotslist[0] == 0:
|
|
520
|
+
for i, knot in enumerate(bf.knotslist):
|
|
521
|
+
bf.knotslist[i] = knot + tbank.tstart
|
|
522
|
+
|
|
523
|
+
logging.info("Knots: %s", str(bf.knotslist))
|
|
524
|
+
|
|
525
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
526
|
+
# Padding flag customisation
|
|
527
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
528
|
+
if args.flags_bbox == []:
|
|
529
|
+
tbank.flags_bbox = [-1] * tbank.s * len(bf.knotslist)
|
|
530
|
+
|
|
531
|
+
if args.flags_intbox == []:
|
|
532
|
+
tbank.flags_intbox = [-1] * tbank.s * len(bf.knotslist)
|
|
533
|
+
|
|
534
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
535
|
+
# Setting detector specifics for noise curve data
|
|
536
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
537
|
+
|
|
538
|
+
detectors = tbank.detectors
|
|
539
|
+
|
|
540
|
+
logging.info(f"Detectors: {detectors}")
|
|
541
|
+
logging.info(f"Arg Detectors: {args.detectors}")
|
|
542
|
+
logging.info(f"TBank Detectors: {tbank.detectors}")
|
|
543
|
+
|
|
544
|
+
num_det = len(detectors)
|
|
545
|
+
|
|
546
|
+
detector_str_list = lal.CreateStringVector(detectors[0])
|
|
547
|
+
|
|
548
|
+
# I'm sure there's a better way to initialise the detector LALStringVector
|
|
549
|
+
for detector in detectors[1:]:
|
|
550
|
+
lal.AppendString2Vector(detector_str_list, detector)
|
|
551
|
+
|
|
552
|
+
noise_path = tbank.noise_path
|
|
553
|
+
psd_path = tbank.psd_path
|
|
554
|
+
|
|
555
|
+
noise_curve_data = []
|
|
556
|
+
|
|
557
|
+
if args.noise_sqrt_Sh == [] and mode != "search":
|
|
558
|
+
|
|
559
|
+
for detector in detectors:
|
|
560
|
+
path_to_data = noise_path + detector + "asd.txt"
|
|
561
|
+
|
|
562
|
+
if args.data_psd:
|
|
563
|
+
path_to_data = psd_path + detector + ".txt"
|
|
564
|
+
|
|
565
|
+
min_freq_strain = -1
|
|
566
|
+
max_freq_strain = -1
|
|
567
|
+
|
|
568
|
+
if mode == "template_count":
|
|
569
|
+
break
|
|
570
|
+
|
|
571
|
+
with open(path_to_data) as noise_curve:
|
|
572
|
+
for line in noise_curve:
|
|
573
|
+
|
|
574
|
+
this_line = line.split()
|
|
575
|
+
frequency = float(this_line[0])
|
|
576
|
+
strain = float(this_line[1])
|
|
577
|
+
|
|
578
|
+
if min_freq_strain == -1 and frequency > args.fmin:
|
|
579
|
+
min_freq_strain = strain
|
|
580
|
+
|
|
581
|
+
if max_freq_strain == -1 and frequency > args.fmax:
|
|
582
|
+
max_freq_strain = strain
|
|
583
|
+
break
|
|
584
|
+
|
|
585
|
+
this_det_noise = (min_freq_strain + max_freq_strain) / 2
|
|
586
|
+
noise_curve_data.append(this_det_noise)
|
|
587
|
+
|
|
588
|
+
logging.info("Noise curve data for given frequency band: %s", str(noise_curve_data))
|
|
589
|
+
logging.info("User specified noise used (if given): %s", str(args.noise_sqrt_Sh))
|
|
590
|
+
|
|
591
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
592
|
+
# Setting the FInput object
|
|
593
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
594
|
+
|
|
595
|
+
# Note that the parameters cosi, psi and phi0 are randomised in a for loop below.
|
|
596
|
+
|
|
597
|
+
finputdata = cd.FInput()
|
|
598
|
+
finputdata.Tsft = args.Tsft
|
|
599
|
+
finputdata.tstart = tbank.tstart
|
|
600
|
+
finputdata.trefsegfrac = args.trefsegfrac
|
|
601
|
+
finputdata.h0 = args.h0
|
|
602
|
+
finputdata.cosi = args.cosi
|
|
603
|
+
finputdata.psi = args.psi
|
|
604
|
+
finputdata.phi0 = args.phi0
|
|
605
|
+
finputdata.dt_wf = args.dt_wf
|
|
606
|
+
finputdata.Alpha = tbank.Alpha
|
|
607
|
+
finputdata.Delta = tbank.Delta
|
|
608
|
+
finputdata.detectors = detector_str_list
|
|
609
|
+
finputdata.noise_sqrt_Sh = (
|
|
610
|
+
args.noise_sqrt_Sh if args.noise_sqrt_Sh != [] else noise_curve_data
|
|
611
|
+
)
|
|
612
|
+
finputdata.dfreq = args.dfreq
|
|
613
|
+
finputdata.sourceDeltaT = args.sourceDeltaT
|
|
614
|
+
finputdata.inject_data = args.inject_data
|
|
615
|
+
|
|
616
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
617
|
+
# Building the name of the directory where the SFTs will be saved. Directory name is based off the tbank object. In this way, any searches completed
|
|
618
|
+
# using the same tbank will have all SFTs in the same directory for neatness. Within the tbankdirectory, sub folders are used to contain the SFTs
|
|
619
|
+
# and results of each different search. If UseLocal, then all files are written to OzSTAR local disks, which are deleted when jobs are finished.
|
|
620
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
621
|
+
|
|
622
|
+
append_string = "_BS-" + str(args.BaseSeed) + "_j-" + str(j)
|
|
623
|
+
|
|
624
|
+
if UseLocal:
|
|
625
|
+
local_disk_directory = os.getenv("JOBFS")
|
|
626
|
+
tbankdirectory = (
|
|
627
|
+
os.path.join(local_disk_directory, tbank.toString()) + append_string
|
|
628
|
+
)
|
|
629
|
+
else:
|
|
630
|
+
tbankdirectory = os.path.join(outbasedirectory, tbank.toString()) + append_string
|
|
631
|
+
|
|
632
|
+
if not os.path.isdir(tbankdirectory):
|
|
633
|
+
os.mkdir(tbankdirectory)
|
|
634
|
+
|
|
635
|
+
logging.info(f"TBank directory is {tbankdirectory}")
|
|
636
|
+
|
|
637
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
638
|
+
# Building strain list for injected signals, only necessary if --det_prob option is chosen
|
|
639
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
640
|
+
minimum_h0 = args.min_h0
|
|
641
|
+
maximum_h0 = args.max_h0
|
|
642
|
+
|
|
643
|
+
power_list = np.linspace(np.log10(minimum_h0), np.log10(maximum_h0), iterations)
|
|
644
|
+
|
|
645
|
+
h0_list = [0] + [10**i for i in power_list]
|
|
646
|
+
|
|
647
|
+
plus_one = 0
|
|
648
|
+
if args.det_prob:
|
|
649
|
+
plus_one = 1
|
|
650
|
+
|
|
651
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
652
|
+
# Begin search set up. Some options may benefit from running through multiple independent searches, hence all search setup is done in a for loop
|
|
653
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
654
|
+
for i in range(iterations + plus_one):
|
|
655
|
+
logging.info("Performing iteration: %s", str(i))
|
|
656
|
+
|
|
657
|
+
# Change strain
|
|
658
|
+
if args.det_prob:
|
|
659
|
+
finputdata.h0 = h0_list[i]
|
|
660
|
+
|
|
661
|
+
if args.threshold_2F:
|
|
662
|
+
finputdata.h0 = 0
|
|
663
|
+
|
|
664
|
+
logging.debug("Signal strength: %s", str(finputdata.h0))
|
|
665
|
+
|
|
666
|
+
# Random seed for this iteration
|
|
667
|
+
this_seed = Random_Seed + i
|
|
668
|
+
|
|
669
|
+
# The name of the file that 2F and templates are stored to is only changed by whether the 2F values are averaged or only summed
|
|
670
|
+
sumstr = ""
|
|
671
|
+
if rtnsum:
|
|
672
|
+
sumstr = "_Sum"
|
|
673
|
+
|
|
674
|
+
iteration_string = "_i-" + str(i)
|
|
675
|
+
|
|
676
|
+
tempsfilename = "Temps_For_" + tbank.toString() + iteration_string + sumstr + ".txt"
|
|
677
|
+
mismatchtempname = (
|
|
678
|
+
"Mismatch_Temps_For_" + tbank.toString() + iteration_string + sumstr + ".txt"
|
|
679
|
+
)
|
|
680
|
+
|
|
681
|
+
# Randomise the cosi, phi0 and psi parameters if we are not doing a targetted search
|
|
682
|
+
if mode != "search" or args.inject_data:
|
|
683
|
+
|
|
684
|
+
seed = random.seed(this_seed)
|
|
685
|
+
|
|
686
|
+
finputdata.phi0 = random.uniform(0, 2 * np.pi)
|
|
687
|
+
finputdata.psi = random.uniform(0, 2 * np.pi)
|
|
688
|
+
finputdata.cosi = random.uniform(-1, 1)
|
|
689
|
+
|
|
690
|
+
logging.info("phi0: %s", str(finputdata.phi0))
|
|
691
|
+
logging.info("psi: %s", str(finputdata.psi))
|
|
692
|
+
logging.info("cosi: %s", str(finputdata.cosi))
|
|
693
|
+
|
|
694
|
+
# This chain of else-if statements determines the path to the SFTs being used and the signal parameters that will be/have been injected into them. The first option
|
|
695
|
+
# is if we are generating our own fake data with gaussian noise by building SFT files. Using the SFT files is advantageous as we can inject any type of signal we wish,
|
|
696
|
+
# depending on what signal model is defined in pwsim. Signal parameters for the first option are randomly generated inside pwsim. The second option randomly generates
|
|
697
|
+
# signal parameters inside the parameter space. This option is used if we do not want to write SFT files, but rather store SFTs in memory. This option should be used for
|
|
698
|
+
# all configurations which are not a search on experimental data OR we are doing a search with experimental data but we want to inject a signal into that data. If the case
|
|
699
|
+
# is the latter, the random signal parameters are generated, but an enclosed if statement resets the SFT directory to the appropriate path for the experimental data.
|
|
700
|
+
# The final option is for if we are doing a search, in which case we use the SFT directory to the data SFTs and set the injected signal to all zeros.
|
|
701
|
+
|
|
702
|
+
if SFTFiles:
|
|
703
|
+
signalparams, SFTdirectory = pwsim.buildSFTs(
|
|
704
|
+
tbank.dur,
|
|
705
|
+
tbank,
|
|
706
|
+
finputdata,
|
|
707
|
+
trefsegfrac=trefsegfrac,
|
|
708
|
+
parentdirectory=tbankdirectory,
|
|
709
|
+
rand_seed=this_seed,
|
|
710
|
+
)
|
|
711
|
+
|
|
712
|
+
elif mode != "search" or (mode == "search" and args.inject_data):
|
|
713
|
+
logging.debug("Creating tiling lattice")
|
|
714
|
+
tiling = lp.CreateLatticeTiling(tbank.s * len(bf.knotslist))
|
|
715
|
+
|
|
716
|
+
logging.debug("Building metric")
|
|
717
|
+
metric = scmm.PreCompMetric(tbank.s)
|
|
718
|
+
|
|
719
|
+
logging.debug("Setting Bounds")
|
|
720
|
+
|
|
721
|
+
tbe.setbounds(tiling, tbank)
|
|
722
|
+
|
|
723
|
+
logging.debug("Setting tiling lattice and metric")
|
|
724
|
+
lp.SetTilingLatticeAndMetric(
|
|
725
|
+
tiling, lp.TILING_LATTICE_ANSTAR, metric, tbank.maxmismatch
|
|
726
|
+
)
|
|
727
|
+
|
|
728
|
+
logging.debug("Creating random signal params")
|
|
729
|
+
|
|
730
|
+
randparams = lal.CreateRandomParams(this_seed)
|
|
731
|
+
signalparams = lal.gsl_matrix(tbank.s * len(bf.knotslist), 1)
|
|
732
|
+
lp.RandomLatticeTilingPoints(tiling, 0, randparams, signalparams)
|
|
733
|
+
|
|
734
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
735
|
+
# If we want a signal to coincide exactly with a template from the template bank. A random point in the parameter space is generated, then the nearest
|
|
736
|
+
# template found to that point is chosen to be the injected signal
|
|
737
|
+
# -------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
738
|
+
if args.signal_as_template:
|
|
739
|
+
locator = lp.CreateLatticeTilingLocator(tiling)
|
|
740
|
+
|
|
741
|
+
signal_params_vec = lal.gsl_vector(tbank.s * len(bf.knotslist))
|
|
742
|
+
|
|
743
|
+
# Done as a for loop because setting signal_params_vec.data = signalparams.data[0] doesn't seem to work
|
|
744
|
+
for i, elem in enumerate(signalparams.data[0]):
|
|
745
|
+
signal_params_vec.data[i] = elem
|
|
746
|
+
|
|
747
|
+
nearest_point = lal.gsl_vector(tbank.s * len(bf.knotslist))
|
|
748
|
+
nearest_index = lal.CreateUINT8Vector(tbank.s * len(bf.knotslist))
|
|
749
|
+
|
|
750
|
+
lp.NearestLatticeTilingPoint(
|
|
751
|
+
locator, signal_params_vec, nearest_point, nearest_index
|
|
752
|
+
)
|
|
753
|
+
|
|
754
|
+
signalparams = np.transpose(nearest_point.data)
|
|
755
|
+
|
|
756
|
+
else:
|
|
757
|
+
signalparams = np.transpose(signalparams.data)[0]
|
|
758
|
+
|
|
759
|
+
logging.info("Random Signal Params are: %s", str(signalparams))
|
|
760
|
+
|
|
761
|
+
# Details for the SFT directory
|
|
762
|
+
|
|
763
|
+
f0 = signalparams[0]
|
|
764
|
+
f1 = signalparams[1]
|
|
765
|
+
f2 = signalparams[2]
|
|
766
|
+
|
|
767
|
+
SFTdirectory = os.path.join(
|
|
768
|
+
tbankdirectory,
|
|
769
|
+
f"SFTs_h0-{finputdata.h0:.2e}_f0-{f0:.3f}_f1-{f1:.2e}_f2-{f2:.2e}_dur-{tbank.dur}_tstart-{tbank.tstart}/",
|
|
770
|
+
)
|
|
771
|
+
|
|
772
|
+
if finputdata.inject_data:
|
|
773
|
+
|
|
774
|
+
SFTdirectory = tbank.sft_path
|
|
775
|
+
|
|
776
|
+
elif mode == "search" and not args.inject_data:
|
|
777
|
+
|
|
778
|
+
SFTdirectory = tbank.sft_path
|
|
779
|
+
|
|
780
|
+
signalparams = [-1] * (tbank.s * len(bf.knotslist))
|
|
781
|
+
|
|
782
|
+
logging.info("SFT's for this iteration have path: %s", SFTdirectory)
|
|
783
|
+
|
|
784
|
+
# Create the text file where 2F and template data will be stored. The first line is added to the file which contains the column titles for all data. We also write
|
|
785
|
+
# the signal parameters as the first data entry to this file, however we skip that step if we are carrying out a search
|
|
786
|
+
with open(os.path.join(tbankdirectory, tempsfilename), "w") as reader:
|
|
787
|
+
|
|
788
|
+
commentline = "{:20s}".format("#FStat") + " "
|
|
789
|
+
|
|
790
|
+
for detector_string in detectors:
|
|
791
|
+
commentline += "{:20s}".format(detector_string) + " "
|
|
792
|
+
|
|
793
|
+
commentline += str("{:20s}".format("Mismatch")) + " "
|
|
794
|
+
|
|
795
|
+
knotnum = -1
|
|
796
|
+
|
|
797
|
+
for i in range(len(signalparams)):
|
|
798
|
+
|
|
799
|
+
if mode == "search":
|
|
800
|
+
break
|
|
801
|
+
|
|
802
|
+
derivnum = i % tbank.s
|
|
803
|
+
|
|
804
|
+
if derivnum == 0:
|
|
805
|
+
knotnum += 1
|
|
806
|
+
|
|
807
|
+
columntitle = "f_" + str(knotnum) + "_" + str(derivnum)
|
|
808
|
+
commentline += " " + "{:^20s}".format(columntitle)
|
|
809
|
+
|
|
810
|
+
reader.write(commentline + "\n")
|
|
811
|
+
|
|
812
|
+
# Create the text file where 2F and template data will be stored but ordered by mismatch. The first line is added which contains the column titles for all data. We skip
|
|
813
|
+
# this if we are doing a search as we can't calculate the mismatch
|
|
814
|
+
if mode != "search":
|
|
815
|
+
with open(os.path.join(tbankdirectory, mismatchtempname), "w") as reader:
|
|
816
|
+
|
|
817
|
+
commentline = (
|
|
818
|
+
"{:20s}".format("#Mismatch")
|
|
819
|
+
+ " "
|
|
820
|
+
+ str("{:20s}".format("FStat"))
|
|
821
|
+
+ " "
|
|
822
|
+
)
|
|
823
|
+
|
|
824
|
+
for detector_string in detectors:
|
|
825
|
+
commentline += "{:20s}".format(detector_string) + " "
|
|
826
|
+
|
|
827
|
+
knotnum = -1
|
|
828
|
+
|
|
829
|
+
for i in range(len(signalparams)):
|
|
830
|
+
|
|
831
|
+
derivnum = i % tbank.s
|
|
832
|
+
|
|
833
|
+
if derivnum == 0:
|
|
834
|
+
knotnum += 1
|
|
835
|
+
|
|
836
|
+
columntitle = "f_" + str(knotnum) + "_" + str(derivnum)
|
|
837
|
+
commentline += " " + "{:^20s}".format(columntitle)
|
|
838
|
+
|
|
839
|
+
reader.write(commentline + "\n")
|
|
840
|
+
|
|
841
|
+
# Set the maximum condition number for the antenna pattern above its default (get a warning using the piecewise model if not manually changed to be larger)
|
|
842
|
+
logging.debug("Setting Antenna Pattern")
|
|
843
|
+
lp.SetAntennaPatternMaxCond(10**5)
|
|
844
|
+
|
|
845
|
+
# The minimum and maximum frequencies needed to load in from SFTs to cover all frequencies any template may cover
|
|
846
|
+
SFTfpad = 10 # 1800 / tbank.Tsft + tbank.dur / 86400 + 5
|
|
847
|
+
SFTfmin = gom.gte(tbank.dur, tbank.fmin, tbank.nmax, tbank.kmax) - SFTfpad - 10
|
|
848
|
+
SFTfmax = gom.gte(0, tbank.fmax, tbank.nmin, tbank.kmin) + SFTfpad
|
|
849
|
+
|
|
850
|
+
logging.info(f"SFTfmin/fmax: [{SFTfmin}, {SFTfmax}]")
|
|
851
|
+
logging.info(f"SFT files is: {SFTFiles}")
|
|
852
|
+
|
|
853
|
+
Fstat_mismatch = args.Fstat_mismatch
|
|
854
|
+
logging.info(f"2F mismatch is: {Fstat_mismatch}")
|
|
855
|
+
|
|
856
|
+
# Output from the search, which is carried out in pw_fstat.py. Output changes depending on run mode. All search results are written to files within this method
|
|
857
|
+
if mode == "search" and not args.fstat_hist:
|
|
858
|
+
(
|
|
859
|
+
lowest_mismatch_metric,
|
|
860
|
+
lowest_mismatch_Fstat,
|
|
861
|
+
fstat_max,
|
|
862
|
+
template_count,
|
|
863
|
+
) = pwf.pw_fstat_search_catalogue(
|
|
864
|
+
SFTfmin,
|
|
865
|
+
SFTfmax,
|
|
866
|
+
tbank,
|
|
867
|
+
finputdata,
|
|
868
|
+
tempsfilename,
|
|
869
|
+
tbankdirectory=tbankdirectory,
|
|
870
|
+
SFTdirectory=SFTdirectory,
|
|
871
|
+
trefsegfrac=trefsegfrac,
|
|
872
|
+
rtnsum=rtnsum,
|
|
873
|
+
tempsperfile=tempsperfile,
|
|
874
|
+
)
|
|
875
|
+
else:
|
|
876
|
+
(
|
|
877
|
+
lowest_mismatch_metric,
|
|
878
|
+
lowest_mismatch_Fstat,
|
|
879
|
+
fstat_max,
|
|
880
|
+
template_count,
|
|
881
|
+
) = pwf.semifstatcatalogue(
|
|
882
|
+
SFTfmin,
|
|
883
|
+
SFTfmax,
|
|
884
|
+
tbank,
|
|
885
|
+
finputdata,
|
|
886
|
+
signalparams,
|
|
887
|
+
tempsfilename,
|
|
888
|
+
out_directory=tbankdirectory,
|
|
889
|
+
SFTdirectory=SFTdirectory,
|
|
890
|
+
trefsegfrac=trefsegfrac,
|
|
891
|
+
rtnsum=rtnsum,
|
|
892
|
+
SFTFiles=SFTFiles,
|
|
893
|
+
tempsperfile=tempsperfile,
|
|
894
|
+
Fstat_mismatch=args.Fstat_mismatch,
|
|
895
|
+
fstat_hist=args.fstat_hist,
|
|
896
|
+
mode=mode,
|
|
897
|
+
)
|
|
898
|
+
|
|
899
|
+
# For each non-zero return value above, we create a directory and write the data into a file based on Random_Seed (not the same random seed used inside the four loop)
|
|
900
|
+
|
|
901
|
+
# Save the template count of the search and the time taken to conduct the search (if template_count option selected, the time taken is not indicative of
|
|
902
|
+
# how long the search takes)
|
|
903
|
+
if template_count != 0:
|
|
904
|
+
temp_count_directory = "Template_Count_And_Timing_For_" + tbank.toString()
|
|
905
|
+
temp_count_file = "Template_Count_And_Timing_" + Random_Seed_Str + ".txt"
|
|
906
|
+
|
|
907
|
+
if not os.path.isdir(temp_count_directory):
|
|
908
|
+
os.mkdir(temp_count_directory)
|
|
909
|
+
|
|
910
|
+
# Writing the total time taken and total templates counted
|
|
911
|
+
time_taken = time.time() - start_time
|
|
912
|
+
|
|
913
|
+
with open(temp_count_directory + "/" + temp_count_file, "a+") as reader:
|
|
914
|
+
line = str(time_taken) + " " + str(template_count) + "\n"
|
|
915
|
+
|
|
916
|
+
reader.write(line)
|
|
917
|
+
|
|
918
|
+
# If we are in search mode, the lowest mismatches aren't calculated, so we can skip this step. Mismatches written in two columns. First column is metric mismatches, second is Fstat mismatches.
|
|
919
|
+
# We also don't save the largest 2Fs in search mode, as they should be saved with our templates separately.
|
|
920
|
+
if mode != "search":
|
|
921
|
+
|
|
922
|
+
# Save the highest found fstat
|
|
923
|
+
if fstat_max != 0:
|
|
924
|
+
Two_F_directory = "Largest_2Fs_For_" + tbank.toString()
|
|
925
|
+
Two_F_file = "Largest_2F_" + Random_Seed_Str + ".txt"
|
|
926
|
+
|
|
927
|
+
if not os.path.isdir(Two_F_directory):
|
|
928
|
+
os.mkdir(Two_F_directory)
|
|
929
|
+
|
|
930
|
+
with open(Two_F_directory + "/" + Two_F_file, "a+") as reader:
|
|
931
|
+
line = str(finputdata.h0) + " " + str(fstat_max) + "\n"
|
|
932
|
+
|
|
933
|
+
reader.write(line)
|
|
934
|
+
|
|
935
|
+
# Save the lowest mismatches
|
|
936
|
+
if lowest_mismatch_metric != 0:
|
|
937
|
+
mismatch_directory = "Mismatches_For_" + tbank.toString()
|
|
938
|
+
mismatch_file = "Mismatch_" + Random_Seed_Str + ".txt"
|
|
939
|
+
|
|
940
|
+
if not os.path.isdir(mismatch_directory):
|
|
941
|
+
os.mkdir(mismatch_directory)
|
|
942
|
+
|
|
943
|
+
with open(mismatch_directory + "/" + mismatch_file, "a+") as reader:
|
|
944
|
+
line = (
|
|
945
|
+
str(lowest_mismatch_metric)
|
|
946
|
+
+ " "
|
|
947
|
+
+ str(lowest_mismatch_Fstat)
|
|
948
|
+
+ "\n"
|
|
949
|
+
)
|
|
950
|
+
reader.write(line)
|
|
951
|
+
|
|
952
|
+
logging.info("Done")
|
|
953
|
+
|
|
954
|
+
# For logging and profiling
|
|
955
|
+
if args.profile:
|
|
956
|
+
pr.disable()
|
|
957
|
+
s = io.StringIO()
|
|
958
|
+
ps = pstats.Stats(pr, stream=s).sort_stats("cumtime")
|
|
959
|
+
ps.print_stats()
|
|
960
|
+
with open(
|
|
961
|
+
os.path.join(basedirectory, f"PiecewiseSearchProfile_{j}.txt"), "w+"
|
|
962
|
+
) as f:
|
|
963
|
+
f.write(s.getvalue())
|