From cae19f741e8d9cc4804e3391e9525340741eb133 Mon Sep 17 00:00:00 2001 From: Sarah Caudill <sarah.caudill@ligo.org> Date: Wed, 23 Sep 2015 13:55:19 -0500 Subject: [PATCH] Makefiles for ER7 and ER8 --- .../share/Makefile.er7_offline_uberbank | 184 ++++++++++++++++++ .../share/Makefile.er8_offline_uberbank | 184 ++++++++++++++++++ 2 files changed, 368 insertions(+) create mode 100644 gstlal-inspiral/share/Makefile.er7_offline_uberbank create mode 100644 gstlal-inspiral/share/Makefile.er8_offline_uberbank diff --git a/gstlal-inspiral/share/Makefile.er7_offline_uberbank b/gstlal-inspiral/share/Makefile.er7_offline_uberbank new file mode 100644 index 0000000000..f323fc18cf --- /dev/null +++ b/gstlal-inspiral/share/Makefile.er7_offline_uberbank @@ -0,0 +1,184 @@ +# condor commands +# Set the accounting tag from https://ldas-gridmon.ligo.caltech.edu/ldg_accounting/user +ACCOUNTING_TAG=ligo.dev.o1.cbc.bbh.gstlaloffline +GROUP_USER= +CONDOR_COMMANDS:=--condor-command=accounting_group=$(ACCOUNTING_TAG) --condor-command=accounting_group_user=$(GROUP_USER) + +# +# Template bank parameters +# + +# The filtering start frequency +LOW_FREQUENCY_CUTOFF = 30.0 +# The maximum frequency to filter to +HIGH_FREQUENCY_CUTOFF = 1024.0 +# Controls the number of templates in each SVD sub bank +NUM_SPLIT_TEMPLATES = 200 +# Number of bins of chi to uniformly bin templates into +NUM_CHI_BINS = 20 +# Controls the overlap from sub bank to sub bank - helps mitigate edge effects +# in the SVD. Redundant templates will be removed +OVERLAP = 30 +# The program used to make the template bank. This will be searched for in the +# process param table in order to extract some metadata +BANK_PROGRAM = lalapps_cbc_sbank +# The following split banks can be found on UWM in: /home/scaudill/Projects/uberbank/ER8/split_bank/ +# The original full template bank is also there. It was made by Tito using the ER7 PSD and goes up to mtot = 100 +# The location of the original full bank is on Atlas: /home/tito/er8/bank/H1L1-UBERBANK_MAXM100_NS0p05_ER7HMPSD-1000000000-50000.xml.gz +BANK_MCHIRP1 = bank_00_ER8_00.xml.gz +BANK_MCHIRP2 = bank_00_ER8_01.xml.gz +# The approximant that you wish to filter with for BANK_MCHIRP1 and BANK_MCHIRP2, respectively. +APPROXIMANT1 = TaylorF2 +APPROXIMANT2 = SEOBNRv2_ROM_DoubleSpin + +# +# Triggering parameters +# + +# The detectors to analyze +IFOS = H1 L1 +# The GPS start time for ER7 +#START = 1117378816 +START = 1117400416 +# The GPS end time for ER7 +STOP = 1118329216 +# A user tag for the run +TAG = +# A web directory for output +WEBDIR = ~/public_html/ER7/$(START)-$(STOP)-$(TAG) +# The number of sub banks to process in parallel for each gstlal_inspiral job +NUMBANKS = 5 +# The control peak time for the composite detection statistic. If set to 0 the +# statistic is disabled +PEAK = 0 +# The length of autocorrelation chi-squared in sample points +AC_LENGTH = 351 +# The minimum number of samples to include in a given time slice +SAMPLES_MIN = 512 +# The maximum number of samples to include in the 256 Hz or above time slices +SAMPLES_MAX_256 = 512 + +# +# additional options, e.g., +# + +#ADDITIONAL_DAG_OPTIONS = "--samples-min $(SAMPLES_MIN) --samples-max-256 $(SAMPLES_MAX_256) --blind-injections BNS-MDC1-WIDE.xml" +ADDITIONAL_DAG_OPTIONS:=--samples-min $(SAMPLES_MIN) --samples-max-256 $(SAMPLES_MAX_256) + +# +# Injections +# + +# The seed is the string before the suffix _injections.xml +# Change as appropriate, whitespace is important +# The following injection sets were not formally approved for ER7 but can be obtained on UWM from here: /home/surabhi.sachdev/ER7/uberbank_M100/full_run_gate_50/ +INJECTIONS := HL-INJECTIONS_45671_BNS1-1117400416-928800.xml HL-INJECTIONS_45672_BNS2-1117400416-928800.xml HL-INJECTIONS_45673_BNS3-1117400416-928800.xml HL-INJECTIONS_56781_NSBHLM1-1117400416-928800.xml HL-INJECTIONS_56782_NSBHLM2-1117400416-928800.xml HL-INJECTIONS_56783_NSBHLM3-1117400416-928800.xml HL-INJECTIONS_56784_NSBHLM4-1117400416-928800.xml HL-INJECTIONS_56785_NSBHLM5-1117400416-928800.xml HL-INJECTIONS_56786_NSBHLM6-1117400416-928800.xml HL-INJECTIONS_67891_NSBHHM1-1117400416-928800.xml HL-INJECTIONS_67892_NSBHHM2-1117400416-928800.xml HL-INJECTIONS_67893_NSBHHM3-1117400416-928800.xml HL-INJECTIONS_78901_BBH1-1117400416-928800.xml HL-INJECTIONS_78902_BBH2-1117400416-928800.xml HL-INJECTIONS_78903_BBH3-1117400416-928800.xml HL-INJECTIONS_78904_BBH4-1117400416-928800.xml HL-INJECTIONS_78905_BBH5-1117400416-928800.xml HL-INJECTIONS_78906_BBH6-1117400416-928800.xml + +# GSTLAL_SEGMENTS Options +SEG_SERVER=https://dqsegdb5.phy.syr.edu +LIGO_SEGMENTS="$*:DMT-ANALYSIS_READY:1" +SEGMENT_TRIM = 16 +SEGMENT_MIN_LENGTH = 512 + +#GSTLAL VETO Options + +# Vetoes file names +# Obtain veto definer from here: https://code.pycbc.phy.syr.edu/detchar/veto-definitions/tree/master/cbc/ER7 +VETODEF = H1L1V1-ER7_CBC_OFFLINE.xml +vetoes_suffix := _vetoes.xml +VETOES_FILES := $(addsuffix $(vetoes_suffix),$(IFOS)) + +LIGO_VETOES="$*:DMT-INJECTION" + +# +# Segment and frame type info +# + +# The LIGO frame types +HANFORD_FRAME_TYPE='H1_HOFT_C00' +LIVINGSTON_FRAME_TYPE='L1_HOFT_C00' + +# The Channel names. FIXME sadly you have to change the CHANNEL_NAMES string if +# you want to analyze a different set of IFOS +H1_CHANNEL=GDS-CALIB_STRAIN +L1_CHANNEL=GDS-CALIB_STRAIN +CHANNEL_NAMES:=--channel-name=H1=$(H1_CHANNEL) --channel-name=L1=$(L1_CHANNEL) + +# +# Get some basic definitions. NOTE this comes from the share directory probably. +# + +include Makefile.offline_analysis_rules + +# +# Workflow +# + +all : dag + +%_split_bank.cache : $(BANK_MCHIRP1) $(BANK_MCHIRP2) + mkdir -p $*_split_bank_1 + ./gstlal_bank_splitter --f-low $(LOW_FREQUENCY_CUTOFF) --group-by-chi $(NUM_CHI_BINS) --output-path $*_split_bank_1 --approximant $(APPROXIMANT1) --bank-program $(BANK_PROGRAM) --output-cache $@.1 --overlap $(OVERLAP) --instrument $* --n $(NUM_SPLIT_TEMPLATES) --sort-by mchirp --add-f-final --max-f-final $(HIGH_FREQUENCY_CUTOFF) $(BANK_MCHIRP1) + mkdir -p $*_split_bank_2 + ./gstlal_bank_splitter --f-low $(LOW_FREQUENCY_CUTOFF) --group-by-chi $(NUM_CHI_BINS) --output-path $*_split_bank_2 --approximant $(APPROXIMANT2) --bank-program $(BANK_PROGRAM) --output-cache $@.2 --overlap $(OVERLAP) --instrument $* --n $(NUM_SPLIT_TEMPLATES) --sort-by mchirp --add-f-final --max-f-final $(HIGH_FREQUENCY_CUTOFF) $(BANK_MCHIRP2) + cat $@.1 $@.2 > $@ + +plots : + mkdir plots + +$(WEBDIR) : + mkdir -p $(WEBDIR) + +tisi.xml : + ligolw_tisi --instrument=H1=0:0:0 --instrument=H2=0:0:0 --instrument=L1=0:0:0 tisi0.xml + ligolw_tisi --instrument=H1=0:0:0 --instrument=H2=0:0:0 --instrument=L1=3.14159:3.14159:3.14159 tisi1.xml + ligolw_add --output $@ tisi0.xml tisi1.xml + +dag : segments.xml.gz vetoes.xml.gz frame.cache tisi.xml plots $(WEBDIR) $(INJECTIONS) $(BANK_CACHE_FILES) + gstlal_inspiral_pipe --data-source frames --gps-start-time $(START) --gps-end-time $(STOP) --frame-cache frame.cache --frame-segments-file segments.xml.gz --vetoes vetoes.xml.gz --frame-segments-name datasegments --control-peak-time $(PEAK) --num-banks $(NUMBANKS) --fir-stride 1 --web-dir $(WEBDIR) --time-slide-file tisi.xml $(INJECTION_LIST) --bank-cache $(BANK_CACHE_STRING) --tolerance 0.9999 --overlap $(OVERLAP) --flow $(LOW_FREQUENCY_CUTOFF) $(CHANNEL_NAMES) --autocorrelation-length $(AC_LENGTH) --ht-gate-threshold 50 $(ADDITIONAL_DAG_OPTIONS) $(CONDOR_COMMANDS) + +H1_frame.cache: + # FIXME force the observatory column to actually be instrument + gw_data_find -o H -t $(HANFORD_FRAME_TYPE) -l -s $(START) -e $(STOP) --url-type file | awk '{ print $$1" $*_"$$2" "$$3" "$$4" "$$5}' > $@ + +L1_frame.cache: + # FIXME force the observatory column to actually be instrument + gw_data_find -o L -t $(LIVINGSTON_FRAME_TYPE) -l -s $(START) -e $(STOP) --url-type file | awk '{ print $$1" $*_"$$2" "$$3" "$$4" "$$5}' > $@ + +frame.cache: $(FRAME_CACHE_FILES) + cat $(FRAME_CACHE_FILES) > frame.cache + #FIXME: since these frame types were made incorrectly, make sure ligolw_path_to_cache + # reads ifo names properly + sed -i s/H\ $(LIGO_FRAME_TYPE)/H\ H1_$(LIGO_FRAME_TYPE)/g frame.cache + sed -i s/L\ $(LIGO_FRAME_TYPE)/L\ L1_$(LIGO_FRAME_TYPE)/g frame.cache + +%_segmentspadded.xml: + ligolw_segment_query_dqsegdb --segment-url=${SEG_SERVER} -q --gps-start-time ${START} --gps-end-time ${STOP} --include-segments=$(LIGO_SEGMENTS) --result-name=datasegments > $@ + +segments.xml.gz: $(SEGMENTS_FILES) frame.cache + # These segments come from the MDC set + ligolw_add --output segdb.xml $(SEGMENTS_FILES) + ligolw_cut --delete-column segment:segment_def_cdb --delete-column segment:creator_db --delete-column segment_definer:insertion_time segdb.xml + gstlal_cache_to_segments frame.cache nogaps.xml + gstlal_segments_operations --segment-file1 segdb.xml --segment-file2 nogaps.xml --intersection --output-file $@ + gstlal_segments_trim --trim $(SEGMENT_TRIM) --gps-start-time $(START) --gps-end-time $(STOP) --min-length $(SEGMENT_MIN_LENGTH) --output $@ $@ + +%_vetoes.xml: $(VETODEF) + ligolw_segments_from_cats_dqsegdb --segment-url=$(SEG_SERVER) --veto-file=$(VETODEF) --gps-start-time $(START) --gps-end-time $(STOP) --cumulative-categories + gstlal_segments_operations --union --segment-file1 $*-VETOTIME_CAT3-*.xml --segment-name1 VETO_CAT3_CUMULATIVE --segment-file2 $*-VETOTIME_CAT3-*.xml --segment-name2 VETO_CAT3_CUMULATIVE --output-file $@ --output-segment-name vetoes + +vetoes.xml.gz: $(VETOES_FILES) + ligolw_add --output $@ $(VETOES_FILES) + ligolw_cut --delete-column segment:segment_def_cdb --delete-column segment:creator_db --delete-column segment_definer:insertion_time $@ + gzip $@ + + +clean: + -rm -rvf *.sub *.dag* *.cache *.sh logs *.sqlite plots *.html Images *.css *.js + -rm -rvf lalapps_run_sqlite/ ligolw_* gstlal_* + -rm -vf segments.xml.gz tisi.xml H1-*.xml H1_*.xml L1-*.xml L1_*xml V1-*.xml V1_*xml ?_injections.xml ????-*_split_bank-*.xml vetoes.xml.gz + -rm -vf *marginalized*.xml.gz *-ALL_LLOID*.xml.gz + -rm -vf tisi0.xml tisi1.xml + -rm -rf *_split_bank* + -rm -rf nogaps.xml segdb.xml + -rm -rf bank_aligned_spin.xml.gz diff --git a/gstlal-inspiral/share/Makefile.er8_offline_uberbank b/gstlal-inspiral/share/Makefile.er8_offline_uberbank new file mode 100644 index 0000000000..b512390085 --- /dev/null +++ b/gstlal-inspiral/share/Makefile.er8_offline_uberbank @@ -0,0 +1,184 @@ +# condor commands +# Set the accounting tag from https://ldas-gridmon.ligo.caltech.edu/ldg_accounting/user +ACCOUNTING_TAG=ligo.dev.o1.cbc.bbh.gstlaloffline +GROUP_USER= +CONDOR_COMMANDS:=--condor-command=accounting_group=$(ACCOUNTING_TAG) --condor-command=accounting_group_user=$(GROUP_USER) + +# +# Template bank parameters +# + +# The filtering start frequency +LOW_FREQUENCY_CUTOFF = 30.0 +# The maximum frequency to filter to +HIGH_FREQUENCY_CUTOFF = 1024.0 +# Controls the number of templates in each SVD sub bank +NUM_SPLIT_TEMPLATES = 200 +# Number of bins of chi to uniformly bin templates into +NUM_CHI_BINS = 20 +# Controls the overlap from sub bank to sub bank - helps mitigate edge effects +# in the SVD. Redundant templates will be removed +OVERLAP = 30 +# The program used to make the template bank. This will be searched for in the +# process param table in order to extract some metadata +BANK_PROGRAM = lalapps_cbc_sbank +# The following split banks can be found on UWM in: +# The original full template bank is also there. It was made by Tito using the ER8 PSD and goes up to mtot = 100 +# The location of the original full bank is on Atlas: /home/tito/er8/bank/H1L1-UBERBANK_MAXM100_NS0p05_ER8HMPSD-1126033217-223200.xml.gz +BANK_MCHIRP1 = +BANK_MCHIRP2 = +# The approximant that you wish to filter with for BANK_MCHIRP1 and BANK_MCHIRP2, respectively. +APPROXIMANT1 = TaylorF2 +APPROXIMANT2 = SEOBNRv2_ROM_DoubleSpin + +# +# Triggering parameters +# + +# The detectors to analyze +IFOS = H1 L1 +# The GPS start time for ER8 +START = +# The GPS end time for ER8 +STOP = +# A user tag for the run +TAG = +# A web directory for output +WEBDIR = ~/public_html/ER8/$(START)-$(STOP)-$(TAG) +# The number of sub banks to process in parallel for each gstlal_inspiral job +NUMBANKS = 5 +# The control peak time for the composite detection statistic. If set to 0 the +# statistic is disabled +PEAK = 0 +# The length of autocorrelation chi-squared in sample points +AC_LENGTH = 351 +# The minimum number of samples to include in a given time slice +SAMPLES_MIN = 512 +# The maximum number of samples to include in the 256 Hz or above time slices +SAMPLES_MAX_256 = 512 + +# +# additional options, e.g., +# + +#ADDITIONAL_DAG_OPTIONS = "--samples-min $(SAMPLES_MIN) --samples-max-256 $(SAMPLES_MAX_256) --blind-injections BNS-MDC1-WIDE.xml" +ADDITIONAL_DAG_OPTIONS:=--samples-min $(SAMPLES_MIN) --samples-max-256 $(SAMPLES_MAX_256) + +# +# Injections +# + +# The seed is the string before the suffix _injections.xml +# Change as appropriate, whitespace is important +# The common ER8 injection sets are here: https://ldas-jobs.cgca.uwm.edu/~scaudill/ER8/common_injections/original +# Note that they do not currently contain the calculated SNRs; this message will be updated when they do +INJECTIONS := + +# GSTLAL_SEGMENTS Options +SEG_SERVER=https://dqsegdb5.phy.syr.edu +LIGO_SEGMENTS="$*:DMT-ANALYSIS_READY:1" +SEGMENT_TRIM = 16 +SEGMENT_MIN_LENGTH = 512 + +#GSTLAL VETO Options + +# Vetoes file names +# Obtain veto definer from here: https://code.pycbc.phy.syr.edu/detchar/veto-definitions/tree/master/cbc/ER8 +VETODEF = +vetoes_suffix := _vetoes.xml +VETOES_FILES := $(addsuffix $(vetoes_suffix),$(IFOS)) + +LIGO_VETOES="$*:DMT-INJECTION" + +# +# Segment and frame type info +# + +# The LIGO frame types +HANFORD_FRAME_TYPE='H1_HOFT_C00' +LIVINGSTON_FRAME_TYPE='L1_HOFT_C00' + +# The Channel names. FIXME sadly you have to change the CHANNEL_NAMES string if +# you want to analyze a different set of IFOS +H1_CHANNEL=GDS-CALIB_STRAIN +L1_CHANNEL=GDS-CALIB_STRAIN +CHANNEL_NAMES:=--channel-name=H1=$(H1_CHANNEL) --channel-name=L1=$(L1_CHANNEL) + +# +# Get some basic definitions. NOTE this comes from the share directory probably. +# + +include Makefile.offline_analysis_rules + +# +# Workflow +# + +all : dag + +%_split_bank.cache : $(BANK_MCHIRP1) $(BANK_MCHIRP2) + mkdir -p $*_split_bank_1 + ./gstlal_bank_splitter --f-low $(LOW_FREQUENCY_CUTOFF) --group-by-chi $(NUM_CHI_BINS) --output-path $*_split_bank_1 --approximant $(APPROXIMANT1) --bank-program $(BANK_PROGRAM) --output-cache $@.1 --overlap $(OVERLAP) --instrument $* --n $(NUM_SPLIT_TEMPLATES) --sort-by mchirp --add-f-final --max-f-final $(HIGH_FREQUENCY_CUTOFF) $(BANK_MCHIRP1) + mkdir -p $*_split_bank_2 + ./gstlal_bank_splitter --f-low $(LOW_FREQUENCY_CUTOFF) --group-by-chi $(NUM_CHI_BINS) --output-path $*_split_bank_2 --approximant $(APPROXIMANT2) --bank-program $(BANK_PROGRAM) --output-cache $@.2 --overlap $(OVERLAP) --instrument $* --n $(NUM_SPLIT_TEMPLATES) --sort-by mchirp --add-f-final --max-f-final $(HIGH_FREQUENCY_CUTOFF) $(BANK_MCHIRP2) + cat $@.1 $@.2 > $@ + +plots : + mkdir plots + +$(WEBDIR) : + mkdir -p $(WEBDIR) + +tisi.xml : + ligolw_tisi --instrument=H1=0:0:0 --instrument=H2=0:0:0 --instrument=L1=0:0:0 tisi0.xml + ligolw_tisi --instrument=H1=0:0:0 --instrument=H2=0:0:0 --instrument=L1=3.14159:3.14159:3.14159 tisi1.xml + ligolw_add --output $@ tisi0.xml tisi1.xml + +dag : segments.xml.gz vetoes.xml.gz frame.cache tisi.xml plots $(WEBDIR) $(INJECTIONS) $(BANK_CACHE_FILES) + gstlal_inspiral_pipe --data-source frames --gps-start-time $(START) --gps-end-time $(STOP) --frame-cache frame.cache --frame-segments-file segments.xml.gz --vetoes vetoes.xml.gz --frame-segments-name datasegments --control-peak-time $(PEAK) --num-banks $(NUMBANKS) --fir-stride 1 --web-dir $(WEBDIR) --time-slide-file tisi.xml $(INJECTION_LIST) --bank-cache $(BANK_CACHE_STRING) --tolerance 0.9999 --overlap $(OVERLAP) --flow $(LOW_FREQUENCY_CUTOFF) $(CHANNEL_NAMES) --autocorrelation-length $(AC_LENGTH) --ht-gate-threshold 50 $(ADDITIONAL_DAG_OPTIONS) $(CONDOR_COMMANDS) + +H1_frame.cache: + # FIXME force the observatory column to actually be instrument + gw_data_find -o H -t $(HANFORD_FRAME_TYPE) -l -s $(START) -e $(STOP) --url-type file | awk '{ print $$1" $*_"$$2" "$$3" "$$4" "$$5}' > $@ + +L1_frame.cache: + # FIXME force the observatory column to actually be instrument + gw_data_find -o L -t $(LIVINGSTON_FRAME_TYPE) -l -s $(START) -e $(STOP) --url-type file | awk '{ print $$1" $*_"$$2" "$$3" "$$4" "$$5}' > $@ + +frame.cache: $(FRAME_CACHE_FILES) + cat $(FRAME_CACHE_FILES) > frame.cache + #FIXME: since these frame types were made incorrectly, make sure ligolw_path_to_cache + # reads ifo names properly + sed -i s/H\ $(LIGO_FRAME_TYPE)/H\ H1_$(LIGO_FRAME_TYPE)/g frame.cache + sed -i s/L\ $(LIGO_FRAME_TYPE)/L\ L1_$(LIGO_FRAME_TYPE)/g frame.cache + +%_segmentspadded.xml: + ligolw_segment_query_dqsegdb --segment-url=${SEG_SERVER} -q --gps-start-time ${START} --gps-end-time ${STOP} --include-segments=$(LIGO_SEGMENTS) --result-name=datasegments > $@ + +segments.xml.gz: $(SEGMENTS_FILES) frame.cache + # These segments come from the MDC set + ligolw_add --output segdb.xml $(SEGMENTS_FILES) + ligolw_cut --delete-column segment:segment_def_cdb --delete-column segment:creator_db --delete-column segment_definer:insertion_time segdb.xml + gstlal_cache_to_segments frame.cache nogaps.xml + gstlal_segments_operations --segment-file1 segdb.xml --segment-file2 nogaps.xml --intersection --output-file $@ + gstlal_segments_trim --trim $(SEGMENT_TRIM) --gps-start-time $(START) --gps-end-time $(STOP) --min-length $(SEGMENT_MIN_LENGTH) --output $@ $@ + +%_vetoes.xml: $(VETODEF) + ligolw_segments_from_cats_dqsegdb --segment-url=$(SEG_SERVER) --veto-file=$(VETODEF) --gps-start-time $(START) --gps-end-time $(STOP) --cumulative-categories + gstlal_segments_operations --union --segment-file1 $*-VETOTIME_CAT3-*.xml --segment-name1 VETO_CAT3_CUMULATIVE --segment-file2 $*-VETOTIME_CAT3-*.xml --segment-name2 VETO_CAT3_CUMULATIVE --output-file $@ --output-segment-name vetoes + +vetoes.xml.gz: $(VETOES_FILES) + ligolw_add --output $@ $(VETOES_FILES) + ligolw_cut --delete-column segment:segment_def_cdb --delete-column segment:creator_db --delete-column segment_definer:insertion_time $@ + gzip $@ + + +clean: + -rm -rvf *.sub *.dag* *.cache *.sh logs *.sqlite plots *.html Images *.css *.js + -rm -rvf lalapps_run_sqlite/ ligolw_* gstlal_* + -rm -vf segments.xml.gz tisi.xml H1-*.xml H1_*.xml L1-*.xml L1_*xml V1-*.xml V1_*xml ?_injections.xml ????-*_split_bank-*.xml vetoes.xml.gz + -rm -vf *marginalized*.xml.gz *-ALL_LLOID*.xml.gz + -rm -vf tisi0.xml tisi1.xml + -rm -rf *_split_bank* + -rm -rf nogaps.xml segdb.xml + -rm -rf bank_aligned_spin.xml.gz -- GitLab