diff --git a/gstlal-inspiral/share/O3/offline/O2/Makefile.Full_bank_HLV_test_dag_O2 b/gstlal-inspiral/share/O3/offline/O2/Makefile.Full_bank_HLV_test_dag_O2 new file mode 100644 index 0000000000000000000000000000000000000000..217c6cdbe239dfe56504392a941ee4d2c213758c --- /dev/null +++ b/gstlal-inspiral/share/O3/offline/O2/Makefile.Full_bank_HLV_test_dag_O2 @@ -0,0 +1,428 @@ +# condor commands +# Set the accounting tag from https://ldas-gridmon.ligo.caltech.edu/ldg_accounting/user +ACCOUNTING_TAG=ligo.dev.o3.cbc.uber.gstlaloffline +GROUP_USER=albert.einstein +CONDOR_COMMANDS:=--condor-command=accounting_group=$(ACCOUNTING_TAG) --condor-command=accounting_group_user=$(GROUP_USER) + +######################### +# Triggering parameters # +######################### + +# The detectors to analyze +IFOS = H1 L1 V1 +# Minimum number of detecors working to use +MIN_IFOS = 1 +# The GPS start time for analysis +START = 1187312718 +# The GPS end time for analysis +STOP = 1187740818 +# A user tag for the run +TAG = O2_chunk_22_Full_testbank_HLV_sngl_det_O3 +# Run number +RUN=run_1 +# A web directory for output +# cit & uwm +WEBDIR = ~/public_html/O3_testing/$(TAG)/$(START)-$(STOP)-$(RUN) +# Atlas +#WEBDIR = ~/WWW/LSC/testing/$(TAG)/$(START)-$(STOP)-test_dag-$(RUN) +# The number of sub banks in each SVD bank file +NUMBANKS = 2 +# 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 = 2048 +# The maximum number of samples to include in the 256 Hz or above time slices +SAMPLES_MAX_256 = 2048 +# Low frequency cut off for the template bank placement +LOW_FREQUENCY_CUTOFF = 15.0 +# Highest frequency at which to compute the metric +HIGH_FREQUENCY_CUTOFF = 1024.0 +# Controls the number of templates in each SVD sub bank +NUM_SPLIT_TEMPLATES = 500 +# Number of bins of chi to uniformly bin templates into +NUM_CHI_BINS = 1 +# Controls the overlap from sub bank to sub bank - helps mitigate edge effects +# in the SVD. Redundant templates will be removed +OVERLAP = 30 +# The approximant that you wish to filter with for BANK_MCHIRP1 and BANK_MCHIRP2, respectively. +MCHIRP_SPLIT = 1.73 +APPROXIMANT1 = 0.00:$(MCHIRP_SPLIT):TaylorF2 +APPROXIMANT2 = $(MCHIRP_SPLIT):1000.0:SEOBNRv4_ROM + +############################# +# 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 # +############## + +# Change as appropriate, whitespace is important +MCHIRP_INJECTIONS := 0.78:1.67:1_injections.xml 2.29:129.51:2_injections.xml + +# Narrow BNS injection set +# Minimum injection distance in Kpc +INJ_MIN_DIST_1 = 20000 +# Maximum injection distance in Kpc +INJ_MAX_DIST_1 = 200000 +# Minimum component mass 1 for injections +INJ_MIN_MASS1_1 = 1.35 +# Maximum component mass 1 for injections +INJ_MAX_MASS1_1 = 1.45 +# Minimum component mass 2 for injections +INJ_MIN_MASS2_1 = 1.35 +# Maximum component mass 2 for injections +INJ_MAX_MASS2_1 = 1.45 +# Mean component mass 1 for injections +INJ_MEAN_MASS1_1 = 1.4 +# Mean component mass 2 for injections +INJ_MEAN_MASS2_1 = 1.4 +# Standard dev component mass 1 for injections +INJ_STD_MASS1_1 = 0.01 +# Standard dev component mass 2 for injections +INJ_STD_MASS2_1 = 0.01 +# Minimum total mass for injections +INJ_MIN_TOTAL_MASS_1 = 2.7 +# Maximum total mass for injections +INJ_MAX_TOTAL_MASS_1 = 2.9 + +# Broad BBH injection set +# Minimum injection distance in Kpc +INJ_MIN_DIST_2 = 50000 +# Maximum injection distance in Kpc +INJ_MAX_DIST_2 = 2000000 +# Min mass ratio for injections +INJ_MIN_MRATIO_2 = 1 +# Min mass ratio for injections +INJ_MAX_MRATIO_2 = 3.5 +# Minimum total mass for injections +INJ_MIN_TOTAL_MASS_2 = 10.0 +# Maximum total mass for injections +INJ_MAX_TOTAL_MASS_2 = 150.0 + +# minimum frequency for injections. NOTE this should be lower than the intended filtering frequency +INJ_FLOW = 14 + +####################### +# GSTLAL VETO Options # +####################### + +# Vetoes file names +VETODEF = /path/to/H1L1V1-CBC_VETO_DEFINER_CLEANED_C02_O2_1164556817-23176801.xml + +vetoes_suffix := _vetoes.xml +VETOES_FILES := $(addsuffix $(vetoes_suffix),$(IFOS)) + +CAT1_vetoes_suffix := _CAT1_vetoes.xml +CAT1_VETOES_FILES := $(addsuffix $(CAT1_vetoes_suffix),$(IFOS)) + +############################### +# Segment and frame type info # +############################### + +# Info from https://wiki.ligo.org/viewauth/LSC/JRPComm/ObsRun2 +# GSTLAL_SEGMENTS Options +SEG_SERVER=https://segments.ligo.org +# C00 +#LIGO_SEGMENTS="$*:DMT-ANALYSIS_READY:1" +# C01 +#LIGO_SEGMENTS="$*:DCS-ANALYSIS_READY_C01:1" +# C02 +LIGO_SEGMENTS="$*:DCH-CLEAN_SCIENCE_C02:1" +VIRGO_SEGMENTS="V1:ITF_SCIENCE" + +SEGMENT_TRIM = 0 +SEGMENT_MIN_LENGTH = 512 + +# The LIGO frame types +# C00 +#HANFORD_FRAME_TYPE='H1_HOFT_C00' +#LIVINGSTON_FRAME_TYPE='L1_HOFT_C00' +# C01 +#HANFORD_FRAME_TYPE='H1_HOFT_C01' +#LIVINGSTON_FRAME_TYPE='L1_HOFT_C01' +# C02 +HANFORD_FRAME_TYPE='H1_CLEANED_HOFT_C02' +LIVINGSTON_FRAME_TYPE='L1_CLEANED_HOFT_C02' +VIRGO_FRAME_TYPE='V1O2Repro2A' + +# The Channel names. FIXME sadly you have to change the CHANNEL_NAMES string if +# you want to analyze a different set of IFOS +# C00 +#H1_CHANNEL=GDS-CALIB_STRAIN +#L1_CHANNEL=GDS-CALIB_STRAIN +# C01 +#H1_CHANNEL=DCS-CALIB_STRAIN_C01 +#L1_CHANNEL=DCS-CALIB_STRAIN_C01 +# C02 +H1_CHANNEL=DCH-CLEAN_STRAIN_C02 +L1_CHANNEL=DCH-CLEAN_STRAIN_C02 +V1_CHANNEL=Hrec_hoft_V1O2Repro2A_16384Hz + +#CHANNEL_NAMES:=--channel-name=H1=$(H1_CHANNEL) --channel-name=L1=$(L1_CHANNEL) +CHANNEL_NAMES:=--channel-name=H1=$(H1_CHANNEL) --channel-name=L1=$(L1_CHANNEL) --channel-name=V1=$(V1_CHANNEL) + +################################################################################### +# Get some basic definitions. NOTE this comes from the share directory probably. # +################################################################################### + +include /path/to/Makefile.offline_analysis_rules + +# FIXME Is there a way to put this back in offline analysis rules? +#BANK_CACHE_STRING:=H1=H1_split_bank.cache,L1=L1_split_bank.cache +#BANK_CACHE_FILES:=H1_split_bank.cache L1_split_bank.cache +BANK_CACHE_STRING:=H1=H1_split_bank.cache,L1=L1_split_bank.cache,V1=V1_split_bank.cache +BANK_CACHE_FILES:=H1_split_bank.cache L1_split_bank.cache V1_split_bank.cache +# the point of this is to build the string e.g. H1=../bank/H1_bank.cache,L1=../bank/L1_bank.cache + + +############ +# Workflow # +############ + +all : dag SNR_sed + @echo "Submit with: condor_submit_dag -maxjobs 3000 -maxidle 50 trigger_pipe.dag" + @echo "Monitor with: tail -f trigger_pipe.dag.dagman.out | grep -v -e ULOG -e monitoring" + @echo "" + +SNR_sed : dag + sed -i 's@environment = GST_REGISTRY_UPDATE=no;@environment = "GST_REGISTRY_UPDATE=no LD_PRELOAD=$(MKLROOT)/lib/intel64/libmkl_core.so"@g' gstlal_inspiral_injection_snr.sub + @echo "" + +# Run inspiral pipe to produce dag +dag : segments.xml.gz vetoes.xml.gz frame.cache inj_tisi.xml 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) \ + --template-bank SBANK_COMBINED-SBANK.xml.gz \ + --num-banks $(NUMBANKS) \ + --fir-stride 1 \ + --web-dir $(WEBDIR) \ + --time-slide-file tisi.xml \ + --inj-time-slide-file inj_tisi.xml \ + $(INJECTION_LIST) \ + --bank-cache $(BANK_CACHE_STRING) \ + --tolerance 0.9999 \ + --overlap $(OVERLAP) \ + --flow $(LOW_FREQUENCY_CUTOFF) \ + $(CHANNEL_NAMES) \ + --autocorrelation-length $(AC_LENGTH) \ + $(ADDITIONAL_DAG_OPTIONS) \ + $(CONDOR_COMMANDS) \ + --ht-gate-threshold-linear 0.8:15.0-45.0:100.0 \ + --request-cpu 1 \ + --request-memory 5GB \ + --min-instruments $(MIN_IFOS) \ + --ranking-stat-samples 4194304 \ + --mass-model=ligo + @echo "" + sed -i '1s/^/JOBSTATE_LOG logs\/trigger_pipe.jobstate.log\n/' trigger_pipe.dag + +# sed -i 's/.*queue.*/Requirements = regexp("Intel.*v[3-5]", TARGET.cpuinfo_model_name)\n&/' *.sub +# #Following three lines are use to make dynamical memory requests. +# sed -i 's/.*request_memory.*/#&\n+MemoryUsage = ( 2048 ) * 2 \/ 3\nrequest_memory = ( MemoryUsage ) * 3 \/ 2\nperiodic_hold = ( MemoryUsage >= ( ( RequestMemory ) * 3 \/ 2 ) )\nperiodic_release = (JobStatus == 5) \&\& ((CurrentTime - EnteredCurrentStatus) > 180) \&\& (HoldReasonCode != 34)/' *.sub +# sed -i 's@+MemoryUsage = ( 2048 ) \* 2 / 3@+MemoryUsage = ( 6000 ) \* 2 / 3@' gstlal_inspiral.sub +# sed -i 's@+MemoryUsage = ( 2048 ) \* 2 / 3@+MemoryUsage = ( 6000 ) \* 2 / 3@' gstlal_inspiral_inj.sub +# sed -i "/^environment/s?\$$?GSTLAL_FIR_WHITEN=0;?" *.sub # Set GSTLAL_FIR_WHITEN within sub files + +#%_split_bank.cache : H1-TMPLTBANK-$(START)-2048.xml +%_split_bank.cache : SBANK_COMBINED-SBANK.xml.gz + mkdir -p $*_split_bank + gstlal_bank_splitter \ + --f-low $(LOW_FREQUENCY_CUTOFF) \ + --group-by-chi $(NUM_CHI_BINS) \ + --output-path $*_split_bank \ + --approximant $(APPROXIMANT1) \ + --approximant $(APPROXIMANT2) \ + --output-cache $@ \ + --overlap $(OVERLAP) \ + --instrument $* \ + --n $(NUM_SPLIT_TEMPLATES) \ + --sort-by mchirp \ + --max-f-final $(HIGH_FREQUENCY_CUTOFF) \ + --write-svd-caches \ + --num-banks $(NUMBANKS) \ + $< + @echo "" + +SBANK_COMBINED-SBANK.xml.gz : + gsiscp gstlalcbc@cbc.ligo.caltech.edu:/home/gstlalcbc/observing/3/online/sept_opa/banks/nonspin/SBANK_COMBINED-SBANK.xml.gz . + ligolw_no_ilwdchar $@ + gstlal_inspiral_add_template_ids $@ + @echo "" + +1_injections.xml : + lalapps_inspinj \ + --m-distr gaussian \ + --min-mass1 $(INJ_MIN_MASS1_1) \ + --max-mass1 $(INJ_MAX_MASS1_1) \ + --min-mass2 $(INJ_MIN_MASS2_1) \ + --max-mass2 $(INJ_MAX_MASS2_1) \ + --min-mtotal $(INJ_MIN_TOTAL_MASS_1) \ + --max-mtotal $(INJ_MAX_TOTAL_MASS_1) \ + --mean-mass1 $(INJ_MEAN_MASS1_1) \ + --mean-mass2 $(INJ_MEAN_MASS2_1) \ + --stdev-mass1 $(INJ_STD_MASS1_1) \ + --stdev-mass2 $(INJ_STD_MASS2_1) \ + --gps-start-time $(START) \ + --gps-end-time $(STOP) \ + --disable-spin \ + --d-distr uniform \ + --i-distr uniform \ + --min-distance $(INJ_MIN_DIST_1) \ + --max-distance $(INJ_MAX_DIST_1) \ + --waveform TaylorT4threePointFivePN \ + --l-distr random \ + --f-lower $(INJ_FLOW) \ + --time-step 10 \ + --t-distr uniform \ + --time-interval 1 \ + --seed 51056 \ + --output $@ + ligolw_no_ilwdchar $@ + @echo "" + +2_injections.xml : + lalapps_inspinj \ + --m-distr logTotalMassUniformMassRatio \ + --min-mtotal $(INJ_MIN_TOTAL_MASS_2) \ + --max-mtotal $(INJ_MAX_TOTAL_MASS_2) \ + --min-mratio $(INJ_MIN_MRATIO_2) \ + --max-mratio $(INJ_MAX_MRATIO_2) \ + --gps-start-time $(START) \ + --gps-end-time $(STOP) \ + --disable-spin \ + --d-distr uniform \ + --i-distr uniform \ + --min-distance $(INJ_MIN_DIST_2) \ + --max-distance $(INJ_MAX_DIST_2) \ + --waveform IMRPhenomDpseudoFourPN \ + --l-distr random \ + --f-lower $(INJ_FLOW) \ + --time-step 10 \ + --t-distr uniform \ + --time-interval 1 \ + --seed 3916 \ + --output $@ + ligolw_no_ilwdchar $@ + @echo "" + +# Produce time slides file +tisi.xml : inj_tisi.xml + lalapps_gen_timeslides --instrument=H1=0:0:0 --instrument=L1=25.13274:25.13274:25.13274 --instrument=V1=12.345:12.345:12.345 bg_tisi.xml + ligolw_add --output $@ bg_tisi.xml $< + @echo "" + +# Produce injection time slide file +inj_tisi.xml : + lalapps_gen_timeslides --instrument=H1=0:0:0 --instrument=L1=0:0:0 --instrument=V1=0:0:0 $@ + @echo "" + +# Produce veto file +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 $@ + @echo "" + +%_vetoes.xml : $(VETODEF) lauras_txt_files_to_xml H1-GATES-1163203217-24537601.txt L1-GATES-1163203217-24537601.txt + touch V1-GATES-1163203217-24537601.txt + ./lauras_txt_files_to_xml -i $* -c -o $*-gates.xml $*-GATES-1163203217-24537601.txt + ligolw_no_ilwdchar $*-gates.xml + gstlal_segments_operations --union --segment-name VETO_CAT3_CUMULATIVE --output-file $@.tmp --output-segment-name vetoes $*-VETOTIME_CAT3-*.xml $*-VETOTIME_CAT3-*.xml + gstlal_segments_operations --union --segment-name vetoes --output-file $@ --output-segment-name vetoes $@.tmp $*-gates.xml + @echo "" + +# Produce segments file +segments.xml.gz : $(SEGMENTS_FILES) frame.cache CAT1_vetoes.xml.gz + 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_segments_operations --diff --output-file $@ segdb.xml CAT1_vetoes.xml.gz + gstlal_segments_trim --trim $(SEGMENT_TRIM) --gps-start-time $(START) --gps-end-time $(STOP) --min-length $(SEGMENT_MIN_LENGTH) --output $@ $@ + @echo "" + +# Produce CAT1 veto file +CAT1_vetoes.xml.gz : $(CAT1_VETOES_FILES) + ligolw_add --output $@ $(CAT1_VETOES_FILES) + ligolw_cut --delete-column segment:segment_def_cdb --delete-column segment:creator_db --delete-column segment_definer:insertion_time $@ + gzip $@ + @echo "" + +%_CAT1_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 + ligolw_no_ilwdchar H1-VETOTIME_CAT*.xml + ligolw_no_ilwdchar L1-VETOTIME_CAT*.xml + ligolw_no_ilwdchar V1-VETOTIME_CAT*.xml + gstlal_segments_operations --union --segment-name VETO_CAT1_CUMULATIVE --output-file $@ --output-segment-name datasegments $*-VETOTIME_CAT1-*.xml $*-VETOTIME_CAT1-*.xml + @echo "" + +# Produce frame cache files +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 + sed -i s/V\ $(LIGO_FRAME_TYPE)/V\ V1_$(LIGO_FRAME_TYPE)/g frame.cache + @echo "" + +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}' > $@ + @echo "" + +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}' > $@ + @echo "" + +V1_frame.cache : + # FIXME force the observatory column to actually be instrument + gw_data_find -o V -t $(VIRGO_FRAME_TYPE) -l -s $(START) -e $(STOP) --url-type file | awk '{ print $$1" $*_"$$2" "$$3" "$$4" "$$5}' > $@ + @echo "" + +# Produce padded segments files +%_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 > $@ + ligolw_no_ilwdchar $*_segmentspadded.xml + @echo "" + +V1_segmentspadded.xml : + ligolw_segment_query_dqsegdb --segment-url=${SEG_SERVER} -q --gps-start-time ${START} --gps-end-time ${STOP} --include-segments=$(VIRGO_SEGMENTS) --result-name=datasegments > $@ + ligolw_no_ilwdchar V1_segmentspadded.xml + @echo "" + +# Make webpage directory and copy files across +$(WEBDIR) : $(MAKEFILE_LIST) + mkdir -p $(WEBDIR)/OPEN-BOX + cp $(MAKEFILE_LIST) $@ + @echo "" + +# Makes local plots directory +plots : + mkdir plots + @echo "" + +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 + -rm -rf CAT1*.xml.gz + @echo "" + diff --git a/gstlal-inspiral/share/O3/offline/O2/SBANK_COMBINED-SBANK.xml.gz b/gstlal-inspiral/share/O3/offline/O2/SBANK_COMBINED-SBANK.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..13a8b2c2d585a5824049d7f0e79e920a43e012d3 Binary files /dev/null and b/gstlal-inspiral/share/O3/offline/O2/SBANK_COMBINED-SBANK.xml.gz differ