.PHONY: all

FIG_DIR ?= ./figures

-include config.mk

MAX_K ?= 3
CLK_DEV ?= 20
TRACE_N ?= 4096
TRACE_PRE ?= 500
NOISE_SIGMA ?= 1e4

BEAC_AMP ?= 1e3 0 0
BEAC_F ?= 51.53e-3
BEAC_DECAY ?= 0

PB_LOW ?= 0.03
PB_HIGH ?= 0.08

REF_ANTS ?=

N_MASK ?= 500

DATA_DIR ?= ./data
INPUT_DIR ?= ./ZH_airshower/
SEED ?= 12345

all: beacon clocks phases findks vary-fixes reconstruct

beacon: generate-beacon signal-to-noise
phases: beacon-phase clock-phase baseline-phase antenna-phase

######

generate-beacon:
	./aa_generate_beacon.py -N ${TRACE_N} -P ${TRACE_PRE} -n ${NOISE_SIGMA} -a ${BEAC_AMP} -f ${BEAC_F} -l ${PB_LOW} -u ${PB_HIGH} -d ${BEAC_DECAY} --data-dir ${DATA_DIR} --input-fname ${INPUT_DIR} | tee ${FIG_DIR}/aa.log
	./ab_modify_clocks.py 0 --no-save-clocks --data-dir ${DATA_DIR} | tee ${FIG_DIR}/ab.log

signal-to-noise:
	./ac_show_signal_to_noise.py -l ${PB_LOW} -u ${PB_HIGH} --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR}
	./view_beaconed_antenna.py 72 -p x -p y -p z -p n -p b --ft --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR}

#
new-clocks:
	./ab_modify_clocks.py ${CLK_DEV} --seed ${SEED} --gaussian --data-dir ${DATA_DIR}

clocks:
	./ab_modify_clocks.py ${CLK_DEV} --read-clocks-file --seed ${SEED} --gaussian --data-dir ${DATA_DIR}

reset-clocks:
	./ab_modify_clocks.py 0 --data-dir ${DATA_DIR}

#
beacon-phase:
	./ba_measure_beacon_phase.py --N-mask ${N_MASK} --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR}

clock-phase:
	./bb_measure_clock_phase.py --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR}

baseline-phase:
	./bc_baseline_phase_deltas.py ${REF_ANTS} --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR}

antenna-phase:
	./bd_antenna_phase_deltas.py --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR}

#
findks:
	./ca_period_from_shower.py --input-fname ${INPUT_DIR} --max-k ${MAX_K} --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR} -l ${PB_LOW} -u ${PB_HIGH}

rough-findks:
	./ca_period_from_shower.py --input-fname ${INPUT_DIR} --max-k ${MAX_K} --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR} -l ${PB_LOW} -u ${PB_HIGH} --quick_run

reportks:
	./cb_report_measured_antenna_time_offsets.py --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR}

#
vary-fixes:
	./dc_grid_power_time_fixes.py --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR} --input-fname ${INPUT_DIR}

#
reconstruct:
	./da_reconstruction.py --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR} --input-fname ${INPUT_DIR} --clock-repair full
	./db_longitudinal_figure.py --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR} --clock-repair full

dist-clean:
	rm -vf ${DATA_DIR}/
	rm -vf ${FIG_DIR}/