.PHONY: psd psd : psd_inspiral_dag.dag @echo "" .PHONY: svd svd : svd_inspiral_dag.dag @echo "" .PHONY: filter filter : filter_inspiral_dag.dag @echo "" .PHONY: rank rank : rank_inspiral_dag.dag @echo "" {% if config.filter.injections %} .PHONY: injection_setup injection_setup : injection-setup_inspiral_dag.dag @echo "" .PHONY: injection_filter injection_filter : injection-filter_inspiral_dag.dag @echo "" {% endif %} .PHONY: summary summary : mkdir -p {{ config.summary.webdir }} gstlal_inspiral_summary_page \ --title gstlal-{{ config.start }}-{{ config.stop }}-closed-box \ --webserver-dir {{ config.summary.webdir }} \ --output-user-tag ALL_COMBINED \ --output-user-tag PRECESSION_COMBINED \ {% if config.filter.injections %} {% for inj_name in config.filter.injections.keys() %} --output-user-tag {{ inj_name.upper() }}_INJECTION \ --output-user-tag {{ inj_name.upper() }}_INJECTION_PRECESSION \ {% endfor %} {% endif %} --glob-path plots mkdir -p {{ config.summary.webdir }}/OPEN-BOX gstlal_inspiral_summary_page \ --title gstlal-{{ config.start }}-{{ config.stop }}-open-box \ --webserver-dir {{ config.summary.webdir }}/OPEN-BOX \ --output-user-tag ALL_COMBINED \ --output-user-tag PRECESSION_COMBINED \ {% if config.filter.injections %} {% for inj_name in config.filter.injections.keys() %} --output-user-tag {{ inj_name.upper() }}_INJECTION \ --output-user-tag {{ inj_name.upper() }}_INJECTION_PRECESSION \ {% endfor %} {% endif %} --open-box \ --glob-path plots chmod a-r {{ config.summary.webdir }}/OPEN-BOX .PHONY: unlock unlock : chmod a+r {{ config.summary.webdir }}/OPEN-BOX {% if config.segments.backend == 'gwosc' %} segments.xml.gz : CAT1_vetoes.xml.gz gstlal_query_gwosc_segments -o $@ {{ config.start }} {{ config.stop }}{% for instrument in config.ifos %} {{ instrument }}{% endfor %} gstlal_segments_operations --segment-name vetoes --output-segment-name datasegments --union --output-file CAT1_vetoes_renamed.xml.gz $< $< gstlal_segments_operations --diff --output-file $@ $@ CAT1_vetoes_renamed.xml.gz gstlal_segments_trim --trim 0 --gps-start-time {{ config.start }} --gps-end-time {{ config.stop }} --min-length 512 --output $@ $@ rm CAT1_vetoes_renamed.xml.gz @echo "" vetoes.xml.gz : {{ config.segments.vetoes.category }}_vetoes.xml.gz cp $< $@ @echo "" {{ config.segments.vetoes.category }}_vetoes.xml.gz : gstlal_query_gwosc_veto_segments -o $@ {{ config.start }} {{ config.stop }} {% for instrument in config.ifos %} {{ instrument }}{% endfor %} --category {{ config.segments.vetoes.category }} --cumulative @echo "" {% elif config.segments.backend == 'dqsegdb' %} segments.xml.gz : CAT1_vetoes.xml.gz gstlal_query_dqsegdb_segments -o $@ {{ config.start }} {{ config.stop }}{% for instrument in config.ifos %} {{ instrument }}{% endfor %} {% for instrument, flag in config.segments.science.items() %} -f {{ "{}:{}".format(instrument, flag) }}{% endfor %} gstlal_segments_operations --segment-name vetoes --output-segment-name datasegments --union --output-file CAT1_vetoes_renamed.xml.gz $< $< gstlal_segments_operations --diff --output-file $@ $@ CAT1_vetoes_renamed.xml.gz gstlal_segments_trim --trim 0 --gps-start-time {{ config.start }} --gps-end-time {{ config.stop }} --min-length 512 --output $@ $@ rm CAT1_vetoes_renamed.xml.gz @echo "" vetoes.xml.gz : {{ config.segments.vetoes.category }}_vetoes.xml.gz cp $< $@ @echo "" {{ config.segments.vetoes.category }}_vetoes.xml.gz : {{ config.segments.vetoes.veto_definer.file }} gstlal_query_dqsegdb_veto_segments -o $@ {{ config.start }} {{ config.stop }} {% for instrument in config.ifos %} {{ instrument }}{% endfor %} --category {{ config.segments.vetoes.category }} --cumulative --veto-definer-file $< @echo "" {{ config.segments.vetoes.veto_definer.file }} : git archive --remote=git@git.ligo.org:detchar/veto-definitions.git {{ config.segments.vetoes.veto_definer.version }}:cbc/{{ config.segments.vetoes.veto_definer.epoch }} $@ | tar -x ligolw_no_ilwdchar $@ {% endif %} {% if config.filter.injection_time_slide_file %} tisi.xml : inj_tisi.xml lalburst_gen_timeslides {% for instrument, slides in config.filter.time_slides.items() %} --instrument={{ instrument }}={{ slides }}{% endfor %} bg_tisi.xml ligolw_add --output $@ bg_tisi.xml $< @echo "" inj_tisi.xml : lalburst_gen_timeslides {% for instrument in config.ifos %} --instrument={{ instrument }}=0:0:0{% endfor %} $@ @echo "" {% else %} tisi.xml : lalburst_gen_timeslides {% for instrument, slides in config.filter.time_slides.items() %} --instrument={{ instrument }}={{ slides }}{% endfor %} bg_tisi.xml ligolw_add --output $@ bg_tisi.xml $< @echo "" {% endif %} {% if config.data.template_bank is mapping %} {{ config.svd.option_file }} :{% for bank_file in config.data.template_bank.values() %} {{ bank_file }}{% endfor %} {% else %} {{ config.svd.option_file }} : {{ config.data.template_bank }} {% endif %} mkdir -p {{ config.data.data_dir }}/split_bank {% if config.svd.sub_banks %} {% for bank_name, params in config.svd.sub_banks.items() %} gstlal_inspiral_bank_splitter \ --f-low {{ params.f_low }} \ {% if params.num_mu_bins %} --group-by-mu {{ params.num_mu_bins }} \ {% else %} --group-by-chi {{ params.num_chi_bins }} \ {% endif %} --output-path {{ config.data.data_dir }}/split_bank \ {% for approx in config.svd.approximant %} --approximant {{ approx }} \ {% endfor %} --overlap {{ params.overlap }} \ --instrument {% for instrument in config.ifos %}{{ instrument }}{% endfor %} \ --n {{ params.num_split_templates }} \ {% if params.sort_by %} --sort-by {{ params.sort_by }} \ {% else %} --sort-by {{ config.svd.sort_by }} \ {% endif %} --f-final {{ config.svd.max_f_final }} \ --num-banks {{ params.num_banks }} \ --stats-file $@ \ --bank-name {{ bank_name }} \ {{ config.data.template_bank[bank_name] }} {% endfor %} {% else %} gstlal_inspiral_bank_splitter \ --f-low {{ config.svd.f_low }} \ {% if config.svd.num_mu_bins %} --group-by-mu {{ config.svd.num_mu_bins }} \ {% else %} --group-by-chi {{ config.svd.num_chi_bins }} \ {% endif %} --output-path {{ config.data.data_dir }}/split_bank \ {% for approx in config.svd.approximant %} --approximant {{ approx }} \ {% endfor %} --overlap {{ config.svd.overlap }} \ --instrument {% for instrument in config.ifos %}{{ instrument }}{% endfor %} \ --n {{ config.svd.num_split_templates }} \ --sort-by {{ config.svd.sort_by }} \ --f-final {{ config.svd.max_f_final }} \ --num-banks {{ config.svd.num_banks }} \ --stats-file $@ \ $< {% endif %} gstlal_inspiral_set_svdbin_option --config config.yml @echo "" psd_inspiral_dag.dag : vetoes.xml.gz segments.xml.gz {{ config.svd.manifest }} gstlal_inspiral_workflow create -c config.yml --workflow psd svd_inspiral_dag.dag : {{ config.svd.manifest }} vetoes.xml.gz segments.xml.gz gstlal_inspiral_workflow create -c config.yml --workflow svd filter_inspiral_dag.dag : vetoes.xml.gz segments.xml.gz tisi.xml {{ config.svd.manifest }} gstlal_inspiral_workflow create -c config.yml --workflow filter rank_inspiral_dag.dag : segments.xml.gz {{ config.svd.manifest }} plots gstlal_inspiral_workflow create -c config.yml --workflow rank {% if config.filter.injections %} injections.xml.gz : cp {{ config.data.injection_dir}}/injections.xml.gz . @echo "" injection-setup_inspiral_dag.dag : injections.xml.gz {{ config.svd.manifest }} gstlal_inspiral_workflow create -c config.yml --workflow injection-setup injection-filter_inspiral_dag.dag : vetoes.xml.gz segments.xml.gz inj_tisi.xml {{ config.svd.manifest }} injections.xml.gz gstlal_inspiral_workflow create -c config.yml --workflow injection-filter {% endif %} {% if config.injections and config.injections.sets %} {% for inj_name, params in config.injections.sets.items() %} {% if config.filter.injections and inj_name in config.filter.injections and config.filter.injections[inj_name].file and not config.filter.injections[inj_name].pregenerated %} {{ params.output_tag }}.xml.gz : gstlal_lvc_rates_injections \ --gps-start-time {{ config.start + params.time.shift }} \ --gps-end-time {{ config.stop }} \ --snr-calculation INJ_PARAMS \ --max-redshift {{ params.max_redshift }} \ --redshift-power {{ params.redshift_power }} \ {% if params.max_ns_redshift %} --max-ns-redshift {{ params.max_ns_redshift }} \ --ns-redshift-power {{ params.ns_redshift_power }} \ {% endif %} --mass-distribution {{ params.mass_distribution }} \ --spin-distribution ALIGNED_ALIGNED \ --min-mass {{ params.min_mass }} \ {% for param in ['mass', 'mtotal', 'massratio', 'spin1', 'spin2'] %} --max-{{ param }} {{ params['max_' + param] }} \ {% endfor %} {% if params.min_mass1 %} --min-mass1 {{ params.min_mass1 }} \ {% endif %} {% if params.max_spin %} --max-spin {{ params.max_spin }} \ {% endif %} {% if params.max_ns_mass or params.max_ns_spin %} --max-ns-mass {{ params.max_ns_mass }} \ --max-ns-spin {{ params.max_ns_spin }} \ {% endif %} --waveform {{ params.waveform }} \ --approximant {{ params.approximant }} \ --time-step {{ params.time.step }} \ --time-interval {{ params.time.interval }} \ --random-seed {{ params.random_seed }} \ --snr-threshold {{ params.snr_threshold }} \ --min-frequency {{ params.min_frequency }} \ --h1-reference-spectrum-file {{ config.injections.h1_reference_spectrum_file }} \ --l1-reference-spectrum-file {{ config.injections.l1_reference_spectrum_file }} \ --v1-reference-spectrum-file {{ config.injections.v1_reference_spectrum_file }} \ --output-tag {{ params.output_tag }} mv {{ params.output_tag }}-{{ config.start + params.time.shift }}-{{ config.stop }}.xml.gz {{ params.output_tag }}.xml.gz ligolw_no_ilwdchar $@ @echo "" {% endif %} {% endfor %} {% endif %} {% if config.injections.combine %} {{ config.injections.combined_file }} : {% for inj in config.injections.sets.values() %} {{ inj.output_tag }}.xml.gz{% endfor %} gstlal_inspiral_combine_injection_sets $^ --single-output -o $(basename {{ config.injections.combined_file }}) rm injection_str.txt {% endif %} plots : mkdir -p $@ clean : rm -rf segments.xml.gz *tisi.xml rm -rf {{ config.data.data_dir }}/split_bank *vetoes.xml.gz {{ config.svd.option_file }} rm -rf {{ config.data.data_dir }}/reference_psd {{ config.data.data_dir }}/median_psd rm -rf {{ config.data.filter_dir }}/* rm -rf {{ config.data.rank_dir }}/* rm -rf logs *inspiral_dag.dag* *inspiral_dag.sh *.sub _condor_stdout {% if config.filter.injections %} rm -rf {{ config.data.injection_dir }}/* rm -rf {% for inj in config.filter.injections.values() %} {{ inj.file }}{% endfor %} {% endif %} {% if config.injections.sets %} rm -rf {% for inj in config.injections.sets.values() %} {{ inj.output_tag }}.xml.gz{% endfor %} {% endif %} clean-lite : rm -rf logs/* *inspiral_dag.dag* *inspiral_dag.sh *.sub