SEXEC=singularity exec -B /ligo ../gstlal-dev # ICDS (depending on user environment).  
UNAME=albert.einstein# change to your username
FAR_THRESH = 1.0# change to the FAR threshold you want to use

all: H1L1V1-PASTRO_MODEL-1238166018-15813982.h5

zl :
	mkdir $@ && cd $@ && rsync -vruz $(UNAME)@ligo02.gwave.ics.psu.edu:/ligo/home/ligo.org/gstlalcbc/observing/3/final/a/rerank/final_runs/final_rerank/H1L1V1-ALL_LLOID-*.sqlite . && rsync -vruz $(UNAME)@ligo02.gwave.ics.psu.edu:/ligo/home/ligo.org/gstlalcbc/observing/3/final/a/rerank/final_runs/final_rerank/post_marginalized_likelihood.xml.gz .

bbh:
	mkdir $@ && cd $@ && rsync -vruz $(UNAME)@submit.ligo.uwm.edu:/home/gstlalcbc.offline/observing/3/final/a/rates_and_pop_inj_runs/compute_far/injection-dbs/*bbh* .

nsbh:
	mkdir $@ && cd $@ && rsync -vruz $(UNAME)@submit.ligo.uwm.edu:/home/gstlalcbc.offline/observing/3/final/a/rates_and_pop_inj_runs/compute_far/injection-dbs/*nsbh* .

bns:
	mkdir $@ && cd $@ && rsync -vruz $(UNAME)@submit.ligo.uwm.edu:/home/gstlalcbc.offline/observing/3/final/a/rates_and_pop_inj_runs/compute_far/injection-dbs/*bns* .

bbh-inj-files:
	mkdir $@ && cd $@ && rsync -vruz $(UNAME)@submit.ligo.uwm.edu:/home/gstlalcbc.offline/observing/3/final/a/rates_and_pop_inj_runs/compute_far/wrong-inj-files/injection-dbs/*bbh* . && for f in *.xml.gz; do ligolw_sqlite -d $${f}.sqlite $${f}; done

nsbh-inj-files:
	mkdir $@ && cd $@ && rsync -vruz $(UNAME)@submit.ligo.uwm.edu:/home/gstlalcbc.offline/observing/3/final/a/rates_and_pop_inj_runs/compute_far/wrong-inj-files/injection-dbs/*nsbh* . && for f in *.xml.gz; do ligolw_sqlite -d $${f}.sqlite $${f}; done

bns-inj-files:
	mkdir $@ && cd $@ && rsync -vruz $(UNAME)@submit.ligo.uwm.edu:/home/gstlalcbc.offline/observing/3/final/a/rates_and_pop_inj_runs/compute_far/wrong-inj-files/injection-dbs/*bns* . && for f in *.xml.gz; do ligolw_sqlite -d $${f}.sqlite $${f}; done

H1L1V1-BNS_LR_DIST-1238166018-15813982.h5: bns
	$(SEXEC) sgnl-pastro-inj-dist --category-name BNS --output $@ bns/*.sqlite

H1L1V1-NSBH_LR_DIST-1238166018-15813982.h5: nsbh
	$(SEXEC) sgnl-pastro-inj-dist --category-name NSBH --output $@ nsbh/*.sqlite

H1L1V1-BBH_LR_DIST-1238166018-15813982.h5: bbh
	$(SEXEC) sgnl-pastro-inj-dist --category-name BBH --output $@ bbh/*.sqlite

H1L1V1-TERRESTRIAL_LR_DIST-1238166018-15813982.h5: zl
	$(SEXEC) sgnl-pastro-bg-dist --category-name Terrestrial --post-marg-file zl/post_marginalized_likelihood.xml.gz --output $@ zl/*.sqlite

lr_config.yml: zl
	$(SEXEC) sgnl-pastro-set-lthresh-from-bg --n-noise $(FAR_THRESH) --post-marg-file zl/post_marginalized_likelihood.xml.gz --output lr_config.yml

bns_coinc_config.yml: lr_config.yml
	$(SEXEC) sgnl-pastro-count-coinc --category BNS --config-file $^ --output $@ bns/*sqlite

bbh_coinc_config.yml: lr_config.yml
	$(SEXEC) sgnl-pastro-count-coinc --category BBH --config-file $^ --output $@ bbh/*sqlite

nsbh_coinc_config.yml: lr_config.yml
	$(SEXEC) sgnl-pastro-count-coinc --category NSBH --config-file $^ --output $@ nsbh/*sqlite

bns_VT_config.yml: bns_coinc_config.yml
	$(SEXEC) sgnl-pastro-calculate-vt --category BNS --config-file $^ --output $@ bns-inj-files/*xml.gz

bbh_VT_config.yml: bbh_coinc_config.yml
	$(SEXEC) sgnl-pastro-calculate-vt --category BBH --config-file $^ --output $@ bbh-inj-files/*xml.gz

nsbh_VT_config.yml: nsbh_coinc_config.yml
	$(SEXEC) sgnl-pastro-calculate-vt --category NSBH --config-file $^ --output $@ nsbh-inj-files/*xml.gz

config.yml: lr_config.yml bns_VT_config.yml bbh_VT_config.yml nsbh_VT_config.yml bns_coinc_config.yml bbh_coinc_config.yml nsbh_coinc_config.yml
	$(SEXEC) sgnl-pastro-prepare-config --category BNS --category BBH --category NSBH --merge-rate 660 --merge-rate 148 --merge-rate 49 --output $@ $^

H1L1V1-PASTRO_MODEL-1238166018-15813982.h5: H1L1V1-BNS_LR_DIST-1238166018-15813982.h5 H1L1V1-NSBH_LR_DIST-1238166018-15813982.h5 H1L1V1-BBH_LR_DIST-1238166018-15813982.h5 H1L1V1-TERRESTRIAL_LR_DIST-1238166018-15813982.h5 config.yml
	$(SEXEC) sgnl-pastro-build-model --n-noise $(FAR_THRESH) --category BNS --category BBH --category NSBH --config-file config.yml --output $@ *.h5

bns-test: H1L1V1-PASTRO_MODEL-1238166018-15813982.h5
	echo "counts above threshold from BNS injection sets"
	$(SEXEC) sgnl-pastro-test-model --config-file config.yml --model-file $< bns/*.sqlite

nsbh-test: H1L1V1-PASTRO_MODEL-1238166018-15813982.h5
	echo "counts above threshold from NSBH injection sets"
	$(SEXEC) sgnl-pastro-test-model --config-file config.yml --model-file $< nsbh/*.sqlite

bbh-test: H1L1V1-PASTRO_MODEL-1238166018-15813982.h5
	echo "counts above threshold from BBH injection sets"
	$(SEXEC) sgnl-pastro-test-model --config-file config.yml --model-file $< bbh/*.sqlite

noise-test: H1L1V1-PASTRO_MODEL-1238166018-15813982.h5
	echo "counts above threshold from ZL injection sets"
	$(SEXEC) sgnl-pastro-test-model --config-file config.yml --model-file $< zl/*.sqlite

clean:
	rm -rf *.h5
	rm -rf *.yml

