From e001c2a0253373bad3e2991c85c0c1d280fe4263 Mon Sep 17 00:00:00 2001 From: Duncan Meacher <duncan.meacher@ligo.org> Date: Mon, 21 Nov 2016 18:41:01 -0800 Subject: [PATCH] Added Makefiles for O2 --- gstlal-inspiral/share/O2/Makefile.O1_test_dag | 367 ++++++++ .../share/O2/Makefile.O2_injection_gen | 538 ++++++++++++ .../share/O2/Makefile.O2_single_ifo_test_dag | 248 ++++++ .../share/O2/Makefile.offline_analysis_rules | 29 - .../Makefile.ligosoftware_icc_gstreamer-1.0 | 783 ++++++++++++++++++ 5 files changed, 1936 insertions(+), 29 deletions(-) create mode 100644 gstlal-inspiral/share/O2/Makefile.O1_test_dag create mode 100644 gstlal-inspiral/share/O2/Makefile.O2_injection_gen create mode 100644 gstlal-inspiral/share/O2/Makefile.O2_single_ifo_test_dag delete mode 100644 gstlal-inspiral/share/O2/Makefile.offline_analysis_rules create mode 100644 gstlal-inspiral/share/O2/optimised/Makefile.ligosoftware_icc_gstreamer-1.0 diff --git a/gstlal-inspiral/share/O2/Makefile.O1_test_dag b/gstlal-inspiral/share/O2/Makefile.O1_test_dag new file mode 100644 index 0000000000..540fcf01c6 --- /dev/null +++ b/gstlal-inspiral/share/O2/Makefile.O1_test_dag @@ -0,0 +1,367 @@ +# condor commands +# Set the accounting tag from https://ldas-gridmon.ligo.caltech.edu/ldg_accounting/user +ACCOUNTING_TAG=ligo.dev.o2.cbc.bbh.gstlaloffline +GROUP_USER=duncan.meacher +#CONDOR_COMMANDS:=--condor-command=accounting_group=$(ACCOUNTING_TAG) --condor-command=accounting_group_user=$(GROUP_USER) +# Set requiremetn to run on Haswell, Broadwell, and Skylake nodes on cit +CONDOR_COMMANDS:=--condor-command=accounting_group=$(ACCOUNTING_TAG) --condor-command=accounting_group_user=$(GROUP_USER) --condor-command='Requirements = regexp("Intel.*v[3-5]", TARGET.cpuinfo_model_name)' + +############################ +# Template bank parameters # +############################ + +# Note that these can can change if you modify the template bank program. +# Waveform approximant +APPROXIMANT = TaylorF2 +# Minimum component mass for the template bank +MIN_MASS = 1.0 +# Maximum component mass for the template bank +MAX_MASS = 2.0 +# Minimum total mass for the template bank +MIN_TOTAL_MASS = 2.0 +# Maximum total mass for the template bank +MAX_TOTAL_MASS = 4.0 +# Maximum symmetric mass ratio for the template bank +MAX_ETA = 0.25 +# Minimum symmetric mass ratio for the template bank +MIN_ETA = 0.2222 +# Low frequency cut off for the template bank placement +LOW_FREQUENCY_CUTOFF = 30.0 +# High pass frequency to condition the data before measuring the psd for template placement +HIGH_PASS_FREQ = 20.0 +# Highest frequency at which to compute the metric +HIGH_FREQUENCY_CUTOFF = 1024.0 +# The sample rate at which to compute the template bank +SAMPLE_RATE = 4096 +# The minimal match of the template bank; determines how much SNR is retained for signals "in between the bank points" +MM = 0.975 +# The start time for reading the data for the bank +#BANKSTART = 1126051317 +BANKSTART = 1127000000 +# The stop time for reading the data for the bank (Bank start + 2048s) +#BANKSTOP = 1126053365 +BANKSTOP = 1127002048 + +# Controls the number of templates in each SVD sub bank +NUM_SPLIT_TEMPLATES = 180 +# 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 +MCHIRP_SPLIT = 1.73 +# The approximant that you wish to filter with for BANK_MCHIRP1 and BANK_MCHIRP2, respectively. +APPROXIMANT1 = 0.00:$(MCHIRP_SPLIT):TaylorF2 +APPROXIMANT2 = $(MCHIRP_SPLIT):1000.0:SEOBNRv4_ROM + +######################### +# Triggering parameters # +######################### + +# The detectors to analyze +IFOS = H1 L1 +# The GPS start time for analysis (O1) +START = 1127000000 +# The GPS end time for analysis (O1, start + 100000s) +STOP = 1128000000 +# A user tag for the run +TAG = test_dag +# Run number +RUN = run2_161121 +# A web directory for output +# cit & uwm +WEBDIR = ~/public_html/testing/$(TAG)/$(START)-$(STOP)-test_dag-$(RUN) +# Atlas +#WEBDIR = ~/WWW/LSC/testing/$(TAG)/$(START)-$(STOP)-test_dag-$(RUN) +# 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 # +############## + +# Change as appropriate, whitespace is important +MCHIRP_INJECTIONS := 0.5:100.0:1_injections.xml +# Maximum injection distance in Mpc +INJ_MAX_DIST = 500 +# Minimum component mass 1 for injections +INJ_MIN_MASS1 = 1.35 +# Maximum component mass 1 for injections +INJ_MAX_MASS1 = 1.45 +# Minimum component mass 2 for injections +INJ_MIN_MASS2 = 1.35 +# Maximum component mass 2 for injections +INJ_MAX_MASS2 = 1.45 +# Mean component mass 1 for injections +INJ_MEAN_MASS1 = 1.4 +# Mean component mass 2 for injections +INJ_MEAN_MASS2 = 1.4 +# Standard dev component mass 1 for injections +INJ_STD_MASS1 = 0.01 +# Standard dev component mass 2 for injections +INJ_STD_MASS2 = 0.01 +# Minimum total mass for injections +INJ_MIN_TOTAL_MASS = 2.7 +# Maximum total mass for injections +INJ_MAX_TOTAL_MASS = 2.9 +# minimum frequency for injections. NOTE this should be lower than the intended filtering frequency +INJ_FLOW = 25 +# Injection distances +INJ_MIN_DIST = 20000 +INJ_MAX_DIST = 180000 + +# GSTLAL_SEGMENTS Options +SEG_SERVER=https://segments.ligo.org +LIGO_SEGMENTS="$*:DCS-ANALYSIS_READY_C02: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 = $(HOME)/local/src/gstlal/gstlal-inspiral/share/O1/H1L1-CBC_VETO_DEFINER_C02_O1_1126051217-11203200.xml +VETODEF = H1L1-CBC_VETO_DEFINER_C02_O1_1126051217-11203200.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_C02' +LIVINGSTON_FRAME_TYPE='L1_HOFT_C02' + +# 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=DCS-CALIB_STRAIN_C02 +L1_CHANNEL=DCS-CALIB_STRAIN_C02 +CHANNEL_NAMES:=--channel-name=H1=$(H1_CHANNEL) --channel-name=L1=$(L1_CHANNEL) + +####################################################### +# Set ranges and times for reference likelihood files # +# ####################################################### + +# NOTE needed to make 10000s duration to get sufficient zero lag triggers +H1PRIORSTART=$(shell python -c "print $(shell lalapps_tconvert)-15000") +H1PRIORSTOP=$(shell python -c "print $(shell lalapps_tconvert)-5000") +L1PRIORSTART=$(shell python -c "print $(shell lalapps_tconvert)-10000") +L1PRIORSTOP=$(shell python -c "print $(shell lalapps_tconvert)") +H1PRIORRANGE=60 +L1PRIORRANGE=60 + +################################################################################### +# Get some basic definitions. NOTE this comes from the share directory probably. # +################################################################################### + +include Makefile.offline_analysis_rules_O2 + +############ +# Workflow # +############ + +all : dag + +## Making the master template bank +H1-TMPLTBANK-$(START)-2048.xml: H1_frame.cache + lalapps_tmpltbank \ + --disable-compute-moments \ + --grid-spacing Hexagonal \ + --dynamic-range-exponent 69.0 \ + --enable-high-pass $(HIGH_PASS_FREQ) \ + --high-pass-order 8 \ + --strain-high-pass-order 8 \ + --minimum-mass $(MIN_MASS) \ + --maximum-mass $(MAX_MASS) \ + --min-total-mass $(MIN_TOTAL_MASS) \ + --max-total-mass $(MAX_TOTAL_MASS) \ + --max-eta $(MAX_ETA) \ + --min-eta $(MIN_ETA) \ + --gps-start-time $(BANKSTART) \ + --gps-end-time $(BANKSTOP) \ + --calibrated-data real_8 \ + --channel-name H1:DCS-CALIB_STRAIN_C02 \ + --space Tau0Tau3 \ + --number-of-segments 15 \ + --minimal-match $(MM) \ + --high-pass-attenuation 0.1 \ + --min-high-freq-cutoff ERD \ + --segment-length 1048576 \ + --low-frequency-cutoff $(LOW_FREQUENCY_CUTOFF) \ + --pad-data 8 \ + --num-freq-cutoffs 1 \ + --sample-rate $(SAMPLE_RATE) \ + --high-frequency-cutoff $(HIGH_FREQUENCY_CUTOFF) \ + --resample-filter ldas \ + --strain-high-pass-atten 0.1 \ + --strain-high-pass-freq $(HIGH_PASS_FREQ) \ + --frame-cache H1_frame.cache \ + --max-high-freq-cutoff ERD \ + --approximant $(APPROXIMANT) \ + --order twoPN \ + --spectrum-type median \ + --verbose + +%_split_bank.cache : H1-TMPLTBANK-$(START)-2048.xml + 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) \ + $< + +plots : + mkdir plots + +$(WEBDIR) : $(MAKEFILE_LIST) + mkdir -p $(WEBDIR)/OPEN-BOX + cp $(MAKEFILE_LIST) $@ + +tisi.xml : inj_tisi.xml + lalapps_gen_timeslides --instrument=H1=0:0:0 --instrument=L1=25.13274:25.13274:25.13274 bg_tisi.xml + ligolw_add --output $@ bg_tisi.xml $< + +inj_tisi.xml : + lalapps_gen_timeslides --instrument=H1=0:0:0 --instrument=L1=0:0:0 $@ + +dag : segments.xml.gz vetoes.xml.gz frame.cache inj_tisi.xml tisi.xml plots $(WEBDIR) $(INJECTIONS) $(BANK_CACHE_FILES) reference_likelihood_file.xml.gz + 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 \ + --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) \ + --ht-gate-threshold-linear 0.8:12.0-45.0:100.0 \ + $(ADDITIONAL_DAG_OPTIONS) \ + $(CONDOR_COMMANDS) \ + --singles-threshold 100.0 \ + --request-cpu 2 \ + --request-memory 7GB \ + --min-log-L 4. \ + --min-instruments 1 \ + --reference-likelihood-file reference_likelihood_file.xml.gz + sed -i '1s/^/JOBSTATE_LOG logs\/trigger_pipe.jobstate.log\n/' trigger_pipe.dag + +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 $@ + +reference_likelihood_file.xml.gz: + gstlal_ll_inspiral_create_prior_diststats \ + --segment-and-horizon=H1:$(H1PRIORSTART):$(H1PRIORSTOP):$(H1PRIORRANGE) \ + --segment-and-horizon=L1:$(L1PRIORSTART):$(L1PRIORSTOP):$(L1PRIORRANGE) \ + --write-likelihood-basename $@ \ + --num-templates 1000 \ + --min-instruments 1 \ + --verbose + +1_injections.xml : + lalapps_inspinj \ + --m-distr gaussian \ + --min-mass1 $(INJ_MIN_MASS1) \ + --max-mass1 $(INJ_MAX_MASS1) \ + --min-mass2 $(INJ_MIN_MASS2) \ + --max-mass2 $(INJ_MAX_MASS2) \ + --min-mtotal $(INJ_MIN_TOTAL_MASS) \ + --max-mtotal $(INJ_MAX_TOTAL_MASS) \ + --mean-mass1 $(INJ_MEAN_MASS1) \ + --mean-mass2 $(INJ_MEAN_MASS2) \ + --stdev-mass1 $(INJ_STD_MASS1) \ + --stdev-mass2 $(INJ_STD_MASS2) \ + --gps-start-time $(START) \ + --gps-end-time $(STOP) \ + --disable-spin \ + --d-distr uniform \ + --i-distr uniform \ + --min-distance $(INJ_MIN_DIST) \ + --max-distance $(INJ_MAX_DIST) \ + --waveform TaylorT4threePointFivePN \ + --l-distr random \ + --f-lower $(INJ_FLOW) \ + --time-step 20 \ + --t-distr uniform \ + --time-interval 3 \ + --seed 51056 \ + --output $@ + +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/O2/Makefile.O2_injection_gen b/gstlal-inspiral/share/O2/Makefile.O2_injection_gen new file mode 100644 index 0000000000..54e10e319f --- /dev/null +++ b/gstlal-inspiral/share/O2/Makefile.O2_injection_gen @@ -0,0 +1,538 @@ + +#ER10 +#START = 1161957376 +#STOP = 1162957376 # 1000000 seconds + +# O1 chunk 1 +START = 1126051217 +STOP = 1127271617 + +# One injection every 100s with 25s window +TIME_STEP = 100 +TIME_INT = 1 + +# 100 / 13 ~ 7 (7.7) +DT = 7 # Must be int + +START_01 = $(shell echo $$(( $(START) + $(DT) )) ) +START_02 = $(shell echo $$(( $(START_01) + $(DT) )) ) +START_03 = $(shell echo $$(( $(START_02) + $(DT) )) ) +START_04 = $(shell echo $$(( $(START_03) + $(DT) )) ) +START_05 = $(shell echo $$(( $(START_04) + $(DT) )) ) +START_06 = $(shell echo $$(( $(START_05) + $(DT) )) ) +START_07 = $(shell echo $$(( $(START_06) + $(DT) )) ) +START_08 = $(shell echo $$(( $(START_07) + $(DT) )) ) +START_09 = $(shell echo $$(( $(START_08) + $(DT) )) ) +START_10 = $(shell echo $$(( $(START_09) + $(DT) )) ) +START_11 = $(shell echo $$(( $(START_10) + $(DT) )) ) +START_12 = $(shell echo $$(( $(START_11) + $(DT) )) ) +START_13 = $(shell echo $$(( $(START_12) + $(DT) )) ) + +# all-injections (except imbh for distance) +# Choose injections according to the (1.4-1.4) chirp-weighted distance. Inject uniformly between 30 and 300 Mpc +MIN_DIST = 5000 # 5 Mpc +MAX_DIST = 300000 # 300 Mpc + +# IMBH distance +MIN_DIST_IMBH = 30000 # 30 Mpc +MAX_DIST_IMBH = 7500000 # 7.5 Gpc + +# Injection generation starts at 15Hz +F_LOWER = 15 + +# Random seed is needed in all cases, but must be unique +SEED_01 = 72338 +SEED_02 = 92456 +SEED_03 = 98247 +SEED_04 = 32582 +SEED_05 = 84522 +SEED_06 = 24529 +SEED_07 = 52780 +SEED_08 = 90245 +SEED_09 = 52872 +SEED_10 = 14083 +SEED_11 = 28452 +SEED_12 = 20137 +SEED_13 = 23509 + +# BNS 1 +# bns-injection-1 +BNS_INJECTION_1 = bns_inj_1.xml +BNS_WF_1 = SpinTaylorT2threePointFivePN + +# BNS 2 +# bns-injection-2 +BNS_INJECTION_2 = bns_inj_2.xml +BNS_WF_2 = SpinTaylorT4threePointFivePN + +# NSBH 1 +# nsbh-template-bank-aligned-injections +NSBH_INJECTION_1 = nsbh_inj_1.xml +NSBH_WF_1 = SEOBNRv4pseudoFourPN + +# NSBH 2 +# nsbh-aligned-other-imr-injections +NSBH_INJECTION_2 = nsbh_inj_2.xml +NSBH_WF_2 = IMRPhenomDpseudoFourPN + +# NSBH 3 +# nsbh-precessing-inspiral-only-injections +NSBH_INJECTION_3 = nsbh_inj_3.xml +NSBH_WF_3 = SpinTaylorT4threePointFivePN + +# NSBH 4 +# nsbh-imr-precessing-approxone-injections +NSBH_INJECTION_4 = nsbh_inj_4.xml +NSBH_WF_4 = SEOBNRv3_optpseudoFourPN + +# BBH 1 +# bbh-aligned-injections +BBH_INJECTION_1 = bbh_inj_1.xml +BBH_WF_1 = SEOBNRv4pseudoFourPN + +# BBH 2 +# bbh-aligned-otherapprox-injections +BBH_INJECTION_2 = bbh_inj_2.xml +BBH_WF_2 = IMRPhenomDpseudoFourPN + +# BBH 3 +# bbh-precessing-injections +BBH_INJECTION_3 = bbh_inj_3.xml +BBH_WF_3 = SEOBNRv3_optpseudoFourPN + +# IMBH 1 +# imbh-aligned-injections +IMBH_INJECTION_1 = imbh_inj_1.xml +IMBH_WF_1 = SEOBNRv4pseudoFourPN + +# IMBH 2 +# imbh-aligned-otherapprox-injections +IMBH_INJECTION_2 = imbh_inj_2.xml +IMBH_WF_2 = IMRPhenomDpseudoFourPN + +# IMBH 3 +# imbh-precessing-injections +IMBH_INJECTION_3 = imbh_inj_3.xml +IMBH_WF_3 = SEOBNRv3_optpseudoFourPN + +# IMBH 4 +# imbh-higherordermode-injections +IMBH_INJECTION_4 = imbh_inj_4.xml +IMBH_WF_4 = EOBNRv2HMpseudoFourPN + +all : split + +split : $(BNS_INJECTION_1) $(BNS_INJECTION_2) $(NSBH_INJECTION_1) $(NSBH_INJECTION_2) $(NSBH_INJECTION_3) $(NSBH_INJECTION_4) $(BBH_INJECTION_1) $(BBH_INJECTION_2) $(BBH_INJECTION_3) $(IMBH_INJECTION_1) $(IMBH_INJECTION_2) $(IMBH_INJECTION_3) $(IMBH_INJECTION_4) + gstlal_inspiral_split_injections $^ -r 0.065 + +# BNS 1 +$(BNS_INJECTION_1) : + lalapps_inspinj \ + --m-distr componentMass \ + --min-mass1 1 \ + --max-mass1 3 \ + --min-mass2 1 \ + --max-mass2 3 \ + --min-mtotal 2 \ + --max-mtotal 6 \ + --gps-start-time $(START_01) \ + --gps-end-time $(STOP) \ + --enable-spin \ + --min-spin1 0 \ + --max-spin1 0.4 \ + --min-spin2 0 \ + --max-spin2 0.4 \ + --dchirp-distr uniform \ + --min-distance $(MIN_DIST) \ + --max-distance $(MAX_DIST) \ + --waveform $(BNS_WF_1) \ + --f-lower $(F_LOWER) \ + --i-distr uniform \ + --l-distr random \ + --t-distr uniform \ + --time-step $(TIME_STEP) \ + --time-interval $(TIME_INT) \ + --taper-injection startend \ + --seed $(SEED_01) \ + --output $@ + +# BNS 2 +$(BNS_INJECTION_2) : + lalapps_inspinj \ + --m-distr componentMass \ + --min-mass1 1 \ + --max-mass1 3 \ + --min-mass2 1 \ + --max-mass2 3 \ + --min-mtotal 2 \ + --max-mtotal 6 \ + --gps-start-time $(START_02) \ + --gps-end-time $(STOP) \ + --enable-spin \ + --min-spin1 0 \ + --max-spin1 0.4 \ + --min-spin2 0 \ + --max-spin2 0.4 \ + --dchirp-distr uniform \ + --min-distance $(MIN_DIST) \ + --max-distance $(MAX_DIST) \ + --waveform $(BNS_WF_2) \ + --f-lower $(F_LOWER) \ + --i-distr uniform \ + --l-distr random \ + --t-distr uniform \ + --time-step $(TIME_STEP) \ + --time-interval $(TIME_INT) \ + --taper-injection startend \ + --seed $(SEED_02) \ + --output $@ + +# NSBH 1 +$(NSBH_INJECTION_1) : + lalapps_inspinj \ + --m-distr componentMass \ + --min-mass1 2 \ + --max-mass1 97 \ + --min-mass2 1 \ + --max-mass2 3 \ + --min-mtotal 3 \ + --max-mtotal 100 \ + --gps-start-time $(START_03) \ + --gps-end-time $(STOP) \ + --enable-spin \ + --aligned \ + --min-spin1 0 \ + --max-spin1 0.998 \ + --min-spin2 0 \ + --max-spin2 0.4 \ + --dchirp-distr uniform \ + --min-distance $(MIN_DIST) \ + --max-distance $(MAX_DIST) \ + --waveform $(NSBH_WF_1) \ + --f-lower $(F_LOWER) \ + --i-distr uniform \ + --l-distr random \ + --t-distr uniform \ + --time-step $(TIME_STEP) \ + --time-interval $(TIME_INT) \ + --taper-injection start \ + --seed $(SEED_03) \ + --output $@ + +# NSBH 2 +$(NSBH_INJECTION_2) : + lalapps_inspinj \ + --m-distr componentMass \ + --min-mass1 2 \ + --max-mass1 97 \ + --min-mass2 1 \ + --max-mass2 3 \ + --min-mtotal 3 \ + --max-mtotal 100 \ + --gps-start-time $(START_04) \ + --gps-end-time $(STOP) \ + --enable-spin \ + --aligned \ + --min-spin1 0 \ + --max-spin1 0.85 \ + --min-spin2 0 \ + --max-spin2 0.4 \ + --dchirp-distr uniform \ + --min-distance $(MIN_DIST) \ + --max-distance $(MAX_DIST) \ + --waveform $(NSBH_WF_2) \ + --f-lower $(F_LOWER) \ + --i-distr uniform \ + --l-distr random \ + --t-distr uniform \ + --time-step $(TIME_STEP) \ + --time-interval $(TIME_INT) \ + --taper-injection start \ + --seed $(SEED_04) \ + --output $@ + +# NSBH 3 +$(NSBH_INJECTION_3) : + lalapps_inspinj \ + --m-distr componentMass \ + --min-mass1 2 \ + --max-mass1 16 \ + --min-mass2 1 \ + --max-mass2 3 \ + --min-mtotal 3 \ + --max-mtotal 19 \ + --gps-start-time $(START_05) \ + --gps-end-time $(STOP) \ + --enable-spin \ + --min-spin1 0 \ + --max-spin1 0.998 \ + --min-spin2 0 \ + --max-spin2 0.4 \ + --dchirp-distr uniform \ + --min-distance $(MIN_DIST) \ + --max-distance $(MAX_DIST) \ + --waveform $(NSBH_WF_3) \ + --f-lower $(F_LOWER) \ + --i-distr uniform \ + --l-distr random \ + --t-distr uniform \ + --time-step $(TIME_STEP) \ + --time-interval $(TIME_INT) \ + --taper-injection startend \ + --seed $(SEED_05) \ + --output $@ + +# NSBH 4 +$(NSBH_INJECTION_4) : + lalapps_inspinj \ + --m-distr componentMass \ + --min-mass1 2 \ + --max-mass1 97 \ + --min-mass2 1 \ + --max-mass2 3 \ + --min-mtotal 3 \ + --max-mtotal 100 \ + --gps-start-time $(START_06) \ + --gps-end-time $(STOP) \ + --enable-spin \ + --aligned \ + --min-spin1 0 \ + --max-spin1 0.9899 \ + --min-spin2 0 \ + --max-spin2 0.4 \ + --dchirp-distr uniform \ + --min-distance $(MIN_DIST) \ + --max-distance $(MAX_DIST) \ + --waveform $(NSBH_WF_4) \ + --f-lower $(F_LOWER) \ + --i-distr uniform \ + --l-distr random \ + --t-distr uniform \ + --time-step $(TIME_STEP) \ + --time-interval $(TIME_INT) \ + --taper-injection start \ + --seed $(SEED_06) \ + --output $@ + +# BBH 1 +$(BBH_INJECTION_1) : + lalapps_inspinj \ + --m-distr totalMass \ + --min-mass1 2 \ + --max-mass1 98 \ + --min-mass2 2 \ + --max-mass2 98 \ + --min-mtotal 4 \ + --max-mtotal 100 \ + --gps-start-time $(START_07) \ + --gps-end-time $(STOP) \ + --enable-spin \ + --aligned \ + --min-spin1 0 \ + --max-spin1 0.998 \ + --min-spin2 0 \ + --max-spin2 0.998 \ + --dchirp-distr uniform \ + --min-distance $(MIN_DIST) \ + --max-distance $(MAX_DIST) \ + --waveform $(BBH_WF_1) \ + --f-lower $(F_LOWER) \ + --i-distr uniform \ + --l-distr random \ + --t-distr uniform \ + --time-step $(TIME_STEP) \ + --time-interval $(TIME_INT) \ + --taper-injection start \ + --seed $(SEED_07) \ + --output $@ + +# BBH 2 +$(BBH_INJECTION_2) : + lalapps_inspinj \ + --m-distr totalMass \ + --min-mass1 2 \ + --max-mass1 98 \ + --min-mass2 2 \ + --max-mass2 98 \ + --min-mtotal 4 \ + --max-mtotal 100 \ + --gps-start-time $(START_08) \ + --gps-end-time $(STOP) \ + --enable-spin \ + --aligned \ + --min-spin1 0 \ + --max-spin1 0.85 \ + --min-spin2 0 \ + --max-spin2 0.85 \ + --dchirp-distr uniform \ + --min-distance $(MIN_DIST) \ + --max-distance $(MAX_DIST) \ + --waveform $(BBH_WF_2) \ + --f-lower $(F_LOWER) \ + --i-distr uniform \ + --l-distr random \ + --t-distr uniform \ + --time-step $(TIME_STEP) \ + --time-interval $(TIME_INT) \ + --taper-injection start \ + --seed $(SEED_08) \ + --output $@ + +# BBH 3 +$(BBH_INJECTION_3) : + lalapps_inspinj \ + --m-distr totalMass \ + --min-mass1 2 \ + --max-mass1 98 \ + --min-mass2 2 \ + --max-mass2 98 \ + --min-mtotal 4 \ + --max-mtotal 100 \ + --gps-start-time $(START_09) \ + --gps-end-time $(STOP) \ + --enable-spin \ + --aligned \ + --min-spin1 0 \ + --max-spin1 0.9899 \ + --min-spin2 0 \ + --max-spin2 0.9899 \ + --dchirp-distr uniform \ + --min-distance $(MIN_DIST) \ + --max-distance $(MAX_DIST) \ + --waveform $(BBH_WF_3) \ + --f-lower $(F_LOWER) \ + --i-distr uniform \ + --l-distr random \ + --t-distr uniform \ + --time-step $(TIME_STEP) \ + --time-interval $(TIME_INT) \ + --taper-injection start \ + --seed $(SEED_09) \ + --output $@ + +# IMBH 1 +$(IMBH_INJECTION_1) : + lalapps_inspinj \ + --m-distr totalMass \ + --min-mass1 50 \ + --max-mass1 550 \ + --min-mass2 50 \ + --max-mass2 550 \ + --min-mtotal 100 \ + --max-mtotal 600 \ + --gps-start-time $(START_10) \ + --gps-end-time $(STOP) \ + --enable-spin \ + --aligned \ + --min-spin1 0 \ + --max-spin1 0.998 \ + --min-spin2 0 \ + --max-spin2 0.998 \ + --d-distr uniform \ + --min-distance $(MIN_DIST_IMBH) \ + --max-distance $(MAX_DIST_IMBH) \ + --waveform $(IMBH_WF_1) \ + --f-lower $(F_LOWER) \ + --i-distr uniform \ + --l-distr random \ + --t-distr uniform \ + --time-step $(TIME_STEP) \ + --time-interval $(TIME_INT) \ + --taper-injection start \ + --seed $(SEED_10) \ + --output $@ + +# IMBH 2 +$(IMBH_INJECTION_2) : + lalapps_inspinj \ + --m-distr totalMass \ + --min-mass1 50 \ + --max-mass1 550 \ + --min-mass2 50 \ + --max-mass2 550 \ + --min-mtotal 100 \ + --max-mtotal 600 \ + --gps-start-time $(START_11) \ + --gps-end-time $(STOP) \ + --enable-spin \ + --aligned \ + --min-spin1 0 \ + --max-spin1 0.85 \ + --min-spin2 0 \ + --max-spin2 0.85 \ + --d-distr uniform \ + --min-distance $(MIN_DIST_IMBH) \ + --max-distance $(MAX_DIST_IMBH) \ + --waveform $(IMBH_WF_2) \ + --f-lower $(F_LOWER) \ + --i-distr uniform \ + --l-distr random \ + --t-distr uniform \ + --time-step $(TIME_STEP) \ + --time-interval $(TIME_INT) \ + --taper-injection start \ + --seed $(SEED_11) \ + --output $@ + +# IMBH 3 +$(IMBH_INJECTION_3) : + lalapps_inspinj \ + --m-distr totalMass \ + --min-mass1 50 \ + --max-mass1 550 \ + --min-mass2 50 \ + --max-mass2 550 \ + --min-mtotal 100 \ + --max-mtotal 600 \ + --gps-start-time $(START_12) \ + --gps-end-time $(STOP) \ + --enable-spin \ + --aligned \ + --min-spin1 0 \ + --max-spin1 0.9899 \ + --min-spin2 0 \ + --max-spin2 0.9899 \ + --d-distr uniform \ + --min-distance $(MIN_DIST_IMBH) \ + --max-distance $(MAX_DIST_IMBH) \ + --waveform $(IMBH_WF_3) \ + --f-lower $(F_LOWER) \ + --i-distr uniform \ + --l-distr random \ + --t-distr uniform \ + --time-step $(TIME_STEP) \ + --time-interval $(TIME_INT) \ + --taper-injection start \ + --seed $(SEED_12) \ + --output $@ + +# IMBH 4 +$(IMBH_INJECTION_4) : + lalapps_inspinj \ + --m-distr totalMass \ + --min-mass1 50 \ + --max-mass1 550 \ + --min-mass2 50 \ + --max-mass2 550 \ + --min-mtotal 100 \ + --max-mtotal 600 \ + --gps-start-time $(START_13) \ + --gps-end-time $(STOP) \ + --disable-spin \ + --d-distr uniform \ + --min-distance $(MIN_DIST_IMBH) \ + --max-distance $(MAX_DIST_IMBH) \ + --waveform $(IMBH_WF_3) \ + --f-lower $(F_LOWER) \ + --i-distr uniform \ + --l-distr random \ + --t-distr uniform \ + --time-step $(TIME_STEP) \ + --time-interval $(TIME_INT) \ + --taper-injection start \ + --seed $(SEED_13) \ + --output $@ + +clean : + rm $(BNS_INJECTION_1) $(BNS_INJECTION_2) $(NSBH_INJECTION_1) $(NSBH_INJECTION_2) $(NSBH_INJECTION_3) $(NSBH_INJECTION_4) $(BBH_INJECTION_1) $(BBH_INJECTION_2) $(BBH_INJECTION_3) $(IMBH_INJECTION_1) $(IMBH_INJECTION_2) $(IMBH_INJECTION_3) $(IMBH_INJECTION_4) + diff --git a/gstlal-inspiral/share/O2/Makefile.O2_single_ifo_test_dag b/gstlal-inspiral/share/O2/Makefile.O2_single_ifo_test_dag new file mode 100644 index 0000000000..2aa55c468d --- /dev/null +++ b/gstlal-inspiral/share/O2/Makefile.O2_single_ifo_test_dag @@ -0,0 +1,248 @@ +# condor commands +# Set the accounting tag from https://ldas-gridmon.ligo.caltech.edu/ldg_accounting/user +ACCOUNTING_TAG=ligo.dev.o2.cbc.bbh.gstlaloffline +GROUP_USER=duncan.meacher +#CONDOR_COMMANDS:=--condor-command=accounting_group=$(ACCOUNTING_TAG) --condor-command=accounting_group_user=$(GROUP_USER) +CONDOR_COMMANDS:=--condor-command=accounting_group=$(ACCOUNTING_TAG) --condor-command=accounting_group_user=$(GROUP_USER) --condor-command='Requirements=TARGET.cpuinfo_vendor_id=="GenuineIntel"' + +############################ +# Template bank parameters # +############################ + +# The filtering start frequency +LOW_FREQUENCY_CUTOFF = 15.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 = 500 +# 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 = 50 +BANKORIGIN = /home/gstlalcbctest/engineering/10/bank/gstlal_bank.xml.gz +# The location of the original full bank is on Atlas: /home/tito/er8/bank/H1L1-UBERBANK_MAXM100_NS0p05_ER8HMPSD-1126033217-223200.xml.gz +MCHIRP_SPLIT = 1.73 +# The approximant that you wish to filter with for BANK_MCHIRP1 and BANK_MCHIRP2, respectively. +APPROXIMANT1 = 0.00:$(MCHIRP_SPLIT):TaylorF2 +APPROXIMANT2 = $(MCHIRP_SPLIT):1000.0:SEOBNRv4_ROM + +######################### +# Triggering parameters # +######################### + +# The detectors to analyze +IFOS = H1 L1 +# The GPS start time for analysis (O1) +START = 1126051217 +# The GPS end time for analysis (O1, start + 100000s) +STOP = 1127271617 +# A user tag for the run +TAG = test_dag +# Run number +RUN = run1 +# A web directory for output +WEBDIR = /home/gstlalcbc/public_html/testing/ER10/O1_chunk1_run1_161117 +# 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 = 2048 +# The maximum number of samples to include in the 256 Hz or above time slices +SAMPLES_MAX_256 = 2048 + +############################# +# 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 +#INJECTIONS := 1_injections.xml +MCHIRP_INJECTIONS := 0.57:13.14:split_injections_0000.xml 5.00:521.90:split_injections_0001.xml + +# GSTLAL_SEGMENTS Options +SEG_SERVER=https://segments.ligo.org +LIGO_SEGMENTS="$*:DCS-ANALYSIS_READY_C02: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 = H1L1-CBC_VETO_DEFINER_C02_O1_1126051217-11203200.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_C02' +LIVINGSTON_FRAME_TYPE='L1_HOFT_C02' + +# 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=DCS-CALIB_STRAIN_C02 +L1_CHANNEL=DCS-CALIB_STRAIN_C02 +CHANNEL_NAMES:=--channel-name=H1=$(H1_CHANNEL) --channel-name=L1=$(L1_CHANNEL) + +####################################################### +# Set ranges and times for reference likelihood files # +####################################################### + +# NOTE needed to make 10000s duration to get sufficient zero lag triggers +H1PRIORSTART=$(shell python -c "print $(shell lalapps_tconvert)-15000") +H1PRIORSTOP=$(shell python -c "print $(shell lalapps_tconvert)-5000") +L1PRIORSTART=$(shell python -c "print $(shell lalapps_tconvert)-10000") +L1PRIORSTOP=$(shell python -c "print $(shell lalapps_tconvert)") +H1PRIORRANGE=60 +L1PRIORRANGE=60 + + +################################################################################### +# Get some basic definitions. NOTE this comes from the share directory probably. # +################################################################################### + +include Makefile.offline_analysis_rules + +############ +# Workflow # +############ + +all : dag + +BANK = $(notdir $(BANKORIGIN)) + +$(BANK): + gsiscp ldas-grid.ligo.caltech.edu:/home/gstlalcbctest/engineering/10/bank/gstlal_bank.xml.gz $@ + +%_split_bank.cache : $(BANK) + 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) \ + $(BANK) + +plots : + mkdir plots + +$(WEBDIR) : $(MAKEFILE_LIST) + mkdir -p $(WEBDIR)/OPEN-BOX + cp $(MAKEFILE_LIST) $@ + +tisi.xml : inj_tisi.xml + lalapps_gen_timeslides --instrument=H1=0:0:0 --instrument=L1=25.13274:25.13274:25.13274 bg_tisi.xml + ligolw_add --output $@ bg_tisi.xml $< + +inj_tisi.xml : + lalapps_gen_timeslides --instrument=H1=0:0:0 --instrument=L1=0:0:0 $@ + +dag : segments.xml.gz vetoes.xml.gz frame.cache inj_tisi.xml tisi.xml plots $(WEBDIR) $(INJECTIONS) $(BANK_CACHE_FILES) reference_likelihood_file.xml.gz + 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 \ + --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) \ + --ht-gate-threshold-linear 0.8:12.0-45.0:100.0 \ + $(ADDITIONAL_DAG_OPTIONS) \ + $(CONDOR_COMMANDS) \ + --singles-threshold 100.0 \ + --request-cpu 2 \ + --request-memory 7GB \ + --min-log-L 2. \ + --min-instruments 1 \ + --reference-likelihood-file reference_likelihood_file.xml.gz + sed -i '1s/^/JOBSTATE_LOG logs\/trigger_pipe.jobstate.log\n/' trigger_pipe.dag + +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 $@ + +reference_likelihood_file.xml.gz: + gstlal_ll_inspiral_create_prior_diststats \ + --segment-and-horizon=H1:$(H1PRIORSTART):$(H1PRIORSTOP):$(H1PRIORRANGE) \ + --segment-and-horizon=L1:$(L1PRIORSTART):$(L1PRIORSTOP):$(L1PRIORRANGE) \ + --write-likelihood-basename $@ \ + --num-templates 1000 \ + --min-instruments 1 \ + --verbose + +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/O2/Makefile.offline_analysis_rules b/gstlal-inspiral/share/O2/Makefile.offline_analysis_rules deleted file mode 100644 index f4eb4ba7ab..0000000000 --- a/gstlal-inspiral/share/O2/Makefile.offline_analysis_rules +++ /dev/null @@ -1,29 +0,0 @@ -# Misc useful definitions -empty:= -space:= $(empty) $(empty) -comma:= , - -# the point of this is to build the string e.g. H1=../bank/H1_bank.cache,L1=../bank/L1_bank.cache -BANK_CACHE_PREFIX = $(empty) -BANK_CACHE_SUFFIX = _split_bank.cache -BANK_CACHE_FILES = $(addsuffix $(BANK_CACHE_SUFFIX),$(IFOS)) -BANK_CACHE_STRING:= $(addprefix $(BANK_CACHE_PREFIX),$(IFOS)) -BANK_CACHE_STRING:= $(addprefix =,$(BANK_CACHE_STRING)) -BANK_CACHE_STRING:= $(addsuffix $(BANK_CACHE_SUFFIX),$(BANK_CACHE_STRING)) -BANK_CACHE_STRING:= $(join $(IFOS),$(BANK_CACHE_STRING)) -BANK_CACHE_STRING:= $(strip $(BANK_CACHE_STRING)) -BANK_CACHE_STRING:= $(subst $(space),$(comma),$(BANK_CACHE_STRING)) - -# Segments file names -segments_suffix := _segmentspadded.xml -SEGMENTS_FILES := $(addsuffix $(segments_suffix),$(IFOS)) - -# Frame cache file names -frame_suffix := _frame.cache -FRAME_CACHE_FILES := $(addsuffix $(frame_suffix),$(IFOS)) - -# Injection file names -injections:=--injections $(space) -far_injections:=--far-injections $(space) -INJECTION_LIST := $(subst $(space), $(injections), $(INJECTIONS)) -FAR_INJECTION_LIST := $(subst $(space), $(far_injections), $(FAR_INJECTIONS)) diff --git a/gstlal-inspiral/share/O2/optimised/Makefile.ligosoftware_icc_gstreamer-1.0 b/gstlal-inspiral/share/O2/optimised/Makefile.ligosoftware_icc_gstreamer-1.0 new file mode 100644 index 0000000000..0bf4aabfa4 --- /dev/null +++ b/gstlal-inspiral/share/O2/optimised/Makefile.ligosoftware_icc_gstreamer-1.0 @@ -0,0 +1,783 @@ +#SHELL := /bin/bash +# +# Before running, replace albert.einstein with your ligo.org credentials and +# run: make env.sh, then source the resulting environment file and run: make +# +# example command: +# time make logs/gstlal.txt -f Makefile.ligosoftware_icc_deb8_gstreamer-1.0 1> make.out 2> make.err + +# albert.einstein for git checkout +USER=duncan.meacher + +# Set directories and paths +SRC_DIR:=${PWD}/src +TAR_DIR:=tarball +LOGS_DIR:=logs +PATCH_DIR:=${PWD}/patches +GSTLAL_REPO:=${PWD}/git/gstlal +LALSUITE_REPO:=${PWD}/git/lalsuite +INSTALL_DIR:=${LAL_PATH} + +# Set to build from git (0 = repo, 1 = git) +LALSUITE_GIT=0 +GSTLAL_GIT=1 + +# Set package release versions +GSTLALINSPIRAL=gstlal-inspiral-1.1.0 +GSTLALCALIBRATION=gstlal-calibration-1.0.6 +GSTLALUGLY=gstlal-ugly-1.1.0 +GSTLAL=gstlal-1.1.0 +DOXYGEN=doxygen-1.8.9.1 +PYLAL=pylal-0.12.0 +GLUE=glue-1.53.0 +LALAPPS=lalapps-6.20.0 +LALSTOCHASTIC=lalstochastic-1.1.19 +LALINFERENCE=lalinference-1.8.0 +LALPULSAR=lalpulsar-1.15.0 +LALINSPIRAL=lalinspiral-1.7.6 +LALDETCHAR=laldetchar-0.3.4 +LALBURST=lalburst-1.4.3 +LALSIMULATION=lalsimulation-1.6.1 +LALMETAIO=lalmetaio-1.3.0 +LALFRAME=lalframe-1.4.2 +LAL=lal-6.17.0 +GDS=gds-2.17.11 +LDASTOOLSFRAMECPP=ldas-tools-framecpp-2.5.4 +LDASTOOLSAL=ldas-tools-al-2.5.6 +SWIG=swig-3.0.7 +METAIO=metaio-8.4.0 +LIBFRAME=libframe-8.30 +OPROFILE=oprofile-1.1.0 +GSTPYTHON=gst-python-1.4.0 +GSTPLUGINSGOOD=gst-plugins-good-1.4.5 +GSTPLUGINSBASE=gst-plugins-base-1.4.5 +GSTREAMER=gstreamer-1.4.5 +GSL=gsl-1.16 +ORC=orc-0.4.25 +FFTW=fftw-3.3.5 + +# Specify target/dependancy files +GSTINSPIRAL_TARGET=$(INSTALL_DIR)/lib/libgstlalinspiral.so +GSTLALCALIB_TARGET=$(INSTALL_DIR)/bin/gstlal_compute_strain +GSTLALUGLY_TARGET=$(INSTALL_DIR)/lib/gstreamer-1.0/libgstnds.so +GSTLAL_TARGET=$(INSTALL_DIR)/lib/libgstlal.so +DOXYGEN_TARGET=$(INSTALL_DIR)/bin/doxygen +PYLAL_TARGET=$(INSTALL_DIR)/etc/pylal-user-env.sh +GLUE_TARGET=$(INSTALL_DIR)/bin/dmtdq_seg_insert +LALAPPS_TARGET=$(INSTALL_DIR)/bin/lalapps_psinject +LALSTOCH_TARGET=$(INSTALL_DIR)/lib/liblalstochastic.so +LALINFER_TARGET=$(INSTALL_DIR)/lib/liblalinference.so +LALPULSAR_TARGET=$(INSTALL_DIR)/lib/liblalpulsar.so +LALINSPIRAL_TARGET=$(INSTALL_DIR)/lib/liblalinspiral.so +LALDETCHAR_TARGET=$(INSTALL_DIR)/lib/liblaldetchar.so +LALBURST_TARGET=$(INSTALL_DIR)/lib/liblalburst.so +LALSIM_TARGET=$(INSTALL_DIR)/lib/liblalsimulation.so +LALMETAIO_TARGET=$(INSTALL_DIR)/lib/liblalmetaio.so +LALFRAME_TARGET=$(INSTALL_DIR)/lib/liblalframe.so +LAL_TARGET=$(INSTALL_DIR)/lib/liblal.so +GDS_TARGET=$(INSTALL_DIR)/lib/libwpipe.so +LDASTOOLSFRAMECPP_TARGET=$(INSTALL_DIR)/lib/libframecpp.so +LDASTOOLSAL_TARGET=$(INSTALL_DIR)/lib/libldastoolsal.so +SWIG_TARGET=$(INSTALL_DIR)/bin/swig +METAIO_TARGET=$(INSTALL_DIR)/lib/libmetaio.so +LIBFRAME_TARGET=$(INSTALL_DIR)/lib/libFrame.so +OPROFILE_TARGET=$(INSTALL_DIR)/lib/oprofile/libopagent.so +GSTPYTHON_TARGET=$(INSTALL_DIR)/lib/gstreamer-1.0/libgstpythonplugin.so +GSTGOOD_TARGET=$(INSTALL_DIR)/lib/gstreamer-1.0/libgstpng.so +GSTBASE_TARGET=$(INSTALL_DIR)/lib/libgstapp-1.0.so +GSTREAMER_TARGET=$(INSTALL_DIR)/lib/libgstreamer-1.0.so +GSL_2_TARGET=$(INSTALL_DIR)/lib/pkgconfig/gsl.pc.orig +GSL_1_TARGET=$(INSTALL_DIR)/lib/libgsl.so +ORC_TARGET=$(INSTALL_DIR)/lib/liborc-0.4.so +FFTW_TARGET=$(INSTALL_DIR)/lib/libfftw3.so +# tarballs +GSTLALINSPIRAL_TAR_TARGET=$(TAR_DIR)/$(GSTLALINSPIRAL).tar.gz +GSTLALCALIB_TAR_TARGET=$(TAR_DIR)/$(GSTLALCALIBRATION).tar.gz +GSTLALUGLY_TAR_TARGET=$(TAR_DIR)/$(GSTLALUGLY).tar.gz +GSTLAL_TAR_TARGET=$(TAR_DIR)/$(GSTLAL).tar.gz +DOXYGEN_TAR_TARGET=$(TAR_DIR)/$(DOXYGEN).src.tar.gz +PYLAL_TAR_TARGET=$(TAR_DIR)/$(PYLAL).tar.gz +GLUE_TAR_TARGET=$(TAR_DIR)/$(GLUE).tar.gz +LALAPPS_TAR_TARGET=$(TAR_DIR)/$(LALAPPS).tar.xz +LALSTOCH_TAR_TARGET=$(TAR_DIR)/$(LALSTOCHASTIC).tar.xz +LALINFER_TAR_TARGET=$(TAR_DIR)/$(LALINFERENCE).tar.xz +LALPULSAR_TAR_TARGET=$(TAR_DIR)/$(LALPULSAR).tar.xz +LALINSPIRAL_TAR_TARGET=$(TAR_DIR)/$(LALINSPIRAL).tar.xz +LALDETCHAR_TAR_TARGET=$(TAR_DIR)/$(LALDETCHAR).tar.xz +LALBURST_TAR_TARGET=$(TAR_DIR)/$(LALBURST).tar.xz +LALSIM_TAR_TARGET=$(TAR_DIR)/$(LALSIMULATION).tar.xz +LALMETAIO_TAR_TARGET=$(TAR_DIR)/$(LALMETAIO).tar.xz +LALFRAME_TAR_TARGET=$(TAR_DIR)/$(LALFRAME).tar.xz +LAL_TAR_TARGET=$(TAR_DIR)/$(LAL).tar.xz +GDS_TAR_TARGET=$(TAR_DIR)/$(GDS).tar.gz +LDASTOOLSFRAMECPP_TAR_TARGET=$(TAR_DIR)/$(LDASTOOLSFRAMECPP).tar.gz +LDASTOOLSAL_TAR_TARGET=$(TAR_DIR)/$(LDASTOOLSAL).tar.gz +SWIG_TAR_TARGET=$(TAR_DIR)/$(SWIG).tar.gz +METAIO_TAR_TARGET=$(TAR_DIR)/$(METAIO).tar.gz +LIBFRAME_TAR_TARGET=$(TAR_DIR)/$(LIBFRAME).tar.gz +OPROFILE_TAR_TARGET=$(TAR_DIR)/$(OPROFILE).tar.gz +GSTPYTHON_TAR_TARGET=$(TAR_DIR)/$(GSTPYTHON).tar.xz +GSTGOOD_TAR_TARGET=$(TAR_DIR)/$(GSTPLUGINSGOOD).tar.xz +GSTBASE_TAR_TARGET=$(TAR_DIR)/$(GSTPLUGINSBASE).tar.xz +GSTREAMER_TAR_TARGET=$(TAR_DIR)/$(GSTREAMER).tar.xz +GSL_TAR_TARGET=$(TAR_DIR)/$(GSL).tar.gz +ORC_TAR_TARGET=$(TAR_DIR)/$(ORC).tar.xz +FFTW_TAR_TARGET=$(TAR_DIR)/$(FFTW).tar.gz +# git repos +GSTLAL_GIT_TARGET=$(GSTLAL_REPO)/TODO.md +LALSUITE_GIT_TARGET=$(LALSUITE_REPO)/lal/README + +# Specify how many processors to run on +CORES:=$(shell echo `nproc --all`"-2" | bc -l) + +# Determine cluster +CLUSTER:=$(shell hostname -d) + +ICC_CIT:=/ldcg/intel/2016u1/bin/compilervars.sh +ICC_UWM:=/opt/intel/bin/compilervars.sh +ICC_ATLAS:=/opt/intel/2015/intel.sh + +all : $(GSTINSPIRAL_TARGET) $(LOGS_DIR)/gstlal.txt + +##################### +# Environment setup # +##################### + +env.sh : + @echo 'unset GST_PLUGIN_PATH PYTHONPATH' > $@ + @echo 'unset LD_LIBRARY_PATH LIBRARY_PATH LD_PRELOAD' >> $@ + @echo 'LAL_PATH=${PWD}/opt' >> $@ + @echo 'export CFLAGS="-O3 -march=native -lfftw3 -lfftw3f -lfftw3_threads -lfftw3f_threads -lmkl_core -lmkl_intel_lp64 -lmkl_sequential -lm -lpthread -Wno-write-strings -lirc -limf -Wl,-rpath,${PWD}/opt/lib"' >> $@ + @if [ ${CLUSTER} = "ligo.caltech.edu" ] ; then \ + echo "source ${ICC_CIT} intel64" >> $@ ; \ + echo 'LDFLAGS_INTEL="-L${MKLROOT}/lib/intel64"' >> $@ ; \ + elif [ ${CLUSTER} = "nemo.uwm.edu" ] ; then \ + echo "source ${ICC_UWM} intel64" >> $@ ; \ + echo 'LDFLAGS_INTEL="-L/opt/intel/composer_xe_2015.5.223/mkl/lib/intel64"' >> $@ ; \ + elif [ ${CLUSTER} = "atlas.local" ] ; then \ + echo "source ${ICC_ATLAS} intel64" >> $@ ; \ + echo 'LDFLAGS_INTEL="-L/opt/intel/2015/lib/intel64 -L/opt/intel/2015/mkl/lib/intel64"' >> $@ ; \ + fi + @echo 'export LD_LIBRARY_PATH=$${LAL_PATH}/lib:$${LD_LIBRARY_PATH}' >> $@ + @echo 'export CC="icc"' >> $@ + @echo 'export CXX="icpc"' >> $@ + @echo '# Force explicit linking of optimized FFTW libraries:' >> $@ + @echo 'LDFLAGS="$${LDFLAGS_INTEL} -L${PWD}/opt/lib "' >> $@ + @echo '# These are environment variables that do get exported' >> $@ + @echo 'PATH=$${LAL_PATH}/bin:$${PATH}' >> $@ + @echo 'PKG_CONFIG_PATH=$${LAL_PATH}/lib/pkgconfig:$${LAL_PATH}/lib64/pkgconfig:$${PKG_CONFIG_PATH}' >> $@ + @echo 'PYTHONPATH=$${LAL_PATH}/lib/python2.7/site-packages:$${LAL_PATH}/lib64/python2.7/site-packages' >> $@ + @echo 'LAL_DATA_PATH=/home/cbc/ROM_data' >> $@ + @echo 'GST_PLUGIN_PATH=$${LAL_PATH}/lib/gstreamer-1.0' >> $@ + @echo 'export PATH PKG_CONFIG_PATH PYTHONPATH GST_PLUGIN_PATH LAL_PATH LDFLAGS LDFLAGS_INTEL LAL_DATA_PATH' >> $@ + +#@echo '#export LD_PRELOAD="$${LAL_PATH}/lib/libfftw3.so:$${LAL_PATH}/lib/libfftw3f.so:$${LAL_PATH}/lib/libfftw3_threads.so:$${LAL_PATH}/lib/libfftw3f_threads.so"' >> $@ +#@echo 'LAL_DATA_PATH=$${LAL_PATH}/share/lalsimulation' >> $@ + +##################### +# Check time stamps # +##################### + +check : + @if [ -f logs/all.txt ] ; then rm logs/all.txt ; fi ; + @cat logs/* | uniq > logs/all.txt + @if [ -f logs/gstlal.txt ] ; then ls logs/gstlal.txt >> logs/all.txt ; fi ; + @ls -ltrh $$(cat logs/all.txt) + +########### +# Install # +########### + +# gstlal (all) +logs/gstlal.txt : $(LOGS_DIR)/doxygen.txt $(GSTLAL_TARGET) $(GSTLALUGLY_TARGET) $(GSTLALCALIB_TARGET) $(GSTINSPIRAL_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +# gstlal-inspiral +$(GSTINSPIRAL_TARGET) : $(GSTLALCALIB_TARGET) + echo gstlal-inspiral 1>&2 + if [ "${GSTLAL_GIT}" = "1" ]; then \ + cd $(GSTLAL_REPO)/gstlal-inspiral && echo | ./00init.sh ; \ + cd $(GSTLAL_REPO)/gstlal-inspiral && ./configure --prefix=$(INSTALL_DIR) ; \ + cd $(GSTLAL_REPO)/gstlal-inspiral && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xzf $(TAR_DIR)/$(GSTLALINSPIRAL).tar.gz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(GSTLALINSPIRAL) && ./configure --prefix=$(INSTALL_DIR) ; \ + cd $(SRC_DIR)/$(GSTLALINSPIRAL) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# gstlal-calibration +$(GSTLALCALIB_TARGET) : $(GSTLALUGLY_TARGET) + echo gstlal-calibration 1>&2 + if [ "${GSTLAL_GIT}" = "1" ]; then \ + cd $(GSTLAL_REPO)/gstlal-calibration && echo | ./00init.sh ; \ + cd $(GSTLAL_REPO)/gstlal-calibration && ./configure --prefix=$(INSTALL_DIR) ; \ + cd $(GSTLAL_REPO)/gstlal-calibration && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xzf $(TAR_DIR)/$(GSTLALCALIBRATION).tar.gz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(GSTLALCALIBRATION) && ./configure --prefix=$(INSTALL_DIR) ; \ + cd $(SRC_DIR)/$(GSTLALCALIBRATION) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# gstlal-ugly +$(GSTLALUGLY_TARGET) : $(GSTLAL_TARGET) + echo gstlal-ugly 1>&2 + if [ "${GSTLAL_GIT}" = "1" ]; then \ + cd $(GSTLAL_REPO)/gstlal-ugly && echo | ./00init.sh ; \ + cd $(GSTLAL_REPO)/gstlal-ugly && ./configure --prefix=$(INSTALL_DIR) ; \ + cd $(GSTLAL_REPO)/gstlal-ugly && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xzf $(TAR_DIR)/$(GSTLALUGLY).tar.gz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(GSTLALUGLY) && ./configure --prefix=$(INSTALL_DIR) ; \ + cd $(SRC_DIR)/$(GSTLALUGLY) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# gstlal +$(GSTLAL_TARGET) : $(DOXYGEN_TARGET) $(GSTLAL_GIT_TARGET) + echo gstlal 1>&2 + if [ "${GSTLAL_GIT}" = "1" ]; then \ + cd $(GSTLAL_REPO)/gstlal && echo | ./00init.sh ; \ + cd $(GSTLAL_REPO)/gstlal && ./configure --prefix=$(INSTALL_DIR) ; \ + cd $(GSTLAL_REPO)/gstlal && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xzf $(TAR_DIR)/$(GSTLAL).tar.gz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(GSTLAL) && ./configure --prefix=$(INSTALL_DIR) ; \ + cd $(SRC_DIR)/$(GSTLAL) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# doxygen +logs/doxygen.txt : $(LOGS_DIR)/lalsuite.txt $(DOXYGEN_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +$(DOXYGEN_TARGET) : $(GLUE_TARGET) $(PYLAL_TARGET) + echo $(DOXYGEN) 1>&2 + tar -xf $(TAR_DIR)/$(DOXYGEN).src.tar.gz -C $(SRC_DIR) + cd $(SRC_DIR)/$(DOXYGEN) && ./configure --prefix=$(INSTALL_DIR) + cd $(SRC_DIR)/$(DOXYGEN) && make -j$(CORES) && make install -j$(CORES) + +# lalsuite +logs/lalsuite.txt : $(LOGS_DIR)/gds.txt $(LAL_TARGET) $(LALFRAME_TARGET) $(LALMETAIO_TARGET) $(LALSIM_TARGET) $(LALBURST_TARGET) $(LALDETCHAR_TARGET) $(LALINSPIRAL_TARGET) $(LALPULSAR_TARGET) $(LALINFER_TARGET) $(LALSTOCH_TARGET) $(LALAPPS_TARGET) $(GLUE_TARGET) $(PYLAL_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +# pylal +$(PYLAL_TARGET) : $(GLUE_TARGET) + echo $(PYLAL) 1>&2 + if [ "${LALSUITE_GIT}" = "1" ]; then \ + CC="gcc" CXX="g++" CFLAGS="-fPIC -O3 -march=native" cd $(LALSUITE_REPO)/pylal && python setup.py install --prefix=$(INSTALL_DIR) ; \ + else \ + tar -xzf $(TAR_DIR)/$(PYLAL).tar.gz -C $(SRC_DIR) ; \ + CC="gcc" CXX="g++" CFLAGS="-fPIC -O3 -march=native" cd $(SRC_DIR)/$(PYLAL) && python setup.py install --prefix=$(INSTALL_DIR) ; \ + fi ; + +# glue +$(GLUE_TARGET) : $(LALAPPS_TARGET) + echo $(GLUE) 1>&2 + if [ "${LALSUITE_GIT}" = "1" ]; then \ + cd $(LALSUITE_REPO)/glue && python setup.py install --prefix=$(INSTALL_DIR) ; \ + else \ + tar -xzf $(TAR_DIR)/$(GLUE).tar.gz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(GLUE) && python setup.py install --prefix=$(INSTALL_DIR) ; \ + fi ; + +# lalapps +## FIXME --enable-gcc-flags set to no on lalapps configure as work around to avoid warnings stopping install process +## FIXME: Commenting out the explicit linking to gslcblas +## Not sure what causes the warnings +$(LALAPPS_TARGET) : $(LALSTOCH_TARGET) + echo $(LALAPPS) 1>&2 + if [ "${LALSUITE_GIT}" = "1" ]; then \ + cd $(LALSUITE_REPO)/lalapps && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ + cd $(LALSUITE_REPO)/lalapps && ./00boot ; \ + cd $(LALSUITE_REPO)/lalapps && ./configure --enable-gcc-flags=no --enable-swig-python --disable-lalxml --prefix=$(INSTALL_DIR) ; \ + cd $(LALSUITE_REPO)/lalapps && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xf $(TAR_DIR)/$(LALAPPS).tar.xz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(LALAPPS) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ + cd $(SRC_DIR)/$(LALAPPS) && ./configure --enable-gcc-flags=no --enable-swig-python --disable-lalxml --prefix=$(INSTALL_DIR) ; \ + cd $(SRC_DIR)/$(LALAPPS) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# lalstochastic +$(LALSTOCH_TARGET) : $(LALINFER_TARGET) + echo $(LALSTOCHASTIC) 1>&2 + if [ "${LALSUITE_GIT}" = "1" ]; then \ + cd $(LALSUITE_REPO)/lalapps && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ + cd $(LALSUITE_REPO)/lalstochastic && ./00boot ; \ + cd $(LALSUITE_REPO)/lalstochastic && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(LALSUITE_REPO)/lalstochastic && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xf $(TAR_DIR)/$(LALSTOCHASTIC).tar.xz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(LALSTOCHASTIC) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ + cd $(SRC_DIR)/$(LALSTOCHASTIC) && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(SRC_DIR)/$(LALSTOCHASTIC) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# lalinference +$(LALINFER_TARGET) : $(LALPULSAR_TARGET) + echo $(LALINFERENCE) 1>&2 + if [ "${LALSUITE_GIT}" = "1" ]; then \ + cd $(LALSUITE_REPO)/lalapps && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ + cd $(LALSUITE_REPO)/lalinference && ./00boot ; \ + cd $(LALSUITE_REPO)/lalinference && ./configure --enable-swig-python --disable-lalxml --prefix=$(INSTALL_DIR) CC="gcc" CXX="g++" CFLAGS="-fPIC -O3 -march=native" ; \ + cd $(LALSUITE_REPO)/lalinference && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xf $(TAR_DIR)/$(LALINFERENCE).tar.xz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(LALINFERENCE) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ + cd $(SRC_DIR)/$(LALINFERENCE) && ./configure --enable-swig-python --disable-lalxml --prefix=$(INSTALL_DIR) CC="gcc" CXX="g++" CFLAGS="-fPIC -O3 -march=native" ; \ + cd $(SRC_DIR)/$(LALINFERENCE) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# lalpulsar +$(LALPULSAR_TARGET) : $(LALINSPIRAL_TARGET) + echo $(LALPULSAR) 1>&2 + if [ "${LALSUITE_GIT}" = "1" ]; then \ + cd $(LALSUITE_REPO)/lalapps && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ + cd $(LALSUITE_REPO)/lalpulsar && ./00boot ; \ + cd $(LALSUITE_REPO)/lalpulsar && ./configure --enable-swig-python --disable-lalxml --prefix=$(INSTALL_DIR) CC="gcc" CXX="g++" CFLAGS="-fPIC -O3 -march=native" ; \ + cd $(LALSUITE_REPO)/lalpulsar && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xf $(TAR_DIR)/$(LALPULSAR).tar.xz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(LALPULSAR) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ + cd $(SRC_DIR)/$(LALPULSAR) && ./configure --enable-swig-python --disable-lalxml --prefix=$(INSTALL_DIR) CC="gcc" CXX="g++" CFLAGS="-fPIC -O3 -march=native" ; \ + cd $(SRC_DIR)/$(LALPULSAR) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# lalinspiral +$(LALINSPIRAL_TARGET) : $(LALDETCHAR_TARGET) + echo $(LALINSPIRAL) 1>&2 + if [ "${LALSUITE_GIT}" = "1" ]; then \ + cd $(LALSUITE_REPO)/lalinspiral && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ + cd $(LALSUITE_REPO)/lalinspiral && ./00boot ; \ + cd $(LALSUITE_REPO)/lalinspiral && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(LALSUITE_REPO)/lalinspiral && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xf $(TAR_DIR)/$(LALINSPIRAL).tar.xz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(LALINSPIRAL) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ + cd $(SRC_DIR)/$(LALINSPIRAL) && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(SRC_DIR)/$(LALINSPIRAL) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# laldetchar +$(LALDETCHAR_TARGET) : $(LALBURST_TARGET) + echo $(LALDETCHAR) 1>&2 + if [ "${LALSUITE_GIT}" = "1" ]; then \ + cd $(LALSUITE_REPO)/laldetchar && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ + cd $(LALSUITE_REPO)/laldetchar && ./00boot ; \ + cd $(LALSUITE_REPO)/laldetchar && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(LALSUITE_REPO)/laldetchar && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xf $(TAR_DIR)/$(LALDETCHAR).tar.xz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(LALDETCHAR) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ + cd $(SRC_DIR)/$(LALDETCHAR) && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(SRC_DIR)/$(LALDETCHAR) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# lalburst +$(LALBURST_TARGET) : $(LALSIM_TARGET) + echo $(LALBURST) 1>&2 + if [ "${LALSUITE_GIT}" = "1" ]; then \ + cd $(LALSUITE_REPO)/lalburst && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ + cd $(LALSUITE_REPO)/lalburst && ./00boot ; \ + cd $(LALSUITE_REPO)/lalburst && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(LALSUITE_REPO)/lalburst && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xf $(TAR_DIR)/$(LALBURST).tar.xz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(LALBURST) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ + cd $(SRC_DIR)/$(LALBURST) && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(SRC_DIR)/$(LALBURST) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# lalsimulation +$(LALSIM_TARGET) : $(LALMETAIO_TARGET) + echo $(LALSIMULATION) 1>&2 + if [ "${LALSUITE_GIT}" = "1" ]; then \ + cd $(LALSUITE_REPO)/lalsimulation && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ + cd $(LALSUITE_REPO)/lalsimulation && ./00boot ; \ + cd $(LALSUITE_REPO)/lalsimulation && ./configure --disable-openmp --enable-swig-python --prefix=$(INSTALL_DIR) CC="gcc" CXX="g++" CFLAGS="-fPIC -O3 -march=native" ; \ + cd $(LALSUITE_REPO)/lalsimulation && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xf $(TAR_DIR)/$(LALSIMULATION).tar.xz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(LALSIMULATION) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ + cd $(SRC_DIR)/$(LALSIMULATION) && ./configure --disable-openmp --enable-swig-python --prefix=$(INSTALL_DIR) CC="gcc" CXX="g++" CFLAGS="-fPIC -O3 -march=native" ; \ + cd $(SRC_DIR)/$(LALSIMULATION) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# lalmetaio +$(LALMETAIO_TARGET) : $(LALFRAME_TARGET) + echo $(LALMETAIO) 1>&2 + if [ "${LALSUITE_GIT}" = "1" ]; then \ + cd $(LALSUITE_REPO)/lalmetaio && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ + cd $(LALSUITE_REPO)/lalmetaio && ./00boot ; \ + cd $(LALSUITE_REPO)/lalmetaio && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(LALSUITE_REPO)/lalmetaio && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xf $(TAR_DIR)/$(LALMETAIO).tar.xz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(LALMETAIO) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ + cd $(SRC_DIR)/$(LALMETAIO) && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(SRC_DIR)/$(LALMETAIO) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# lalframe +$(LALFRAME_TARGET) : $(LAL_TARGET) + echo $(LALFRAME) 1>&2 + if [ "${LALSUITE_GIT}" = "1" ]; then \ + cd $(LALSUITE_REPO)/lalframe && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ + cd $(LALSUITE_REPO)/lalframe && ./00boot ; \ + cd $(LALSUITE_REPO)/lalframe && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(LALSUITE_REPO)/lalframe && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xf $(TAR_DIR)/$(LALFRAME).tar.xz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(LALFRAME) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ + cd $(SRC_DIR)/$(LALFRAME) && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(SRC_DIR)/$(LALFRAME) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# lal +$(LAL_TARGET) : $(OPROFILE_TARGET) $(LIBFRAME_TARGET) $(METAIO_TARGET) $(SWIG_TARGET) $(LDASTOOLSAL_TARGET) $(LDASTOOLSFRAMECPP_TARGET) $(GDS_TARGET) + echo $(LAL) 1>&2 + if [ "${LALSUITE_GIT}" = "1" ]; then \ + cd $(LALSUITE_REPO)/lal && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ + cd $(LALSUITE_REPO)/lal && ./00boot ; \ + cd $(LALSUITE_REPO)/lal && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(LALSUITE_REPO)/lal && make -j$(CORES) && make install -j$(CORES) ; \ + else \ + tar -xf $(TAR_DIR)/$(LAL).tar.xz -C $(SRC_DIR) ; \ + cd $(SRC_DIR)/$(LAL) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ + cd $(SRC_DIR)/$(LAL) && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(SRC_DIR)/$(LAL) && make -j$(CORES) && make install -j$(CORES) ; \ + fi ; + +# gds +logs/gds.txt : $(LOGS_DIR)/ldas-tools-framecpp.txt $(GDS_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +$(GDS_TARGET) : $(LDASTOOLSFRAMECPP_TARGET) + echo $(GDS) 1>&2 + tar -xzf $(TAR_DIR)/$(GDS).tar.gz -C $(SRC_DIR) + cd $(SRC_DIR)/$(GDS) && ./configure --enable-online --prefix=$(INSTALL_DIR) CC="gcc" CXX="g++" CFLAGS="-fPIC -O3 -march=native -lfftw3_threads -lfftw3f_threads" LDFLAGS="" + cd $(SRC_DIR)/$(GDS) && make && make install + +# ldas-tools-framecpp +logs/ldas-tools-framecpp.txt : $(LOGS_DIR)/ldas-tools-al.txt $(LDASTOOLSFRAMECPP_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +$(LDASTOOLSFRAMECPP_TARGET) : $(LDASTOOLSAL_TARGET) + echo $(LDASTOOLSFRAMECPP) 1>&2 + tar -xf $(TAR_DIR)/$(LDASTOOLSFRAMECPP).tar.gz -C $(SRC_DIR) + cd $(SRC_DIR)/$(LDASTOOLSFRAMECPP) && ./configure --prefix=$(INSTALL_DIR) --without-doxygen CC="gcc" CXX="g++" CFLAGS="-fPIC -O3 -march=native" + cd $(SRC_DIR)/$(LDASTOOLSFRAMECPP) && make DESTDIR=/ -j$(CORES) && make install DESTDIR=/ -j$(CORES) + +# ldas-tools-al +logs/ldas-tools-al.txt : $(LOGS_DIR)/swig.txt $(LDASTOOLSAL_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +$(LDASTOOLSAL_TARGET) : $(SWIG_TARGET) + echo $(LDASTOOLSAL) 1>&2 + tar -xf $(TAR_DIR)/$(LDASTOOLSAL).tar.gz -C $(SRC_DIR) + cd $(SRC_DIR)/$(LDASTOOLSAL) && ./configure --prefix=$(INSTALL_DIR) --without-doxygen CC="gcc" CXX="g++" CFLAGS="-fPIC -O3 -march=native" + cd $(SRC_DIR)/$(LDASTOOLSAL) && make -j$(CORES) && make install -j$(CORES) + +# swig +logs/swig.txt : $(LOGS_DIR)/metaio.txt $(SWIG_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +$(SWIG_TARGET) : $(METAIO_TARGET) + echo $(SWIG) 1>&2 + tar -xf $(TAR_DIR)/$(SWIG).tar.gz -C $(SRC_DIR) + cd $(SRC_DIR)/$(SWIG) && ./configure --prefix=$(INSTALL_DIR) + cd $(SRC_DIR)/$(SWIG) && make -j$(CORES) && make install -j$(CORES) + +# metaio +logs/metaio.txt : $(LOGS_DIR)/libframe.txt $(METAIO_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +$(METAIO_TARGET) : $(LIBFRAME_TARGET) + echo $(METAIO) 1>&2 + tar -xf $(TAR_DIR)/$(METAIO).tar.gz -C $(SRC_DIR) + cd $(SRC_DIR)/$(METAIO) && ./configure --prefix=$(INSTALL_DIR) --with-matlab=no + cd $(SRC_DIR)/$(METAIO) && make -j$(CORES) && make install -j$(CORES) + # Needed with-matlab option for intel_haswell test + +# libframe +logs/libframe.txt : $(LOGS_DIR)/oprofile.txt $(LIBFRAME_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +$(LIBFRAME_TARGET) : $(OPROFILE_TARGET) + echo $(LIBFRAME) 1>&2 + tar -xf $(TAR_DIR)/$(LIBFRAME).tar.gz -C $(SRC_DIR) + cd $(SRC_DIR)/$(LIBFRAME) && ./configure --prefix=$(INSTALL_DIR) + cd $(SRC_DIR)/$(LIBFRAME) && make -j$(CORES) && make install -j$(CORES) + +# oprofile +logs/oprofile.txt : $(LOGS_DIR)/gstreamer.txt $(OPROFILE_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +$(OPROFILE_TARGET) : $(GSTPYTHON_TARGET) + echo $(OPROFILE) 1>&2 + tar -xf $(TAR_DIR)/$(OPROFILE).tar.gz -C $(SRC_DIR) + cd $(SRC_DIR)/$(OPROFILE)/ && ./configure --prefix=$(INSTALL_DIR) + cd $(SRC_DIR)/$(OPROFILE)/ && make -j$(CORES) && make install -j$(CORES) + +# gstreamer (all) +logs/gstreamer.txt : $(LOGS_DIR)/gsl.txt $(GSTREAMER_TARGET) $(GSTBASE_TARGET) $(GSTGOOD_TARGET) $(GSTPYTHON_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +# gstreamer plugin python +$(GSTPYTHON_TARGET) : $(GSTGOOD_TARGET) + echo $(GSTPYTHON) 1>&2 + mkdir -p $(INSTALL_DIR)/lib64/python2.7/site-packages/gi/overrides + tar -xf $(TAR_DIR)/$(GSTPYTHON).tar.xz -C $(SRC_DIR) + cd $(SRC_DIR)/$(GSTPYTHON) && ./configure --prefix=$(INSTALL_DIR) --exec-prefix=$(INSTALL_DIR) --with-libpython-dir=/usr/lib --with-pygi-overrides-dir=$(INSTALL_DIR)/lib/python2.7/site-packages/gi/overrides + cd $(SRC_DIR)/$(GSTPYTHON) && make -j$(CORES) && make install -j$(CORES) + +# gstreamer plugin good +$(GSTGOOD_TARGET) : $(GSTBASE_TARGET) + echo $(GSTPLUGINSGOOD) 1>&2 + tar -xf $(TAR_DIR)/$(GSTPLUGINSGOOD).tar.xz -C $(SRC_DIR) + cd $(SRC_DIR)/$(GSTPLUGINSGOOD) && ./configure --disable-gst_v4l2 --prefix=$(INSTALL_DIR) + cd $(SRC_DIR)/$(GSTPLUGINSGOOD) && make -j$(CORES) && make install -j$(CORES) + +# gstreamer plugin base +$(GSTBASE_TARGET) : $(GSTREAMER_TARGET) + echo $(GSTPLUGINSBASE) 1>&2 + tar -xf $(TAR_DIR)/$(GSTPLUGINSBASE).tar.xz -C $(SRC_DIR) + cd $(SRC_DIR)/$(GSTPLUGINSBASE) && ./configure --prefix=$(INSTALL_DIR) + cd $(SRC_DIR)/$(GSTPLUGINSBASE) && make -j$(CORES) && make install -j$(CORES) + +# gstreamer +$(GSTREAMER_TARGET) : $(GSL_1_TARGET) $(GSL_2_TARGET) + echo $(GSTREAMER) 1>&2 + tar -xf $(TAR_DIR)/$(GSTREAMER).tar.xz -C $(SRC_DIR) + cd $(SRC_DIR)/$(GSTREAMER) && ./configure --prefix=$(INSTALL_DIR) + cd $(SRC_DIR)/$(GSTREAMER) && make -j$(CORES) && make install -j$(CORES) + +# GSL +logs/gsl.txt : $(LOGS_DIR)/orc.txt $(GSL_1_TARGET) $(GSL_2_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +## FIXME Hack to make gsl default to atlas for blas +$(GSL_2_TARGET) : $(GSL_1_TARGET) + cp $(INSTALL_DIR)/lib/pkgconfig/gsl.pc $@ + sed 's/-lgslcblas/ -lmkl_intel_ilp64 -lmkl_core -lmkl_sequential -lpthread -lm/' $@ > $(INSTALL_DIR)/lib/pkgconfig/gsl.pc + +$(GSL_1_TARGET) : $(ORC_TARGET) + echo $(GSL) 1>&2 + tar -xf $(TAR_DIR)/$(GSL).tar.gz -C $(SRC_DIR) + cd $(SRC_DIR)/$(GSL) && ./configure --prefix=$(INSTALL_DIR) CFLAGS="${CFLAGS}" CC="icc" CXX="icpc" GSL_CBLAS_LIB='-lmkl_intel_ilp64 -lmkl_core -lmkl_sequential' + cd $(SRC_DIR)/$(GSL) && make -j$(CORES) && make install -j$(CORES) + +# ORC +logs/orc.txt : $(LOGS_DIR)/fftw.txt $(ORC_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +$(ORC_TARGET) : $(FFTW_TARGET) + echo $(ORC) 1>&2 + tar -xf $(TAR_DIR)/$(ORC).tar.xz -C $(SRC_DIR) + cd $(SRC_DIR)/$(ORC) && ./configure --prefix=$(INSTALL_DIR) + cd $(SRC_DIR)/$(ORC) && make -j$(CORES) && make install -j$(CORES) + +# fftw +logs/fftw.txt : $(LOGS_DIR)/patch.txt $(FFTW_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +# ./configure, make, make install run twice to install single and double precission libs +$(FFTW_TARGET) : $(LOGS_DIR)/patch.txt + echo $(FFTW) 1>&2 + tar -xzf $(TAR_DIR)/$(FFTW).tar.gz -C $(SRC_DIR) + cd $(SRC_DIR)/$(FFTW) && \ + ./configure CFLAGS="-O3 -march=native -lmkl_core -lmkl_intel_lp64 -lmkl_sequential -lm -lpthread -Wno-write-strings -lirc -limf -Wl,-rpath,${PWD}/opt/lib" LDFLAGS="${LDFLAGS_INTEL}" --enable-shared --enable-sse --enable-sse2 --enable-avx --enable-float --enable-avx --enable-fma --enable-avx2 --enable-threads --prefix=$(INSTALL_DIR) && \ + make -j$(CORES) && make install -j$(CORES) && make clean && \ + ./configure CFLAGS="-O3 -march=native -lmkl_core -lmkl_intel_lp64 -lmkl_sequential -lm -lpthread -Wno-write-strings -lirc -limf -Wl,-rpath,${PWD}/opt/lib" LDFLAGS="${LDFLAGS_INTEL}" --enable-shared --enable-sse2 --enable-avx --enable-avx --enable-fma --enable-avx2 --enable-threads --prefix=$(INSTALL_DIR) && \ + make -j$(CORES) && make install -j$(CORES) + +######################### +# Download the software # +######################### + +# patches +logs/patch.txt : $(LOGS_DIR)/tar.txt + echo $^ | sed -e "s@ @\n@g" > $@ + +#tarballs +logs/tar.txt : $(FFTW_TAR_TARGET) $(ORC_TAR_TARGET) $(GSL_TAR_TARGET) $(GSTREAMER_TAR_TARGET) $(GSTBASE_TAR_TARGET) $(GSTGOOD_TAR_TARGET) $(GSTPYTHON_TAR_TARGET) $(OPROFILE_TAR_TARGET) $(LIBFRAME_TAR_TARGET) $(METAIO_TAR_TARGET) $(SWIG_TAR_TARGET) $(LDASTOOLSAL_TAR_TARGET) $(LDASTOOLSFRAMECPP_TAR_TARGET) $(GDS_TAR_TARGET) $(LAL_TAR_TARGET) $(LALFRAME_TAR_TARGET) $(LALMETAIO_TAR_TARGET) $(LALSIM_TAR_TARGET) $(LALBURST_TAR_TARGET) $(LALDETCHAR_TAR_TARGET) $(LALINSPIRAL_TAR_TARGET) $(LALPULSAR_TAR_TARGET) $(LALINFER_TAR_TARGET) $(LALSTOCH_TAR_TARGET) $(LALAPPS_TAR_TARGET) $(GLUE_TAR_TARGET) $(PYLAL_TAR_TARGET) $(DOXYGEN_TAR_TARGET) $(GSTLAL_TAR_TARGET) $(GSTLALUGLY_TAR_TARGET) $(GSTLALCALIB_TAR_TARGET) $(GSTLALINSPIRAL_TAR_TARGET) + echo $^ | sed -e "s@ @\n@g" > $@ + +$(GSTLALINSPIRAL_TAR_TARGET) : $(GSTLALCALIB_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/$(GSTLALINSPIRAL).tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(GSTLALCALIB_TAR_TARGET) : $(GSTLALUGLY_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/$(GSTLALCALIBRATION).tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(GSTLALUGLY_TAR_TARGET) : $(GSTLAL_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/$(GSTLALUGLY).tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(GSTLAL_TAR_TARGET) : $(DOXYGEN_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/$(GSTLAL).tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(DOXYGEN_TAR_TARGET) : $(PYLAL_TAR_TARGET) + wget --no-check-certificate ftp://ftp.stack.nl/pub/users/dimitri/$(DOXYGEN).src.tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(PYLAL_TAR_TARGET) : $(GLUE_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/$(PYLAL).tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(GLUE_TAR_TARGET) : $(LALAPPS_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/$(GLUE).tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(LALAPPS_TAR_TARGET) : $(LALSTOCH_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/lalsuite/$(LALAPPS).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(LALSTOCH_TAR_TARGET) : $(LALINFER_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/lalsuite/$(LALSTOCHASTIC).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(LALINFER_TAR_TARGET) : $(LALPULSAR_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/lalsuite/$(LALINFERENCE).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(LALPULSAR_TAR_TARGET) : $(LALINSPIRAL_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/lalsuite/$(LALPULSAR).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(LALINSPIRAL_TAR_TARGET) : $(LALDETCHAR_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/lalsuite/$(LALINSPIRAL).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(LALDETCHAR_TAR_TARGET) : $(LALBURST_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/lalsuite/$(LALDETCHAR).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(LALBURST_TAR_TARGET) : $(LALSIM_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/lalsuite/$(LALBURST).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(LALSIM_TAR_TARGET) : $(LALMETAIO_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/lalsuite/$(LALSIMULATION).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(LALMETAIO_TAR_TARGET) : $(LALFRAME_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/lalsuite/$(LALMETAIO).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(LALFRAME_TAR_TARGET) : $(LAL_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/lalsuite/$(LALFRAME).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(LAL_TAR_TARGET) : $(GDS_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/lalsuite/$(LAL).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(GDS_TAR_TARGET) : $(LDASTOOLSFRAMECPP_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/$(GDS).tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(LDASTOOLSFRAMECPP_TAR_TARGET) : $(LDASTOOLSAL_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/$(LDASTOOLSFRAMECPP).tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(LDASTOOLSAL_TAR_TARGET) : $(SWIG_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/$(LDASTOOLSAL).tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(SWIG_TAR_TARGET) : $(METAIO_TAR_TARGET) + wget --no-check-certificate http://downloads.sourceforge.net/project/swig/swig/$(SWIG)/$(SWIG).tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(METAIO_TAR_TARGET) : $(LIBFRAME_TAR_TARGET) + wget --no-check-certificate https://www.lsc-group.phys.uwm.edu/daswg/download/software/source/$(METAIO).tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(LIBFRAME_TAR_TARGET) : $(OPROFILE_TAR_TARGET) + wget --no-check-certificate http://lappweb.in2p3.fr/virgo/FrameL/$(LIBFRAME).tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(OPROFILE_TAR_TARGET) : $(GSTPYTHON_TAR_TARGET) + wget --no-check-certificate http://prdownloads.sourceforge.net/oprofile/$(OPROFILE).tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(GSTPYTHON_TAR_TARGET) : $(GSTGOOD_TAR_TARGET) + wget --no-check-certificate http://gstreamer.freedesktop.org/src/gst-python/$(GSTPYTHON).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(GSTGOOD_TAR_TARGET) : $(GSTBASE_TAR_TARGET) + wget --no-check-certificate http://gstreamer.freedesktop.org/src/gst-plugins-good/$(GSTPLUGINSGOOD).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(GSTBASE_TAR_TARGET) : $(GSTREAMER_TAR_TARGET) + wget --no-check-certificate http://gstreamer.freedesktop.org/src/gst-plugins-base/$(GSTPLUGINSBASE).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(GSTREAMER_TAR_TARGET) : $(GSL_TAR_TARGET) + wget --no-check-certificate http://gstreamer.freedesktop.org/src/gstreamer/$(GSTREAMER).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(GSL_TAR_TARGET) : $(ORC_TAR_TARGET) + wget --no-check-certificate http://ftp.gnu.org/gnu/gsl/$(GSL).tar.gz --directory-prefix=$(TAR_DIR) -nc + +$(ORC_TAR_TARGET) : $(FFTW_TAR_TARGET) + wget --no-check-certificate http://gstreamer.freedesktop.org/src/orc/$(ORC).tar.xz --directory-prefix=$(TAR_DIR) -nc + +$(FFTW_TAR_TARGET) : $(LOGS_DIR) + wget --no-check-certificate http://www.fftw.org/$(FFTW).tar.gz --directory-prefix=$(TAR_DIR) -nc + +# git repos +git-pull : + if [ -f $(LALSUITE_TARGET) ] ; then \ + ecp-cookie-init LIGO.ORG https://versions.ligo.org/git $(USER) ; \ + cd $(LALSUITE_REPO) && git clean -dxf && git pull --rebase ; \ + fi ; + if [ -f $(GSTLAL_TARGET) ] ; then \ + cd $(GSTLAL_REPO) && git clean -dxf && git pull --rebase ; \ + fi ; + +$(LOGS_DIR) : + mkdir -p $(SRC_DIR) $(INSTALL_DIR) $(PATCH_DIR) $(LOGS_DIR) $(TAR_DIR) + if [ "${GSTLAL_GIT}" = "1" ]; then \ + if [ -f $@ ] ; then \ + echo "Gstlal git repo exists" ; \ + else \ + mkdir -p $(GSTLAL_REPO) ; \ + ecp-cookie-init LIGO.ORG https://versions.ligo.org/git $(USER) ; \ + git clone https://versions.ligo.org/git/gstlal.git $(GSTLAL_REPO) ; \ + fi ; \ + fi ; + if [ "${LALSUITE_GIT}" = "1" ]; then \ + if [ -f $@ ] ; then \ + echo "Lalsuite git repo exists" ; \ + else \ + mkdir -p $(LALSUITE_REPO) ; \ + ecp-cookie-init LIGO.ORG https://versions.ligo.org/git $(USER) ; \ + git clone https://versions.ligo.org/git/lalsuite.git $(LALSUITE_REPO) ; \ + fi ; \ + fi ; + +############ +# Clean up # +############ + +clean-all : + rm -rvf $(SRC_DIR) $(INSTALL_DIR) $(PATCH_DIR) $(TAR_DIR) $(LOGS_DIR) + rm -rvf opt git + rm -rf *.txt + +clean-install : + rm -rf opt/* logs/* src/* + +clean-gstlal : + rm -rf logs/gstlal.txt $(GSTLAL_TARGET) $(GSTLALUGLY_TARGET) $(GSTLALCALIB_TARGET) $(GSTLALINSPIRAL_TARGET) + +clean-doxygen : + rm -rf logs/doxygen.txt $(DOXYGEN_TARGET) + +clean-lalsuite : + rm -rf logs/lalsuite.txt $(LAL_TARGET) $(LALFRAME_TARGET) $(LALMETAIO_TARGET) $(LALSIM_TARGET) $(LALBURST_TARGET) $(LALDETCHAR_TARGET) $(LALINSPIRAL_TARGET) $(LALPULSAR_TARGET) $(LALINFER_TARGET) $(LALSTOCH_TARGET) $(LALAPPS_TARGET) $(GLUE_TARGET) $(PYLAL_TARGET) + +clean-gds : + rm -rf logs/gds.txt $(GDS_TARGET) + +clean-ldas-tools-framecpp : + rm -rf logs/ldas-tools-framecpp.txt $(LDASTOOLSFRAMECPP_TARGET) + +clean-ldas-tools-al : + rm -rf logs/ldas-tools-al.txt $(LDASTOOLSAL_TARGET) + +clean-swig : + rm -rf logs/swig.txt $(SWIG_TARGET) + +clean-metaio : + rm -rf logs/metaio.txt $(METAIO_TARGET) + +clean-libframe : + rm -rf logs/libframe.txt $(LIBFRAME_TARGET) + +clean-oprofile : + rm -rf logs/oprofile.txt $(OPROFILE_TARGET) + +clean-gstreamer : + rm -rf logs/gstreamer.txt $(GSTREAMER_TARGET) $(GSTBASE_TARGET) $(GSTGOOD_TARGET) $(GSTPYTHON_TARGET) + +clean-gsl : + rm -rf logs/gsl.txt $(GSL_1_TARGET) $(GSL_2_TARGET) + +clean-orc : + rm -rf logs/orc.txt $(ORC_TARGET) + +clean-fftw : + rm -rf logs/fftw.txt $(FFTW_TARGET) -- GitLab