diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_ASD_residual.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_ASD_residual.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4b322c4b66264b4efbf8e8affdec9534a1c1fe9
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_ASD_residual.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_all_tf.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_all_tf.png
new file mode 100644
index 0000000000000000000000000000000000000000..da14d840784d84db0b9263c77b1109f6fa14a8c8
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_all_tf.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_all_tf_ratio.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_all_tf_ratio.png
new file mode 100644
index 0000000000000000000000000000000000000000..90f142cd5ebc7088a42936c0a81f1e686a67b06c
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_all_tf_ratio.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_all_tf_ratio_zoomed.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_all_tf_ratio_zoomed.png
new file mode 100644
index 0000000000000000000000000000000000000000..87701dea98a783132a0cf044398857183bd41fcc
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_all_tf_ratio_zoomed.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_calib_state_vector.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_calib_state_vector.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9becdb00eb63b7e67af4653aeeb708226af126f
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_calib_state_vector.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_F_CC.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_F_CC.png
new file mode 100644
index 0000000000000000000000000000000000000000..4566f43c8f5da964c21533fdaf3cceda3755e7bd
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_F_CC.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_F_S_SQUARED.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_F_S_SQUARED.png
new file mode 100644
index 0000000000000000000000000000000000000000..794da17775821bcc19b13155599620581dd6d276
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_F_S_SQUARED.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_C.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_C.png
new file mode 100644
index 0000000000000000000000000000000000000000..7150851608a8cf667050aa671e32cf4c28f18c5f
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_C.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..79d79d66ae4349b72bf6d6a5b5cd8eadaa7dc7be
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_PUM_REAL.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_PUM_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d67fbcb5dc070b262ba758ee7a40ec2a3beacf1
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_PUM_REAL.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..af2be4ea157269db36f114d76f058dcedda0e16c
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_TST_REAL.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_TST_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..52d652bb1628c045d6a5dd7794d282243d96d5f0
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_TST_REAL.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..003be8f5bde27bf7944096c611ab094d90cf80b6
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_UIM_REAL.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_UIM_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..1b027531be2a1c74f4b9c35073a20670a33060d7
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_KAPPA_UIM_REAL.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_SRC_Q_INVERSE.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_SRC_Q_INVERSE.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c8f3d04d9edf618d4d2a1dd4ac73f7e75d04448
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_plot_GDS-CALIB_SRC_Q_INVERSE.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_spectrum_comparison.png b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_spectrum_comparison.png
new file mode 100644
index 0000000000000000000000000000000000000000..f36b6558ff26dc1388376f02d79e154c6d2b2769
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_1237834383_1237834599_spectrum_comparison.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_hoft_GDS_frames.cache b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_hoft_GDS_frames.cache
new file mode 100644
index 0000000000000000000000000000000000000000..6ae76e312350dc66636bd2d56f891db60a47f648
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_hoft_GDS_frames.cache
@@ -0,0 +1,4 @@
+H H1_TEST 1237834368 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Frames/O3/H1/GDS/H-H1_TEST-1237834368-64.gwf
+H H1_TEST 1237834432 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Frames/O3/H1/GDS/H-H1_TEST-1237834432-64.gwf
+H H1_TEST 1237834496 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Frames/O3/H1/GDS/H-H1_TEST-1237834496-64.gwf
+H H1_TEST 1237834560 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Frames/O3/H1/GDS/H-H1_TEST-1237834560-64.gwf
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_raw_frames.cache b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_raw_frames.cache
new file mode 100644
index 0000000000000000000000000000000000000000..e4821abffc328fd8942d0c6881c87b3d58da6bf9
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/H1_raw_frames.cache
@@ -0,0 +1,9 @@
+H H1_R 1237834112 64 file://localhost/hdfs/frames/ER14/raw/H1/H-H1_R-12378/H-H1_R-1237834112-64.gwf
+H H1_R 1237834176 64 file://localhost/hdfs/frames/ER14/raw/H1/H-H1_R-12378/H-H1_R-1237834176-64.gwf
+H H1_R 1237834240 64 file://localhost/hdfs/frames/ER14/raw/H1/H-H1_R-12378/H-H1_R-1237834240-64.gwf
+H H1_R 1237834304 64 file://localhost/hdfs/frames/ER14/raw/H1/H-H1_R-12378/H-H1_R-1237834304-64.gwf
+H H1_R 1237834368 64 file://localhost/hdfs/frames/ER14/raw/H1/H-H1_R-12378/H-H1_R-1237834368-64.gwf
+H H1_R 1237834432 64 file://localhost/hdfs/frames/ER14/raw/H1/H-H1_R-12378/H-H1_R-1237834432-64.gwf
+H H1_R 1237834496 64 file://localhost/hdfs/frames/ER14/raw/H1/H-H1_R-12378/H-H1_R-1237834496-64.gwf
+H H1_R 1237834560 64 file://localhost/hdfs/frames/ER14/raw/H1/H-H1_R-12378/H-H1_R-1237834560-64.gwf
+H H1_R 1237834624 64 file://localhost/hdfs/frames/ER14/raw/H1/H-H1_R-12378/H-H1_R-1237834624-64.gwf
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.ASD_comparison b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.ASD_comparison
new file mode 100644
index 0000000000000000000000000000000000000000..e3d0cb79c8f55eabb046084fe9ae52ff9aba1e37
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.ASD_comparison
@@ -0,0 +1,8 @@
+all: ASD_comparison_plots
+
+ASD_comparison_plots: 
+	python ../../check_calibration/ASD_comparison_plots --ifo $(IFO)1 --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --raw-frame-cache $(IFO)1_raw_frames.cache --hoft-frame-cache $(IFO)1_hoft_GDS_frames.cache --calcs-channel-name CAL-DELTAL_EXTERNAL_DQ --analyze-additional-hoft-channel --additional-hoft-channel-name CAL-CFTD_DELTAL_EXTERNAL_DQ --additional-hoft-frame-cache $(IFO)1_raw_frames.cache
+
+clean: 
+	rm *.png 
+
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.all_tests b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.all_tests
new file mode 100644
index 0000000000000000000000000000000000000000..f05ad7970ac4dfd3d878264a65abbbb33b7d758d
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.all_tests
@@ -0,0 +1,104 @@
+# This makefile can be used to run all of the tests instead of running them one by one.
+
+# Indicate IFO and observing run
+# Note: Make sure that there is no space after the L or H! 
+# Another note: Livingston cluster cannot run this for IFO = H. Make sure that the cluster you're using has the raw frames you want. 
+export IFO=H
+# OBSRUN inidcates where to look for filters files (e.g. O1, O2, O3, ER10, ER13, ER14, PreER13, PreER14)
+#export OBSRUN=O2
+export OBSRUN=O3
+
+# Set start and stop times for a short lock stretch
+export SHORT_START=1237834163
+export SHORT_END=1237834663
+# Set start and stop times for a longer stretch that spans a lock-unlock stretch
+export LONG_START = 1228350334
+export LONG_END = 1228352985
+export SHMRUNTIME=400
+
+# How much time does the calibraiton need to settle at the start and end?
+PLOT_WARMUP_TIME = 220
+PLOT_COOLDOWN_TIME = 64
+export SHORT_PLOT_START=$(shell echo $(SHORT_START) + $(PLOT_WARMUP_TIME) | bc)
+export LONG_PLOT_START=$(shell echo $(LONG_START) + $(PLOT_WARMUP_TIME) | bc)
+export SHORT_PLOT_END=$(shell echo $(SHORT_END) - $(PLOT_COOLDOWN_TIME) | bc) 
+export LONG_PLOT_END=$(shell echo $(LONG_END) - $(PLOT_COOLDOWN_TIME) | bc) 
+
+# Point to all of the .ini files for different configurations
+#export GDSCONFIGS=H1GDS_1232821094_gstlal-calibration-1-2-7.ini
+export GDSCONFIGS=test.ini 
+#export GDSCONFIGSNOKAPPAS=H1GDS_1228712903_test_no_kappas.ini 
+
+# Needed for writing pipeline graphs
+export GST_DEBUG_DUMP_DOT_DIR=.
+
+all: ASD_comparison statevector timeserieskappas response_function
+
+# Create frame cache files for raw, C00, C01, and C02 frames
+$(IFO)1_raw_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_R -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C00_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C00 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C01_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C01 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C02_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C02 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+
+# Calibrate GDS testing data
+$(IFO)1_hoft_GDS_frames.cache: $(IFO)1_raw_frames.cache filters framesdir
+	gstlal_compute_strain --gps-start-time $(SHORT_START) --gps-end-time $(SHORT_END) --frame-cache $(IFO)1_raw_frames.cache --output-path Frames/$(OBSRUN)/$(IFO)1/GDS/ --frame-duration=64 --frames-per-file=1 --wings=0 --config-file $(GDSCONFIGS)
+	ls Frames/$(OBSRUN)/$(IFO)1/GDS/$(IFO)-$(IFO)1_TEST-*.gwf | lalapps_path2cache > $@
+
+# Calibrate GDS testing data with no kappas applied for response function test
+$(IFO)1_hoft_GDS_no_kappas_frames.cache: $(IFO)1_raw_frames.cache filters framesdir
+	#gstlal_compute_strain --gps-start-time $(SHORT_START) --gps-end-time $(SHORT_END) --frame-cache $(IFO)1_raw_frames.cache --output-path Frames/$(OBSRUN)/$(IFO)1/GDS/ --frame-duration=64 --frames-per-file=1 --wings=0 --config-file $(GDSCONFIGSNOKAPPAS)
+	#ls Frames/$(OBSRUN)/$(IFO)1/GDS/$(IFO)-$(IFO)1GDS_TEST_NOKAPPAS*.gwf | lalapps_path2cache > $@
+
+
+filters:
+	if [ -d Filters/$(OBSRUN)/GDSFilters ]; then \
+                svn up Filters/$(OBSRUN)/GDSFilters; \
+        else \
+                mkdir -p Filters/$(OBSRUN); \
+                cd Filters/$(OBSRUN); \
+                svn co https://svn.ligo.caltech.edu/svn/aligocalibration/trunk/Runs/$(OBSRUN)/GDSFilters; \
+        fi
+
+framesdir:
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/easy_raw
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/GDS
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/DCS
+
+
+response_function: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_raw_frames.cache
+	make -f Makefile.response_function
+
+ASD_comparison: $(IFO)1_raw_frames.cache $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.ASD_comparison
+
+statevector: $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.statevector
+
+timeserieskappas:  $(IFO)1_hoft_GDS_frames.cache 
+	make -f Makefile.timeserieskappas
+
+pcal_to_darm: $(IFO)1_raw_frames.cache $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.pcal_to_darm
+
+# FIXME: This is seg faulting for me right now
+calib_version_comparison: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_C02_frames.cache
+	make -f Makefile.calib_version_comparison
+
+# Need to clean up this clean command
+clean: 
+	rm -rf Frames/
+	rm -rf Filters/
+	rm *.p*
+	rm *.dot
+	rm *.txt
+
+
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.calib_version_comparison b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.calib_version_comparison
new file mode 100644
index 0000000000000000000000000000000000000000..43ee130b15d97ca52b649fc784cd17864b0c15b4
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.calib_version_comparison
@@ -0,0 +1,8 @@
+all: GDS_over_C02
+
+GDS_over_C02: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_C02_frames.cache
+	python ../../check_calibration/plot_transfer_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --numerator-frame-cache-list $(IFO)1_hoft_GDS_frames.cache --denominator-frame-cache $(IFO)1_C02_frames.cache --numerator-channel-list GDS-CALIB_STRAIN --denominator-channel-name DCS-CALIB_STRAIN_C02 --denominator-name 'C02' --numerator-name 'GDS_TEST --magnitude-min 0.7 --magnitude-max 1.3 --phase-min -20.0 --phase-max 20.0 --labels 'GDS Test / C02 Transfer Function'
+
+clean:
+	*.png
+
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.latency b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.latency
new file mode 100644
index 0000000000000000000000000000000000000000..03cbc521ef02be6cfe141b100531d599757df60a
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.latency
@@ -0,0 +1,8 @@
+all: latency_test
+
+latency_test: $(IFO)1_hoft_GDS_SHM_frames.cache
+	python ../../check_calibration/latency_plot.py --intime-file gstlal_compute_strain_timestamps_in.txt --outtime-file gstlal_compute_strain_timestamps_out.txt --plot-filename-prefix $(IFO)1GDS_latency --plot-title '$(IFO)1 Calibration Latency vs Time'
+
+clean:
+	rm *.png
+
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.lines_ratio b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.lines_ratio
new file mode 100644
index 0000000000000000000000000000000000000000..ae6edaaae15e37bb514de8ab2a4935a06bb3f277
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.lines_ratio
@@ -0,0 +1,8 @@
+all: lines_ratio_DCS
+
+lines_ratio_DCS: $(IFO)1_hoft_DCS_frames.cache
+	python ../../check_calibration/demod_ratio_timeseries.py --ifo $(IFO)1 --gps-end-time $(SHORT_PLOT_END) --gps-start-time $(SHORT_PLOT_START) --denominator-frame-cache $(IFO)1_hoft_DCS_frames.cache --numerator-frame-cache $(IFO)1_hoft_DCS_frames.cache --denominator-channel-name 'DCS-CALIB_STRAIN' --numerator-channel-name 'DCS-CALIB_STRAIN_CLEAN' --frequencies '35.9,36.7,331.9,1083.7;60,120,180' --magnitude-ranges '0.0,0.1;0.0,1.0' --phase-ranges '-180.0,180.0;-180.0,180.0' --plot-titles '$(IFO)1 Calibration Line Subtraction;$(IFO)1 Power Mains Line Subtraction'
+
+clean:
+	rm *.gwf *.cache *.png *.txt
+
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.noise_subtraction_tf b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.noise_subtraction_tf
new file mode 100644
index 0000000000000000000000000000000000000000..b26758c95a0e294128e3c878650640305306c9c0
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.noise_subtraction_tf
@@ -0,0 +1,8 @@
+all: noise_subtraction_tf_DCS
+
+noise_subtraction_tf_DCS: $(IFO)1_hoft_DCS_frames.cache
+	python ../../check_calibration/plot_transfer_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --numerator-frame-cache $(IFO)1_hoft_DCS_frames.cache --denominator-frame-cache $(IFO)1_hoft_DCS_frames.cache --numerator-channel-name DCS-CALIB_STRAIN_CLEAN --denominator-channel-name DCS-CALIB_STRAIN --magnitude-min 0.0 --magnitude-max 1.5 --phase-min -20.0 --phase-max 20.0 --plot-title 'Noise Subtraction Transfer Function'
+
+clean:
+	rm *.gwf *.cache *.png *.txt
+
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.response_function b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.response_function
new file mode 100644
index 0000000000000000000000000000000000000000..29f55149b7710377c17e5e9d209de8ddc3291115
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.response_function
@@ -0,0 +1,11 @@
+all: GDS_response_function_bode_plot
+
+FILTERS_FILE = /home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Filters/O3/GDSFilters/H1GDS_1237816794.npz
+
+GDS_response_function_bode_plot: 
+	python ../../check_calibration/response_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --dt 6.103515625e-05 --ifo $(IFO)1 --hoft-frames-cache $(IFO)1_hoft_GDS_frames.cache --raw-frames-cache $(IFO)1_raw_frames.cache --response-file $(FILTERS_FILE) 
+
+
+clean: 
+	rm *.pdf
+
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.statevector b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.statevector
new file mode 100644
index 0000000000000000000000000000000000000000..5733f7338eaed970ea286d6177244e6cf182f926
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.statevector
@@ -0,0 +1,9 @@
+all: calib_state_vector_plot
+
+calib_state_vector_plot: 
+	python ../../check_calibration/statevector_plot.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --hoft-frames-cache $(IFO)1_hoft_GDS_frames.cache
+
+
+clean: 
+	rm *.pdf
+
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.timeserieskappas b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.timeserieskappas
new file mode 100644
index 0000000000000000000000000000000000000000..a9f77efb0495937fe45920c6ef4a7cefa4efb12e
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Makefile.timeserieskappas
@@ -0,0 +1,31 @@
+CHANNEL1 = CALIB_KAPPA_C
+CHANNEL2 = CALIB_KAPPA_PUM_REAL
+CHANNEL3 = CALIB_KAPPA_TST_REAL
+CHANNEL4 = CALIB_F_CC
+CHANNEL5 = CALIB_KAPPA_PUM_IMAGINARY
+CHANNEL6 = CALIB_KAPPA_TST_IMAGINARY
+CHANNEL7 = CALIB_KAPPA_UIM_REAL
+CHANNEL8 = CALIB_KAPPA_UIM_IMAGINARY
+CHANNEL9 = CALIB_SRC_Q_INVERSE
+CHANNEL10 = CALIB_F_S_SQUARED
+
+FECHANNEL1 = CS_TDEP_KAPPA_C_OUTPUT
+FECHANNEL2 = CS_TDEP_KAPPA_PUM_REAL_OUTPUT
+FECHANNEL3 = CS_TDEP_KAPPA_TST_REAL_OUTPUT
+FECHANNEL4 = CS_TDEP_F_C_OUTPUT
+FECHANNEL5 = CS_TDEP_KAPPA_PUM_IMAG_OUTPUT
+FECHANNEL6 = CS_TDEP_KAPPA_TST_IMAG_OUTPUT
+FECHANNEL7 = CS_TDEP_KAPPA_UIM_REAL_OUTPUT
+FECHANNEL8 = CS_TDEP_KAPPA_UIM_IMAG_OUTPUT
+FECHANNEL9 = CS_TDEP_Q_S_OUTPUT
+FECHANNEL10 = CS_TDEP_F_S_OUTPUT
+
+all: GDS_Time_Series_of_Kappas
+
+GDS_Time_Series_of_Kappas:
+	python ../../check_calibration/timeserieskappas.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --channel-list 'GDS-$(CHANNEL1)','GDS-$(CHANNEL2)','GDS-$(CHANNEL3)','GDS-$(CHANNEL4)','GDS-$(CHANNEL5)','GDS-$(CHANNEL6)','GDS-$(CHANNEL7)','GDS-$(CHANNEL8)','GDS-$(CHANNEL9)','GDS-$(CHANNEL10)' --frame-cache $(IFO)1_hoft_GDS_frames.cache --ifo $(IFO)1 --front-end-channel-list 'CAL-$(FECHANNEL1)','CAL-$(FECHANNEL2)','CAL-$(FECHANNEL3)','CAL-$(FECHANNEL4)','CAL-$(FECHANNEL5)','CAL-$(FECHANNEL6)','CAL-$(FECHANNEL7)','CAL-$(FECHANNEL8)','CAL-$(FECHANNEL9)','CAL-$(FECHANNEL10)'
+
+
+clean:
+	rm *.png
+
diff --git a/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/test.ini b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/test.ini
new file mode 100644
index 0000000000000000000000000000000000000000..ac41c4ecf149a8c86a437b4e8c7e447ffd4a7847
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/test.ini
@@ -0,0 +1,408 @@
+[InputConfigurations]
+# Filters file containing calibration FIR filters
+FiltersFileName: /home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1237816794_filter_tests/H1/Filters/O3/GDSFilters/H1GDS_1237816794.npz
+# Data source should be set to frames or lvshm
+DataSource: frames
+FileChecksum: No
+# Right now, SkipBadFiles needs to be off when reading from frames
+SkipBadFiles: No
+############################################
+# If reading from frames use these options #
+############################################
+# None
+
+###################################################
+# If reading from shared memory use these options #
+###################################################
+SHMPartition: LHO_Online
+# Assumed duration of input frames in seconds
+InputFrameDuration: 1
+
+[OutputConfigurations]
+CompressionScheme: 6
+CompressionLevel: 3
+ChanPrefix: GDS-
+# Set to "None" if you do not want a channel suffix
+ChanSuffix: None
+# Data sink should be set to frames or lvshm
+DataSink: frames
+#################################################
+# If writing to shared memory use these options #
+#################################################
+OutputSHMPartition: LHO_hoft
+BufferMode: 2
+# Use this to approximate the frame size (in bytes) when writing to shared memory
+FrameSize: 405338
+NumBuffers: 10
+###############################################
+# If writing to frame files use these options #
+###############################################
+FrameType: H1_TEST
+
+[CalibrationConfigurations]
+IFO: H1
+# Set calibration mode to Full or Partial
+CalibrationMode: Partial
+ComputeCalibStateVector: Yes
+
+[DebuggingConfigurations]
+# If you want to write a pipeline graph, provide the graph name.  Otherwise, set name equal to None
+PipelineGraphFilename: None
+Verbose: Yes
+# Turn this on to write data presentation timestamps and real-time unix timestamps to file at the beginning and end of the pipeline, to measure latency
+TestLatency: No
+# Turn this on to compute transfer functions for the filters by comparing output data to input data
+TestFilters: No
+
+[TDCFConfigurations]
+#########################################################
+# Options related to time dependent correction  factors #
+#########################################################
+ComputeKappaTST: Yes
+ApplyKappaTST: No
+# Set this to have the \kappa_tst factors filter the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaTST: No
+
+ComputeKappaPU: No
+ApplyKappaPU: No
+# Set this to have the \kappa_pu factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors
+ApplyComplexKappaPU: No
+
+ComputeKappaPUM: Yes
+ApplyKappaPUM: No
+# Set this to have the \kappa_p factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaPUM: No
+
+ComputeKappaUIM: Yes
+ApplyKappaUIM: No
+# Set this to have the \kappa_u factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaUIM: No
+
+ComputeKappaC: Yes
+ApplyKappaC: No
+
+ComputeFcc: Yes
+ApplyFcc: No
+
+ComputeSRCQ: Yes
+ApplySRCQ: No
+
+ComputeFs: Yes
+ApplyFs: No
+
+###########################################
+# Options related to the coherence gating #
+###########################################
+UseCoherence: Yes
+CoherenceUncThreshold: 0.01
+# Amount of time used in front-end to compute coherence
+CoherenceTime: 130
+###################################################################
+# Options related to the computation configurations for the TDCFs #
+###################################################################
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+# Length in seconds of low-pass FIR filter used in demodulation of the calibration lines
+DemodulationFilterTime: 20
+# Time (in seconds) to smooth out \kappas with a median-like method
+MedianSmoothingTime: 128
+TDCFAveragingTime: 10
+#If set to yes, bad computed kappas will be replaced by the previous computed median in the running median array. Otherwise, they are replaced with the default value
+TDCFDefaultToMedian: Yes
+# If using X-end Pcal, we need a minus sign, so set this to -1.0
+PcalSign: 1.0
+##################################################
+# Options related to updating cavity pole filter #
+##################################################
+# Duration of the Fcc filter in the time domain in seconds
+FccFilterDuration: 0.01
+# Number of seconds to average Fcc values before creating a new Fcc filter
+FccAveragingTime: 60 
+# Number of samples to be used when tapering old filter and ramping in new filter
+FccFilterTaperLength: 32768
+############################
+# Nominal values for TDCFs #
+############################
+ExpectedKappaTSTReal: 1.0
+ExpectedKappaTSTImag: 0.0
+ExpectedKappaPUMReal: 1.0
+ExpectedKappaPUMImag: 0.0
+ExpectedKappaUIMReal: 1.0
+ExpectedKappaUIMImag: 0.0
+ExpectedKappaPUReal: 1.0
+ExpectedKappaPUImag: 0.0
+ExpectedKappaC: 1.0
+ExpectedFs_Squared: 3.748
+################################
+# Acceptable variance in TDCFs #
+################################
+KappaTSTRealVar: 0.2
+KappaTSTImagVar: 0.2
+KappaPURealVar: 0.2
+KappaPUImagVar: 0.2
+KappaPUMRealVar: 0.2
+KappaPUMImagVar: 0.2
+KappaUIMRealVar: 0.2
+KappaUIMImagVar: 0.2
+KappaCVar: 0.2
+FccVar: 50.0
+FsVar: 5.0
+SRCQInvMin: 0.0
+SRCQInvMax: 0.5
+#######################
+# EPICS records input #
+#######################
+# Set to Yes if EPICS records for TDCF computations should be read from filters file.  If set to No, they will be read from frames
+FactorsFromFiltersFile: No
+##############################################################################################
+# Updating Sensing and Actuation filters with all frequency-dependent corrections parameters #
+##############################################################################################
+# Length of time (in seconds) between when inverse-sensing FIR filter is updated
+SensingFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the sensing function are averaged before updating the filter
+SensingFilterAveragingTime: 1
+# Number of samples to be used when tapering old inverse sensing filter and ramping in new filter
+SensingFilterTaperLength: 32768
+# Length of time (in seconds) between when the actuation FIR filters are updated
+ActuationFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the actuation function are averaged before updating the filter
+ActuationFilterAveragingTime: 1
+# Number of samples to be used when tapering old actuation filters and ramping in new filters
+ActuationFilterTaperLength: 32768
+
+[ChannelNames]
+#############################
+# Calibration Channel Names #
+#############################
+DARMCtrlChannel: CAL-DARM_CTRL_DBL_DQ
+DARMErrChannel: CAL-DARM_ERR_DBL_DQ
+DeltaLTSTChannel: CAL-DELTAL_CTRL_TST_DBL_DQ
+DeltaLPUMChannel: CAL-DELTAL_CTRL_PUM_DBL_DQ
+DeltaLUIMChannel: CAL-DELTAL_CTRL_UIM_DBL_DQ
+DeltaLResChannel: CAL-DELTAL_RESIDUAL_DBL_DQ
+####################################
+# Data Quality Vector Channel Name #
+####################################
+LowNoiseStateChannel: GRD-IFO_READY
+HWInjChannel: CAL-INJ_STATUS_OUT_DQ
+ObsIntentChannel: GRD-IFO_INTENT
+FilterClockChannelList: GRD-ISC_LOCK_OK
+##################################
+# Calibration Line Channel Names #
+##################################
+DARMExcChannel: CAL-CS_LINE_SUM_DQ
+TSTExcChannel: SUS-ETMX_L3_CAL_LINE_OUT_DQ
+PUMExcChannel: SUS-ETMX_L2_CAL_LINE_OUT_DQ 
+UIMExcChannel: SUS-ETMX_L1_CAL_LINE_OUT_DQ
+PCALChannel: CAL-PCALY_RX_PD_OUT_DQ
+############################################
+# Calibration Line Frequency Channel Names #
+############################################
+DARMExcLineFreqChannel: CAL-CS_TDEP_DARM_LINE1_COMPARISON_OSC_FREQ
+TSTExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE3_COMPARISON_OSC_FREQ
+PUMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE2_COMPARISON_OSC_FREQ
+UIMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE1_COMPARISON_OSC_FREQ
+PCALLine1FreqChannel: CAL-CS_TDEP_PCAL_LINE1_COMPARISON_OSC_FREQ
+PcalLine1CorrRealChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_REAL
+PcalLine1CorrImagChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_IMAG
+PCALLine2FreqChannel: CAL-CS_TDEP_PCAL_LINE2_COMPARISON_OSC_FREQ
+PcalLine2CorrRealChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_REAL
+PcalLine2CorrImagChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_IMAG
+PCALLine3FreqChannel: CAL-CS_TDEP_PCAL_LINE3_COMPARISON_OSC_FREQ
+PcalLine3CorrRealChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_REAL
+PcalLine3CorrImagChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_IMAG
+PCALLine4FreqChannel: CAL-CS_TDEP_PCAL_LINE4_COMPARISON_OSC_FREQ
+PcalLine4CorrRealChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_REAL
+PcalLine4CorrImagChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_IMAG
+
+#######################################
+# Coherence Uncertainty Channel Names #
+#######################################
+CohUncSusLine1Channel: CAL-CS_TDEP_SUS_LINE1_UNCERTAINTY
+CohUncSusLine2Channel: CAL-CS_TDEP_SUS_LINE2_UNCERTAINTY
+CohUncSusLine3Channel: CAL-CS_TDEP_SUS_LINE3_UNCERTAINTY
+CohUncPcalyLine1Channel: CAL-CS_TDEP_PCAL_LINE1_UNCERTAINTY
+CohUncPcalyLine2Channel: CAL-CS_TDEP_PCAL_LINE2_UNCERTAINTY
+CohUncPcalyLine4Channel: CAL-CS_TDEP_PCAL_LINE4_UNCERTAINTY
+CohUncDARMLine1Channel: CAL-CS_TDEP_DARM_LINE1_UNCERTAINTY
+###################################
+# Noise Subtraction Channel Names #
+###################################
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract lines from h(t)
+# Semicolons separate channels to be handled separately and commas separate channels to be handled together.
+#Set to None if no line witness channels are to be used
+LineWitnessChannelList: SUS-ETMX_L1_CAL_LINE_OUT_DQ;SUS-ETMX_L2_CAL_LINE_OUT_DQ;SUS-ETMX_L3_CAL_LINE_OUT_DQ;CAL-PCALY_TX_PD_OUT_DQ;PEM-EY_MAINSMON_EBAY_1_DQ
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract noise from h(t)
+# Set to None if no witness channels are to be used
+#WitnessChannelList: PSL-ISS_SECONDLOOP_OUTPUT_DQ,ASC-DHARD_P_OUT_DQ,ASC-DHARD_Y_OUT_DQ,ASC-CHARD_P_OUT_DQ,ASC-CHARD_Y_OUT_DQ,LSC-SRCL_IN1_DQ,LSC-MICH_IN1_DQ,LSC-PRCL_IN1_DQ
+WitnessChannelList: None
+# What channel should we use to gate the noise subtraction and 60-Hz line subtraction
+NoiseSubGateChannel: GRD-ISC_LOCK_OK
+###############################
+# EPICS Records Channel Names #
+###############################
+EP1RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_REAL
+EP1ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_IMAG
+EP2RealChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_REAL
+EP2ImagChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_IMAG
+EP3RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_REAL
+EP3ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_IMAG
+EP4RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_REAL
+EP4ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_IMAG
+EP5RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_REAL
+EP5ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_IMAG
+EP6RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_REAL
+EP6ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_IMAG
+EP7RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_REAL
+EP7ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_IMAG
+EP8RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_REAL
+EP8Imagchannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_IMAG
+EP9RealChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_REAL
+EP9ImagChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_IMAG
+EP10RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_REAL
+EP10ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_IMAG
+EP11RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_REAL
+EP11ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_IMAG
+EP12RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_REAL
+EP12ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_IMAG
+EP13RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_REAL
+EP13ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_IMAG
+EP14RealChannel: CAL-CS_TDEP_PCALY_LINE4_REF_A_USUM_REAL
+EP14ImagChannel: CAL-CS_TDEP_PCALY_LINE4_REF_A_USUM_IMAG
+EP15RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_REAL
+EP15Imagchannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_IMAG
+EP16RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_REAL
+EP16ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_IMAG
+EP17RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_REAL
+EP17ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_IMAG
+EP18RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_REAL
+EP18ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_IMAG
+EP19RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_REAL
+EP19ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_IMAG
+EP20RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_REAL
+EP20ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_IMAG
+EP21RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_REAL
+EP21ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_IMAG
+EP22RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_REAL
+EP22ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_IMAG
+EP23RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_REAL
+EP23ImagChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_IMAG
+EP24RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_REAL
+EP24ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_IMAG
+
+[SampleRates]
+# Sample rate at which to compute h(t)
+HoftSR: 16384
+# Sample rate at which to compute CALIB_STATE_VECTOR
+CalibStateSR: 16
+# Sample rate of control channel
+# Should be 16384 if using DARM_CTRL and 4096 if using DELTAL_CTRL 
+CtrlSR: 4096
+# Sample rate of low noise state channel
+LowNoiseSR: 16
+# Sample rate of HW injection channel
+HWInjSR: 16384
+# Sample rate of observation intent channel
+ObsIntentSR: 16
+# Sample rate list for channels being used to trigger filter settling clock
+FilterClockSRList: 16
+# Sample rate of TST excitation channel
+TSTExcSR: 512
+# Sample rate of PUM excitation channel
+PUMExcSR: 512
+# Sample rate of UIM excitation channel
+UIMExcSR: 512
+# Sample rate of coherence channels
+CohSR: 16
+# Sample rate for the EPICS reference channels
+EPICSRefSR: 16
+# Sample rates at which transfer functions will be computed and witness channels will be filtered, given as a semicolon-separated list, e.g., 2048;2048;512;2048. This must be given if WitnessChannelList is not None, and it must be the same length.
+WitnessChannelSR: 512
+# Sample rates at which to compute and record TDCFs
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+
+[Bitmasks]
+ObsReadyBitmask: 1
+ObsIntentBitmask: 1
+CBCHWInjOffBitmask: 9
+BurstHWInjOffBitmask: 17
+DetCharHWInjOffBitmask: 33
+StochHWInjOffBitmask: 65
+NoiseSubGateBitmask: 1
+FilterClockBitmaskList: 1
+
+[PipelineConfigurations]
+BufferLength: 1.0
+FrequencyDomainFiltering: No
+Dewhitening: No
+# Latency of all filtering/averaging/median processes (other than calibration model filters) as a fraction of filter length. Value should be set between 0.0 and 1.0.
+FilterLatency: 0.0
+
+[DataCleaningConfigurations]
+###################################################
+# Options for turning on and off line subtraction #
+###################################################
+# Remove the DC component from the residual and control channels before filtering
+RemoveDC: No
+# Subtract the calibration lines from the h(t) spectrum
+RemoveCalLines: No
+###############################################################
+# Options for running line subtraction using witness channels #
+###############################################################
+# Semicolon-separated list of comma-separated lists of frequencies (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqs: 15.1;16.7;35.9;36.7,331.9,1083.7;60.0,120.0,180.0,240.0,300.0
+# Time over which to take a median of transfer functions
+LineWitnessTFMedianTime: 128
+# Time over which to average transfer functions
+LineWitnessTFAveragingTime: 1
+# Semicolon-separated list of typical frequency fluctuations in lines being subtracted (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqVars: 0.0;0.0;0.0;0.0;0.02
+#######################################
+# Options for broadband noise removal #
+#######################################
+# The length in seconds of the fast Fourier transforms used to compute transfer functions between witness channels and h(t). The fft's are windowed with Hann windows and overlapped.
+WitnessChannelFFTTime: 4.0
+# The number of ffts to take before averaging the witness -> h(t) transfer functions calculation. The average is taken after the ratio h(f) / witness(f).
+NumWitnessFFTs: 1000
+# Sets the minimum number of FFTs necessary to produce the first transfer functions and clean data after data flow starts.
+MinWitnessFFTs: 300
+# The length in seconds of the filters applied to the witness channels before subtracting from h(t)
+WitnessFIRLength: 1.0
+# The frequency resolution of the filters applied to the witness channels before subtracting from h(t). It can be advantageous to lower the frequency resolution in order to average over excess noise.
+WitnessFrequencyResolution: 0.5
+# List of minima and maxima of frequency ranges where the Fourier transform of h(t) will be replaced by a straight line in the calculation of transfer functions between witness channels and h(t) for noise subtraction. Semicolons separate lists for different sets of witness channels. If no notches are desired, use zeros, e.g., \'0;0;0\'. Here is an example using the expected format: \'495.0,515.0,985.0,1015.0;59,60,119,121;0\' This can be useful, e.g., if there are loud lines in the signal that are not present in the witness channels.
+WitnessNotchFrequencies: 0
+# Cutoff frequencies for high-pass filters for witness channels
+WitnessHighPasses: 10
+# The amount of time after transfer functions between witness channels and h(t) are finished to begin the calculation of the next set of transfer functions
+WitnessTFUpdateTime: 4
+# If lock-loss lasts at least this many seconds, transfer functions will revert to those computed at the beginning of a lock stretch. Set to zero to disbale.
+CriticalLockLossTime: 1800
+# The amount of time to use to taper in newly computed FIR filters for witness channels being used for noise subtraction.
+WitnessFilterTaperTime: 2
+# If writing transfer functions to file, this sets the name. If transfer functions should not be written to file, this should be set to None
+WitnessTFFilename: None
+# Should the transfer function calculation use a median? If not, an average (mean) is used.
+WitnessTFUseMedian: Yes
+# Should transfer functions be computed on a fixed schedule, so that the output does not depend on start time?  This is useful for running jobs in parallel.  Otherwise, they are computed asap.
+WitnessTFParallelMode: No
+# When using parallel mode, how many seconds later should we shift the time when transfer functions start being computed from a multiple of the cycle period?
+WitnessTFTimeShift: 360
+# To write only one strain channel, and pick whichever is less noisy, set this option to 'Yes'. This way, if a problem arises with the noise subtraction it will not affect the output strain channel.
+PickCleanestStrainChannel: No
+# A half Hann window is used for transitions between cleaned and uncleaned data.  This is the length of that window in seconds.
+StrainChannelTransitionTime: 10.0
+###############################
+# Options for HOFT_CLEAN bits #
+###############################
+# The amount of data from h(t) and cleaned h(t) that is used to compute and compare the rms. This comparison between cleaned and uncleaned h(t) determines whether the HOFT_CLEAN bits of the calibration state vector are on or off.
+CleaningCheckRMSTime: 30.0
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMin: 15
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMax: 20
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMin: 20
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMax: 200
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/.Makefile.all_tests.swp b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/.Makefile.all_tests.swp
new file mode 100644
index 0000000000000000000000000000000000000000..264053cb19c083a3a810b7db60f08a275d62b237
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/.Makefile.all_tests.swp differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1GDS_1238177020.npz b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1GDS_1238177020.npz
new file mode 100644
index 0000000000000000000000000000000000000000..2761004954db14571dde15747e3b54df2159b09b
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1GDS_1238177020.npz differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_ASD_residual.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_ASD_residual.png
new file mode 100644
index 0000000000000000000000000000000000000000..97f1d1d4fc36a15107bc06cd30627376e07ada92
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_ASD_residual.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_all_tf.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_all_tf.png
new file mode 100644
index 0000000000000000000000000000000000000000..7912e5422fd92aa2eb434e823f842f12d6415748
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_all_tf.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_all_tf_ratio.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_all_tf_ratio.png
new file mode 100644
index 0000000000000000000000000000000000000000..12bef25e708c1d7fb5f3616a0555f01ae57773ef
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_all_tf_ratio.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_all_tf_ratio_zoomed.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_all_tf_ratio_zoomed.png
new file mode 100644
index 0000000000000000000000000000000000000000..47164cb2eba61a7344ebdde2f7427c84654184f5
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_all_tf_ratio_zoomed.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_calib_state_vector.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_calib_state_vector.png
new file mode 100644
index 0000000000000000000000000000000000000000..3d4baefe1cf97708473450ac4b7b48aef09e13c3
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_calib_state_vector.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_F_CC.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_F_CC.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2124f6355355775a7ef1ecda4fae66d7ea5a612
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_F_CC.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_F_S_SQUARED.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_F_S_SQUARED.png
new file mode 100644
index 0000000000000000000000000000000000000000..7282e9b8d25657561bc863b5c0483d1551840436
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_F_S_SQUARED.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_C.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_C.png
new file mode 100644
index 0000000000000000000000000000000000000000..6d4b13fc15db901b745bbc149e0adf803e067ef8
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_C.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..797689ed54b1cecf1ac92342ce5bcb0c4793e9d0
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_PUM_REAL.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_PUM_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..32d7a0149224bbba4291bb22394040c66fa2b751
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_PUM_REAL.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..f85d27f54c952a1a4e124e92bb4a3f6f316b53a4
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_TST_REAL.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_TST_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..40b61e8c11c2a9b95989c9a2374b342601d98bc1
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_TST_REAL.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..e5f08b821053038298adf71ea7295c7aaa0bb2d1
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_UIM_REAL.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_UIM_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..7891cdd4a8f29d85d75e142e376800e48c9bcb01
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_KAPPA_UIM_REAL.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_SRC_Q_INVERSE.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_SRC_Q_INVERSE.png
new file mode 100644
index 0000000000000000000000000000000000000000..abdfebd783aca61fc24aeca1109947bdfe271a64
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_plot_GDS-CALIB_SRC_Q_INVERSE.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_spectrum_comparison.png b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_spectrum_comparison.png
new file mode 100644
index 0000000000000000000000000000000000000000..a47d39b2484b237ff93f8d330de7970ea335cbf0
Binary files /dev/null and b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_1238246281_1238246497_spectrum_comparison.png differ
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_hoft_GDS_frames.cache b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_hoft_GDS_frames.cache
new file mode 100644
index 0000000000000000000000000000000000000000..d45a3df52adc3470bd2dbc9eeac954c8f77720cc
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_hoft_GDS_frames.cache
@@ -0,0 +1,4 @@
+H H1_TEST 1238246272 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Frames/O3/H1/GDS/H-H1_TEST-1238246272-64.gwf
+H H1_TEST 1238246336 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Frames/O3/H1/GDS/H-H1_TEST-1238246336-64.gwf
+H H1_TEST 1238246400 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Frames/O3/H1/GDS/H-H1_TEST-1238246400-64.gwf
+H H1_TEST 1238246464 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Frames/O3/H1/GDS/H-H1_TEST-1238246464-64.gwf
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_raw_frames.cache b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_raw_frames.cache
new file mode 100644
index 0000000000000000000000000000000000000000..08e0ef01e0411d0ff803ecdc745d9da673d2a44b
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1_raw_frames.cache
@@ -0,0 +1,9 @@
+H H1_R 1238246016 64 file://localhost/hdfs/frames/O3/raw/H1/H-H1_R-12382/H-H1_R-1238246016-64.gwf
+H H1_R 1238246080 64 file://localhost/hdfs/frames/O3/raw/H1/H-H1_R-12382/H-H1_R-1238246080-64.gwf
+H H1_R 1238246144 64 file://localhost/hdfs/frames/O3/raw/H1/H-H1_R-12382/H-H1_R-1238246144-64.gwf
+H H1_R 1238246208 64 file://localhost/hdfs/frames/O3/raw/H1/H-H1_R-12382/H-H1_R-1238246208-64.gwf
+H H1_R 1238246272 64 file://localhost/hdfs/frames/O3/raw/H1/H-H1_R-12382/H-H1_R-1238246272-64.gwf
+H H1_R 1238246336 64 file://localhost/hdfs/frames/O3/raw/H1/H-H1_R-12382/H-H1_R-1238246336-64.gwf
+H H1_R 1238246400 64 file://localhost/hdfs/frames/O3/raw/H1/H-H1_R-12382/H-H1_R-1238246400-64.gwf
+H H1_R 1238246464 64 file://localhost/hdfs/frames/O3/raw/H1/H-H1_R-12382/H-H1_R-1238246464-64.gwf
+H H1_R 1238246528 64 file://localhost/hdfs/frames/O3/raw/H1/H-H1_R-12382/H-H1_R-1238246528-64.gwf
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.ASD_comparison b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.ASD_comparison
new file mode 100644
index 0000000000000000000000000000000000000000..ddcbb5ae28878929948ce5d9439d058799c61aee
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.ASD_comparison
@@ -0,0 +1,8 @@
+all: ASD_comparison_plots
+
+ASD_comparison_plots: 
+	python ../../check_calibration/ASD_comparison_plots --ifo $(IFO)1 --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --raw-frame-cache $(IFO)1_raw_frames.cache --hoft-frame-cache $(IFO)1_hoft_GDS_frames.cache --calcs-channel-name CAL-DELTAL_EXTERNAL_DQ --additional-hoft-frame-cache $(IFO)1_raw_frames.cache
+
+clean: 
+	rm *.png 
+
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.all_tests b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.all_tests
new file mode 100644
index 0000000000000000000000000000000000000000..ce4353412a858edc4d369d79862f515ddde6bd6a
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.all_tests
@@ -0,0 +1,104 @@
+# This makefile can be used to run all of the tests instead of running them one by one.
+
+# Indicate IFO and observing run
+# Note: Make sure that there is no space after the L or H! 
+# Another note: Livingston cluster cannot run this for IFO = H. Make sure that the cluster you're using has the raw frames you want. 
+export IFO=H
+# OBSRUN inidcates where to look for filters files (e.g. O1, O2, O3, ER10, ER13, ER14, PreER13, PreER14)
+#export OBSRUN=O2
+export OBSRUN=O3
+
+# Set start and stop times for a short lock stretch
+export SHORT_START=1238246061
+export SHORT_END=1238246561
+# Set start and stop times for a longer stretch that spans a lock-unlock stretch
+export LONG_START = 1228350334
+export LONG_END = 1228352985
+export SHMRUNTIME=400
+
+# How much time does the calibraiton need to settle at the start and end?
+PLOT_WARMUP_TIME = 220
+PLOT_COOLDOWN_TIME = 64
+export SHORT_PLOT_START=$(shell echo $(SHORT_START) + $(PLOT_WARMUP_TIME) | bc)
+export LONG_PLOT_START=$(shell echo $(LONG_START) + $(PLOT_WARMUP_TIME) | bc)
+export SHORT_PLOT_END=$(shell echo $(SHORT_END) - $(PLOT_COOLDOWN_TIME) | bc) 
+export LONG_PLOT_END=$(shell echo $(LONG_END) - $(PLOT_COOLDOWN_TIME) | bc) 
+
+# Point to all of the .ini files for different configurations
+#export GDSCONFIGS=H1GDS_1232821094_gstlal-calibration-1-2-7.ini
+export GDSCONFIGS=test.ini 
+export GDSCONFIGSNOKAPPAS=test_nokappas.ini 
+
+# Needed for writing pipeline graphs
+export GST_DEBUG_DUMP_DOT_DIR=.
+
+all: ASD_comparison statevector timeserieskappas response_function pcal2darm
+
+# Create frame cache files for raw, C00, C01, and C02 frames
+$(IFO)1_raw_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_R -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C00_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C00 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C01_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C01 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C02_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C02 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+
+# Calibrate GDS testing data
+$(IFO)1_hoft_GDS_frames.cache: $(IFO)1_raw_frames.cache filters framesdir
+	gstlal_compute_strain --gps-start-time $(SHORT_START) --gps-end-time $(SHORT_END) --frame-cache $(IFO)1_raw_frames.cache --output-path Frames/$(OBSRUN)/$(IFO)1/GDS/ --frame-duration=64 --frames-per-file=1 --wings=0 --config-file $(GDSCONFIGS)
+	ls Frames/$(OBSRUN)/$(IFO)1/GDS/$(IFO)-$(IFO)1_TEST-*.gwf | lalapps_path2cache > $@
+
+# Calibrate GDS testing data with no kappas applied for response function test
+$(IFO)1_hoft_GDS_no_kappas_frames.cache: $(IFO)1_raw_frames.cache filters framesdir
+	#gstlal_compute_strain --gps-start-time $(SHORT_START) --gps-end-time $(SHORT_END) --frame-cache $(IFO)1_raw_frames.cache --output-path Frames/$(OBSRUN)/$(IFO)1/GDS/ --frame-duration=64 --frames-per-file=1 --wings=0 --config-file $(GDSCONFIGSNOKAPPAS)
+	ls Frames/$(OBSRUN)/$(IFO)1/GDS/$(IFO)-$(IFO)1_TEST_NOKAPPAS*.gwf | lalapps_path2cache > $@
+
+
+filters:
+	if [ -d Filters/$(OBSRUN)/GDSFilters ]; then \
+                svn up Filters/$(OBSRUN)/GDSFilters; \
+        else \
+                mkdir -p Filters/$(OBSRUN); \
+                cd Filters/$(OBSRUN); \
+                svn co https://svn.ligo.caltech.edu/svn/aligocalibration/trunk/Runs/$(OBSRUN)/GDSFilters; \
+        fi
+
+framesdir:
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/easy_raw
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/GDS
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/DCS
+
+
+response_function: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_raw_frames.cache
+	make -f Makefile.response_function
+
+ASD_comparison: $(IFO)1_raw_frames.cache $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.ASD_comparison
+
+statevector: $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.statevector
+
+timeserieskappas:  $(IFO)1_hoft_GDS_frames.cache 
+	make -f Makefile.timeserieskappas
+
+pcal2darm: $(IFO)1_raw_frames.cache $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.pcal2darm
+
+# FIXME: This is seg faulting for me right now
+calib_version_comparison: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_C02_frames.cache
+	make -f Makefile.calib_version_comparison
+
+# Need to clean up this clean command
+clean: 
+	rm -rf Frames/
+	rm -rf Filters/
+	rm *.p*
+	rm *.dot
+	rm *.txt
+
+
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.calib_version_comparison b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.calib_version_comparison
new file mode 100644
index 0000000000000000000000000000000000000000..43ee130b15d97ca52b649fc784cd17864b0c15b4
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.calib_version_comparison
@@ -0,0 +1,8 @@
+all: GDS_over_C02
+
+GDS_over_C02: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_C02_frames.cache
+	python ../../check_calibration/plot_transfer_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --numerator-frame-cache-list $(IFO)1_hoft_GDS_frames.cache --denominator-frame-cache $(IFO)1_C02_frames.cache --numerator-channel-list GDS-CALIB_STRAIN --denominator-channel-name DCS-CALIB_STRAIN_C02 --denominator-name 'C02' --numerator-name 'GDS_TEST --magnitude-min 0.7 --magnitude-max 1.3 --phase-min -20.0 --phase-max 20.0 --labels 'GDS Test / C02 Transfer Function'
+
+clean:
+	*.png
+
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.latency b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.latency
new file mode 100644
index 0000000000000000000000000000000000000000..03cbc521ef02be6cfe141b100531d599757df60a
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.latency
@@ -0,0 +1,8 @@
+all: latency_test
+
+latency_test: $(IFO)1_hoft_GDS_SHM_frames.cache
+	python ../../check_calibration/latency_plot.py --intime-file gstlal_compute_strain_timestamps_in.txt --outtime-file gstlal_compute_strain_timestamps_out.txt --plot-filename-prefix $(IFO)1GDS_latency --plot-title '$(IFO)1 Calibration Latency vs Time'
+
+clean:
+	rm *.png
+
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.lines_ratio b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.lines_ratio
new file mode 100644
index 0000000000000000000000000000000000000000..4a9b75f269468f2b950be2c8d383ca41fd20e1b1
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.lines_ratio
@@ -0,0 +1,8 @@
+all: lines_ratio_GDS
+
+lines_ratio_GDS: $(IFO)1_hoft_GDS_frames.cache
+	python ../../check_calibration/demod_ratio_timeseries.py --ifo $(IFO)1 --gps-end-time $(SHORT_PLOT_END) --gps-start-time $(SHORT_PLOT_START) --denominator-frame-cache $(IFO)1_hoft_GDS_frames.cache --numerator-frame-cache $(IFO)1_hoft_GDS_frames.cache --denominator-channel-name 'GDS-CALIB_STRAIN' --numerator-channel-name 'DCS-CALIB_STRAIN_CLEAN' --frequencies '35.9,36.7,331.9,1083.7;60,120,180' --magnitude-ranges '0.0,0.1;0.0,1.0' --phase-ranges '-180.0,180.0;-180.0,180.0' --plot-titles '$(IFO)1 Calibration Line Subtraction;$(IFO)1 Power Mains Line Subtraction'
+
+clean:
+	rm *.gwf *.cache *.png *.txt
+
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.noise_subtraction_tf b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.noise_subtraction_tf
new file mode 100644
index 0000000000000000000000000000000000000000..b26758c95a0e294128e3c878650640305306c9c0
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.noise_subtraction_tf
@@ -0,0 +1,8 @@
+all: noise_subtraction_tf_DCS
+
+noise_subtraction_tf_DCS: $(IFO)1_hoft_DCS_frames.cache
+	python ../../check_calibration/plot_transfer_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --numerator-frame-cache $(IFO)1_hoft_DCS_frames.cache --denominator-frame-cache $(IFO)1_hoft_DCS_frames.cache --numerator-channel-name DCS-CALIB_STRAIN_CLEAN --denominator-channel-name DCS-CALIB_STRAIN --magnitude-min 0.0 --magnitude-max 1.5 --phase-min -20.0 --phase-max 20.0 --plot-title 'Noise Subtraction Transfer Function'
+
+clean:
+	rm *.gwf *.cache *.png *.txt
+
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.response_function b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.response_function
new file mode 100644
index 0000000000000000000000000000000000000000..67818b901e68af8c059bd267c9064b1ae20816a0
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.response_function
@@ -0,0 +1,12 @@
+all: GDS_response_function_bode_plot
+
+#FILTERS_FILE = /home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Filters/O3/GDSFilters/H1GDS_1238177020.npz
+FILTERS_FILE = /home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1GDS_1238177020.npz
+
+GDS_response_function_bode_plot: 
+	python ../../check_calibration/response_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --dt 6.103515625e-05 --ifo $(IFO)1 --hoft-frames-cache $(IFO)1_hoft_GDS_frames.cache --raw-frames-cache $(IFO)1_raw_frames.cache --response-file $(FILTERS_FILE) 
+
+
+clean: 
+	rm *.pdf
+
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.statevector b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.statevector
new file mode 100644
index 0000000000000000000000000000000000000000..5733f7338eaed970ea286d6177244e6cf182f926
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.statevector
@@ -0,0 +1,9 @@
+all: calib_state_vector_plot
+
+calib_state_vector_plot: 
+	python ../../check_calibration/statevector_plot.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --hoft-frames-cache $(IFO)1_hoft_GDS_frames.cache
+
+
+clean: 
+	rm *.pdf
+
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.timeserieskappas b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.timeserieskappas
new file mode 100644
index 0000000000000000000000000000000000000000..a9f77efb0495937fe45920c6ef4a7cefa4efb12e
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Makefile.timeserieskappas
@@ -0,0 +1,31 @@
+CHANNEL1 = CALIB_KAPPA_C
+CHANNEL2 = CALIB_KAPPA_PUM_REAL
+CHANNEL3 = CALIB_KAPPA_TST_REAL
+CHANNEL4 = CALIB_F_CC
+CHANNEL5 = CALIB_KAPPA_PUM_IMAGINARY
+CHANNEL6 = CALIB_KAPPA_TST_IMAGINARY
+CHANNEL7 = CALIB_KAPPA_UIM_REAL
+CHANNEL8 = CALIB_KAPPA_UIM_IMAGINARY
+CHANNEL9 = CALIB_SRC_Q_INVERSE
+CHANNEL10 = CALIB_F_S_SQUARED
+
+FECHANNEL1 = CS_TDEP_KAPPA_C_OUTPUT
+FECHANNEL2 = CS_TDEP_KAPPA_PUM_REAL_OUTPUT
+FECHANNEL3 = CS_TDEP_KAPPA_TST_REAL_OUTPUT
+FECHANNEL4 = CS_TDEP_F_C_OUTPUT
+FECHANNEL5 = CS_TDEP_KAPPA_PUM_IMAG_OUTPUT
+FECHANNEL6 = CS_TDEP_KAPPA_TST_IMAG_OUTPUT
+FECHANNEL7 = CS_TDEP_KAPPA_UIM_REAL_OUTPUT
+FECHANNEL8 = CS_TDEP_KAPPA_UIM_IMAG_OUTPUT
+FECHANNEL9 = CS_TDEP_Q_S_OUTPUT
+FECHANNEL10 = CS_TDEP_F_S_OUTPUT
+
+all: GDS_Time_Series_of_Kappas
+
+GDS_Time_Series_of_Kappas:
+	python ../../check_calibration/timeserieskappas.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --channel-list 'GDS-$(CHANNEL1)','GDS-$(CHANNEL2)','GDS-$(CHANNEL3)','GDS-$(CHANNEL4)','GDS-$(CHANNEL5)','GDS-$(CHANNEL6)','GDS-$(CHANNEL7)','GDS-$(CHANNEL8)','GDS-$(CHANNEL9)','GDS-$(CHANNEL10)' --frame-cache $(IFO)1_hoft_GDS_frames.cache --ifo $(IFO)1 --front-end-channel-list 'CAL-$(FECHANNEL1)','CAL-$(FECHANNEL2)','CAL-$(FECHANNEL3)','CAL-$(FECHANNEL4)','CAL-$(FECHANNEL5)','CAL-$(FECHANNEL6)','CAL-$(FECHANNEL7)','CAL-$(FECHANNEL8)','CAL-$(FECHANNEL9)','CAL-$(FECHANNEL10)'
+
+
+clean:
+	rm *.png
+
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/test.ini b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/test.ini
new file mode 100644
index 0000000000000000000000000000000000000000..91d402750335ab4fd6c95c3084a52bb6fe687e62
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/test.ini
@@ -0,0 +1,409 @@
+[InputConfigurations]
+# Filters file containing calibration FIR filters
+#FiltersFileName: /home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Filters/O3/GDSFilters/H1GDS_1238177020.npz 
+FiltersFileName: /home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/H1GDS_1238177020.npz 
+# Data source should be set to frames or lvshm
+DataSource: frames
+FileChecksum: No
+# Right now, SkipBadFiles needs to be off when reading from frames
+SkipBadFiles: No
+############################################
+# If reading from frames use these options #
+############################################
+# None
+
+###################################################
+# If reading from shared memory use these options #
+###################################################
+SHMPartition: LHO_Online
+# Assumed duration of input frames in seconds
+InputFrameDuration: 1
+
+[OutputConfigurations]
+CompressionScheme: 6
+CompressionLevel: 3
+ChanPrefix: GDS-
+# Set to "None" if you do not want a channel suffix
+ChanSuffix: None
+# Data sink should be set to frames or lvshm
+DataSink: frames
+#################################################
+# If writing to shared memory use these options #
+#################################################
+OutputSHMPartition: LHO_hoft
+BufferMode: 2
+# Use this to approximate the frame size (in bytes) when writing to shared memory
+FrameSize: 405338
+NumBuffers: 10
+###############################################
+# If writing to frame files use these options #
+###############################################
+FrameType: H1_TEST
+
+[CalibrationConfigurations]
+IFO: H1
+# Set calibration mode to Full or Partial
+CalibrationMode: Partial
+ComputeCalibStateVector: Yes
+
+[DebuggingConfigurations]
+# If you want to write a pipeline graph, provide the graph name.  Otherwise, set name equal to None
+PipelineGraphFilename: None
+Verbose: Yes
+# Turn this on to write data presentation timestamps and real-time unix timestamps to file at the beginning and end of the pipeline, to measure latency
+TestLatency: No
+# Turn this on to compute transfer functions for the filters by comparing output data to input data
+TestFilters: No
+
+[TDCFConfigurations]
+#########################################################
+# Options related to time dependent correction  factors #
+#########################################################
+ComputeKappaTST: Yes
+ApplyKappaTST: No
+# Set this to have the \kappa_tst factors filter the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaTST: No
+
+ComputeKappaPU: No
+ApplyKappaPU: No
+# Set this to have the \kappa_pu factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors
+ApplyComplexKappaPU: No
+
+ComputeKappaPUM: Yes
+ApplyKappaPUM: No
+# Set this to have the \kappa_p factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaPUM: No
+
+ComputeKappaUIM: Yes
+ApplyKappaUIM: No
+# Set this to have the \kappa_u factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaUIM: No
+
+ComputeKappaC: Yes
+ApplyKappaC: No
+
+ComputeFcc: Yes
+ApplyFcc: No
+
+ComputeSRCQ: Yes
+ApplySRCQ: No
+
+ComputeFs: Yes
+ApplyFs: No
+
+###########################################
+# Options related to the coherence gating #
+###########################################
+UseCoherence: Yes
+CoherenceUncThreshold: 0.01
+# Amount of time used in front-end to compute coherence
+CoherenceTime: 130
+###################################################################
+# Options related to the computation configurations for the TDCFs #
+###################################################################
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+# Length in seconds of low-pass FIR filter used in demodulation of the calibration lines
+DemodulationFilterTime: 20
+# Time (in seconds) to smooth out \kappas with a median-like method
+MedianSmoothingTime: 128
+TDCFAveragingTime: 10
+#If set to yes, bad computed kappas will be replaced by the previous computed median in the running median array. Otherwise, they are replaced with the default value
+TDCFDefaultToMedian: Yes
+# If using X-end Pcal, we need a minus sign, so set this to -1.0
+PcalSign: 1.0
+##################################################
+# Options related to updating cavity pole filter #
+##################################################
+# Duration of the Fcc filter in the time domain in seconds
+FccFilterDuration: 0.01
+# Number of seconds to average Fcc values before creating a new Fcc filter
+FccAveragingTime: 60 
+# Number of samples to be used when tapering old filter and ramping in new filter
+FccFilterTaperLength: 32768
+############################
+# Nominal values for TDCFs #
+############################
+ExpectedKappaTSTReal: 1.0
+ExpectedKappaTSTImag: 0.0
+ExpectedKappaPUMReal: 1.0
+ExpectedKappaPUMImag: 0.0
+ExpectedKappaUIMReal: 1.0
+ExpectedKappaUIMImag: 0.0
+ExpectedKappaPUReal: 1.0
+ExpectedKappaPUImag: 0.0
+ExpectedKappaC: 1.0
+ExpectedFs_Squared: 5.62
+################################
+# Acceptable variance in TDCFs #
+################################
+KappaTSTRealVar: 0.2
+KappaTSTImagVar: 0.2
+KappaPURealVar: 0.2
+KappaPUImagVar: 0.2
+KappaPUMRealVar: 0.2
+KappaPUMImagVar: 0.2
+KappaUIMRealVar: 0.2
+KappaUIMImagVar: 0.2
+KappaCVar: 0.2
+FccVar: 50.0
+FsVar: 5.0
+SRCQInvMin: 0.0
+SRCQInvMax: 0.5
+#######################
+# EPICS records input #
+#######################
+# Set to Yes if EPICS records for TDCF computations should be read from filters file.  If set to No, they will be read from frames
+FactorsFromFiltersFile: No
+##############################################################################################
+# Updating Sensing and Actuation filters with all frequency-dependent corrections parameters #
+##############################################################################################
+# Length of time (in seconds) between when inverse-sensing FIR filter is updated
+SensingFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the sensing function are averaged before updating the filter
+SensingFilterAveragingTime: 1
+# Number of samples to be used when tapering old inverse sensing filter and ramping in new filter
+SensingFilterTaperLength: 32768
+# Length of time (in seconds) between when the actuation FIR filters are updated
+ActuationFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the actuation function are averaged before updating the filter
+ActuationFilterAveragingTime: 1
+# Number of samples to be used when tapering old actuation filters and ramping in new filters
+ActuationFilterTaperLength: 32768
+
+[ChannelNames]
+#############################
+# Calibration Channel Names #
+#############################
+DARMCtrlChannel: CAL-DARM_CTRL_DBL_DQ
+DARMErrChannel: CAL-DARM_ERR_DBL_DQ
+DeltaLTSTChannel: CAL-DELTAL_CTRL_TST_DBL_DQ
+DeltaLPUMChannel: CAL-DELTAL_CTRL_PUM_DBL_DQ
+DeltaLUIMChannel: CAL-DELTAL_CTRL_UIM_DBL_DQ
+DeltaLResChannel: CAL-DELTAL_RESIDUAL_DBL_DQ
+####################################
+# Data Quality Vector Channel Name #
+####################################
+LowNoiseStateChannel: GRD-IFO_READY
+HWInjChannel: CAL-INJ_STATUS_OUT_DQ
+ObsIntentChannel: GRD-IFO_INTENT
+FilterClockChannelList: GRD-ISC_LOCK_OK
+##################################
+# Calibration Line Channel Names #
+##################################
+DARMExcChannel: CAL-CS_LINE_SUM_DQ
+TSTExcChannel: SUS-ETMX_L3_CAL_LINE_OUT_DQ
+PUMExcChannel: SUS-ETMX_L2_CAL_LINE_OUT_DQ 
+UIMExcChannel: SUS-ETMX_L1_CAL_LINE_OUT_DQ
+PCALChannel: CAL-PCALY_RX_PD_OUT_DQ
+############################################
+# Calibration Line Frequency Channel Names #
+############################################
+DARMExcLineFreqChannel: CAL-CS_TDEP_DARM_LINE1_COMPARISON_OSC_FREQ
+TSTExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE3_COMPARISON_OSC_FREQ
+PUMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE2_COMPARISON_OSC_FREQ
+UIMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE1_COMPARISON_OSC_FREQ
+PCALLine1FreqChannel: CAL-CS_TDEP_PCAL_LINE1_COMPARISON_OSC_FREQ
+PcalLine1CorrRealChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_REAL
+PcalLine1CorrImagChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_IMAG
+PCALLine2FreqChannel: CAL-CS_TDEP_PCAL_LINE2_COMPARISON_OSC_FREQ
+PcalLine2CorrRealChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_REAL
+PcalLine2CorrImagChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_IMAG
+PCALLine3FreqChannel: CAL-CS_TDEP_PCAL_LINE3_COMPARISON_OSC_FREQ
+PcalLine3CorrRealChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_REAL
+PcalLine3CorrImagChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_IMAG
+PCALLine4FreqChannel: CAL-CS_TDEP_PCAL_LINE4_COMPARISON_OSC_FREQ
+PcalLine4CorrRealChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_REAL
+PcalLine4CorrImagChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_IMAG
+
+#######################################
+# Coherence Uncertainty Channel Names #
+#######################################
+CohUncSusLine1Channel: CAL-CS_TDEP_SUS_LINE1_UNCERTAINTY
+CohUncSusLine2Channel: CAL-CS_TDEP_SUS_LINE2_UNCERTAINTY
+CohUncSusLine3Channel: CAL-CS_TDEP_SUS_LINE3_UNCERTAINTY
+CohUncPcalyLine1Channel: CAL-CS_TDEP_PCAL_LINE1_UNCERTAINTY
+CohUncPcalyLine2Channel: CAL-CS_TDEP_PCAL_LINE2_UNCERTAINTY
+CohUncPcalyLine4Channel: CAL-CS_TDEP_PCAL_LINE4_UNCERTAINTY
+CohUncDARMLine1Channel: CAL-CS_TDEP_DARM_LINE1_UNCERTAINTY
+###################################
+# Noise Subtraction Channel Names #
+###################################
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract lines from h(t)
+# Semicolons separate channels to be handled separately and commas separate channels to be handled together.
+#Set to None if no line witness channels are to be used
+LineWitnessChannelList: SUS-ETMX_L1_CAL_LINE_OUT_DQ;SUS-ETMX_L2_CAL_LINE_OUT_DQ;SUS-ETMX_L3_CAL_LINE_OUT_DQ;CAL-PCALY_TX_PD_OUT_DQ;PEM-EY_MAINSMON_EBAY_1_DQ
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract noise from h(t)
+# Set to None if no witness channels are to be used
+#WitnessChannelList: PSL-ISS_SECONDLOOP_OUTPUT_DQ,ASC-DHARD_P_OUT_DQ,ASC-DHARD_Y_OUT_DQ,ASC-CHARD_P_OUT_DQ,ASC-CHARD_Y_OUT_DQ,LSC-SRCL_IN1_DQ,LSC-MICH_IN1_DQ,LSC-PRCL_IN1_DQ
+WitnessChannelList: None
+# What channel should we use to gate the noise subtraction and 60-Hz line subtraction
+NoiseSubGateChannel: GRD-ISC_LOCK_OK
+###############################
+# EPICS Records Channel Names #
+###############################
+EP1RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_REAL
+EP1ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_IMAG
+EP2RealChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_REAL
+EP2ImagChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_IMAG
+EP3RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_REAL
+EP3ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_IMAG
+EP4RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_REAL
+EP4ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_IMAG
+EP5RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_REAL
+EP5ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_IMAG
+EP6RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_REAL
+EP6ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_IMAG
+EP7RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_REAL
+EP7ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_IMAG
+EP8RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_REAL
+EP8Imagchannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_IMAG
+EP9RealChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_REAL
+EP9ImagChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_IMAG
+EP10RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_REAL
+EP10ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_IMAG
+EP11RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_REAL
+EP11ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_IMAG
+EP12RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_REAL
+EP12ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_IMAG
+EP13RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_REAL
+EP13ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_IMAG
+EP14RealChannel: CAL-CS_TDEP_PCALY_LINE4_REF_A_USUM_REAL
+EP14ImagChannel: CAL-CS_TDEP_PCALY_LINE4_REF_A_USUM_IMAG
+EP15RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_REAL
+EP15Imagchannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_IMAG
+EP16RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_REAL
+EP16ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_IMAG
+EP17RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_REAL
+EP17ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_IMAG
+EP18RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_REAL
+EP18ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_IMAG
+EP19RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_REAL
+EP19ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_IMAG
+EP20RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_REAL
+EP20ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_IMAG
+EP21RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_REAL
+EP21ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_IMAG
+EP22RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_REAL
+EP22ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_IMAG
+EP23RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_REAL
+EP23ImagChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_IMAG
+EP24RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_REAL
+EP24ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_IMAG
+
+[SampleRates]
+# Sample rate at which to compute h(t)
+HoftSR: 16384
+# Sample rate at which to compute CALIB_STATE_VECTOR
+CalibStateSR: 16
+# Sample rate of control channel
+# Should be 16384 if using DARM_CTRL and 4096 if using DELTAL_CTRL 
+CtrlSR: 4096
+# Sample rate of low noise state channel
+LowNoiseSR: 16
+# Sample rate of HW injection channel
+HWInjSR: 16384
+# Sample rate of observation intent channel
+ObsIntentSR: 16
+# Sample rate list for channels being used to trigger filter settling clock
+FilterClockSRList: 16
+# Sample rate of TST excitation channel
+TSTExcSR: 512
+# Sample rate of PUM excitation channel
+PUMExcSR: 512
+# Sample rate of UIM excitation channel
+UIMExcSR: 512
+# Sample rate of coherence channels
+CohSR: 16
+# Sample rate for the EPICS reference channels
+EPICSRefSR: 16
+# Sample rates at which transfer functions will be computed and witness channels will be filtered, given as a semicolon-separated list, e.g., 2048;2048;512;2048. This must be given if WitnessChannelList is not None, and it must be the same length.
+WitnessChannelSR: 512
+# Sample rates at which to compute and record TDCFs
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+
+[Bitmasks]
+ObsReadyBitmask: 1
+ObsIntentBitmask: 1
+CBCHWInjOffBitmask: 9
+BurstHWInjOffBitmask: 17
+DetCharHWInjOffBitmask: 33
+StochHWInjOffBitmask: 65
+NoiseSubGateBitmask: 1
+FilterClockBitmaskList: 1
+
+[PipelineConfigurations]
+BufferLength: 1.0
+FrequencyDomainFiltering: No
+Dewhitening: No
+# Latency of all filtering/averaging/median processes (other than calibration model filters) as a fraction of filter length. Value should be set between 0.0 and 1.0.
+FilterLatency: 0.0
+
+[DataCleaningConfigurations]
+###################################################
+# Options for turning on and off line subtraction #
+###################################################
+# Remove the DC component from the residual and control channels before filtering
+RemoveDC: No
+# Subtract the calibration lines from the h(t) spectrum
+RemoveCalLines: No
+###############################################################
+# Options for running line subtraction using witness channels #
+###############################################################
+# Semicolon-separated list of comma-separated lists of frequencies (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqs: 15.1;16.7;35.9;36.7,331.9,1083.7;60.0,120.0,180.0,240.0,300.0
+# Time over which to take a median of transfer functions
+LineWitnessTFMedianTime: 128
+# Time over which to average transfer functions
+LineWitnessTFAveragingTime: 1
+# Semicolon-separated list of typical frequency fluctuations in lines being subtracted (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqVars: 0.0;0.0;0.0;0.0;0.02
+#######################################
+# Options for broadband noise removal #
+#######################################
+# The length in seconds of the fast Fourier transforms used to compute transfer functions between witness channels and h(t). The fft's are windowed with Hann windows and overlapped.
+WitnessChannelFFTTime: 4.0
+# The number of ffts to take before averaging the witness -> h(t) transfer functions calculation. The average is taken after the ratio h(f) / witness(f).
+NumWitnessFFTs: 1000
+# Sets the minimum number of FFTs necessary to produce the first transfer functions and clean data after data flow starts.
+MinWitnessFFTs: 300
+# The length in seconds of the filters applied to the witness channels before subtracting from h(t)
+WitnessFIRLength: 1.0
+# The frequency resolution of the filters applied to the witness channels before subtracting from h(t). It can be advantageous to lower the frequency resolution in order to average over excess noise.
+WitnessFrequencyResolution: 0.5
+# List of minima and maxima of frequency ranges where the Fourier transform of h(t) will be replaced by a straight line in the calculation of transfer functions between witness channels and h(t) for noise subtraction. Semicolons separate lists for different sets of witness channels. If no notches are desired, use zeros, e.g., \'0;0;0\'. Here is an example using the expected format: \'495.0,515.0,985.0,1015.0;59,60,119,121;0\' This can be useful, e.g., if there are loud lines in the signal that are not present in the witness channels.
+WitnessNotchFrequencies: 0
+# Cutoff frequencies for high-pass filters for witness channels
+WitnessHighPasses: 10
+# The amount of time after transfer functions between witness channels and h(t) are finished to begin the calculation of the next set of transfer functions
+WitnessTFUpdateTime: 4
+# If lock-loss lasts at least this many seconds, transfer functions will revert to those computed at the beginning of a lock stretch. Set to zero to disbale.
+CriticalLockLossTime: 1800
+# The amount of time to use to taper in newly computed FIR filters for witness channels being used for noise subtraction.
+WitnessFilterTaperTime: 2
+# If writing transfer functions to file, this sets the name. If transfer functions should not be written to file, this should be set to None
+WitnessTFFilename: None
+# Should the transfer function calculation use a median? If not, an average (mean) is used.
+WitnessTFUseMedian: Yes
+# Should transfer functions be computed on a fixed schedule, so that the output does not depend on start time?  This is useful for running jobs in parallel.  Otherwise, they are computed asap.
+WitnessTFParallelMode: No
+# When using parallel mode, how many seconds later should we shift the time when transfer functions start being computed from a multiple of the cycle period?
+WitnessTFTimeShift: 360
+# To write only one strain channel, and pick whichever is less noisy, set this option to 'Yes'. This way, if a problem arises with the noise subtraction it will not affect the output strain channel.
+PickCleanestStrainChannel: No
+# A half Hann window is used for transitions between cleaned and uncleaned data.  This is the length of that window in seconds.
+StrainChannelTransitionTime: 10.0
+###############################
+# Options for HOFT_CLEAN bits #
+###############################
+# The amount of data from h(t) and cleaned h(t) that is used to compute and compare the rms. This comparison between cleaned and uncleaned h(t) determines whether the HOFT_CLEAN bits of the calibration state vector are on or off.
+CleaningCheckRMSTime: 30.0
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMin: 15
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMax: 20
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMin: 20
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMax: 200
diff --git a/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/test_nokappas.ini b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/test_nokappas.ini
new file mode 100644
index 0000000000000000000000000000000000000000..c865b02b57412f86dcafcad3b438a0f9f9faf951
--- /dev/null
+++ b/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/test_nokappas.ini
@@ -0,0 +1,404 @@
+[InputConfigurations]
+# Filters file containing calibration FIR filters
+FiltersFileName: /home/wademc/src/gstlal/gstlal-calibration/tests/H1GDS_1238177020_filter_tests/H1/Filters/O3/GDSFilters/H1GDS_1238177020.npz
+# Data source should be set to frames or lvshm
+DataSource: frames
+FileChecksum: No
+# Right now, SkipBadFiles needs to be off when reading from frames
+SkipBadFiles: No
+############################################
+# If reading from frames use these options #
+############################################
+# None
+
+###################################################
+# If reading from shared memory use these options #
+###################################################
+SHMPartition: LHO_Online
+# Assumed duration of input frames in seconds
+InputFrameDuration: 1
+
+[OutputConfigurations]
+CompressionScheme: 6
+CompressionLevel: 3
+ChanPrefix: GDS-
+# Set to "None" if you do not want a channel suffix
+ChanSuffix: None
+# Data sink should be set to frames or lvshm
+DataSink: frames
+#################################################
+# If writing to shared memory use these options #
+#################################################
+OutputSHMPartition: LHO_hoft
+BufferMode: 2
+# Use this to approximate the frame size (in bytes) when writing to shared memory
+FrameSize: 405338
+NumBuffers: 10
+###############################################
+# If writing to frame files use these options #
+###############################################
+FrameType: H1_TEST_NOKAPPAS
+
+[CalibrationConfigurations]
+IFO: H1
+# Set calibration mode to Full or Partial
+CalibrationMode: Partial
+ComputeCalibStateVector: Yes
+
+[DebuggingConfigurations]
+# If you want to write a pipeline graph, provide the graph name.  Otherwise, set name equal to None
+PipelineGraphFilename: None
+Verbose: Yes
+# Turn this on to write data presentation timestamps and real-time unix timestamps to file at the beginning and end of the pipeline, to measure latency
+TestLatency: No
+# Turn this on to compute transfer functions for the filters by comparing output data to input data
+TestFilters: No
+
+[TDCFConfigurations]
+#########################################################
+# Options related to time dependent correction  factors #
+#########################################################
+ComputeKappaTST: Yes
+ApplyKappaTST: No
+# Set this to have the \kappa_tst factors filter the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaTST: No
+
+ComputeKappaPU: No
+ApplyKappaPU: No
+# Set this to have the \kappa_pu factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors
+ApplyComplexKappaPU: No
+
+ComputeKappaPUM: Yes
+ApplyKappaPUM: No
+# Set this to have the \kappa_p factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaPUM: No
+
+ComputeKappaUIM: Yes
+ApplyKappaUIM: No
+# Set this to have the \kappa_u factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaUIM: No
+
+ComputeKappaC: Yes
+ApplyKappaC: No
+
+ComputeFcc: Yes
+ApplyFcc: No
+
+ComputeSRCQ: Yes
+ApplySRCQ: No
+
+ComputeFs: Yes
+ApplyFs: No
+
+###########################################
+# Options related to the coherence gating #
+###########################################
+UseCoherence: Yes
+CoherenceUncThreshold: 0.01
+# Amount of time used in front-end to compute coherence
+CoherenceTime: 130
+###################################################################
+# Options related to the computation configurations for the TDCFs #
+###################################################################
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+# Length in seconds of low-pass FIR filter used in demodulation of the calibration lines
+DemodulationFilterTime: 20
+# Time (in seconds) to smooth out \kappas with a median-like method
+MedianSmoothingTime: 128
+TDCFAveragingTime: 10
+#If set to yes, bad computed kappas will be replaced by the previous computed median in the running median array. Otherwise, they are replaced with the default value
+TDCFDefaultToMedian: Yes
+# If using Y-end Pcal, we need a minus sign, so set this to -1.0
+PcalSign: 1.0
+##################################################
+# Options related to updating cavity pole filter #
+##################################################
+# Duration of the Fcc filter in the time domain in seconds
+FccFilterDuration: 0.01
+# Number of seconds to average Fcc values before creating a new Fcc filter
+FccAveragingTime: 60 
+# Number of samples to be used when tapering old filter and ramping in new filter
+FccFilterTaperLength: 32768
+############################
+# Nominal values for TDCFs #
+############################
+ExpectedKappaTSTReal: 1.0
+ExpectedKappaTSTImag: 0.0
+ExpectedKappaPUMReal: 1.0
+ExpectedKappaPUMImag: 0.0
+ExpectedKappaUIMReal: 1.0
+ExpectedKappaUIMImag: 0.0
+ExpectedKappaPUReal: 1.0
+ExpectedKappaPUImag: 0.0
+ExpectedKappaC: 1.0
+ExpectedFs_Squared: 5.253 
+################################
+# Acceptable variance in TDCFs #
+################################
+KappaTSTRealVar: 0.2
+KappaTSTImagVar: 0.2
+KappaPURealVar: 0.2
+KappaPUImagVar: 0.2
+KappaPUMRealVar: 0.2
+KappaPUMImagVar: 0.2
+KappaUIMRealVar: 0.2
+KappaUIMImagVar: 0.2
+KappaCVar: 0.2
+FccVar: 50.0
+FsVar: 5.0
+SRCQInvMin: 0.0
+SRCQInvMax: 0.5
+#######################
+# EPICS records input #
+#######################
+# Set to Yes if EPICS records for TDCF computations should be read from filters file.  If set to No, they will be read from frames
+FactorsFromFiltersFile: Yes
+##############################################################################################
+# Updating Sensing and Actuation filters with all frequency-dependent corrections parameters #
+##############################################################################################
+# Length of time (in seconds) between when inverse-sensing FIR filter is updated
+SensingFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the sensing function are averaged before updating the filter
+SensingFilterAveragingTime: 1
+# Number of samples to be used when tapering old inverse sensing filter and ramping in new filter
+SensingFilterTaperLength: 32768
+# Length of time (in seconds) between when the actuation FIR filters are updated
+ActuationFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the actuation function are averaged before updating the filter
+ActuationFilterAveragingTime: 1
+# Number of samples to be used when tapering old actuation filters and ramping in new filters
+ActuationFilterTaperLength: 32768
+
+[ChannelNames]
+#############################
+# Calibration Channel Names #
+#############################
+DARMCtrlChannel: CAL-DARM_CTRL_DBL_DQ
+DARMErrChannel: CAL-DARM_ERR_DBL_DQ
+DeltaLTSTChannel: CAL-DELTAL_CTRL_TST_DBL_DQ
+DeltaLPUMChannel: CAL-DELTAL_CTRL_PUM_DBL_DQ
+DeltaLUIMChannel: CAL-DELTAL_CTRL_UIM_DBL_DQ
+DeltaLResChannel: CAL-DELTAL_RESIDUAL_DBL_DQ
+####################################
+# Data Quality Vector Channel Name #
+####################################
+LowNoiseStateChannel: GRD-IFO_READY
+HWInjChannel: CAL-INJ_STATUS_OUT_DQ
+ObsIntentChannel: GRD-IFO_INTENT
+FilterClockChannelList: GRD-ISC_LOCK_OK
+##################################
+# Calibration Line Channel Names #
+##################################
+DARMExcChannel: CAL-CS_LINE_SUM_DQ
+TSTExcChannel: SUS-ETMX_L3_CAL_LINE_OUT_DQ
+PUMExcChannel: SUS-ETMX_L2_CAL_LINE_OUT_DQ 
+UIMExcChannel: SUS-ETMX_L1_CAL_LINE_OUT_DQ
+PCALChannel: CAL-PCALY_RX_PD_OUT_DQ
+############################################
+# Calibration Line Frequency Channel Names #
+############################################
+DARMExcLineFreqChannel: CAL-CS_TDEP_DARM_LINE1_COMPARISON_OSC_FREQ
+TSTExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE3_COMPARISON_OSC_FREQ
+PUMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE2_COMPARISON_OSC_FREQ
+UIMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE1_COMPARISON_OSC_FREQ
+PCALLine1FreqChannel: CAL-CS_TDEP_PCAL_LINE1_COMPARISON_OSC_FREQ
+PcalLine1CorrRealChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_REAL
+PcalLine1CorrImagChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_IMAG
+PCALLine2FreqChannel: CAL-CS_TDEP_PCAL_LINE2_COMPARISON_OSC_FREQ
+PcalLine2CorrRealChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_REAL
+PcalLine2CorrImagChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_IMAG
+PCALLine3FreqChannel: CAL-CS_TDEP_PCAL_LINE3_COMPARISON_OSC_FREQ
+PcalLine3CorrRealChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_REAL
+PcalLine3CorrImagChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_IMAG
+PCALLine4FreqChannel: CAL-CS_TDEP_PCAL_LINE4_COMPARISON_OSC_FREQ
+PcalLine4CorrRealChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_REAL
+PcalLine4CorrImagChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_IMAG
+#######################################
+# Coherence Uncertainty Channel Names #
+#######################################
+CohUncSusLine1Channel: CAL-CS_TDEP_SUS_LINE1_UNCERTAINTY
+CohUncSusLine2Channel: CAL-CS_TDEP_SUS_LINE2_UNCERTAINTY
+CohUncSusLine3Channel: CAL-CS_TDEP_SUS_LINE3_UNCERTAINTY
+CohUncPcalyLine1Channel: CAL-CS_TDEP_PCAL_LINE1_UNCERTAINTY
+CohUncPcalyLine2Channel: CAL-CS_TDEP_PCAL_LINE2_UNCERTAINTY
+CohUncPcalyLine4Channel: CAL-CS_TDEP_PCAL_LINE4_UNCERTAINTY
+CohUncDARMLine1Channel: CAL-CS_TDEP_DARM_LINE1_UNCERTAINTY
+###################################
+# Noise Subtraction Channel Names #
+###################################
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract lines from h(t)
+# Semicolons separate channels to be handled separately (in series), and commas separate channels to be handled in parallel.
+#Set to None if no line witness channels are to be used
+LineWitnessChannelList: SUS-ETMX_L1_CAL_LINE_OUT_DQ;SUS-ETMX_L2_CAL_LINE_OUT_DQ;SUS-ETMY_L3_CAL_LINE_OUT_DQ;CAL-PCALY_RX_PD_OUT_DQ;PEM-EY_MAINSMON_EBAY_1_DQ
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract noise from h(t)
+# Set to None if no witness channels are to be used
+#WitnessChannelList: ASC-DHARD_P_OUT_DQ,ASC-DHARD_Y_OUT_DQ,ASC-CHARD_P_OUT_DQ,ASC-CHARD_Y_OUT_DQ,LSC-SRCL_IN1_DQ,LSC-MICH_IN1_DQ,LSC-PRCL_IN1_DQ
+WitnessChannelList: None
+# What channel should we use to gate the noise subtraction and 60-Hz line subtraction
+NoiseSubGateChannel: GRD-ISC_LOCK_OK
+###############################
+# EPICS Records Channel Names #
+###############################
+EP1RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_REAL
+EP1ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_IMAG
+EP2RealChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_REAL
+EP2ImagChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_IMAG
+EP3RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_REAL
+EP3ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_IMAG
+EP4RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_REAL
+EP4ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_IMAG
+EP5RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_REAL
+EP5ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_IMAG
+EP6RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_REAL
+EP6ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_IMAG
+EP7RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_REAL
+EP7ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_IMAG
+EP8RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_REAL
+EP8Imagchannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_IMAG
+EP9RealChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_REAL
+EP9ImagChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_IMAG
+EP10RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_REAL
+EP10ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_IMAG
+EP11RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_REAL
+EP11ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_IMAG
+EP12RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_REAL
+EP12ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_IMAG
+EP13RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_REAL
+EP13ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_IMAG
+EP14RealChannel: CAL-CS_TDEP_PCALY_LINE1_REF_A_USUM_REAL
+EP14ImagChannel: CAL-CS_TDEP_PCALY_LINE1_REF_A_USUM_IMAG
+EP15RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_REAL
+EP15Imagchannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_IMAG
+EP16RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_REAL
+EP16ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_IMAG
+EP17RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_REAL
+EP17ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_IMAG
+EP18RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_REAL
+EP18ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_IMAG
+EP19RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_REAL
+EP19ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_IMAG
+EP20RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_REAL
+EP20ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_IMAG
+EP21RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_REAL
+EP21ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_IMAG
+EP22RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_REAL
+EP22ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_IMAG
+EP23RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_REAL
+EP23ImagChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_IMAG
+EP24RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_REAL
+EP24ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_IMAG
+
+[SampleRates]
+# Sample rate at which to compute h(t)
+HoftSR: 16384
+# Sample rate at which to compute CALIB_STATE_VECTOR
+CalibStateSR: 16
+# Sample rate of control channel
+# Should be 16384 if using DARM_CTRL and 4096 if using DELTAL_CTRL 
+CtrlSR: 4096
+# Sample rate of low noise state channel
+LowNoiseSR: 16
+# Sample rate of HW injection channel
+HWInjSR: 16384
+# Sample rate of observation intent channel
+ObsIntentSR: 16
+# Sample rate list for chanels being used to trigger filter settling clock
+FilterClockSRList: 16
+# Sample rate of TST excitation channel
+TSTExcSR: 512
+# Sample rate of PUM excitation channel
+PUMExcSR: 512
+# Sample rate of UIM excitation channel
+UIMExcSR: 512
+# Sample rate of coherence channels
+CohSR: 16
+# Sample rate for the EPICS reference channels
+EPICSRefSR: 16
+# Sample rates at which transfer functions will be computed and witness channels will be filtered, given as a semicolon-separated list, e.g., 2048;2048;512;2048. This must be given if WitnessChannelList is not None, and it must be the same length.
+WitnessChannelSR: 512
+# Sample rates at which to compute and record TDCFs
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+
+[Bitmasks]
+ObsReadyBitmask: 1
+ObsIntentBitmask: 1
+FilterClockBitmaskList: 1
+CBCHWInjOffBitmask: 9
+BurstHWInjOffBitmask: 17
+DetCharHWInjOffBitmask: 33
+StochHWInjOffBitmask: 65
+NoiseSubGateBitmask: 1
+
+[PipelineConfigurations]
+BufferLength: 1.0
+FrequencyDomainFiltering: No
+Dewhitening: No
+# Latency of all filtering/averaging/median processes (other than calibration model filters) as a fraction of filter length. Value should be set between 0.0 and 1.0.
+FilterLatency: 0.0
+
+[DataCleaningConfigurations]
+# Remove the DC component from the residual and control channels before filtering
+RemoveDC: No
+# Subtract the calibration lines from the h(t) spectrum
+RemoveCalLines: No
+###############################################################
+# Options for running line subtraction using witness channels #
+###############################################################
+# Semicolon-separated list of comma-separated lists of frequencies (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqs: 15.1;15.7;16.9;16.3,434.9,1083.1;60.0,120.0,180.0,240.0,300.0
+# Time over which to take a median of transfer functions
+LineWitnessTFMedianTime: 128
+# Time over which to average transfer functions
+LineWitnessTFAveragingTime: 1
+# Semicolon-separated list of typical frequency fluctuations in lines being subtracted (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqVars: 0.0;0.0;0.0;0.0;0.02
+#######################################
+# Options for broadband noise removal #
+#######################################
+# The length in seconds of the fast Fourier transforms used to compute transfer functions between witness channels and h(t). The fft's are windowed with Hann windows and overlapped.
+WitnessChannelFFTTime: 4.0
+# The number of ffts to take before averaging the witness -> h(t) transfer functions calculation. The average is taken after the ratio h(f) / witness(f).
+NumWitnessFFTs: 1000
+# Sets the minimum number of FFTs necessary to produce the first transfer functions and clean data after data flow starts.
+MinWitnessFFTs: 300
+# The length in seconds of the filters applied to the witness channels before subtracting from h(t)
+WitnessFIRLength: 1.0
+# The frequency resolution of the filters applied to the witness channels before subtracting from h(t). It can be advantageous to lower the frequency resolution in order to average over excess noise.
+WitnessFrequencyResolution: 0.5
+# List of minima and maxima of frequency ranges where the Fourier transform of h(t) will be replaced by a straight line in the calculation of transfer functions between witness channels and h(t) for noise subtraction. Semicolons separate lists for different sets of witness channels. If no notches are desired, use zeros, e.g., \'0;0;0\'. Here is an example using the expected format: \'495.0,515.0,985.0,1015.0;59,60,119,121;0\' This can be useful, e.g., if there are loud lines in the signal that are not present in the witness channels.
+WitnessNotchFrequencies: 0
+# Cutoff frequencies for high-pass filters for witness channels
+WitnessHighPasses: 10
+# The amount of time after transfer functions between witness channels and h(t) are finished to begin the calculation of the next set of transfer functions
+WitnessTFUpdateTime: 4
+# If lock-loss lasts at least this many seconds, transfer functions will revert to those computed at the beginning of a lock stretch. Set to zero to disbale.
+CriticalLockLossTime: 1800
+# The amount of time to use to taper in newly computed FIR filters for witness channels being used for noise subtraction.
+WitnessFilterTaperTime: 2
+# If writing transfer functions to file, this sets the name. If transfer functions should not be written to file, this should be set to None
+WitnessTFFilename: None
+# Should the transfer function calculation use a median? If not, an average (mean) is used.
+WitnessTFUseMedian: Yes
+# Should transfer functions be computed on a fixed schedule, so that the output does not depend on start time?  This is useful for running jobs in parallel.  Otherwise, they are computed asap.
+WitnessTFParallelMode: No
+# When using parallel mode, how many seconds later should we shift the time when transfer functions start being computed from a multiple of the cycle period?
+WitnessTFTimeShift: 360
+# To write only one strain channel, and pick whichever is less noisy, set this option to 'Yes'. This way, if a problem arises with the noise subtraction it will not affect the output strain channel.
+PickCleanestStrainChannel: No
+# A half Hann window is used for transitions between cleaned and uncleaned data.  This is the length of that window in seconds.
+StrainChannelTransitionTime: 10.0
+###############################
+# Options for HOFT_CLEAN bits #
+###############################
+# The amount of data from h(t) and cleaned h(t) that is used to compute and compare the rms. This comparison between cleaned and uncleaned h(t) determines whether the HOFT_CLEAN bits of the calibration state vector are on or off.
+CleaningCheckRMSTime: 30.0
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMin: 15
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMax: 20
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMin: 20
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMax: 200
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/L1_raw_frames.cache b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/L1_raw_frames.cache
new file mode 100644
index 0000000000000000000000000000000000000000..fc34aa9243596b250b6604ee8d340a6b73eef922
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/L1_raw_frames.cache
@@ -0,0 +1,9 @@
+L L1_R 1237809664 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237809664-64.gwf
+L L1_R 1237809728 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237809728-64.gwf
+L L1_R 1237809792 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237809792-64.gwf
+L L1_R 1237809856 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237809856-64.gwf
+L L1_R 1237809920 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237809920-64.gwf
+L L1_R 1237809984 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237809984-64.gwf
+L L1_R 1237810048 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237810048-64.gwf
+L L1_R 1237810112 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237810112-64.gwf
+L L1_R 1237810176 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237810176-64.gwf
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.ASD_comparison b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.ASD_comparison
new file mode 100644
index 0000000000000000000000000000000000000000..e3d0cb79c8f55eabb046084fe9ae52ff9aba1e37
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.ASD_comparison
@@ -0,0 +1,8 @@
+all: ASD_comparison_plots
+
+ASD_comparison_plots: 
+	python ../../check_calibration/ASD_comparison_plots --ifo $(IFO)1 --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --raw-frame-cache $(IFO)1_raw_frames.cache --hoft-frame-cache $(IFO)1_hoft_GDS_frames.cache --calcs-channel-name CAL-DELTAL_EXTERNAL_DQ --analyze-additional-hoft-channel --additional-hoft-channel-name CAL-CFTD_DELTAL_EXTERNAL_DQ --additional-hoft-frame-cache $(IFO)1_raw_frames.cache
+
+clean: 
+	rm *.png 
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.all_tests b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.all_tests
new file mode 100644
index 0000000000000000000000000000000000000000..802f5d05361811ec5437941d3e8f6d97a0cf1ae7
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.all_tests
@@ -0,0 +1,104 @@
+# This makefile can be used to run all of the tests instead of running them one by one.
+
+# Indicate IFO and observing run
+# Note: Make sure that there is no space after the L or H! 
+# Another note: Livingston cluster cannot run this for IFO = H. Make sure that the cluster you're using has the raw frames you want. 
+export IFO=L
+# OBSRUN inidcates where to look for filters files (e.g. O1, O2, O3, ER10, ER13, ER14, PreER13, PreER14)
+#export OBSRUN=O2
+export OBSRUN=O3
+
+# Set start and stop times for a short lock stretch
+export SHORT_START=1237809716
+export SHORT_END=1237810216
+# Set start and stop times for a longer stretch that spans a lock-unlock stretch
+export LONG_START = 1228350334
+export LONG_END = 1228352985
+export SHMRUNTIME=400
+
+# How much time does the calibraiton need to settle at the start and end?
+PLOT_WARMUP_TIME = 220
+PLOT_COOLDOWN_TIME = 64
+export SHORT_PLOT_START=$(shell echo $(SHORT_START) + $(PLOT_WARMUP_TIME) | bc)
+export LONG_PLOT_START=$(shell echo $(LONG_START) + $(PLOT_WARMUP_TIME) | bc)
+export SHORT_PLOT_END=$(shell echo $(SHORT_END) - $(PLOT_COOLDOWN_TIME) | bc) 
+export LONG_PLOT_END=$(shell echo $(LONG_END) - $(PLOT_COOLDOWN_TIME) | bc) 
+
+# Point to all of the .ini files for different configurations
+#export GDSCONFIGS=H1GDS_1232821094_gstlal-calibration-1-2-7.ini
+export GDSCONFIGS=test.ini 
+#export GDSCONFIGSNOKAPPAS=H1GDS_1228712903_test_no_kappas.ini 
+
+# Needed for writing pipeline graphs
+export GST_DEBUG_DUMP_DOT_DIR=.
+
+all: ASD_comparison statevector timeserieskappas response_function
+
+# Create frame cache files for raw, C00, C01, and C02 frames
+$(IFO)1_raw_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_R -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C00_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C00 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C01_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C01 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C02_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C02 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+
+# Calibrate GDS testing data
+$(IFO)1_hoft_GDS_frames.cache: $(IFO)1_raw_frames.cache filters framesdir
+	gstlal_compute_strain --gps-start-time $(SHORT_START) --gps-end-time $(SHORT_END) --frame-cache $(IFO)1_raw_frames.cache --output-path Frames/$(OBSRUN)/$(IFO)1/GDS/ --frame-duration=64 --frames-per-file=1 --wings=0 --config-file $(GDSCONFIGS)
+	ls Frames/$(OBSRUN)/$(IFO)1/GDS/$(IFO)-$(IFO)1_TEST-*.gwf | lalapps_path2cache > $@
+
+# Calibrate GDS testing data with no kappas applied for response function test
+$(IFO)1_hoft_GDS_no_kappas_frames.cache: $(IFO)1_raw_frames.cache filters framesdir
+	#gstlal_compute_strain --gps-start-time $(SHORT_START) --gps-end-time $(SHORT_END) --frame-cache $(IFO)1_raw_frames.cache --output-path Frames/$(OBSRUN)/$(IFO)1/GDS/ --frame-duration=64 --frames-per-file=1 --wings=0 --config-file $(GDSCONFIGSNOKAPPAS)
+	#ls Frames/$(OBSRUN)/$(IFO)1/GDS/$(IFO)-$(IFO)1GDS_TEST_NOKAPPAS*.gwf | lalapps_path2cache > $@
+
+
+filters:
+	if [ -d Filters/$(OBSRUN)/GDSFilters ]; then \
+                svn up Filters/$(OBSRUN)/GDSFilters; \
+        else \
+                mkdir -p Filters/$(OBSRUN); \
+                cd Filters/$(OBSRUN); \
+                svn co https://svn.ligo.caltech.edu/svn/aligocalibration/trunk/Runs/$(OBSRUN)/GDSFilters; \
+        fi
+
+framesdir:
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/easy_raw
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/GDS
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/DCS
+
+
+response_function: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_raw_frames.cache
+	make -f Makefile.response_function
+
+ASD_comparison: $(IFO)1_raw_frames.cache $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.ASD_comparison
+
+statevector: $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.statevector
+
+timeserieskappas:  $(IFO)1_hoft_GDS_frames.cache 
+	make -f Makefile.timeserieskappas
+
+pcal_to_darm: $(IFO)1_raw_frames.cache $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.pcal_to_darm
+
+# FIXME: This is seg faulting for me right now
+calib_version_comparison: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_C02_frames.cache
+	make -f Makefile.calib_version_comparison
+
+# Need to clean up this clean command
+clean: 
+	rm -rf Frames/
+	rm -rf Filters/
+	rm *.p*
+	rm *.dot
+	rm *.txt
+
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.calib_version_comparison b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.calib_version_comparison
new file mode 100644
index 0000000000000000000000000000000000000000..43ee130b15d97ca52b649fc784cd17864b0c15b4
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.calib_version_comparison
@@ -0,0 +1,8 @@
+all: GDS_over_C02
+
+GDS_over_C02: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_C02_frames.cache
+	python ../../check_calibration/plot_transfer_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --numerator-frame-cache-list $(IFO)1_hoft_GDS_frames.cache --denominator-frame-cache $(IFO)1_C02_frames.cache --numerator-channel-list GDS-CALIB_STRAIN --denominator-channel-name DCS-CALIB_STRAIN_C02 --denominator-name 'C02' --numerator-name 'GDS_TEST --magnitude-min 0.7 --magnitude-max 1.3 --phase-min -20.0 --phase-max 20.0 --labels 'GDS Test / C02 Transfer Function'
+
+clean:
+	*.png
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.latency b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.latency
new file mode 100644
index 0000000000000000000000000000000000000000..03cbc521ef02be6cfe141b100531d599757df60a
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.latency
@@ -0,0 +1,8 @@
+all: latency_test
+
+latency_test: $(IFO)1_hoft_GDS_SHM_frames.cache
+	python ../../check_calibration/latency_plot.py --intime-file gstlal_compute_strain_timestamps_in.txt --outtime-file gstlal_compute_strain_timestamps_out.txt --plot-filename-prefix $(IFO)1GDS_latency --plot-title '$(IFO)1 Calibration Latency vs Time'
+
+clean:
+	rm *.png
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.lines_ratio b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.lines_ratio
new file mode 100644
index 0000000000000000000000000000000000000000..ae6edaaae15e37bb514de8ab2a4935a06bb3f277
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.lines_ratio
@@ -0,0 +1,8 @@
+all: lines_ratio_DCS
+
+lines_ratio_DCS: $(IFO)1_hoft_DCS_frames.cache
+	python ../../check_calibration/demod_ratio_timeseries.py --ifo $(IFO)1 --gps-end-time $(SHORT_PLOT_END) --gps-start-time $(SHORT_PLOT_START) --denominator-frame-cache $(IFO)1_hoft_DCS_frames.cache --numerator-frame-cache $(IFO)1_hoft_DCS_frames.cache --denominator-channel-name 'DCS-CALIB_STRAIN' --numerator-channel-name 'DCS-CALIB_STRAIN_CLEAN' --frequencies '35.9,36.7,331.9,1083.7;60,120,180' --magnitude-ranges '0.0,0.1;0.0,1.0' --phase-ranges '-180.0,180.0;-180.0,180.0' --plot-titles '$(IFO)1 Calibration Line Subtraction;$(IFO)1 Power Mains Line Subtraction'
+
+clean:
+	rm *.gwf *.cache *.png *.txt
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.noise_subtraction_tf b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.noise_subtraction_tf
new file mode 100644
index 0000000000000000000000000000000000000000..b26758c95a0e294128e3c878650640305306c9c0
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.noise_subtraction_tf
@@ -0,0 +1,8 @@
+all: noise_subtraction_tf_DCS
+
+noise_subtraction_tf_DCS: $(IFO)1_hoft_DCS_frames.cache
+	python ../../check_calibration/plot_transfer_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --numerator-frame-cache $(IFO)1_hoft_DCS_frames.cache --denominator-frame-cache $(IFO)1_hoft_DCS_frames.cache --numerator-channel-name DCS-CALIB_STRAIN_CLEAN --denominator-channel-name DCS-CALIB_STRAIN --magnitude-min 0.0 --magnitude-max 1.5 --phase-min -20.0 --phase-max 20.0 --plot-title 'Noise Subtraction Transfer Function'
+
+clean:
+	rm *.gwf *.cache *.png *.txt
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.response_function b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.response_function
new file mode 100644
index 0000000000000000000000000000000000000000..c6ff7de1d85e42b5b039ce3c55d964211287ac3f
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.response_function
@@ -0,0 +1,11 @@
+all: GDS_response_function_bode_plot
+
+FILTERS_FILE = /home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1237770582_filter_tests/L1/Filters/O3/GDSFilters/L1GDS_1237770582.npz
+
+GDS_response_function_bode_plot: 
+	python ../../check_calibration/response_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --dt 6.103515625e-05 --ifo $(IFO)1 --hoft-frames-cache $(IFO)1_hoft_GDS_frames.cache --raw-frames-cache $(IFO)1_raw_frames.cache --response-file $(FILTERS_FILE) 
+
+
+clean: 
+	rm *.pdf
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.statevector b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.statevector
new file mode 100644
index 0000000000000000000000000000000000000000..5733f7338eaed970ea286d6177244e6cf182f926
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.statevector
@@ -0,0 +1,9 @@
+all: calib_state_vector_plot
+
+calib_state_vector_plot: 
+	python ../../check_calibration/statevector_plot.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --hoft-frames-cache $(IFO)1_hoft_GDS_frames.cache
+
+
+clean: 
+	rm *.pdf
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.timeserieskappas b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.timeserieskappas
new file mode 100644
index 0000000000000000000000000000000000000000..a9f77efb0495937fe45920c6ef4a7cefa4efb12e
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/Makefile.timeserieskappas
@@ -0,0 +1,31 @@
+CHANNEL1 = CALIB_KAPPA_C
+CHANNEL2 = CALIB_KAPPA_PUM_REAL
+CHANNEL3 = CALIB_KAPPA_TST_REAL
+CHANNEL4 = CALIB_F_CC
+CHANNEL5 = CALIB_KAPPA_PUM_IMAGINARY
+CHANNEL6 = CALIB_KAPPA_TST_IMAGINARY
+CHANNEL7 = CALIB_KAPPA_UIM_REAL
+CHANNEL8 = CALIB_KAPPA_UIM_IMAGINARY
+CHANNEL9 = CALIB_SRC_Q_INVERSE
+CHANNEL10 = CALIB_F_S_SQUARED
+
+FECHANNEL1 = CS_TDEP_KAPPA_C_OUTPUT
+FECHANNEL2 = CS_TDEP_KAPPA_PUM_REAL_OUTPUT
+FECHANNEL3 = CS_TDEP_KAPPA_TST_REAL_OUTPUT
+FECHANNEL4 = CS_TDEP_F_C_OUTPUT
+FECHANNEL5 = CS_TDEP_KAPPA_PUM_IMAG_OUTPUT
+FECHANNEL6 = CS_TDEP_KAPPA_TST_IMAG_OUTPUT
+FECHANNEL7 = CS_TDEP_KAPPA_UIM_REAL_OUTPUT
+FECHANNEL8 = CS_TDEP_KAPPA_UIM_IMAG_OUTPUT
+FECHANNEL9 = CS_TDEP_Q_S_OUTPUT
+FECHANNEL10 = CS_TDEP_F_S_OUTPUT
+
+all: GDS_Time_Series_of_Kappas
+
+GDS_Time_Series_of_Kappas:
+	python ../../check_calibration/timeserieskappas.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --channel-list 'GDS-$(CHANNEL1)','GDS-$(CHANNEL2)','GDS-$(CHANNEL3)','GDS-$(CHANNEL4)','GDS-$(CHANNEL5)','GDS-$(CHANNEL6)','GDS-$(CHANNEL7)','GDS-$(CHANNEL8)','GDS-$(CHANNEL9)','GDS-$(CHANNEL10)' --frame-cache $(IFO)1_hoft_GDS_frames.cache --ifo $(IFO)1 --front-end-channel-list 'CAL-$(FECHANNEL1)','CAL-$(FECHANNEL2)','CAL-$(FECHANNEL3)','CAL-$(FECHANNEL4)','CAL-$(FECHANNEL5)','CAL-$(FECHANNEL6)','CAL-$(FECHANNEL7)','CAL-$(FECHANNEL8)','CAL-$(FECHANNEL9)','CAL-$(FECHANNEL10)'
+
+
+clean:
+	rm *.png
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/test.ini b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/test.ini
new file mode 100644
index 0000000000000000000000000000000000000000..faf204b2953ec917357c7338902189da1bcd602e
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1/test.ini
@@ -0,0 +1,404 @@
+[InputConfigurations]
+# Filters file containing calibration FIR filters
+FiltersFileName: L1GDS_1237839206.npz
+# Data source should be set to frames or lvshm
+DataSource: frames
+FileChecksum: No
+# Right now, SkipBadFiles needs to be off when reading from frames
+SkipBadFiles: No
+############################################
+# If reading from frames use these options #
+############################################
+# None
+
+###################################################
+# If reading from shared memory use these options #
+###################################################
+SHMPartition: LLO_Online
+# Assumed duration of input frames in seconds
+InputFrameDuration: 1
+
+[OutputConfigurations]
+CompressionScheme: 6
+CompressionLevel: 3
+ChanPrefix: GDS-
+# Set to "None" if you do not want a channel suffix
+ChanSuffix: None
+# Data sink should be set to frames or lvshm
+DataSink: frames
+#################################################
+# If writing to shared memory use these options #
+#################################################
+OutputSHMPartition: LLO_hoft
+BufferMode: 2
+# Use this to approximate the frame size (in bytes) when writing to shared memory
+FrameSize: 405338
+NumBuffers: 10
+###############################################
+# If writing to frame files use these options #
+###############################################
+FrameType: L1_TEST
+
+[CalibrationConfigurations]
+IFO: L1
+# Set calibration mode to Full or Partial
+CalibrationMode: Partial
+ComputeCalibStateVector: Yes
+
+[DebuggingConfigurations]
+# If you want to write a pipeline graph, provide the graph name.  Otherwise, set name equal to None
+PipelineGraphFilename: None
+Verbose: Yes
+# Turn this on to write data presentation timestamps and real-time unix timestamps to file at the beginning and end of the pipeline, to measure latency
+TestLatency: No
+# Turn this on to compute transfer functions for the filters by comparing output data to input data
+TestFilters: No
+
+[TDCFConfigurations]
+#########################################################
+# Options related to time dependent correction  factors #
+#########################################################
+ComputeKappaTST: Yes
+ApplyKappaTST: No
+# Set this to have the \kappa_tst factors filter the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaTST: Yes
+
+ComputeKappaPU: No
+ApplyKappaPU: No
+# Set this to have the \kappa_pu factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors
+ApplyComplexKappaPU: No
+
+ComputeKappaPUM: Yes
+ApplyKappaPUM: No
+# Set this to have the \kappa_p factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaPUM: Yes
+
+ComputeKappaUIM: Yes
+ApplyKappaUIM: No
+# Set this to have the \kappa_u factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaUIM: Yes
+
+ComputeKappaC: Yes
+ApplyKappaC: Yes
+
+ComputeFcc: Yes
+ApplyFcc: Yes
+
+ComputeSRCQ: Yes
+ApplySRCQ: No
+
+ComputeFs: Yes
+ApplyFs: No
+
+###########################################
+# Options related to the coherence gating #
+###########################################
+UseCoherence: Yes
+CoherenceUncThreshold: 0.02
+# Amount of time used in front-end to compute coherence
+CoherenceTime: 130
+###################################################################
+# Options related to the computation configurations for the TDCFs #
+###################################################################
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+# Length in seconds of low-pass FIR filter used in demodulation of the calibration lines
+DemodulationFilterTime: 20
+# Time (in seconds) to smooth out \kappas with a median-like method
+MedianSmoothingTime: 128
+TDCFAveragingTime: 10
+#If set to yes, bad computed kappas will be replaced by the previous computed median in the running median array. Otherwise, they are replaced with the default value
+TDCFDefaultToMedian: Yes
+# If using Y-end Pcal, we need a minus sign, so set this to -1.0
+PcalSign: 1.0
+##################################################
+# Options related to updating cavity pole filter #
+##################################################
+# Duration of the Fcc filter in the time domain in seconds
+FccFilterDuration: 0.01
+# Number of seconds to average Fcc values before creating a new Fcc filter
+FccAveragingTime: 60 
+# Number of samples to be used when tapering old filter and ramping in new filter
+FccFilterTaperLength: 32768
+############################
+# Nominal values for TDCFs #
+############################
+ExpectedKappaTSTReal: 1.0
+ExpectedKappaTSTImag: 0.0
+ExpectedKappaPUMReal: 1.0
+ExpectedKappaPUMImag: 0.0
+ExpectedKappaUIMReal: 1.0
+ExpectedKappaUIMImag: 0.0
+ExpectedKappaPUReal: 1.0
+ExpectedKappaPUImag: 0.0
+ExpectedKappaC: 1.0
+ExpectedFs_Squared: 5.253 
+################################
+# Acceptable variance in TDCFs #
+################################
+KappaTSTRealVar: 0.2
+KappaTSTImagVar: 0.2
+KappaPURealVar: 0.2
+KappaPUImagVar: 0.2
+KappaPUMRealVar: 0.2
+KappaPUMImagVar: 0.2
+KappaUIMRealVar: 0.2
+KappaUIMImagVar: 0.2
+KappaCVar: 0.2
+FccVar: 50.0
+FsVar: 5.0
+SRCQInvMin: 0.0
+SRCQInvMax: 0.5
+#######################
+# EPICS records input #
+#######################
+# Set to Yes if EPICS records for TDCF computations should be read from filters file.  If set to No, they will be read from frames
+FactorsFromFiltersFile: No
+##############################################################################################
+# Updating Sensing and Actuation filters with all frequency-dependent corrections parameters #
+##############################################################################################
+# Length of time (in seconds) between when inverse-sensing FIR filter is updated
+SensingFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the sensing function are averaged before updating the filter
+SensingFilterAveragingTime: 1
+# Number of samples to be used when tapering old inverse sensing filter and ramping in new filter
+SensingFilterTaperLength: 32768
+# Length of time (in seconds) between when the actuation FIR filters are updated
+ActuationFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the actuation function are averaged before updating the filter
+ActuationFilterAveragingTime: 1
+# Number of samples to be used when tapering old actuation filters and ramping in new filters
+ActuationFilterTaperLength: 32768
+
+[ChannelNames]
+#############################
+# Calibration Channel Names #
+#############################
+DARMCtrlChannel: CAL-DARM_CTRL_DBL_DQ
+DARMErrChannel: CAL-DARM_ERR_DBL_DQ
+DeltaLTSTChannel: CAL-DELTAL_CTRL_TST_DBL_DQ
+DeltaLPUMChannel: CAL-DELTAL_CTRL_PUM_DBL_DQ
+DeltaLUIMChannel: CAL-DELTAL_CTRL_UIM_DBL_DQ
+DeltaLResChannel: CAL-DELTAL_RESIDUAL_DBL_DQ
+####################################
+# Data Quality Vector Channel Name #
+####################################
+LowNoiseStateChannel: GRD-IFO_READY
+HWInjChannel: CAL-INJ_STATUS_OUT_DQ
+ObsIntentChannel: GRD-IFO_INTENT
+FilterClockChannelList: GRD-ISC_LOCK_OK
+##################################
+# Calibration Line Channel Names #
+##################################
+DARMExcChannel: CAL-CS_LINE_SUM_DQ
+TSTExcChannel: SUS-ETMY_L3_CAL_LINE_OUT_DQ
+PUMExcChannel: SUS-ETMX_L2_CAL_LINE_OUT_DQ 
+UIMExcChannel: SUS-ETMX_L1_CAL_LINE_OUT_DQ
+PCALChannel: CAL-PCALY_RX_PD_OUT_DQ
+############################################
+# Calibration Line Frequency Channel Names #
+############################################
+DARMExcLineFreqChannel: CAL-CS_TDEP_DARM_LINE1_COMPARISON_OSC_FREQ
+TSTExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE3_COMPARISON_OSC_FREQ
+PUMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE2_COMPARISON_OSC_FREQ
+UIMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE1_COMPARISON_OSC_FREQ
+PCALLine1FreqChannel: CAL-CS_TDEP_PCAL_LINE1_COMPARISON_OSC_FREQ
+PcalLine1CorrRealChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_REAL
+PcalLine1CorrImagChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_IMAG
+PCALLine2FreqChannel: CAL-CS_TDEP_PCAL_LINE2_COMPARISON_OSC_FREQ
+PcalLine2CorrRealChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_REAL
+PcalLine2CorrImagChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_IMAG
+PCALLine3FreqChannel: CAL-CS_TDEP_PCAL_LINE3_COMPARISON_OSC_FREQ
+PcalLine3CorrRealChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_REAL
+PcalLine3CorrImagChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_IMAG
+PCALLine4FreqChannel: CAL-CS_TDEP_PCAL_LINE4_COMPARISON_OSC_FREQ
+PcalLine4CorrRealChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_REAL
+PcalLine4CorrImagChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_IMAG
+#######################################
+# Coherence Uncertainty Channel Names #
+#######################################
+CohUncSusLine1Channel: CAL-CS_TDEP_SUS_LINE1_UNCERTAINTY
+CohUncSusLine2Channel: CAL-CS_TDEP_SUS_LINE2_UNCERTAINTY
+CohUncSusLine3Channel: CAL-CS_TDEP_SUS_LINE3_UNCERTAINTY
+CohUncPcalyLine1Channel: CAL-CS_TDEP_PCAL_LINE1_UNCERTAINTY
+CohUncPcalyLine2Channel: CAL-CS_TDEP_PCAL_LINE2_UNCERTAINTY
+CohUncPcalyLine4Channel: CAL-CS_TDEP_PCAL_LINE4_UNCERTAINTY
+CohUncDARMLine1Channel: CAL-CS_TDEP_DARM_LINE1_UNCERTAINTY
+###################################
+# Noise Subtraction Channel Names #
+###################################
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract lines from h(t)
+# Semicolons separate channels to be handled separately (in series), and commas separate channels to be handled in parallel.
+#Set to None if no line witness channels are to be used
+LineWitnessChannelList: SUS-ETMX_L1_CAL_LINE_OUT_DQ;SUS-ETMX_L2_CAL_LINE_OUT_DQ;SUS-ETMY_L3_CAL_LINE_OUT_DQ;CAL-PCALY_RX_PD_OUT_DQ;PEM-EY_MAINSMON_EBAY_1_DQ
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract noise from h(t)
+# Set to None if no witness channels are to be used
+#WitnessChannelList: ASC-DHARD_P_OUT_DQ,ASC-DHARD_Y_OUT_DQ,ASC-CHARD_P_OUT_DQ,ASC-CHARD_Y_OUT_DQ,LSC-SRCL_IN1_DQ,LSC-MICH_IN1_DQ,LSC-PRCL_IN1_DQ
+WitnessChannelList: None
+# What channel should we use to gate the noise subtraction and 60-Hz line subtraction
+NoiseSubGateChannel: GRD-ISC_LOCK_OK
+###############################
+# EPICS Records Channel Names #
+###############################
+EP1RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_REAL
+EP1ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_IMAG
+EP2RealChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_REAL
+EP2ImagChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_IMAG
+EP3RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_REAL
+EP3ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_IMAG
+EP4RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_REAL
+EP4ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_IMAG
+EP5RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_REAL
+EP5ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_IMAG
+EP6RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_REAL
+EP6ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_IMAG
+EP7RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_REAL
+EP7ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_IMAG
+EP8RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_REAL
+EP8Imagchannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_IMAG
+EP9RealChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_REAL
+EP9ImagChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_IMAG
+EP10RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_REAL
+EP10ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_IMAG
+EP11RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_REAL
+EP11ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_IMAG
+EP12RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_REAL
+EP12ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_IMAG
+EP13RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_REAL
+EP13ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_IMAG
+EP14RealChannel: CAL-CS_TDEP_PCALY_LINE1_REF_A_USUM_REAL
+EP14ImagChannel: CAL-CS_TDEP_PCALY_LINE1_REF_A_USUM_IMAG
+EP15RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_REAL
+EP15Imagchannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_IMAG
+EP16RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_REAL
+EP16ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_IMAG
+EP17RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_REAL
+EP17ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_IMAG
+EP18RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_REAL
+EP18ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_IMAG
+EP19RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_REAL
+EP19ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_IMAG
+EP20RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_REAL
+EP20ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_IMAG
+EP21RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_REAL
+EP21ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_IMAG
+EP22RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_REAL
+EP22ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_IMAG
+EP23RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_REAL
+EP23ImagChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_IMAG
+EP24RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_REAL
+EP24ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_IMAG
+
+[SampleRates]
+# Sample rate at which to compute h(t)
+HoftSR: 16384
+# Sample rate at which to compute CALIB_STATE_VECTOR
+CalibStateSR: 16
+# Sample rate of control channel
+# Should be 16384 if using DARM_CTRL and 4096 if using DELTAL_CTRL 
+CtrlSR: 4096
+# Sample rate of low noise state channel
+LowNoiseSR: 16
+# Sample rate of HW injection channel
+HWInjSR: 16384
+# Sample rate of observation intent channel
+ObsIntentSR: 16
+# Sample rate list for chanels being used to trigger filter settling clock
+FilterClockSRList: 16
+# Sample rate of TST excitation channel
+TSTExcSR: 512
+# Sample rate of PUM excitation channel
+PUMExcSR: 512
+# Sample rate of UIM excitation channel
+UIMExcSR: 512
+# Sample rate of coherence channels
+CohSR: 16
+# Sample rate for the EPICS reference channels
+EPICSRefSR: 16
+# Sample rates at which transfer functions will be computed and witness channels will be filtered, given as a semicolon-separated list, e.g., 2048;2048;512;2048. This must be given if WitnessChannelList is not None, and it must be the same length.
+WitnessChannelSR: 512
+# Sample rates at which to compute and record TDCFs
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+
+[Bitmasks]
+ObsReadyBitmask: 1
+ObsIntentBitmask: 1
+FilterClockBitmaskList: 1
+CBCHWInjOffBitmask: 9
+BurstHWInjOffBitmask: 17
+DetCharHWInjOffBitmask: 33
+StochHWInjOffBitmask: 65
+NoiseSubGateBitmask: 1
+
+[PipelineConfigurations]
+BufferLength: 1.0
+FrequencyDomainFiltering: No
+Dewhitening: No
+# Latency of all filtering/averaging/median processes (other than calibration model filters) as a fraction of filter length. Value should be set between 0.0 and 1.0.
+FilterLatency: 0.0
+
+[DataCleaningConfigurations]
+# Remove the DC component from the residual and control channels before filtering
+RemoveDC: No
+# Subtract the calibration lines from the h(t) spectrum
+RemoveCalLines: No
+###############################################################
+# Options for running line subtraction using witness channels #
+###############################################################
+# Semicolon-separated list of comma-separated lists of frequencies (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqs: 15.1;15.7;16.9;16.3,434.9,1083.1;60.0,120.0,180.0,240.0,300.0
+# Time over which to take a median of transfer functions
+LineWitnessTFMedianTime: 128
+# Time over which to average transfer functions
+LineWitnessTFAveragingTime: 1
+# Semicolon-separated list of typical frequency fluctuations in lines being subtracted (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqVars: 0.0;0.0;0.0;0.0;0.02
+#######################################
+# Options for broadband noise removal #
+#######################################
+# The length in seconds of the fast Fourier transforms used to compute transfer functions between witness channels and h(t). The fft's are windowed with Hann windows and overlapped.
+WitnessChannelFFTTime: 4.0
+# The number of ffts to take before averaging the witness -> h(t) transfer functions calculation. The average is taken after the ratio h(f) / witness(f).
+NumWitnessFFTs: 1000
+# Sets the minimum number of FFTs necessary to produce the first transfer functions and clean data after data flow starts.
+MinWitnessFFTs: 300
+# The length in seconds of the filters applied to the witness channels before subtracting from h(t)
+WitnessFIRLength: 1.0
+# The frequency resolution of the filters applied to the witness channels before subtracting from h(t). It can be advantageous to lower the frequency resolution in order to average over excess noise.
+WitnessFrequencyResolution: 0.5
+# List of minima and maxima of frequency ranges where the Fourier transform of h(t) will be replaced by a straight line in the calculation of transfer functions between witness channels and h(t) for noise subtraction. Semicolons separate lists for different sets of witness channels. If no notches are desired, use zeros, e.g., \'0;0;0\'. Here is an example using the expected format: \'495.0,515.0,985.0,1015.0;59,60,119,121;0\' This can be useful, e.g., if there are loud lines in the signal that are not present in the witness channels.
+WitnessNotchFrequencies: 0
+# Cutoff frequencies for high-pass filters for witness channels
+WitnessHighPasses: 10
+# The amount of time after transfer functions between witness channels and h(t) are finished to begin the calculation of the next set of transfer functions
+WitnessTFUpdateTime: 4
+# If lock-loss lasts at least this many seconds, transfer functions will revert to those computed at the beginning of a lock stretch. Set to zero to disbale.
+CriticalLockLossTime: 1800
+# The amount of time to use to taper in newly computed FIR filters for witness channels being used for noise subtraction.
+WitnessFilterTaperTime: 2
+# If writing transfer functions to file, this sets the name. If transfer functions should not be written to file, this should be set to None
+WitnessTFFilename: None
+# Should the transfer function calculation use a median? If not, an average (mean) is used.
+WitnessTFUseMedian: Yes
+# Should transfer functions be computed on a fixed schedule, so that the output does not depend on start time?  This is useful for running jobs in parallel.  Otherwise, they are computed asap.
+WitnessTFParallelMode: No
+# When using parallel mode, how many seconds later should we shift the time when transfer functions start being computed from a multiple of the cycle period?
+WitnessTFTimeShift: 360
+# To write only one strain channel, and pick whichever is less noisy, set this option to 'Yes'. This way, if a problem arises with the noise subtraction it will not affect the output strain channel.
+PickCleanestStrainChannel: No
+# A half Hann window is used for transitions between cleaned and uncleaned data.  This is the length of that window in seconds.
+StrainChannelTransitionTime: 10.0
+###############################
+# Options for HOFT_CLEAN bits #
+###############################
+# The amount of data from h(t) and cleaned h(t) that is used to compute and compare the rms. This comparison between cleaned and uncleaned h(t) determines whether the HOFT_CLEAN bits of the calibration state vector are on or off.
+CleaningCheckRMSTime: 30.0
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMin: 15
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMax: 20
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMin: 20
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMax: 200
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_ASD_residual.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_ASD_residual.png
new file mode 100644
index 0000000000000000000000000000000000000000..015ef807164f92ecebca6d5c2aa85abd604c2090
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_ASD_residual.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_all_tf.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_all_tf.png
new file mode 100644
index 0000000000000000000000000000000000000000..eae4e476e88189a615fa2fc430c6211306d9eb37
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_all_tf.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_all_tf_ratio.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_all_tf_ratio.png
new file mode 100644
index 0000000000000000000000000000000000000000..ea72a904d79848a395cc979c4264368e7c38ec06
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_all_tf_ratio.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_all_tf_ratio_zoomed.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_all_tf_ratio_zoomed.png
new file mode 100644
index 0000000000000000000000000000000000000000..98948e5910b91589401faa04060e479dd6ab5938
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_all_tf_ratio_zoomed.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_calib_state_vector.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_calib_state_vector.png
new file mode 100644
index 0000000000000000000000000000000000000000..d4d53aecf5f21c9dd5e5de3ad91bcdb644d4425c
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_calib_state_vector.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_F_CC.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_F_CC.png
new file mode 100644
index 0000000000000000000000000000000000000000..9afb59c4e338b3f71c3c9fd90ae9cff936e9bedd
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_F_CC.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_F_S_SQUARED.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_F_S_SQUARED.png
new file mode 100644
index 0000000000000000000000000000000000000000..e1ebf128b03bc4dd467940d9cd7ffe54c5b82791
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_F_S_SQUARED.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_C.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_C.png
new file mode 100644
index 0000000000000000000000000000000000000000..fbe3df9a419af92f667914ddb681364e882b43ec
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_C.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..729002415ef6e8d17984c375de8d682cd8acd8b1
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_PUM_REAL.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_PUM_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..04c543dc2d6169f983d8944ba56306f42b6fa3b9
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_PUM_REAL.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..d4ab1bdf07e359eea24923412de3231ef6713b9e
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_TST_REAL.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_TST_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..3390ef942f17e4dc3baf86d70f16274b6b4ad9f1
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_TST_REAL.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..19988b4b34079a6ecff109e9f7233344ba7492b3
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_UIM_REAL.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_UIM_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..b83f5cbc5026e50cb70a6de8cce8082409d4d433
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_KAPPA_UIM_REAL.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_SRC_Q_INVERSE.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_SRC_Q_INVERSE.png
new file mode 100644
index 0000000000000000000000000000000000000000..36a5555354bd4751529351a924b837adb2c7e63d
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_plot_GDS-CALIB_SRC_Q_INVERSE.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_spectrum_comparison.png b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_spectrum_comparison.png
new file mode 100644
index 0000000000000000000000000000000000000000..304d41f7d07cb0de478cf86def816506726384c1
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_1237809936_1237810152_spectrum_comparison.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_hoft_GDS_frames.cache b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_hoft_GDS_frames.cache
new file mode 100644
index 0000000000000000000000000000000000000000..9c3e1e0f4eeaa5525d964c1f0641b8e15e80c0ad
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_hoft_GDS_frames.cache
@@ -0,0 +1,4 @@
+L L1_TEST 1237809920 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Frames/O3/L1/GDS/L-L1_TEST-1237809920-64.gwf
+L L1_TEST 1237809984 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Frames/O3/L1/GDS/L-L1_TEST-1237809984-64.gwf
+L L1_TEST 1237810048 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Frames/O3/L1/GDS/L-L1_TEST-1237810048-64.gwf
+L L1_TEST 1237810112 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Frames/O3/L1/GDS/L-L1_TEST-1237810112-64.gwf
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_raw_frames.cache b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_raw_frames.cache
new file mode 100644
index 0000000000000000000000000000000000000000..fc34aa9243596b250b6604ee8d340a6b73eef922
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/L1_raw_frames.cache
@@ -0,0 +1,9 @@
+L L1_R 1237809664 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237809664-64.gwf
+L L1_R 1237809728 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237809728-64.gwf
+L L1_R 1237809792 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237809792-64.gwf
+L L1_R 1237809856 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237809856-64.gwf
+L L1_R 1237809920 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237809920-64.gwf
+L L1_R 1237809984 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237809984-64.gwf
+L L1_R 1237810048 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237810048-64.gwf
+L L1_R 1237810112 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237810112-64.gwf
+L L1_R 1237810176 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12378/L-L1_R-1237810176-64.gwf
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.ASD_comparison b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.ASD_comparison
new file mode 100644
index 0000000000000000000000000000000000000000..e3d0cb79c8f55eabb046084fe9ae52ff9aba1e37
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.ASD_comparison
@@ -0,0 +1,8 @@
+all: ASD_comparison_plots
+
+ASD_comparison_plots: 
+	python ../../check_calibration/ASD_comparison_plots --ifo $(IFO)1 --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --raw-frame-cache $(IFO)1_raw_frames.cache --hoft-frame-cache $(IFO)1_hoft_GDS_frames.cache --calcs-channel-name CAL-DELTAL_EXTERNAL_DQ --analyze-additional-hoft-channel --additional-hoft-channel-name CAL-CFTD_DELTAL_EXTERNAL_DQ --additional-hoft-frame-cache $(IFO)1_raw_frames.cache
+
+clean: 
+	rm *.png 
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.all_tests b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.all_tests
new file mode 100644
index 0000000000000000000000000000000000000000..024bec7f208a561a0d6fb381583931269776f2ca
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.all_tests
@@ -0,0 +1,104 @@
+# This makefile can be used to run all of the tests instead of running them one by one.
+
+# Indicate IFO and observing run
+# Note: Make sure that there is no space after the L or H! 
+# Another note: Livingston cluster cannot run this for IFO = H. Make sure that the cluster you're using has the raw frames you want. 
+export IFO=L
+# OBSRUN inidcates where to look for filters files (e.g. O1, O2, O3, ER10, ER13, ER14, PreER13, PreER14)
+#export OBSRUN=O2
+export OBSRUN=O3
+
+# Set start and stop times for a short lock stretch
+export SHORT_START=1237809716
+export SHORT_END=1237810216
+# Set start and stop times for a longer stretch that spans a lock-unlock stretch
+export LONG_START = 1228350334
+export LONG_END = 1228352985
+export SHMRUNTIME=400
+
+# How much time does the calibraiton need to settle at the start and end?
+PLOT_WARMUP_TIME = 220
+PLOT_COOLDOWN_TIME = 64
+export SHORT_PLOT_START=$(shell echo $(SHORT_START) + $(PLOT_WARMUP_TIME) | bc)
+export LONG_PLOT_START=$(shell echo $(LONG_START) + $(PLOT_WARMUP_TIME) | bc)
+export SHORT_PLOT_END=$(shell echo $(SHORT_END) - $(PLOT_COOLDOWN_TIME) | bc) 
+export LONG_PLOT_END=$(shell echo $(LONG_END) - $(PLOT_COOLDOWN_TIME) | bc) 
+
+# Point to all of the .ini files for different configurations
+#export GDSCONFIGS=H1GDS_1232821094_gstlal-calibration-1-2-7.ini
+export GDSCONFIGS=test.ini 
+#export GDSCONFIGSNOKAPPAS=H1GDS_1228712903_test_no_kappas.ini 
+
+# Needed for writing pipeline graphs
+export GST_DEBUG_DUMP_DOT_DIR=.
+
+all: ASD_comparison statevector timeserieskappas response_function
+
+# Create frame cache files for raw, C00, C01, and C02 frames
+$(IFO)1_raw_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_R -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C00_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C00 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C01_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C01 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C02_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C02 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+
+# Calibrate GDS testing data
+$(IFO)1_hoft_GDS_frames.cache: $(IFO)1_raw_frames.cache filters framesdir
+	#gstlal_compute_strain --gps-start-time $(SHORT_START) --gps-end-time $(SHORT_END) --frame-cache $(IFO)1_raw_frames.cache --output-path Frames/$(OBSRUN)/$(IFO)1/GDS/ --frame-duration=64 --frames-per-file=1 --wings=0 --config-file $(GDSCONFIGS)
+	ls Frames/$(OBSRUN)/$(IFO)1/GDS/$(IFO)-$(IFO)1_TEST-*.gwf | lalapps_path2cache > $@
+
+# Calibrate GDS testing data with no kappas applied for response function test
+$(IFO)1_hoft_GDS_no_kappas_frames.cache: $(IFO)1_raw_frames.cache filters framesdir
+	#gstlal_compute_strain --gps-start-time $(SHORT_START) --gps-end-time $(SHORT_END) --frame-cache $(IFO)1_raw_frames.cache --output-path Frames/$(OBSRUN)/$(IFO)1/GDS/ --frame-duration=64 --frames-per-file=1 --wings=0 --config-file $(GDSCONFIGSNOKAPPAS)
+	#ls Frames/$(OBSRUN)/$(IFO)1/GDS/$(IFO)-$(IFO)1GDS_TEST_NOKAPPAS*.gwf | lalapps_path2cache > $@
+
+
+filters:
+	if [ -d Filters/$(OBSRUN)/GDSFilters ]; then \
+                svn up Filters/$(OBSRUN)/GDSFilters; \
+        else \
+                mkdir -p Filters/$(OBSRUN); \
+                cd Filters/$(OBSRUN); \
+                svn co https://svn.ligo.caltech.edu/svn/aligocalibration/trunk/Runs/$(OBSRUN)/GDSFilters; \
+        fi
+
+framesdir:
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/easy_raw
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/GDS
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/DCS
+
+
+response_function: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_raw_frames.cache
+	make -f Makefile.response_function
+
+ASD_comparison: $(IFO)1_raw_frames.cache $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.ASD_comparison
+
+statevector: $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.statevector
+
+timeserieskappas:  $(IFO)1_hoft_GDS_frames.cache 
+	make -f Makefile.timeserieskappas
+
+pcal_to_darm: $(IFO)1_raw_frames.cache $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.pcal_to_darm
+
+# FIXME: This is seg faulting for me right now
+calib_version_comparison: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_C02_frames.cache
+	make -f Makefile.calib_version_comparison
+
+# Need to clean up this clean command
+clean: 
+	rm -rf Frames/
+	rm -rf Filters/
+	rm *.p*
+	rm *.dot
+	rm *.txt
+
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.calib_version_comparison b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.calib_version_comparison
new file mode 100644
index 0000000000000000000000000000000000000000..43ee130b15d97ca52b649fc784cd17864b0c15b4
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.calib_version_comparison
@@ -0,0 +1,8 @@
+all: GDS_over_C02
+
+GDS_over_C02: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_C02_frames.cache
+	python ../../check_calibration/plot_transfer_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --numerator-frame-cache-list $(IFO)1_hoft_GDS_frames.cache --denominator-frame-cache $(IFO)1_C02_frames.cache --numerator-channel-list GDS-CALIB_STRAIN --denominator-channel-name DCS-CALIB_STRAIN_C02 --denominator-name 'C02' --numerator-name 'GDS_TEST --magnitude-min 0.7 --magnitude-max 1.3 --phase-min -20.0 --phase-max 20.0 --labels 'GDS Test / C02 Transfer Function'
+
+clean:
+	*.png
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.latency b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.latency
new file mode 100644
index 0000000000000000000000000000000000000000..03cbc521ef02be6cfe141b100531d599757df60a
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.latency
@@ -0,0 +1,8 @@
+all: latency_test
+
+latency_test: $(IFO)1_hoft_GDS_SHM_frames.cache
+	python ../../check_calibration/latency_plot.py --intime-file gstlal_compute_strain_timestamps_in.txt --outtime-file gstlal_compute_strain_timestamps_out.txt --plot-filename-prefix $(IFO)1GDS_latency --plot-title '$(IFO)1 Calibration Latency vs Time'
+
+clean:
+	rm *.png
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.lines_ratio b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.lines_ratio
new file mode 100644
index 0000000000000000000000000000000000000000..ae6edaaae15e37bb514de8ab2a4935a06bb3f277
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.lines_ratio
@@ -0,0 +1,8 @@
+all: lines_ratio_DCS
+
+lines_ratio_DCS: $(IFO)1_hoft_DCS_frames.cache
+	python ../../check_calibration/demod_ratio_timeseries.py --ifo $(IFO)1 --gps-end-time $(SHORT_PLOT_END) --gps-start-time $(SHORT_PLOT_START) --denominator-frame-cache $(IFO)1_hoft_DCS_frames.cache --numerator-frame-cache $(IFO)1_hoft_DCS_frames.cache --denominator-channel-name 'DCS-CALIB_STRAIN' --numerator-channel-name 'DCS-CALIB_STRAIN_CLEAN' --frequencies '35.9,36.7,331.9,1083.7;60,120,180' --magnitude-ranges '0.0,0.1;0.0,1.0' --phase-ranges '-180.0,180.0;-180.0,180.0' --plot-titles '$(IFO)1 Calibration Line Subtraction;$(IFO)1 Power Mains Line Subtraction'
+
+clean:
+	rm *.gwf *.cache *.png *.txt
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.noise_subtraction_tf b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.noise_subtraction_tf
new file mode 100644
index 0000000000000000000000000000000000000000..b26758c95a0e294128e3c878650640305306c9c0
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.noise_subtraction_tf
@@ -0,0 +1,8 @@
+all: noise_subtraction_tf_DCS
+
+noise_subtraction_tf_DCS: $(IFO)1_hoft_DCS_frames.cache
+	python ../../check_calibration/plot_transfer_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --numerator-frame-cache $(IFO)1_hoft_DCS_frames.cache --denominator-frame-cache $(IFO)1_hoft_DCS_frames.cache --numerator-channel-name DCS-CALIB_STRAIN_CLEAN --denominator-channel-name DCS-CALIB_STRAIN --magnitude-min 0.0 --magnitude-max 1.5 --phase-min -20.0 --phase-max 20.0 --plot-title 'Noise Subtraction Transfer Function'
+
+clean:
+	rm *.gwf *.cache *.png *.txt
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.response_function b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.response_function
new file mode 100644
index 0000000000000000000000000000000000000000..c6ff7de1d85e42b5b039ce3c55d964211287ac3f
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.response_function
@@ -0,0 +1,11 @@
+all: GDS_response_function_bode_plot
+
+FILTERS_FILE = /home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1237770582_filter_tests/L1/Filters/O3/GDSFilters/L1GDS_1237770582.npz
+
+GDS_response_function_bode_plot: 
+	python ../../check_calibration/response_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --dt 6.103515625e-05 --ifo $(IFO)1 --hoft-frames-cache $(IFO)1_hoft_GDS_frames.cache --raw-frames-cache $(IFO)1_raw_frames.cache --response-file $(FILTERS_FILE) 
+
+
+clean: 
+	rm *.pdf
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.statevector b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.statevector
new file mode 100644
index 0000000000000000000000000000000000000000..5733f7338eaed970ea286d6177244e6cf182f926
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.statevector
@@ -0,0 +1,9 @@
+all: calib_state_vector_plot
+
+calib_state_vector_plot: 
+	python ../../check_calibration/statevector_plot.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --hoft-frames-cache $(IFO)1_hoft_GDS_frames.cache
+
+
+clean: 
+	rm *.pdf
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.timeserieskappas b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.timeserieskappas
new file mode 100644
index 0000000000000000000000000000000000000000..a9f77efb0495937fe45920c6ef4a7cefa4efb12e
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/Makefile.timeserieskappas
@@ -0,0 +1,31 @@
+CHANNEL1 = CALIB_KAPPA_C
+CHANNEL2 = CALIB_KAPPA_PUM_REAL
+CHANNEL3 = CALIB_KAPPA_TST_REAL
+CHANNEL4 = CALIB_F_CC
+CHANNEL5 = CALIB_KAPPA_PUM_IMAGINARY
+CHANNEL6 = CALIB_KAPPA_TST_IMAGINARY
+CHANNEL7 = CALIB_KAPPA_UIM_REAL
+CHANNEL8 = CALIB_KAPPA_UIM_IMAGINARY
+CHANNEL9 = CALIB_SRC_Q_INVERSE
+CHANNEL10 = CALIB_F_S_SQUARED
+
+FECHANNEL1 = CS_TDEP_KAPPA_C_OUTPUT
+FECHANNEL2 = CS_TDEP_KAPPA_PUM_REAL_OUTPUT
+FECHANNEL3 = CS_TDEP_KAPPA_TST_REAL_OUTPUT
+FECHANNEL4 = CS_TDEP_F_C_OUTPUT
+FECHANNEL5 = CS_TDEP_KAPPA_PUM_IMAG_OUTPUT
+FECHANNEL6 = CS_TDEP_KAPPA_TST_IMAG_OUTPUT
+FECHANNEL7 = CS_TDEP_KAPPA_UIM_REAL_OUTPUT
+FECHANNEL8 = CS_TDEP_KAPPA_UIM_IMAG_OUTPUT
+FECHANNEL9 = CS_TDEP_Q_S_OUTPUT
+FECHANNEL10 = CS_TDEP_F_S_OUTPUT
+
+all: GDS_Time_Series_of_Kappas
+
+GDS_Time_Series_of_Kappas:
+	python ../../check_calibration/timeserieskappas.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --channel-list 'GDS-$(CHANNEL1)','GDS-$(CHANNEL2)','GDS-$(CHANNEL3)','GDS-$(CHANNEL4)','GDS-$(CHANNEL5)','GDS-$(CHANNEL6)','GDS-$(CHANNEL7)','GDS-$(CHANNEL8)','GDS-$(CHANNEL9)','GDS-$(CHANNEL10)' --frame-cache $(IFO)1_hoft_GDS_frames.cache --ifo $(IFO)1 --front-end-channel-list 'CAL-$(FECHANNEL1)','CAL-$(FECHANNEL2)','CAL-$(FECHANNEL3)','CAL-$(FECHANNEL4)','CAL-$(FECHANNEL5)','CAL-$(FECHANNEL6)','CAL-$(FECHANNEL7)','CAL-$(FECHANNEL8)','CAL-$(FECHANNEL9)','CAL-$(FECHANNEL10)'
+
+
+clean:
+	rm *.png
+
diff --git a/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/test.ini b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/test.ini
new file mode 100644
index 0000000000000000000000000000000000000000..faf204b2953ec917357c7338902189da1bcd602e
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1237839206_filter_tests/L1_act_delay_update/test.ini
@@ -0,0 +1,404 @@
+[InputConfigurations]
+# Filters file containing calibration FIR filters
+FiltersFileName: L1GDS_1237839206.npz
+# Data source should be set to frames or lvshm
+DataSource: frames
+FileChecksum: No
+# Right now, SkipBadFiles needs to be off when reading from frames
+SkipBadFiles: No
+############################################
+# If reading from frames use these options #
+############################################
+# None
+
+###################################################
+# If reading from shared memory use these options #
+###################################################
+SHMPartition: LLO_Online
+# Assumed duration of input frames in seconds
+InputFrameDuration: 1
+
+[OutputConfigurations]
+CompressionScheme: 6
+CompressionLevel: 3
+ChanPrefix: GDS-
+# Set to "None" if you do not want a channel suffix
+ChanSuffix: None
+# Data sink should be set to frames or lvshm
+DataSink: frames
+#################################################
+# If writing to shared memory use these options #
+#################################################
+OutputSHMPartition: LLO_hoft
+BufferMode: 2
+# Use this to approximate the frame size (in bytes) when writing to shared memory
+FrameSize: 405338
+NumBuffers: 10
+###############################################
+# If writing to frame files use these options #
+###############################################
+FrameType: L1_TEST
+
+[CalibrationConfigurations]
+IFO: L1
+# Set calibration mode to Full or Partial
+CalibrationMode: Partial
+ComputeCalibStateVector: Yes
+
+[DebuggingConfigurations]
+# If you want to write a pipeline graph, provide the graph name.  Otherwise, set name equal to None
+PipelineGraphFilename: None
+Verbose: Yes
+# Turn this on to write data presentation timestamps and real-time unix timestamps to file at the beginning and end of the pipeline, to measure latency
+TestLatency: No
+# Turn this on to compute transfer functions for the filters by comparing output data to input data
+TestFilters: No
+
+[TDCFConfigurations]
+#########################################################
+# Options related to time dependent correction  factors #
+#########################################################
+ComputeKappaTST: Yes
+ApplyKappaTST: No
+# Set this to have the \kappa_tst factors filter the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaTST: Yes
+
+ComputeKappaPU: No
+ApplyKappaPU: No
+# Set this to have the \kappa_pu factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors
+ApplyComplexKappaPU: No
+
+ComputeKappaPUM: Yes
+ApplyKappaPUM: No
+# Set this to have the \kappa_p factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaPUM: Yes
+
+ComputeKappaUIM: Yes
+ApplyKappaUIM: No
+# Set this to have the \kappa_u factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaUIM: Yes
+
+ComputeKappaC: Yes
+ApplyKappaC: Yes
+
+ComputeFcc: Yes
+ApplyFcc: Yes
+
+ComputeSRCQ: Yes
+ApplySRCQ: No
+
+ComputeFs: Yes
+ApplyFs: No
+
+###########################################
+# Options related to the coherence gating #
+###########################################
+UseCoherence: Yes
+CoherenceUncThreshold: 0.02
+# Amount of time used in front-end to compute coherence
+CoherenceTime: 130
+###################################################################
+# Options related to the computation configurations for the TDCFs #
+###################################################################
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+# Length in seconds of low-pass FIR filter used in demodulation of the calibration lines
+DemodulationFilterTime: 20
+# Time (in seconds) to smooth out \kappas with a median-like method
+MedianSmoothingTime: 128
+TDCFAveragingTime: 10
+#If set to yes, bad computed kappas will be replaced by the previous computed median in the running median array. Otherwise, they are replaced with the default value
+TDCFDefaultToMedian: Yes
+# If using Y-end Pcal, we need a minus sign, so set this to -1.0
+PcalSign: 1.0
+##################################################
+# Options related to updating cavity pole filter #
+##################################################
+# Duration of the Fcc filter in the time domain in seconds
+FccFilterDuration: 0.01
+# Number of seconds to average Fcc values before creating a new Fcc filter
+FccAveragingTime: 60 
+# Number of samples to be used when tapering old filter and ramping in new filter
+FccFilterTaperLength: 32768
+############################
+# Nominal values for TDCFs #
+############################
+ExpectedKappaTSTReal: 1.0
+ExpectedKappaTSTImag: 0.0
+ExpectedKappaPUMReal: 1.0
+ExpectedKappaPUMImag: 0.0
+ExpectedKappaUIMReal: 1.0
+ExpectedKappaUIMImag: 0.0
+ExpectedKappaPUReal: 1.0
+ExpectedKappaPUImag: 0.0
+ExpectedKappaC: 1.0
+ExpectedFs_Squared: 5.253 
+################################
+# Acceptable variance in TDCFs #
+################################
+KappaTSTRealVar: 0.2
+KappaTSTImagVar: 0.2
+KappaPURealVar: 0.2
+KappaPUImagVar: 0.2
+KappaPUMRealVar: 0.2
+KappaPUMImagVar: 0.2
+KappaUIMRealVar: 0.2
+KappaUIMImagVar: 0.2
+KappaCVar: 0.2
+FccVar: 50.0
+FsVar: 5.0
+SRCQInvMin: 0.0
+SRCQInvMax: 0.5
+#######################
+# EPICS records input #
+#######################
+# Set to Yes if EPICS records for TDCF computations should be read from filters file.  If set to No, they will be read from frames
+FactorsFromFiltersFile: No
+##############################################################################################
+# Updating Sensing and Actuation filters with all frequency-dependent corrections parameters #
+##############################################################################################
+# Length of time (in seconds) between when inverse-sensing FIR filter is updated
+SensingFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the sensing function are averaged before updating the filter
+SensingFilterAveragingTime: 1
+# Number of samples to be used when tapering old inverse sensing filter and ramping in new filter
+SensingFilterTaperLength: 32768
+# Length of time (in seconds) between when the actuation FIR filters are updated
+ActuationFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the actuation function are averaged before updating the filter
+ActuationFilterAveragingTime: 1
+# Number of samples to be used when tapering old actuation filters and ramping in new filters
+ActuationFilterTaperLength: 32768
+
+[ChannelNames]
+#############################
+# Calibration Channel Names #
+#############################
+DARMCtrlChannel: CAL-DARM_CTRL_DBL_DQ
+DARMErrChannel: CAL-DARM_ERR_DBL_DQ
+DeltaLTSTChannel: CAL-DELTAL_CTRL_TST_DBL_DQ
+DeltaLPUMChannel: CAL-DELTAL_CTRL_PUM_DBL_DQ
+DeltaLUIMChannel: CAL-DELTAL_CTRL_UIM_DBL_DQ
+DeltaLResChannel: CAL-DELTAL_RESIDUAL_DBL_DQ
+####################################
+# Data Quality Vector Channel Name #
+####################################
+LowNoiseStateChannel: GRD-IFO_READY
+HWInjChannel: CAL-INJ_STATUS_OUT_DQ
+ObsIntentChannel: GRD-IFO_INTENT
+FilterClockChannelList: GRD-ISC_LOCK_OK
+##################################
+# Calibration Line Channel Names #
+##################################
+DARMExcChannel: CAL-CS_LINE_SUM_DQ
+TSTExcChannel: SUS-ETMY_L3_CAL_LINE_OUT_DQ
+PUMExcChannel: SUS-ETMX_L2_CAL_LINE_OUT_DQ 
+UIMExcChannel: SUS-ETMX_L1_CAL_LINE_OUT_DQ
+PCALChannel: CAL-PCALY_RX_PD_OUT_DQ
+############################################
+# Calibration Line Frequency Channel Names #
+############################################
+DARMExcLineFreqChannel: CAL-CS_TDEP_DARM_LINE1_COMPARISON_OSC_FREQ
+TSTExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE3_COMPARISON_OSC_FREQ
+PUMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE2_COMPARISON_OSC_FREQ
+UIMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE1_COMPARISON_OSC_FREQ
+PCALLine1FreqChannel: CAL-CS_TDEP_PCAL_LINE1_COMPARISON_OSC_FREQ
+PcalLine1CorrRealChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_REAL
+PcalLine1CorrImagChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_IMAG
+PCALLine2FreqChannel: CAL-CS_TDEP_PCAL_LINE2_COMPARISON_OSC_FREQ
+PcalLine2CorrRealChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_REAL
+PcalLine2CorrImagChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_IMAG
+PCALLine3FreqChannel: CAL-CS_TDEP_PCAL_LINE3_COMPARISON_OSC_FREQ
+PcalLine3CorrRealChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_REAL
+PcalLine3CorrImagChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_IMAG
+PCALLine4FreqChannel: CAL-CS_TDEP_PCAL_LINE4_COMPARISON_OSC_FREQ
+PcalLine4CorrRealChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_REAL
+PcalLine4CorrImagChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_IMAG
+#######################################
+# Coherence Uncertainty Channel Names #
+#######################################
+CohUncSusLine1Channel: CAL-CS_TDEP_SUS_LINE1_UNCERTAINTY
+CohUncSusLine2Channel: CAL-CS_TDEP_SUS_LINE2_UNCERTAINTY
+CohUncSusLine3Channel: CAL-CS_TDEP_SUS_LINE3_UNCERTAINTY
+CohUncPcalyLine1Channel: CAL-CS_TDEP_PCAL_LINE1_UNCERTAINTY
+CohUncPcalyLine2Channel: CAL-CS_TDEP_PCAL_LINE2_UNCERTAINTY
+CohUncPcalyLine4Channel: CAL-CS_TDEP_PCAL_LINE4_UNCERTAINTY
+CohUncDARMLine1Channel: CAL-CS_TDEP_DARM_LINE1_UNCERTAINTY
+###################################
+# Noise Subtraction Channel Names #
+###################################
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract lines from h(t)
+# Semicolons separate channels to be handled separately (in series), and commas separate channels to be handled in parallel.
+#Set to None if no line witness channels are to be used
+LineWitnessChannelList: SUS-ETMX_L1_CAL_LINE_OUT_DQ;SUS-ETMX_L2_CAL_LINE_OUT_DQ;SUS-ETMY_L3_CAL_LINE_OUT_DQ;CAL-PCALY_RX_PD_OUT_DQ;PEM-EY_MAINSMON_EBAY_1_DQ
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract noise from h(t)
+# Set to None if no witness channels are to be used
+#WitnessChannelList: ASC-DHARD_P_OUT_DQ,ASC-DHARD_Y_OUT_DQ,ASC-CHARD_P_OUT_DQ,ASC-CHARD_Y_OUT_DQ,LSC-SRCL_IN1_DQ,LSC-MICH_IN1_DQ,LSC-PRCL_IN1_DQ
+WitnessChannelList: None
+# What channel should we use to gate the noise subtraction and 60-Hz line subtraction
+NoiseSubGateChannel: GRD-ISC_LOCK_OK
+###############################
+# EPICS Records Channel Names #
+###############################
+EP1RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_REAL
+EP1ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_IMAG
+EP2RealChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_REAL
+EP2ImagChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_IMAG
+EP3RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_REAL
+EP3ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_IMAG
+EP4RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_REAL
+EP4ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_IMAG
+EP5RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_REAL
+EP5ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_IMAG
+EP6RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_REAL
+EP6ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_IMAG
+EP7RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_REAL
+EP7ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_IMAG
+EP8RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_REAL
+EP8Imagchannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_IMAG
+EP9RealChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_REAL
+EP9ImagChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_IMAG
+EP10RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_REAL
+EP10ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_IMAG
+EP11RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_REAL
+EP11ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_IMAG
+EP12RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_REAL
+EP12ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_IMAG
+EP13RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_REAL
+EP13ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_IMAG
+EP14RealChannel: CAL-CS_TDEP_PCALY_LINE1_REF_A_USUM_REAL
+EP14ImagChannel: CAL-CS_TDEP_PCALY_LINE1_REF_A_USUM_IMAG
+EP15RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_REAL
+EP15Imagchannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_IMAG
+EP16RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_REAL
+EP16ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_IMAG
+EP17RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_REAL
+EP17ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_IMAG
+EP18RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_REAL
+EP18ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_IMAG
+EP19RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_REAL
+EP19ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_IMAG
+EP20RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_REAL
+EP20ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_IMAG
+EP21RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_REAL
+EP21ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_IMAG
+EP22RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_REAL
+EP22ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_IMAG
+EP23RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_REAL
+EP23ImagChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_IMAG
+EP24RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_REAL
+EP24ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_IMAG
+
+[SampleRates]
+# Sample rate at which to compute h(t)
+HoftSR: 16384
+# Sample rate at which to compute CALIB_STATE_VECTOR
+CalibStateSR: 16
+# Sample rate of control channel
+# Should be 16384 if using DARM_CTRL and 4096 if using DELTAL_CTRL 
+CtrlSR: 4096
+# Sample rate of low noise state channel
+LowNoiseSR: 16
+# Sample rate of HW injection channel
+HWInjSR: 16384
+# Sample rate of observation intent channel
+ObsIntentSR: 16
+# Sample rate list for chanels being used to trigger filter settling clock
+FilterClockSRList: 16
+# Sample rate of TST excitation channel
+TSTExcSR: 512
+# Sample rate of PUM excitation channel
+PUMExcSR: 512
+# Sample rate of UIM excitation channel
+UIMExcSR: 512
+# Sample rate of coherence channels
+CohSR: 16
+# Sample rate for the EPICS reference channels
+EPICSRefSR: 16
+# Sample rates at which transfer functions will be computed and witness channels will be filtered, given as a semicolon-separated list, e.g., 2048;2048;512;2048. This must be given if WitnessChannelList is not None, and it must be the same length.
+WitnessChannelSR: 512
+# Sample rates at which to compute and record TDCFs
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+
+[Bitmasks]
+ObsReadyBitmask: 1
+ObsIntentBitmask: 1
+FilterClockBitmaskList: 1
+CBCHWInjOffBitmask: 9
+BurstHWInjOffBitmask: 17
+DetCharHWInjOffBitmask: 33
+StochHWInjOffBitmask: 65
+NoiseSubGateBitmask: 1
+
+[PipelineConfigurations]
+BufferLength: 1.0
+FrequencyDomainFiltering: No
+Dewhitening: No
+# Latency of all filtering/averaging/median processes (other than calibration model filters) as a fraction of filter length. Value should be set between 0.0 and 1.0.
+FilterLatency: 0.0
+
+[DataCleaningConfigurations]
+# Remove the DC component from the residual and control channels before filtering
+RemoveDC: No
+# Subtract the calibration lines from the h(t) spectrum
+RemoveCalLines: No
+###############################################################
+# Options for running line subtraction using witness channels #
+###############################################################
+# Semicolon-separated list of comma-separated lists of frequencies (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqs: 15.1;15.7;16.9;16.3,434.9,1083.1;60.0,120.0,180.0,240.0,300.0
+# Time over which to take a median of transfer functions
+LineWitnessTFMedianTime: 128
+# Time over which to average transfer functions
+LineWitnessTFAveragingTime: 1
+# Semicolon-separated list of typical frequency fluctuations in lines being subtracted (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqVars: 0.0;0.0;0.0;0.0;0.02
+#######################################
+# Options for broadband noise removal #
+#######################################
+# The length in seconds of the fast Fourier transforms used to compute transfer functions between witness channels and h(t). The fft's are windowed with Hann windows and overlapped.
+WitnessChannelFFTTime: 4.0
+# The number of ffts to take before averaging the witness -> h(t) transfer functions calculation. The average is taken after the ratio h(f) / witness(f).
+NumWitnessFFTs: 1000
+# Sets the minimum number of FFTs necessary to produce the first transfer functions and clean data after data flow starts.
+MinWitnessFFTs: 300
+# The length in seconds of the filters applied to the witness channels before subtracting from h(t)
+WitnessFIRLength: 1.0
+# The frequency resolution of the filters applied to the witness channels before subtracting from h(t). It can be advantageous to lower the frequency resolution in order to average over excess noise.
+WitnessFrequencyResolution: 0.5
+# List of minima and maxima of frequency ranges where the Fourier transform of h(t) will be replaced by a straight line in the calculation of transfer functions between witness channels and h(t) for noise subtraction. Semicolons separate lists for different sets of witness channels. If no notches are desired, use zeros, e.g., \'0;0;0\'. Here is an example using the expected format: \'495.0,515.0,985.0,1015.0;59,60,119,121;0\' This can be useful, e.g., if there are loud lines in the signal that are not present in the witness channels.
+WitnessNotchFrequencies: 0
+# Cutoff frequencies for high-pass filters for witness channels
+WitnessHighPasses: 10
+# The amount of time after transfer functions between witness channels and h(t) are finished to begin the calculation of the next set of transfer functions
+WitnessTFUpdateTime: 4
+# If lock-loss lasts at least this many seconds, transfer functions will revert to those computed at the beginning of a lock stretch. Set to zero to disbale.
+CriticalLockLossTime: 1800
+# The amount of time to use to taper in newly computed FIR filters for witness channels being used for noise subtraction.
+WitnessFilterTaperTime: 2
+# If writing transfer functions to file, this sets the name. If transfer functions should not be written to file, this should be set to None
+WitnessTFFilename: None
+# Should the transfer function calculation use a median? If not, an average (mean) is used.
+WitnessTFUseMedian: Yes
+# Should transfer functions be computed on a fixed schedule, so that the output does not depend on start time?  This is useful for running jobs in parallel.  Otherwise, they are computed asap.
+WitnessTFParallelMode: No
+# When using parallel mode, how many seconds later should we shift the time when transfer functions start being computed from a multiple of the cycle period?
+WitnessTFTimeShift: 360
+# To write only one strain channel, and pick whichever is less noisy, set this option to 'Yes'. This way, if a problem arises with the noise subtraction it will not affect the output strain channel.
+PickCleanestStrainChannel: No
+# A half Hann window is used for transitions between cleaned and uncleaned data.  This is the length of that window in seconds.
+StrainChannelTransitionTime: 10.0
+###############################
+# Options for HOFT_CLEAN bits #
+###############################
+# The amount of data from h(t) and cleaned h(t) that is used to compute and compare the rms. This comparison between cleaned and uncleaned h(t) determines whether the HOFT_CLEAN bits of the calibration state vector are on or off.
+CleaningCheckRMSTime: 30.0
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMin: 15
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMax: 20
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMin: 20
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMax: 200
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/.Makefile.all_tests.swp b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/.Makefile.all_tests.swp
new file mode 100644
index 0000000000000000000000000000000000000000..afb016c862b5743b877d63d7c8da9467ca9421ba
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/.Makefile.all_tests.swp differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_ASD_residual.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_ASD_residual.png
new file mode 100644
index 0000000000000000000000000000000000000000..86796561edd00c3b952011e7bad930c6ac2ed3fc
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_ASD_residual.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_all_tf.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_all_tf.png
new file mode 100644
index 0000000000000000000000000000000000000000..ef92d6c3e8932feb2f507f3eb78106b26cf28d1a
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_all_tf.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_all_tf_ratio.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_all_tf_ratio.png
new file mode 100644
index 0000000000000000000000000000000000000000..e4efe55fe6430343fcf337580894f4003c6ff105
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_all_tf_ratio.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_all_tf_ratio_zoomed.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_all_tf_ratio_zoomed.png
new file mode 100644
index 0000000000000000000000000000000000000000..8a3628b347cddcab8482e1a26339b3a6a916485d
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_all_tf_ratio_zoomed.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_calib_state_vector.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_calib_state_vector.png
new file mode 100644
index 0000000000000000000000000000000000000000..a51e80b6b10e94dd673c3dde65a70bead35b05e7
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_calib_state_vector.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_F_CC.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_F_CC.png
new file mode 100644
index 0000000000000000000000000000000000000000..2fb13207d6e4b649d7bca4bb92407fc5e852aad8
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_F_CC.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_F_S_SQUARED.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_F_S_SQUARED.png
new file mode 100644
index 0000000000000000000000000000000000000000..fbbfaee8f69b97d82f975faae91be607cb34cdb6
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_F_S_SQUARED.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_C.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_C.png
new file mode 100644
index 0000000000000000000000000000000000000000..9813051b6b9a52b7cb0d8c2f08663964bd41da7d
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_C.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ffa0c7f8a332d6de1f3580aac213b049a4ff5fc
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_PUM_REAL.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_PUM_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..1299321188b51eb5f63be71a07048bb75d8edf58
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_PUM_REAL.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..45038cc5a739a89fa26d9c641209d82666660836
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_TST_REAL.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_TST_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..7e571ef85a9163f42e5cccdd4814d2345232effb
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_TST_REAL.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..be9284f5e72608079b7c45e41f7dddeb4a14f5d1
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_UIM_REAL.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_UIM_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e04f9e4e99f4ded1e388c3e6c5fa7a590f8f0fd
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_KAPPA_UIM_REAL.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_SRC_Q_INVERSE.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_SRC_Q_INVERSE.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ed913f97e15cb3f8b5fccd4a0524d707cdd087e
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_plot_GDS-CALIB_SRC_Q_INVERSE.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_spectrum_comparison.png b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_spectrum_comparison.png
new file mode 100644
index 0000000000000000000000000000000000000000..5994a75c52fb32c793172f10b4e50dd25e72fa17
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_1238020040_1238020256_spectrum_comparison.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_hoft_GDS_frames.cache b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_hoft_GDS_frames.cache
new file mode 100644
index 0000000000000000000000000000000000000000..cba5c76a6056a194adb88f8904f91bc9ba1dbdd1
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_hoft_GDS_frames.cache
@@ -0,0 +1,4 @@
+L L1_TEST 1238020032 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238020032-64.gwf
+L L1_TEST 1238020096 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238020096-64.gwf
+L L1_TEST 1238020160 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238020160-64.gwf
+L L1_TEST 1238020224 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238020224-64.gwf
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_hoft_GDS_no_kappas_frames.cache b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_hoft_GDS_no_kappas_frames.cache
new file mode 100644
index 0000000000000000000000000000000000000000..13413ff058e46d5fe5c01e4bfb8e3571bf8f0cf9
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_hoft_GDS_no_kappas_frames.cache
@@ -0,0 +1,4 @@
+L L1_TEST_NOKAPPAS 1238020032 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238020032-64.gwf
+L L1_TEST_NOKAPPAS 1238020096 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238020096-64.gwf
+L L1_TEST_NOKAPPAS 1238020160 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238020160-64.gwf
+L L1_TEST_NOKAPPAS 1238020224 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238020224-64.gwf
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_raw_frames.cache b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_raw_frames.cache
new file mode 100644
index 0000000000000000000000000000000000000000..a0f451a4d564b7ab18ca53445b9f721a97857baf
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/L1_raw_frames.cache
@@ -0,0 +1,9 @@
+L L1_R 1238019776 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12380/L-L1_R-1238019776-64.gwf
+L L1_R 1238019840 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12380/L-L1_R-1238019840-64.gwf
+L L1_R 1238019904 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12380/L-L1_R-1238019904-64.gwf
+L L1_R 1238019968 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12380/L-L1_R-1238019968-64.gwf
+L L1_R 1238020032 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12380/L-L1_R-1238020032-64.gwf
+L L1_R 1238020096 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12380/L-L1_R-1238020096-64.gwf
+L L1_R 1238020160 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12380/L-L1_R-1238020160-64.gwf
+L L1_R 1238020224 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12380/L-L1_R-1238020224-64.gwf
+L L1_R 1238020288 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12380/L-L1_R-1238020288-64.gwf
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.ASD_comparison b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.ASD_comparison
new file mode 100644
index 0000000000000000000000000000000000000000..e3d0cb79c8f55eabb046084fe9ae52ff9aba1e37
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.ASD_comparison
@@ -0,0 +1,8 @@
+all: ASD_comparison_plots
+
+ASD_comparison_plots: 
+	python ../../check_calibration/ASD_comparison_plots --ifo $(IFO)1 --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --raw-frame-cache $(IFO)1_raw_frames.cache --hoft-frame-cache $(IFO)1_hoft_GDS_frames.cache --calcs-channel-name CAL-DELTAL_EXTERNAL_DQ --analyze-additional-hoft-channel --additional-hoft-channel-name CAL-CFTD_DELTAL_EXTERNAL_DQ --additional-hoft-frame-cache $(IFO)1_raw_frames.cache
+
+clean: 
+	rm *.png 
+
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.all_tests b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.all_tests
new file mode 100644
index 0000000000000000000000000000000000000000..4b5fe6edb39589eb1e1f790789eae4068311f3c9
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.all_tests
@@ -0,0 +1,104 @@
+# This makefile can be used to run all of the tests instead of running them one by one.
+
+# Indicate IFO and observing run
+# Note: Make sure that there is no space after the L or H! 
+# Another note: Livingston cluster cannot run this for IFO = H. Make sure that the cluster you're using has the raw frames you want. 
+export IFO=L
+# OBSRUN inidcates where to look for filters files (e.g. O1, O2, O3, ER10, ER13, ER14, PreER13, PreER14)
+#export OBSRUN=O2
+export OBSRUN=O3
+
+# Set start and stop times for a short lock stretch
+export SHORT_START=1238019820
+export SHORT_END=1238020320
+# Set start and stop times for a longer stretch that spans a lock-unlock stretch
+export LONG_START = 1228350334
+export LONG_END = 1228352985
+export SHMRUNTIME=400
+
+# How much time does the calibraiton need to settle at the start and end?
+PLOT_WARMUP_TIME = 220
+PLOT_COOLDOWN_TIME = 64
+export SHORT_PLOT_START=$(shell echo $(SHORT_START) + $(PLOT_WARMUP_TIME) | bc)
+export LONG_PLOT_START=$(shell echo $(LONG_START) + $(PLOT_WARMUP_TIME) | bc)
+export SHORT_PLOT_END=$(shell echo $(SHORT_END) - $(PLOT_COOLDOWN_TIME) | bc) 
+export LONG_PLOT_END=$(shell echo $(LONG_END) - $(PLOT_COOLDOWN_TIME) | bc) 
+
+# Point to all of the .ini files for different configurations
+#export GDSCONFIGS=H1GDS_1232821094_gstlal-calibration-1-2-7.ini
+export GDSCONFIGS=test.ini 
+export GDSCONFIGSNOKAPPAS=test_nokappas.ini 
+
+# Needed for writing pipeline graphs
+export GST_DEBUG_DUMP_DOT_DIR=.
+
+all: ASD_comparison statevector timeserieskappas response_function
+
+# Create frame cache files for raw, C00, C01, and C02 frames
+$(IFO)1_raw_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_R -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C00_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C00 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C01_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C01 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C02_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C02 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+
+# Calibrate GDS testing data
+$(IFO)1_hoft_GDS_frames.cache: $(IFO)1_raw_frames.cache filters framesdir
+	#gstlal_compute_strain --gps-start-time $(SHORT_START) --gps-end-time $(SHORT_END) --frame-cache $(IFO)1_raw_frames.cache --output-path Frames/$(OBSRUN)/$(IFO)1/GDS/ --frame-duration=64 --frames-per-file=1 --wings=0 --config-file $(GDSCONFIGS)
+	ls Frames/$(OBSRUN)/$(IFO)1/GDS/$(IFO)-$(IFO)1_TEST-*.gwf | lalapps_path2cache > $@
+
+# Calibrate GDS testing data with no kappas applied for response function test
+$(IFO)1_hoft_GDS_no_kappas_frames.cache: $(IFO)1_raw_frames.cache filters framesdir
+	gstlal_compute_strain --gps-start-time $(SHORT_START) --gps-end-time $(SHORT_END) --frame-cache $(IFO)1_raw_frames.cache --output-path Frames/$(OBSRUN)/$(IFO)1/GDS/ --frame-duration=64 --frames-per-file=1 --wings=0 --config-file $(GDSCONFIGSNOKAPPAS)
+	ls Frames/$(OBSRUN)/$(IFO)1/GDS/$(IFO)-$(IFO)1_TEST_NOKAPPAS*.gwf | lalapps_path2cache > $@
+
+
+filters:
+	if [ -d Filters/$(OBSRUN)/GDSFilters ]; then \
+                svn up Filters/$(OBSRUN)/GDSFilters; \
+        else \
+                mkdir -p Filters/$(OBSRUN); \
+                cd Filters/$(OBSRUN); \
+                svn co https://svn.ligo.caltech.edu/svn/aligocalibration/trunk/Runs/$(OBSRUN)/GDSFilters; \
+        fi
+
+framesdir:
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/easy_raw
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/GDS
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/DCS
+
+
+response_function: $(IFO)1_hoft_GDS_no_kappas_frames.cache $(IFO)1_raw_frames.cache
+	make -f Makefile.response_function
+
+ASD_comparison: $(IFO)1_raw_frames.cache $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.ASD_comparison
+
+statevector: $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.statevector
+
+timeserieskappas:  $(IFO)1_hoft_GDS_frames.cache 
+	make -f Makefile.timeserieskappas
+
+pcal_to_darm: $(IFO)1_raw_frames.cache $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.pcal_to_darm
+
+# FIXME: This is seg faulting for me right now
+calib_version_comparison: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_C02_frames.cache
+	make -f Makefile.calib_version_comparison
+
+# Need to clean up this clean command
+clean: 
+	rm -rf Frames/
+	rm -rf Filters/
+	rm *.p*
+	rm *.dot
+	rm *.txt
+
+
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.calib_version_comparison b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.calib_version_comparison
new file mode 100644
index 0000000000000000000000000000000000000000..43ee130b15d97ca52b649fc784cd17864b0c15b4
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.calib_version_comparison
@@ -0,0 +1,8 @@
+all: GDS_over_C02
+
+GDS_over_C02: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_C02_frames.cache
+	python ../../check_calibration/plot_transfer_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --numerator-frame-cache-list $(IFO)1_hoft_GDS_frames.cache --denominator-frame-cache $(IFO)1_C02_frames.cache --numerator-channel-list GDS-CALIB_STRAIN --denominator-channel-name DCS-CALIB_STRAIN_C02 --denominator-name 'C02' --numerator-name 'GDS_TEST --magnitude-min 0.7 --magnitude-max 1.3 --phase-min -20.0 --phase-max 20.0 --labels 'GDS Test / C02 Transfer Function'
+
+clean:
+	*.png
+
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.latency b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.latency
new file mode 100644
index 0000000000000000000000000000000000000000..03cbc521ef02be6cfe141b100531d599757df60a
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.latency
@@ -0,0 +1,8 @@
+all: latency_test
+
+latency_test: $(IFO)1_hoft_GDS_SHM_frames.cache
+	python ../../check_calibration/latency_plot.py --intime-file gstlal_compute_strain_timestamps_in.txt --outtime-file gstlal_compute_strain_timestamps_out.txt --plot-filename-prefix $(IFO)1GDS_latency --plot-title '$(IFO)1 Calibration Latency vs Time'
+
+clean:
+	rm *.png
+
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.lines_ratio b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.lines_ratio
new file mode 100644
index 0000000000000000000000000000000000000000..ae6edaaae15e37bb514de8ab2a4935a06bb3f277
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.lines_ratio
@@ -0,0 +1,8 @@
+all: lines_ratio_DCS
+
+lines_ratio_DCS: $(IFO)1_hoft_DCS_frames.cache
+	python ../../check_calibration/demod_ratio_timeseries.py --ifo $(IFO)1 --gps-end-time $(SHORT_PLOT_END) --gps-start-time $(SHORT_PLOT_START) --denominator-frame-cache $(IFO)1_hoft_DCS_frames.cache --numerator-frame-cache $(IFO)1_hoft_DCS_frames.cache --denominator-channel-name 'DCS-CALIB_STRAIN' --numerator-channel-name 'DCS-CALIB_STRAIN_CLEAN' --frequencies '35.9,36.7,331.9,1083.7;60,120,180' --magnitude-ranges '0.0,0.1;0.0,1.0' --phase-ranges '-180.0,180.0;-180.0,180.0' --plot-titles '$(IFO)1 Calibration Line Subtraction;$(IFO)1 Power Mains Line Subtraction'
+
+clean:
+	rm *.gwf *.cache *.png *.txt
+
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.noise_subtraction_tf b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.noise_subtraction_tf
new file mode 100644
index 0000000000000000000000000000000000000000..b26758c95a0e294128e3c878650640305306c9c0
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.noise_subtraction_tf
@@ -0,0 +1,8 @@
+all: noise_subtraction_tf_DCS
+
+noise_subtraction_tf_DCS: $(IFO)1_hoft_DCS_frames.cache
+	python ../../check_calibration/plot_transfer_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --numerator-frame-cache $(IFO)1_hoft_DCS_frames.cache --denominator-frame-cache $(IFO)1_hoft_DCS_frames.cache --numerator-channel-name DCS-CALIB_STRAIN_CLEAN --denominator-channel-name DCS-CALIB_STRAIN --magnitude-min 0.0 --magnitude-max 1.5 --phase-min -20.0 --phase-max 20.0 --plot-title 'Noise Subtraction Transfer Function'
+
+clean:
+	rm *.gwf *.cache *.png *.txt
+
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.response_function b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.response_function
new file mode 100644
index 0000000000000000000000000000000000000000..1712324ef7c037381766486b12745de0b9c04ec2
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.response_function
@@ -0,0 +1,11 @@
+all: GDS_response_function_bode_plot
+
+FILTERS_FILE = /home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Filters/O3/GDSFilters/L1GDS_1238028838.npz
+
+GDS_response_function_bode_plot: 
+	python ../../check_calibration/response_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --dt 6.103515625e-05 --ifo $(IFO)1 --hoft-frames-cache $(IFO)1_hoft_GDS_no_kappas_frames.cache --raw-frames-cache $(IFO)1_raw_frames.cache --response-file $(FILTERS_FILE) 
+
+
+clean: 
+	rm *.pdf
+
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.statevector b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.statevector
new file mode 100644
index 0000000000000000000000000000000000000000..5733f7338eaed970ea286d6177244e6cf182f926
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.statevector
@@ -0,0 +1,9 @@
+all: calib_state_vector_plot
+
+calib_state_vector_plot: 
+	python ../../check_calibration/statevector_plot.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --hoft-frames-cache $(IFO)1_hoft_GDS_frames.cache
+
+
+clean: 
+	rm *.pdf
+
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.timeserieskappas b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.timeserieskappas
new file mode 100644
index 0000000000000000000000000000000000000000..a9f77efb0495937fe45920c6ef4a7cefa4efb12e
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Makefile.timeserieskappas
@@ -0,0 +1,31 @@
+CHANNEL1 = CALIB_KAPPA_C
+CHANNEL2 = CALIB_KAPPA_PUM_REAL
+CHANNEL3 = CALIB_KAPPA_TST_REAL
+CHANNEL4 = CALIB_F_CC
+CHANNEL5 = CALIB_KAPPA_PUM_IMAGINARY
+CHANNEL6 = CALIB_KAPPA_TST_IMAGINARY
+CHANNEL7 = CALIB_KAPPA_UIM_REAL
+CHANNEL8 = CALIB_KAPPA_UIM_IMAGINARY
+CHANNEL9 = CALIB_SRC_Q_INVERSE
+CHANNEL10 = CALIB_F_S_SQUARED
+
+FECHANNEL1 = CS_TDEP_KAPPA_C_OUTPUT
+FECHANNEL2 = CS_TDEP_KAPPA_PUM_REAL_OUTPUT
+FECHANNEL3 = CS_TDEP_KAPPA_TST_REAL_OUTPUT
+FECHANNEL4 = CS_TDEP_F_C_OUTPUT
+FECHANNEL5 = CS_TDEP_KAPPA_PUM_IMAG_OUTPUT
+FECHANNEL6 = CS_TDEP_KAPPA_TST_IMAG_OUTPUT
+FECHANNEL7 = CS_TDEP_KAPPA_UIM_REAL_OUTPUT
+FECHANNEL8 = CS_TDEP_KAPPA_UIM_IMAG_OUTPUT
+FECHANNEL9 = CS_TDEP_Q_S_OUTPUT
+FECHANNEL10 = CS_TDEP_F_S_OUTPUT
+
+all: GDS_Time_Series_of_Kappas
+
+GDS_Time_Series_of_Kappas:
+	python ../../check_calibration/timeserieskappas.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --channel-list 'GDS-$(CHANNEL1)','GDS-$(CHANNEL2)','GDS-$(CHANNEL3)','GDS-$(CHANNEL4)','GDS-$(CHANNEL5)','GDS-$(CHANNEL6)','GDS-$(CHANNEL7)','GDS-$(CHANNEL8)','GDS-$(CHANNEL9)','GDS-$(CHANNEL10)' --frame-cache $(IFO)1_hoft_GDS_frames.cache --ifo $(IFO)1 --front-end-channel-list 'CAL-$(FECHANNEL1)','CAL-$(FECHANNEL2)','CAL-$(FECHANNEL3)','CAL-$(FECHANNEL4)','CAL-$(FECHANNEL5)','CAL-$(FECHANNEL6)','CAL-$(FECHANNEL7)','CAL-$(FECHANNEL8)','CAL-$(FECHANNEL9)','CAL-$(FECHANNEL10)'
+
+
+clean:
+	rm *.png
+
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/test.ini b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/test.ini
new file mode 100644
index 0000000000000000000000000000000000000000..02d71cec693556020a45d1fca520843b428380fb
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/test.ini
@@ -0,0 +1,404 @@
+[InputConfigurations]
+# Filters file containing calibration FIR filters
+FiltersFileName: /home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Filters/O3/GDSFilters/L1GDS_1238028838.npz
+# Data source should be set to frames or lvshm
+DataSource: frames
+FileChecksum: No
+# Right now, SkipBadFiles needs to be off when reading from frames
+SkipBadFiles: No
+############################################
+# If reading from frames use these options #
+############################################
+# None
+
+###################################################
+# If reading from shared memory use these options #
+###################################################
+SHMPartition: LLO_Online
+# Assumed duration of input frames in seconds
+InputFrameDuration: 1
+
+[OutputConfigurations]
+CompressionScheme: 6
+CompressionLevel: 3
+ChanPrefix: GDS-
+# Set to "None" if you do not want a channel suffix
+ChanSuffix: None
+# Data sink should be set to frames or lvshm
+DataSink: frames
+#################################################
+# If writing to shared memory use these options #
+#################################################
+OutputSHMPartition: LLO_hoft
+BufferMode: 2
+# Use this to approximate the frame size (in bytes) when writing to shared memory
+FrameSize: 405338
+NumBuffers: 10
+###############################################
+# If writing to frame files use these options #
+###############################################
+FrameType: L1_TEST
+
+[CalibrationConfigurations]
+IFO: L1
+# Set calibration mode to Full or Partial
+CalibrationMode: Partial
+ComputeCalibStateVector: Yes
+
+[DebuggingConfigurations]
+# If you want to write a pipeline graph, provide the graph name.  Otherwise, set name equal to None
+PipelineGraphFilename: None
+Verbose: Yes
+# Turn this on to write data presentation timestamps and real-time unix timestamps to file at the beginning and end of the pipeline, to measure latency
+TestLatency: No
+# Turn this on to compute transfer functions for the filters by comparing output data to input data
+TestFilters: No
+
+[TDCFConfigurations]
+#########################################################
+# Options related to time dependent correction  factors #
+#########################################################
+ComputeKappaTST: Yes
+ApplyKappaTST: No
+# Set this to have the \kappa_tst factors filter the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaTST: Yes
+
+ComputeKappaPU: No
+ApplyKappaPU: No
+# Set this to have the \kappa_pu factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors
+ApplyComplexKappaPU: No
+
+ComputeKappaPUM: Yes
+ApplyKappaPUM: No
+# Set this to have the \kappa_p factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaPUM: Yes
+
+ComputeKappaUIM: Yes
+ApplyKappaUIM: No
+# Set this to have the \kappa_u factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaUIM: Yes
+
+ComputeKappaC: Yes
+ApplyKappaC: Yes
+
+ComputeFcc: Yes
+ApplyFcc: Yes
+
+ComputeSRCQ: Yes
+ApplySRCQ: No
+
+ComputeFs: Yes
+ApplyFs: No
+
+###########################################
+# Options related to the coherence gating #
+###########################################
+UseCoherence: Yes
+CoherenceUncThreshold: 0.02
+# Amount of time used in front-end to compute coherence
+CoherenceTime: 130
+###################################################################
+# Options related to the computation configurations for the TDCFs #
+###################################################################
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+# Length in seconds of low-pass FIR filter used in demodulation of the calibration lines
+DemodulationFilterTime: 20
+# Time (in seconds) to smooth out \kappas with a median-like method
+MedianSmoothingTime: 128
+TDCFAveragingTime: 10
+#If set to yes, bad computed kappas will be replaced by the previous computed median in the running median array. Otherwise, they are replaced with the default value
+TDCFDefaultToMedian: Yes
+# If using Y-end Pcal, we need a minus sign, so set this to -1.0
+PcalSign: 1.0
+##################################################
+# Options related to updating cavity pole filter #
+##################################################
+# Duration of the Fcc filter in the time domain in seconds
+FccFilterDuration: 0.01
+# Number of seconds to average Fcc values before creating a new Fcc filter
+FccAveragingTime: 60 
+# Number of samples to be used when tapering old filter and ramping in new filter
+FccFilterTaperLength: 32768
+############################
+# Nominal values for TDCFs #
+############################
+ExpectedKappaTSTReal: 1.0
+ExpectedKappaTSTImag: 0.0
+ExpectedKappaPUMReal: 1.0
+ExpectedKappaPUMImag: 0.0
+ExpectedKappaUIMReal: 1.0
+ExpectedKappaUIMImag: 0.0
+ExpectedKappaPUReal: 1.0
+ExpectedKappaPUImag: 0.0
+ExpectedKappaC: 1.0
+ExpectedFs_Squared: 5.253 
+################################
+# Acceptable variance in TDCFs #
+################################
+KappaTSTRealVar: 0.2
+KappaTSTImagVar: 0.2
+KappaPURealVar: 0.2
+KappaPUImagVar: 0.2
+KappaPUMRealVar: 0.2
+KappaPUMImagVar: 0.2
+KappaUIMRealVar: 0.2
+KappaUIMImagVar: 0.2
+KappaCVar: 0.2
+FccVar: 50.0
+FsVar: 5.0
+SRCQInvMin: 0.0
+SRCQInvMax: 0.5
+#######################
+# EPICS records input #
+#######################
+# Set to Yes if EPICS records for TDCF computations should be read from filters file.  If set to No, they will be read from frames
+FactorsFromFiltersFile: No
+##############################################################################################
+# Updating Sensing and Actuation filters with all frequency-dependent corrections parameters #
+##############################################################################################
+# Length of time (in seconds) between when inverse-sensing FIR filter is updated
+SensingFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the sensing function are averaged before updating the filter
+SensingFilterAveragingTime: 1
+# Number of samples to be used when tapering old inverse sensing filter and ramping in new filter
+SensingFilterTaperLength: 32768
+# Length of time (in seconds) between when the actuation FIR filters are updated
+ActuationFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the actuation function are averaged before updating the filter
+ActuationFilterAveragingTime: 1
+# Number of samples to be used when tapering old actuation filters and ramping in new filters
+ActuationFilterTaperLength: 32768
+
+[ChannelNames]
+#############################
+# Calibration Channel Names #
+#############################
+DARMCtrlChannel: CAL-DARM_CTRL_DBL_DQ
+DARMErrChannel: CAL-DARM_ERR_DBL_DQ
+DeltaLTSTChannel: CAL-DELTAL_CTRL_TST_DBL_DQ
+DeltaLPUMChannel: CAL-DELTAL_CTRL_PUM_DBL_DQ
+DeltaLUIMChannel: CAL-DELTAL_CTRL_UIM_DBL_DQ
+DeltaLResChannel: CAL-DELTAL_RESIDUAL_DBL_DQ
+####################################
+# Data Quality Vector Channel Name #
+####################################
+LowNoiseStateChannel: GRD-IFO_READY
+HWInjChannel: CAL-INJ_STATUS_OUT_DQ
+ObsIntentChannel: GRD-IFO_INTENT
+FilterClockChannelList: GRD-ISC_LOCK_OK
+##################################
+# Calibration Line Channel Names #
+##################################
+DARMExcChannel: CAL-CS_LINE_SUM_DQ
+TSTExcChannel: SUS-ETMY_L3_CAL_LINE_OUT_DQ
+PUMExcChannel: SUS-ETMX_L2_CAL_LINE_OUT_DQ 
+UIMExcChannel: SUS-ETMX_L1_CAL_LINE_OUT_DQ
+PCALChannel: CAL-PCALY_RX_PD_OUT_DQ
+############################################
+# Calibration Line Frequency Channel Names #
+############################################
+DARMExcLineFreqChannel: CAL-CS_TDEP_DARM_LINE1_COMPARISON_OSC_FREQ
+TSTExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE3_COMPARISON_OSC_FREQ
+PUMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE2_COMPARISON_OSC_FREQ
+UIMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE1_COMPARISON_OSC_FREQ
+PCALLine1FreqChannel: CAL-CS_TDEP_PCAL_LINE1_COMPARISON_OSC_FREQ
+PcalLine1CorrRealChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_REAL
+PcalLine1CorrImagChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_IMAG
+PCALLine2FreqChannel: CAL-CS_TDEP_PCAL_LINE2_COMPARISON_OSC_FREQ
+PcalLine2CorrRealChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_REAL
+PcalLine2CorrImagChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_IMAG
+PCALLine3FreqChannel: CAL-CS_TDEP_PCAL_LINE3_COMPARISON_OSC_FREQ
+PcalLine3CorrRealChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_REAL
+PcalLine3CorrImagChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_IMAG
+PCALLine4FreqChannel: CAL-CS_TDEP_PCAL_LINE4_COMPARISON_OSC_FREQ
+PcalLine4CorrRealChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_REAL
+PcalLine4CorrImagChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_IMAG
+#######################################
+# Coherence Uncertainty Channel Names #
+#######################################
+CohUncSusLine1Channel: CAL-CS_TDEP_SUS_LINE1_UNCERTAINTY
+CohUncSusLine2Channel: CAL-CS_TDEP_SUS_LINE2_UNCERTAINTY
+CohUncSusLine3Channel: CAL-CS_TDEP_SUS_LINE3_UNCERTAINTY
+CohUncPcalyLine1Channel: CAL-CS_TDEP_PCAL_LINE1_UNCERTAINTY
+CohUncPcalyLine2Channel: CAL-CS_TDEP_PCAL_LINE2_UNCERTAINTY
+CohUncPcalyLine4Channel: CAL-CS_TDEP_PCAL_LINE4_UNCERTAINTY
+CohUncDARMLine1Channel: CAL-CS_TDEP_DARM_LINE1_UNCERTAINTY
+###################################
+# Noise Subtraction Channel Names #
+###################################
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract lines from h(t)
+# Semicolons separate channels to be handled separately (in series), and commas separate channels to be handled in parallel.
+#Set to None if no line witness channels are to be used
+LineWitnessChannelList: SUS-ETMX_L1_CAL_LINE_OUT_DQ;SUS-ETMX_L2_CAL_LINE_OUT_DQ;SUS-ETMY_L3_CAL_LINE_OUT_DQ;CAL-PCALY_RX_PD_OUT_DQ;PEM-EY_MAINSMON_EBAY_1_DQ
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract noise from h(t)
+# Set to None if no witness channels are to be used
+#WitnessChannelList: ASC-DHARD_P_OUT_DQ,ASC-DHARD_Y_OUT_DQ,ASC-CHARD_P_OUT_DQ,ASC-CHARD_Y_OUT_DQ,LSC-SRCL_IN1_DQ,LSC-MICH_IN1_DQ,LSC-PRCL_IN1_DQ
+WitnessChannelList: None
+# What channel should we use to gate the noise subtraction and 60-Hz line subtraction
+NoiseSubGateChannel: GRD-ISC_LOCK_OK
+###############################
+# EPICS Records Channel Names #
+###############################
+EP1RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_REAL
+EP1ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_IMAG
+EP2RealChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_REAL
+EP2ImagChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_IMAG
+EP3RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_REAL
+EP3ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_IMAG
+EP4RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_REAL
+EP4ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_IMAG
+EP5RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_REAL
+EP5ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_IMAG
+EP6RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_REAL
+EP6ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_IMAG
+EP7RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_REAL
+EP7ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_IMAG
+EP8RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_REAL
+EP8Imagchannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_IMAG
+EP9RealChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_REAL
+EP9ImagChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_IMAG
+EP10RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_REAL
+EP10ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_IMAG
+EP11RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_REAL
+EP11ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_IMAG
+EP12RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_REAL
+EP12ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_IMAG
+EP13RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_REAL
+EP13ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_IMAG
+EP14RealChannel: CAL-CS_TDEP_PCALY_LINE1_REF_A_USUM_REAL
+EP14ImagChannel: CAL-CS_TDEP_PCALY_LINE1_REF_A_USUM_IMAG
+EP15RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_REAL
+EP15Imagchannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_IMAG
+EP16RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_REAL
+EP16ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_IMAG
+EP17RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_REAL
+EP17ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_IMAG
+EP18RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_REAL
+EP18ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_IMAG
+EP19RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_REAL
+EP19ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_IMAG
+EP20RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_REAL
+EP20ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_IMAG
+EP21RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_REAL
+EP21ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_IMAG
+EP22RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_REAL
+EP22ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_IMAG
+EP23RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_REAL
+EP23ImagChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_IMAG
+EP24RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_REAL
+EP24ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_IMAG
+
+[SampleRates]
+# Sample rate at which to compute h(t)
+HoftSR: 16384
+# Sample rate at which to compute CALIB_STATE_VECTOR
+CalibStateSR: 16
+# Sample rate of control channel
+# Should be 16384 if using DARM_CTRL and 4096 if using DELTAL_CTRL 
+CtrlSR: 4096
+# Sample rate of low noise state channel
+LowNoiseSR: 16
+# Sample rate of HW injection channel
+HWInjSR: 16384
+# Sample rate of observation intent channel
+ObsIntentSR: 16
+# Sample rate list for chanels being used to trigger filter settling clock
+FilterClockSRList: 16
+# Sample rate of TST excitation channel
+TSTExcSR: 512
+# Sample rate of PUM excitation channel
+PUMExcSR: 512
+# Sample rate of UIM excitation channel
+UIMExcSR: 512
+# Sample rate of coherence channels
+CohSR: 16
+# Sample rate for the EPICS reference channels
+EPICSRefSR: 16
+# Sample rates at which transfer functions will be computed and witness channels will be filtered, given as a semicolon-separated list, e.g., 2048;2048;512;2048. This must be given if WitnessChannelList is not None, and it must be the same length.
+WitnessChannelSR: 512
+# Sample rates at which to compute and record TDCFs
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+
+[Bitmasks]
+ObsReadyBitmask: 1
+ObsIntentBitmask: 1
+FilterClockBitmaskList: 1
+CBCHWInjOffBitmask: 9
+BurstHWInjOffBitmask: 17
+DetCharHWInjOffBitmask: 33
+StochHWInjOffBitmask: 65
+NoiseSubGateBitmask: 1
+
+[PipelineConfigurations]
+BufferLength: 1.0
+FrequencyDomainFiltering: No
+Dewhitening: No
+# Latency of all filtering/averaging/median processes (other than calibration model filters) as a fraction of filter length. Value should be set between 0.0 and 1.0.
+FilterLatency: 0.0
+
+[DataCleaningConfigurations]
+# Remove the DC component from the residual and control channels before filtering
+RemoveDC: No
+# Subtract the calibration lines from the h(t) spectrum
+RemoveCalLines: No
+###############################################################
+# Options for running line subtraction using witness channels #
+###############################################################
+# Semicolon-separated list of comma-separated lists of frequencies (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqs: 15.1;15.7;16.9;16.3,434.9,1083.1;60.0,120.0,180.0,240.0,300.0
+# Time over which to take a median of transfer functions
+LineWitnessTFMedianTime: 128
+# Time over which to average transfer functions
+LineWitnessTFAveragingTime: 1
+# Semicolon-separated list of typical frequency fluctuations in lines being subtracted (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqVars: 0.0;0.0;0.0;0.0;0.02
+#######################################
+# Options for broadband noise removal #
+#######################################
+# The length in seconds of the fast Fourier transforms used to compute transfer functions between witness channels and h(t). The fft's are windowed with Hann windows and overlapped.
+WitnessChannelFFTTime: 4.0
+# The number of ffts to take before averaging the witness -> h(t) transfer functions calculation. The average is taken after the ratio h(f) / witness(f).
+NumWitnessFFTs: 1000
+# Sets the minimum number of FFTs necessary to produce the first transfer functions and clean data after data flow starts.
+MinWitnessFFTs: 300
+# The length in seconds of the filters applied to the witness channels before subtracting from h(t)
+WitnessFIRLength: 1.0
+# The frequency resolution of the filters applied to the witness channels before subtracting from h(t). It can be advantageous to lower the frequency resolution in order to average over excess noise.
+WitnessFrequencyResolution: 0.5
+# List of minima and maxima of frequency ranges where the Fourier transform of h(t) will be replaced by a straight line in the calculation of transfer functions between witness channels and h(t) for noise subtraction. Semicolons separate lists for different sets of witness channels. If no notches are desired, use zeros, e.g., \'0;0;0\'. Here is an example using the expected format: \'495.0,515.0,985.0,1015.0;59,60,119,121;0\' This can be useful, e.g., if there are loud lines in the signal that are not present in the witness channels.
+WitnessNotchFrequencies: 0
+# Cutoff frequencies for high-pass filters for witness channels
+WitnessHighPasses: 10
+# The amount of time after transfer functions between witness channels and h(t) are finished to begin the calculation of the next set of transfer functions
+WitnessTFUpdateTime: 4
+# If lock-loss lasts at least this many seconds, transfer functions will revert to those computed at the beginning of a lock stretch. Set to zero to disbale.
+CriticalLockLossTime: 1800
+# The amount of time to use to taper in newly computed FIR filters for witness channels being used for noise subtraction.
+WitnessFilterTaperTime: 2
+# If writing transfer functions to file, this sets the name. If transfer functions should not be written to file, this should be set to None
+WitnessTFFilename: None
+# Should the transfer function calculation use a median? If not, an average (mean) is used.
+WitnessTFUseMedian: Yes
+# Should transfer functions be computed on a fixed schedule, so that the output does not depend on start time?  This is useful for running jobs in parallel.  Otherwise, they are computed asap.
+WitnessTFParallelMode: No
+# When using parallel mode, how many seconds later should we shift the time when transfer functions start being computed from a multiple of the cycle period?
+WitnessTFTimeShift: 360
+# To write only one strain channel, and pick whichever is less noisy, set this option to 'Yes'. This way, if a problem arises with the noise subtraction it will not affect the output strain channel.
+PickCleanestStrainChannel: No
+# A half Hann window is used for transitions between cleaned and uncleaned data.  This is the length of that window in seconds.
+StrainChannelTransitionTime: 10.0
+###############################
+# Options for HOFT_CLEAN bits #
+###############################
+# The amount of data from h(t) and cleaned h(t) that is used to compute and compare the rms. This comparison between cleaned and uncleaned h(t) determines whether the HOFT_CLEAN bits of the calibration state vector are on or off.
+CleaningCheckRMSTime: 30.0
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMin: 15
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMax: 20
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMin: 20
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMax: 200
diff --git a/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/test_nokappas.ini b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/test_nokappas.ini
new file mode 100644
index 0000000000000000000000000000000000000000..05fd6a96279e16da3192f865eac8b26e24fa4288
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/test_nokappas.ini
@@ -0,0 +1,404 @@
+[InputConfigurations]
+# Filters file containing calibration FIR filters
+FiltersFileName: /home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238028838_filter_tests/L1/Filters/O3/GDSFilters/L1GDS_1238028838.npz
+# Data source should be set to frames or lvshm
+DataSource: frames
+FileChecksum: No
+# Right now, SkipBadFiles needs to be off when reading from frames
+SkipBadFiles: No
+############################################
+# If reading from frames use these options #
+############################################
+# None
+
+###################################################
+# If reading from shared memory use these options #
+###################################################
+SHMPartition: LLO_Online
+# Assumed duration of input frames in seconds
+InputFrameDuration: 1
+
+[OutputConfigurations]
+CompressionScheme: 6
+CompressionLevel: 3
+ChanPrefix: GDS-
+# Set to "None" if you do not want a channel suffix
+ChanSuffix: None
+# Data sink should be set to frames or lvshm
+DataSink: frames
+#################################################
+# If writing to shared memory use these options #
+#################################################
+OutputSHMPartition: LLO_hoft
+BufferMode: 2
+# Use this to approximate the frame size (in bytes) when writing to shared memory
+FrameSize: 405338
+NumBuffers: 10
+###############################################
+# If writing to frame files use these options #
+###############################################
+FrameType: L1_TEST_NOKAPPAS
+
+[CalibrationConfigurations]
+IFO: L1
+# Set calibration mode to Full or Partial
+CalibrationMode: Partial
+ComputeCalibStateVector: Yes
+
+[DebuggingConfigurations]
+# If you want to write a pipeline graph, provide the graph name.  Otherwise, set name equal to None
+PipelineGraphFilename: None
+Verbose: Yes
+# Turn this on to write data presentation timestamps and real-time unix timestamps to file at the beginning and end of the pipeline, to measure latency
+TestLatency: No
+# Turn this on to compute transfer functions for the filters by comparing output data to input data
+TestFilters: No
+
+[TDCFConfigurations]
+#########################################################
+# Options related to time dependent correction  factors #
+#########################################################
+ComputeKappaTST: Yes
+ApplyKappaTST: No
+# Set this to have the \kappa_tst factors filter the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaTST: No
+
+ComputeKappaPU: No
+ApplyKappaPU: No
+# Set this to have the \kappa_pu factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors
+ApplyComplexKappaPU: No
+
+ComputeKappaPUM: Yes
+ApplyKappaPUM: No
+# Set this to have the \kappa_p factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaPUM: No
+
+ComputeKappaUIM: Yes
+ApplyKappaUIM: No
+# Set this to have the \kappa_u factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaUIM: No
+
+ComputeKappaC: Yes
+ApplyKappaC: No
+
+ComputeFcc: Yes
+ApplyFcc: No
+
+ComputeSRCQ: Yes
+ApplySRCQ: No
+
+ComputeFs: Yes
+ApplyFs: No
+
+###########################################
+# Options related to the coherence gating #
+###########################################
+UseCoherence: Yes
+CoherenceUncThreshold: 0.02
+# Amount of time used in front-end to compute coherence
+CoherenceTime: 130
+###################################################################
+# Options related to the computation configurations for the TDCFs #
+###################################################################
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+# Length in seconds of low-pass FIR filter used in demodulation of the calibration lines
+DemodulationFilterTime: 20
+# Time (in seconds) to smooth out \kappas with a median-like method
+MedianSmoothingTime: 128
+TDCFAveragingTime: 10
+#If set to yes, bad computed kappas will be replaced by the previous computed median in the running median array. Otherwise, they are replaced with the default value
+TDCFDefaultToMedian: Yes
+# If using Y-end Pcal, we need a minus sign, so set this to -1.0
+PcalSign: 1.0
+##################################################
+# Options related to updating cavity pole filter #
+##################################################
+# Duration of the Fcc filter in the time domain in seconds
+FccFilterDuration: 0.01
+# Number of seconds to average Fcc values before creating a new Fcc filter
+FccAveragingTime: 60 
+# Number of samples to be used when tapering old filter and ramping in new filter
+FccFilterTaperLength: 32768
+############################
+# Nominal values for TDCFs #
+############################
+ExpectedKappaTSTReal: 1.0
+ExpectedKappaTSTImag: 0.0
+ExpectedKappaPUMReal: 1.0
+ExpectedKappaPUMImag: 0.0
+ExpectedKappaUIMReal: 1.0
+ExpectedKappaUIMImag: 0.0
+ExpectedKappaPUReal: 1.0
+ExpectedKappaPUImag: 0.0
+ExpectedKappaC: 1.0
+ExpectedFs_Squared: 5.253 
+################################
+# Acceptable variance in TDCFs #
+################################
+KappaTSTRealVar: 0.2
+KappaTSTImagVar: 0.2
+KappaPURealVar: 0.2
+KappaPUImagVar: 0.2
+KappaPUMRealVar: 0.2
+KappaPUMImagVar: 0.2
+KappaUIMRealVar: 0.2
+KappaUIMImagVar: 0.2
+KappaCVar: 0.2
+FccVar: 50.0
+FsVar: 5.0
+SRCQInvMin: 0.0
+SRCQInvMax: 0.5
+#######################
+# EPICS records input #
+#######################
+# Set to Yes if EPICS records for TDCF computations should be read from filters file.  If set to No, they will be read from frames
+FactorsFromFiltersFile: No
+##############################################################################################
+# Updating Sensing and Actuation filters with all frequency-dependent corrections parameters #
+##############################################################################################
+# Length of time (in seconds) between when inverse-sensing FIR filter is updated
+SensingFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the sensing function are averaged before updating the filter
+SensingFilterAveragingTime: 1
+# Number of samples to be used when tapering old inverse sensing filter and ramping in new filter
+SensingFilterTaperLength: 32768
+# Length of time (in seconds) between when the actuation FIR filters are updated
+ActuationFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the actuation function are averaged before updating the filter
+ActuationFilterAveragingTime: 1
+# Number of samples to be used when tapering old actuation filters and ramping in new filters
+ActuationFilterTaperLength: 32768
+
+[ChannelNames]
+#############################
+# Calibration Channel Names #
+#############################
+DARMCtrlChannel: CAL-DARM_CTRL_DBL_DQ
+DARMErrChannel: CAL-DARM_ERR_DBL_DQ
+DeltaLTSTChannel: CAL-DELTAL_CTRL_TST_DBL_DQ
+DeltaLPUMChannel: CAL-DELTAL_CTRL_PUM_DBL_DQ
+DeltaLUIMChannel: CAL-DELTAL_CTRL_UIM_DBL_DQ
+DeltaLResChannel: CAL-DELTAL_RESIDUAL_DBL_DQ
+####################################
+# Data Quality Vector Channel Name #
+####################################
+LowNoiseStateChannel: GRD-IFO_READY
+HWInjChannel: CAL-INJ_STATUS_OUT_DQ
+ObsIntentChannel: GRD-IFO_INTENT
+FilterClockChannelList: GRD-ISC_LOCK_OK
+##################################
+# Calibration Line Channel Names #
+##################################
+DARMExcChannel: CAL-CS_LINE_SUM_DQ
+TSTExcChannel: SUS-ETMY_L3_CAL_LINE_OUT_DQ
+PUMExcChannel: SUS-ETMX_L2_CAL_LINE_OUT_DQ 
+UIMExcChannel: SUS-ETMX_L1_CAL_LINE_OUT_DQ
+PCALChannel: CAL-PCALY_RX_PD_OUT_DQ
+############################################
+# Calibration Line Frequency Channel Names #
+############################################
+DARMExcLineFreqChannel: CAL-CS_TDEP_DARM_LINE1_COMPARISON_OSC_FREQ
+TSTExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE3_COMPARISON_OSC_FREQ
+PUMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE2_COMPARISON_OSC_FREQ
+UIMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE1_COMPARISON_OSC_FREQ
+PCALLine1FreqChannel: CAL-CS_TDEP_PCAL_LINE1_COMPARISON_OSC_FREQ
+PcalLine1CorrRealChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_REAL
+PcalLine1CorrImagChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_IMAG
+PCALLine2FreqChannel: CAL-CS_TDEP_PCAL_LINE2_COMPARISON_OSC_FREQ
+PcalLine2CorrRealChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_REAL
+PcalLine2CorrImagChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_IMAG
+PCALLine3FreqChannel: CAL-CS_TDEP_PCAL_LINE3_COMPARISON_OSC_FREQ
+PcalLine3CorrRealChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_REAL
+PcalLine3CorrImagChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_IMAG
+PCALLine4FreqChannel: CAL-CS_TDEP_PCAL_LINE4_COMPARISON_OSC_FREQ
+PcalLine4CorrRealChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_REAL
+PcalLine4CorrImagChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_IMAG
+#######################################
+# Coherence Uncertainty Channel Names #
+#######################################
+CohUncSusLine1Channel: CAL-CS_TDEP_SUS_LINE1_UNCERTAINTY
+CohUncSusLine2Channel: CAL-CS_TDEP_SUS_LINE2_UNCERTAINTY
+CohUncSusLine3Channel: CAL-CS_TDEP_SUS_LINE3_UNCERTAINTY
+CohUncPcalyLine1Channel: CAL-CS_TDEP_PCAL_LINE1_UNCERTAINTY
+CohUncPcalyLine2Channel: CAL-CS_TDEP_PCAL_LINE2_UNCERTAINTY
+CohUncPcalyLine4Channel: CAL-CS_TDEP_PCAL_LINE4_UNCERTAINTY
+CohUncDARMLine1Channel: CAL-CS_TDEP_DARM_LINE1_UNCERTAINTY
+###################################
+# Noise Subtraction Channel Names #
+###################################
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract lines from h(t)
+# Semicolons separate channels to be handled separately (in series), and commas separate channels to be handled in parallel.
+#Set to None if no line witness channels are to be used
+LineWitnessChannelList: SUS-ETMX_L1_CAL_LINE_OUT_DQ;SUS-ETMX_L2_CAL_LINE_OUT_DQ;SUS-ETMY_L3_CAL_LINE_OUT_DQ;CAL-PCALY_RX_PD_OUT_DQ;PEM-EY_MAINSMON_EBAY_1_DQ
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract noise from h(t)
+# Set to None if no witness channels are to be used
+#WitnessChannelList: ASC-DHARD_P_OUT_DQ,ASC-DHARD_Y_OUT_DQ,ASC-CHARD_P_OUT_DQ,ASC-CHARD_Y_OUT_DQ,LSC-SRCL_IN1_DQ,LSC-MICH_IN1_DQ,LSC-PRCL_IN1_DQ
+WitnessChannelList: None
+# What channel should we use to gate the noise subtraction and 60-Hz line subtraction
+NoiseSubGateChannel: GRD-ISC_LOCK_OK
+###############################
+# EPICS Records Channel Names #
+###############################
+EP1RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_REAL
+EP1ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_IMAG
+EP2RealChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_REAL
+EP2ImagChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_IMAG
+EP3RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_REAL
+EP3ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_IMAG
+EP4RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_REAL
+EP4ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_IMAG
+EP5RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_REAL
+EP5ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_IMAG
+EP6RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_REAL
+EP6ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_IMAG
+EP7RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_REAL
+EP7ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_IMAG
+EP8RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_REAL
+EP8Imagchannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_IMAG
+EP9RealChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_REAL
+EP9ImagChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_IMAG
+EP10RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_REAL
+EP10ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_IMAG
+EP11RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_REAL
+EP11ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_IMAG
+EP12RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_REAL
+EP12ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_IMAG
+EP13RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_REAL
+EP13ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_IMAG
+EP14RealChannel: CAL-CS_TDEP_PCALY_LINE1_REF_A_USUM_REAL
+EP14ImagChannel: CAL-CS_TDEP_PCALY_LINE1_REF_A_USUM_IMAG
+EP15RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_REAL
+EP15Imagchannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_IMAG
+EP16RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_REAL
+EP16ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_IMAG
+EP17RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_REAL
+EP17ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_IMAG
+EP18RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_REAL
+EP18ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_IMAG
+EP19RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_REAL
+EP19ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_IMAG
+EP20RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_REAL
+EP20ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_IMAG
+EP21RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_REAL
+EP21ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_IMAG
+EP22RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_REAL
+EP22ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_IMAG
+EP23RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_REAL
+EP23ImagChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_IMAG
+EP24RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_REAL
+EP24ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_IMAG
+
+[SampleRates]
+# Sample rate at which to compute h(t)
+HoftSR: 16384
+# Sample rate at which to compute CALIB_STATE_VECTOR
+CalibStateSR: 16
+# Sample rate of control channel
+# Should be 16384 if using DARM_CTRL and 4096 if using DELTAL_CTRL 
+CtrlSR: 4096
+# Sample rate of low noise state channel
+LowNoiseSR: 16
+# Sample rate of HW injection channel
+HWInjSR: 16384
+# Sample rate of observation intent channel
+ObsIntentSR: 16
+# Sample rate list for chanels being used to trigger filter settling clock
+FilterClockSRList: 16
+# Sample rate of TST excitation channel
+TSTExcSR: 512
+# Sample rate of PUM excitation channel
+PUMExcSR: 512
+# Sample rate of UIM excitation channel
+UIMExcSR: 512
+# Sample rate of coherence channels
+CohSR: 16
+# Sample rate for the EPICS reference channels
+EPICSRefSR: 16
+# Sample rates at which transfer functions will be computed and witness channels will be filtered, given as a semicolon-separated list, e.g., 2048;2048;512;2048. This must be given if WitnessChannelList is not None, and it must be the same length.
+WitnessChannelSR: 512
+# Sample rates at which to compute and record TDCFs
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+
+[Bitmasks]
+ObsReadyBitmask: 1
+ObsIntentBitmask: 1
+FilterClockBitmaskList: 1
+CBCHWInjOffBitmask: 9
+BurstHWInjOffBitmask: 17
+DetCharHWInjOffBitmask: 33
+StochHWInjOffBitmask: 65
+NoiseSubGateBitmask: 1
+
+[PipelineConfigurations]
+BufferLength: 1.0
+FrequencyDomainFiltering: No
+Dewhitening: No
+# Latency of all filtering/averaging/median processes (other than calibration model filters) as a fraction of filter length. Value should be set between 0.0 and 1.0.
+FilterLatency: 0.0
+
+[DataCleaningConfigurations]
+# Remove the DC component from the residual and control channels before filtering
+RemoveDC: No
+# Subtract the calibration lines from the h(t) spectrum
+RemoveCalLines: No
+###############################################################
+# Options for running line subtraction using witness channels #
+###############################################################
+# Semicolon-separated list of comma-separated lists of frequencies (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqs: 15.1;15.7;16.9;16.3,434.9,1083.1;60.0,120.0,180.0,240.0,300.0
+# Time over which to take a median of transfer functions
+LineWitnessTFMedianTime: 128
+# Time over which to average transfer functions
+LineWitnessTFAveragingTime: 1
+# Semicolon-separated list of typical frequency fluctuations in lines being subtracted (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqVars: 0.0;0.0;0.0;0.0;0.02
+#######################################
+# Options for broadband noise removal #
+#######################################
+# The length in seconds of the fast Fourier transforms used to compute transfer functions between witness channels and h(t). The fft's are windowed with Hann windows and overlapped.
+WitnessChannelFFTTime: 4.0
+# The number of ffts to take before averaging the witness -> h(t) transfer functions calculation. The average is taken after the ratio h(f) / witness(f).
+NumWitnessFFTs: 1000
+# Sets the minimum number of FFTs necessary to produce the first transfer functions and clean data after data flow starts.
+MinWitnessFFTs: 300
+# The length in seconds of the filters applied to the witness channels before subtracting from h(t)
+WitnessFIRLength: 1.0
+# The frequency resolution of the filters applied to the witness channels before subtracting from h(t). It can be advantageous to lower the frequency resolution in order to average over excess noise.
+WitnessFrequencyResolution: 0.5
+# List of minima and maxima of frequency ranges where the Fourier transform of h(t) will be replaced by a straight line in the calculation of transfer functions between witness channels and h(t) for noise subtraction. Semicolons separate lists for different sets of witness channels. If no notches are desired, use zeros, e.g., \'0;0;0\'. Here is an example using the expected format: \'495.0,515.0,985.0,1015.0;59,60,119,121;0\' This can be useful, e.g., if there are loud lines in the signal that are not present in the witness channels.
+WitnessNotchFrequencies: 0
+# Cutoff frequencies for high-pass filters for witness channels
+WitnessHighPasses: 10
+# The amount of time after transfer functions between witness channels and h(t) are finished to begin the calculation of the next set of transfer functions
+WitnessTFUpdateTime: 4
+# If lock-loss lasts at least this many seconds, transfer functions will revert to those computed at the beginning of a lock stretch. Set to zero to disbale.
+CriticalLockLossTime: 1800
+# The amount of time to use to taper in newly computed FIR filters for witness channels being used for noise subtraction.
+WitnessFilterTaperTime: 2
+# If writing transfer functions to file, this sets the name. If transfer functions should not be written to file, this should be set to None
+WitnessTFFilename: None
+# Should the transfer function calculation use a median? If not, an average (mean) is used.
+WitnessTFUseMedian: Yes
+# Should transfer functions be computed on a fixed schedule, so that the output does not depend on start time?  This is useful for running jobs in parallel.  Otherwise, they are computed asap.
+WitnessTFParallelMode: No
+# When using parallel mode, how many seconds later should we shift the time when transfer functions start being computed from a multiple of the cycle period?
+WitnessTFTimeShift: 360
+# To write only one strain channel, and pick whichever is less noisy, set this option to 'Yes'. This way, if a problem arises with the noise subtraction it will not affect the output strain channel.
+PickCleanestStrainChannel: No
+# A half Hann window is used for transitions between cleaned and uncleaned data.  This is the length of that window in seconds.
+StrainChannelTransitionTime: 10.0
+###############################
+# Options for HOFT_CLEAN bits #
+###############################
+# The amount of data from h(t) and cleaned h(t) that is used to compute and compare the rms. This comparison between cleaned and uncleaned h(t) determines whether the HOFT_CLEAN bits of the calibration state vector are on or off.
+CleaningCheckRMSTime: 30.0
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMin: 15
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMax: 20
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMin: 20
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMax: 200
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_ASD_residual.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_ASD_residual.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d33aaaa0ad1e7a2b49943bb2a9f66888ebce9e0
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_ASD_residual.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_all_tf.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_all_tf.png
new file mode 100644
index 0000000000000000000000000000000000000000..20a5c78d9e94c70777af5006048663b31a3014b0
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_all_tf.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_all_tf_ratio.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_all_tf_ratio.png
new file mode 100644
index 0000000000000000000000000000000000000000..60054708f2927d718b4c0605c915398c86b62280
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_all_tf_ratio.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_all_tf_ratio_zoomed.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_all_tf_ratio_zoomed.png
new file mode 100644
index 0000000000000000000000000000000000000000..f1378bf3510bc33bd50a3ac085d4123de44e893c
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_all_tf_ratio_zoomed.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_calib_state_vector.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_calib_state_vector.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c3a85af68213cf5a8bf71d730a5d9d16b453354
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_calib_state_vector.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_F_CC.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_F_CC.png
new file mode 100644
index 0000000000000000000000000000000000000000..49d9a47c31aa294c6ec5988e2359537aa72cfad2
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_F_CC.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_F_S_SQUARED.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_F_S_SQUARED.png
new file mode 100644
index 0000000000000000000000000000000000000000..fcf068350ce2a2b64c18e2e4cd8b9676c287a07c
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_F_S_SQUARED.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_C.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_C.png
new file mode 100644
index 0000000000000000000000000000000000000000..75a68dd55c36f5616ddb6d28acf5965ce6e66369
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_C.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1869261031d1f58a9c2ddf633ec7570746c33f7
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_PUM_REAL.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_PUM_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..cddf4b24dc38135c94a83e719b91169ae3375c20
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_PUM_REAL.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..1b96ae2751394c98e82b30b5c3c3e906af9d891d
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_TST_REAL.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_TST_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..fdf3418c7fc6c8dcd64e0f17f7163b96cc6ac3ed
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_TST_REAL.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c8a9bca7956a0d5b2c272c873ed11c7bbbec4df
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_UIM_REAL.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_UIM_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..4f3fd78d41a39dc2a1ce7a5134f4cdc4b56fc34a
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_KAPPA_UIM_REAL.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_SRC_Q_INVERSE.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_SRC_Q_INVERSE.png
new file mode 100644
index 0000000000000000000000000000000000000000..ef663598b7bab485e08d490962bd528b80af810d
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_plot_GDS-CALIB_SRC_Q_INVERSE.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_spectrum_comparison.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_spectrum_comparison.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5ff8849b8045f04a0e8495b1cec333fcdd6d9b7
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238105791_1238106007_spectrum_comparison.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_ASD_residual.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_ASD_residual.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca3b9775f8de16ea9479b3da990678078bea5087
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_ASD_residual.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_all_tf.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_all_tf.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f36702a4bda15a9ffad4cf0c22f033d4a605b8f
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_all_tf.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_all_tf_ratio.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_all_tf_ratio.png
new file mode 100644
index 0000000000000000000000000000000000000000..d7fddb30dca85aa645385beca5198064706845a0
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_all_tf_ratio.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_all_tf_ratio_zoomed.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_all_tf_ratio_zoomed.png
new file mode 100644
index 0000000000000000000000000000000000000000..630718d9c1a6f08f243553182161c0bff541a478
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_all_tf_ratio_zoomed.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_calib_state_vector.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_calib_state_vector.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd593918b391e1c9419a9da2429a5b7896b8e23a
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_calib_state_vector.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_F_CC.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_F_CC.png
new file mode 100644
index 0000000000000000000000000000000000000000..11848f13dcbcbbb1df30b8a3efb732c36bed6d01
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_F_CC.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_F_S_SQUARED.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_F_S_SQUARED.png
new file mode 100644
index 0000000000000000000000000000000000000000..954933eff3f35a09c63e43e17e093fb43f8f72fa
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_F_S_SQUARED.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_C.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_C.png
new file mode 100644
index 0000000000000000000000000000000000000000..4262c07eda41c8a4309f27425b86e487a12f07bb
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_C.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..b706dbb2b07afdfdadde46e4eacb89bb27f97aea
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_PUM_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_PUM_REAL.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_PUM_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..5603e7a1428980f0e698dc71a7c2ef336722686a
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_PUM_REAL.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed2cdefc6d9cf1fea530bc3353463b2529483f6f
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_TST_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_TST_REAL.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_TST_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..663125238d73409eeb0fd4cea3d56ae99b5455d0
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_TST_REAL.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png
new file mode 100644
index 0000000000000000000000000000000000000000..3dd930832edad21eeab98fc4b50fe0f920ca2880
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_UIM_IMAGINARY.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_UIM_REAL.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_UIM_REAL.png
new file mode 100644
index 0000000000000000000000000000000000000000..6052d0445d855cb1b1344bd59dd28032600cb2fe
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_KAPPA_UIM_REAL.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_SRC_Q_INVERSE.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_SRC_Q_INVERSE.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc099e9cdbc379ff8d6c90d50b5622df8801642d
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_plot_GDS-CALIB_SRC_Q_INVERSE.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_spectrum_comparison.png b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_spectrum_comparison.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e93d404627924969e119080a039bc20ce59c839
Binary files /dev/null and b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_1238107791_1238108507_spectrum_comparison.png differ
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_hoft_GDS_frames.cache b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_hoft_GDS_frames.cache
new file mode 100644
index 0000000000000000000000000000000000000000..409c8f2b43a4fce78fc8af286a81257574cfa5f2
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_hoft_GDS_frames.cache
@@ -0,0 +1,20 @@
+L L1_TEST 1238051008 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238051008-64.gwf
+L L1_TEST 1238051072 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238051072-64.gwf
+L L1_TEST 1238051136 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238051136-64.gwf
+L L1_TEST 1238051200 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238051200-64.gwf
+L L1_TEST 1238105792 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238105792-64.gwf
+L L1_TEST 1238105856 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238105856-64.gwf
+L L1_TEST 1238105920 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238105920-64.gwf
+L L1_TEST 1238105984 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238105984-64.gwf
+L L1_TEST 1238107776 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238107776-64.gwf
+L L1_TEST 1238107840 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238107840-64.gwf
+L L1_TEST 1238107904 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238107904-64.gwf
+L L1_TEST 1238107968 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238107968-64.gwf
+L L1_TEST 1238108032 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238108032-64.gwf
+L L1_TEST 1238108096 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238108096-64.gwf
+L L1_TEST 1238108160 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238108160-64.gwf
+L L1_TEST 1238108224 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238108224-64.gwf
+L L1_TEST 1238108288 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238108288-64.gwf
+L L1_TEST 1238108352 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238108352-64.gwf
+L L1_TEST 1238108416 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238108416-64.gwf
+L L1_TEST 1238108480 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST-1238108480-64.gwf
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_hoft_GDS_no_kappas_frames.cache b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_hoft_GDS_no_kappas_frames.cache
new file mode 100644
index 0000000000000000000000000000000000000000..cffbc7ecf843a99a2fe3452a083f7380d2efd6c7
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_hoft_GDS_no_kappas_frames.cache
@@ -0,0 +1,20 @@
+L L1_TEST_NOKAPPAS 1238051008 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238051008-64.gwf
+L L1_TEST_NOKAPPAS 1238051072 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238051072-64.gwf
+L L1_TEST_NOKAPPAS 1238051136 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238051136-64.gwf
+L L1_TEST_NOKAPPAS 1238051200 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238051200-64.gwf
+L L1_TEST_NOKAPPAS 1238105792 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238105792-64.gwf
+L L1_TEST_NOKAPPAS 1238105856 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238105856-64.gwf
+L L1_TEST_NOKAPPAS 1238105920 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238105920-64.gwf
+L L1_TEST_NOKAPPAS 1238105984 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238105984-64.gwf
+L L1_TEST_NOKAPPAS 1238107776 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238107776-64.gwf
+L L1_TEST_NOKAPPAS 1238107840 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238107840-64.gwf
+L L1_TEST_NOKAPPAS 1238107904 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238107904-64.gwf
+L L1_TEST_NOKAPPAS 1238107968 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238107968-64.gwf
+L L1_TEST_NOKAPPAS 1238108032 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238108032-64.gwf
+L L1_TEST_NOKAPPAS 1238108096 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238108096-64.gwf
+L L1_TEST_NOKAPPAS 1238108160 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238108160-64.gwf
+L L1_TEST_NOKAPPAS 1238108224 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238108224-64.gwf
+L L1_TEST_NOKAPPAS 1238108288 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238108288-64.gwf
+L L1_TEST_NOKAPPAS 1238108352 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238108352-64.gwf
+L L1_TEST_NOKAPPAS 1238108416 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238108416-64.gwf
+L L1_TEST_NOKAPPAS 1238108480 64 file://localhost/home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Frames/O3/L1/GDS/L-L1_TEST_NOKAPPAS-1238108480-64.gwf
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_raw_frames.cache b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_raw_frames.cache
new file mode 100644
index 0000000000000000000000000000000000000000..5652da42f7e9de4c22537e83ff2ad8b2a0cd6dac
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/L1_raw_frames.cache
@@ -0,0 +1,17 @@
+L L1_R 1238107520 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238107520-64.gwf
+L L1_R 1238107584 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238107584-64.gwf
+L L1_R 1238107648 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238107648-64.gwf
+L L1_R 1238107712 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238107712-64.gwf
+L L1_R 1238107776 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238107776-64.gwf
+L L1_R 1238107840 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238107840-64.gwf
+L L1_R 1238107904 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238107904-64.gwf
+L L1_R 1238107968 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238107968-64.gwf
+L L1_R 1238108032 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238108032-64.gwf
+L L1_R 1238108096 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238108096-64.gwf
+L L1_R 1238108160 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238108160-64.gwf
+L L1_R 1238108224 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238108224-64.gwf
+L L1_R 1238108288 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238108288-64.gwf
+L L1_R 1238108352 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238108352-64.gwf
+L L1_R 1238108416 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238108416-64.gwf
+L L1_R 1238108480 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238108480-64.gwf
+L L1_R 1238108544 64 file://localhost/hdfs/frames/ER14/raw/L1/L-L1_R-12381/L-L1_R-1238108544-64.gwf
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.ASD_comparison b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.ASD_comparison
new file mode 100644
index 0000000000000000000000000000000000000000..e3d0cb79c8f55eabb046084fe9ae52ff9aba1e37
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.ASD_comparison
@@ -0,0 +1,8 @@
+all: ASD_comparison_plots
+
+ASD_comparison_plots: 
+	python ../../check_calibration/ASD_comparison_plots --ifo $(IFO)1 --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --raw-frame-cache $(IFO)1_raw_frames.cache --hoft-frame-cache $(IFO)1_hoft_GDS_frames.cache --calcs-channel-name CAL-DELTAL_EXTERNAL_DQ --analyze-additional-hoft-channel --additional-hoft-channel-name CAL-CFTD_DELTAL_EXTERNAL_DQ --additional-hoft-frame-cache $(IFO)1_raw_frames.cache
+
+clean: 
+	rm *.png 
+
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.all_tests b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.all_tests
new file mode 100644
index 0000000000000000000000000000000000000000..8b4a4c8fa37ee196e571a2eebdec6e22d52a053a
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.all_tests
@@ -0,0 +1,104 @@
+# This makefile can be used to run all of the tests instead of running them one by one.
+
+# Indicate IFO and observing run
+# Note: Make sure that there is no space after the L or H! 
+# Another note: Livingston cluster cannot run this for IFO = H. Make sure that the cluster you're using has the raw frames you want. 
+export IFO=L
+# OBSRUN inidcates where to look for filters files (e.g. O1, O2, O3, ER10, ER13, ER14, PreER13, PreER14)
+#export OBSRUN=O2
+export OBSRUN=O3
+
+# Set start and stop times for a short lock stretch
+export SHORT_START=1238107571
+export SHORT_END=1238108571
+# Set start and stop times for a longer stretch that spans a lock-unlock stretch
+export LONG_START = 1228350334
+export LONG_END = 1228352985
+export SHMRUNTIME=400
+
+# How much time does the calibraiton need to settle at the start and end?
+PLOT_WARMUP_TIME = 220
+PLOT_COOLDOWN_TIME = 64
+export SHORT_PLOT_START=$(shell echo $(SHORT_START) + $(PLOT_WARMUP_TIME) | bc)
+export LONG_PLOT_START=$(shell echo $(LONG_START) + $(PLOT_WARMUP_TIME) | bc)
+export SHORT_PLOT_END=$(shell echo $(SHORT_END) - $(PLOT_COOLDOWN_TIME) | bc) 
+export LONG_PLOT_END=$(shell echo $(LONG_END) - $(PLOT_COOLDOWN_TIME) | bc) 
+
+# Point to all of the .ini files for different configurations
+#export GDSCONFIGS=H1GDS_1232821094_gstlal-calibration-1-2-7.ini
+export GDSCONFIGS=test.ini 
+export GDSCONFIGSNOKAPPAS=test_nokappas.ini 
+
+# Needed for writing pipeline graphs
+export GST_DEBUG_DUMP_DOT_DIR=.
+
+all: ASD_comparison statevector timeserieskappas response_function
+
+# Create frame cache files for raw, C00, C01, and C02 frames
+$(IFO)1_raw_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_R -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C00_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C00 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C01_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C01 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+$(IFO)1_C02_frames.cache:
+	gw_data_find -o $(IFO) -t $(IFO)1_HOFT_C02 -s $(SHORT_START) -e $(SHORT_END) -l --url-type file > $@
+
+
+# Calibrate GDS testing data
+$(IFO)1_hoft_GDS_frames.cache: $(IFO)1_raw_frames.cache filters framesdir
+	gstlal_compute_strain --gps-start-time $(SHORT_START) --gps-end-time $(SHORT_END) --frame-cache $(IFO)1_raw_frames.cache --output-path Frames/$(OBSRUN)/$(IFO)1/GDS/ --frame-duration=64 --frames-per-file=1 --wings=0 --config-file $(GDSCONFIGS)
+	ls Frames/$(OBSRUN)/$(IFO)1/GDS/$(IFO)-$(IFO)1_TEST-*.gwf | lalapps_path2cache > $@
+
+# Calibrate GDS testing data with no kappas applied for response function test
+$(IFO)1_hoft_GDS_no_kappas_frames.cache: $(IFO)1_raw_frames.cache filters framesdir
+	gstlal_compute_strain --gps-start-time $(SHORT_START) --gps-end-time $(SHORT_END) --frame-cache $(IFO)1_raw_frames.cache --output-path Frames/$(OBSRUN)/$(IFO)1/GDS/ --frame-duration=64 --frames-per-file=1 --wings=0 --config-file $(GDSCONFIGSNOKAPPAS)
+	ls Frames/$(OBSRUN)/$(IFO)1/GDS/$(IFO)-$(IFO)1_TEST_NOKAPPAS*.gwf | lalapps_path2cache > $@
+
+
+filters:
+	if [ -d Filters/$(OBSRUN)/GDSFilters ]; then \
+                svn up Filters/$(OBSRUN)/GDSFilters; \
+        else \
+                mkdir -p Filters/$(OBSRUN); \
+                cd Filters/$(OBSRUN); \
+                svn co https://svn.ligo.caltech.edu/svn/aligocalibration/trunk/Runs/$(OBSRUN)/GDSFilters; \
+        fi
+
+framesdir:
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/easy_raw
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/GDS
+	mkdir -p Frames/$(OBSRUN)/$(IFO)1/DCS
+
+
+response_function: $(IFO)1_hoft_GDS_no_kappas_frames.cache $(IFO)1_raw_frames.cache
+	make -f Makefile.response_function
+
+ASD_comparison: $(IFO)1_raw_frames.cache $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.ASD_comparison
+
+statevector: $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.statevector
+
+timeserieskappas:  $(IFO)1_hoft_GDS_frames.cache 
+	make -f Makefile.timeserieskappas
+
+pcal_to_darm: $(IFO)1_raw_frames.cache $(IFO)1_hoft_GDS_frames.cache
+	make -f Makefile.pcal_to_darm
+
+# FIXME: This is seg faulting for me right now
+calib_version_comparison: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_C02_frames.cache
+	make -f Makefile.calib_version_comparison
+
+# Need to clean up this clean command
+clean: 
+	rm -rf Frames/
+	rm -rf Filters/
+	rm *.p*
+	rm *.dot
+	rm *.txt
+
+
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.calib_version_comparison b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.calib_version_comparison
new file mode 100644
index 0000000000000000000000000000000000000000..43ee130b15d97ca52b649fc784cd17864b0c15b4
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.calib_version_comparison
@@ -0,0 +1,8 @@
+all: GDS_over_C02
+
+GDS_over_C02: $(IFO)1_hoft_GDS_frames.cache $(IFO)1_C02_frames.cache
+	python ../../check_calibration/plot_transfer_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --numerator-frame-cache-list $(IFO)1_hoft_GDS_frames.cache --denominator-frame-cache $(IFO)1_C02_frames.cache --numerator-channel-list GDS-CALIB_STRAIN --denominator-channel-name DCS-CALIB_STRAIN_C02 --denominator-name 'C02' --numerator-name 'GDS_TEST --magnitude-min 0.7 --magnitude-max 1.3 --phase-min -20.0 --phase-max 20.0 --labels 'GDS Test / C02 Transfer Function'
+
+clean:
+	*.png
+
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.latency b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.latency
new file mode 100644
index 0000000000000000000000000000000000000000..03cbc521ef02be6cfe141b100531d599757df60a
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.latency
@@ -0,0 +1,8 @@
+all: latency_test
+
+latency_test: $(IFO)1_hoft_GDS_SHM_frames.cache
+	python ../../check_calibration/latency_plot.py --intime-file gstlal_compute_strain_timestamps_in.txt --outtime-file gstlal_compute_strain_timestamps_out.txt --plot-filename-prefix $(IFO)1GDS_latency --plot-title '$(IFO)1 Calibration Latency vs Time'
+
+clean:
+	rm *.png
+
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.lines_ratio b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.lines_ratio
new file mode 100644
index 0000000000000000000000000000000000000000..ae6edaaae15e37bb514de8ab2a4935a06bb3f277
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.lines_ratio
@@ -0,0 +1,8 @@
+all: lines_ratio_DCS
+
+lines_ratio_DCS: $(IFO)1_hoft_DCS_frames.cache
+	python ../../check_calibration/demod_ratio_timeseries.py --ifo $(IFO)1 --gps-end-time $(SHORT_PLOT_END) --gps-start-time $(SHORT_PLOT_START) --denominator-frame-cache $(IFO)1_hoft_DCS_frames.cache --numerator-frame-cache $(IFO)1_hoft_DCS_frames.cache --denominator-channel-name 'DCS-CALIB_STRAIN' --numerator-channel-name 'DCS-CALIB_STRAIN_CLEAN' --frequencies '35.9,36.7,331.9,1083.7;60,120,180' --magnitude-ranges '0.0,0.1;0.0,1.0' --phase-ranges '-180.0,180.0;-180.0,180.0' --plot-titles '$(IFO)1 Calibration Line Subtraction;$(IFO)1 Power Mains Line Subtraction'
+
+clean:
+	rm *.gwf *.cache *.png *.txt
+
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.noise_subtraction_tf b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.noise_subtraction_tf
new file mode 100644
index 0000000000000000000000000000000000000000..b26758c95a0e294128e3c878650640305306c9c0
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.noise_subtraction_tf
@@ -0,0 +1,8 @@
+all: noise_subtraction_tf_DCS
+
+noise_subtraction_tf_DCS: $(IFO)1_hoft_DCS_frames.cache
+	python ../../check_calibration/plot_transfer_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --numerator-frame-cache $(IFO)1_hoft_DCS_frames.cache --denominator-frame-cache $(IFO)1_hoft_DCS_frames.cache --numerator-channel-name DCS-CALIB_STRAIN_CLEAN --denominator-channel-name DCS-CALIB_STRAIN --magnitude-min 0.0 --magnitude-max 1.5 --phase-min -20.0 --phase-max 20.0 --plot-title 'Noise Subtraction Transfer Function'
+
+clean:
+	rm *.gwf *.cache *.png *.txt
+
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.response_function b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.response_function
new file mode 100644
index 0000000000000000000000000000000000000000..b005a7c71aa7c1e89f4d1e4c49634759988c5921
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.response_function
@@ -0,0 +1,11 @@
+all: GDS_response_function_bode_plot
+
+FILTERS_FILE = /home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Filters/O3/GDSFilters/L1GDS_1238100191.npz
+
+GDS_response_function_bode_plot: 
+	python ../../check_calibration/response_function.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --dt 6.103515625e-05 --ifo $(IFO)1 --hoft-frames-cache $(IFO)1_hoft_GDS_no_kappas_frames.cache --raw-frames-cache $(IFO)1_raw_frames.cache --response-file $(FILTERS_FILE) 
+
+
+clean: 
+	rm *.pdf
+
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.statevector b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.statevector
new file mode 100644
index 0000000000000000000000000000000000000000..5733f7338eaed970ea286d6177244e6cf182f926
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.statevector
@@ -0,0 +1,9 @@
+all: calib_state_vector_plot
+
+calib_state_vector_plot: 
+	python ../../check_calibration/statevector_plot.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --ifo $(IFO)1 --hoft-frames-cache $(IFO)1_hoft_GDS_frames.cache
+
+
+clean: 
+	rm *.pdf
+
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.timeserieskappas b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.timeserieskappas
new file mode 100644
index 0000000000000000000000000000000000000000..a9f77efb0495937fe45920c6ef4a7cefa4efb12e
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Makefile.timeserieskappas
@@ -0,0 +1,31 @@
+CHANNEL1 = CALIB_KAPPA_C
+CHANNEL2 = CALIB_KAPPA_PUM_REAL
+CHANNEL3 = CALIB_KAPPA_TST_REAL
+CHANNEL4 = CALIB_F_CC
+CHANNEL5 = CALIB_KAPPA_PUM_IMAGINARY
+CHANNEL6 = CALIB_KAPPA_TST_IMAGINARY
+CHANNEL7 = CALIB_KAPPA_UIM_REAL
+CHANNEL8 = CALIB_KAPPA_UIM_IMAGINARY
+CHANNEL9 = CALIB_SRC_Q_INVERSE
+CHANNEL10 = CALIB_F_S_SQUARED
+
+FECHANNEL1 = CS_TDEP_KAPPA_C_OUTPUT
+FECHANNEL2 = CS_TDEP_KAPPA_PUM_REAL_OUTPUT
+FECHANNEL3 = CS_TDEP_KAPPA_TST_REAL_OUTPUT
+FECHANNEL4 = CS_TDEP_F_C_OUTPUT
+FECHANNEL5 = CS_TDEP_KAPPA_PUM_IMAG_OUTPUT
+FECHANNEL6 = CS_TDEP_KAPPA_TST_IMAG_OUTPUT
+FECHANNEL7 = CS_TDEP_KAPPA_UIM_REAL_OUTPUT
+FECHANNEL8 = CS_TDEP_KAPPA_UIM_IMAG_OUTPUT
+FECHANNEL9 = CS_TDEP_Q_S_OUTPUT
+FECHANNEL10 = CS_TDEP_F_S_OUTPUT
+
+all: GDS_Time_Series_of_Kappas
+
+GDS_Time_Series_of_Kappas:
+	python ../../check_calibration/timeserieskappas.py --gps-start-time $(SHORT_PLOT_START) --gps-end-time $(SHORT_PLOT_END) --channel-list 'GDS-$(CHANNEL1)','GDS-$(CHANNEL2)','GDS-$(CHANNEL3)','GDS-$(CHANNEL4)','GDS-$(CHANNEL5)','GDS-$(CHANNEL6)','GDS-$(CHANNEL7)','GDS-$(CHANNEL8)','GDS-$(CHANNEL9)','GDS-$(CHANNEL10)' --frame-cache $(IFO)1_hoft_GDS_frames.cache --ifo $(IFO)1 --front-end-channel-list 'CAL-$(FECHANNEL1)','CAL-$(FECHANNEL2)','CAL-$(FECHANNEL3)','CAL-$(FECHANNEL4)','CAL-$(FECHANNEL5)','CAL-$(FECHANNEL6)','CAL-$(FECHANNEL7)','CAL-$(FECHANNEL8)','CAL-$(FECHANNEL9)','CAL-$(FECHANNEL10)'
+
+
+clean:
+	rm *.png
+
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/test.ini b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/test.ini
new file mode 100644
index 0000000000000000000000000000000000000000..45bc3d849ee1e4b2d4e9fad795e211e29de58f70
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/test.ini
@@ -0,0 +1,404 @@
+[InputConfigurations]
+# Filters file containing calibration FIR filters
+FiltersFileName: /home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Filters/O3/GDSFilters/L1GDS_1238100191.npz
+# Data source should be set to frames or lvshm
+DataSource: frames
+FileChecksum: No
+# Right now, SkipBadFiles needs to be off when reading from frames
+SkipBadFiles: No
+############################################
+# If reading from frames use these options #
+############################################
+# None
+
+###################################################
+# If reading from shared memory use these options #
+###################################################
+SHMPartition: LLO_Online
+# Assumed duration of input frames in seconds
+InputFrameDuration: 1
+
+[OutputConfigurations]
+CompressionScheme: 6
+CompressionLevel: 3
+ChanPrefix: GDS-
+# Set to "None" if you do not want a channel suffix
+ChanSuffix: None
+# Data sink should be set to frames or lvshm
+DataSink: frames
+#################################################
+# If writing to shared memory use these options #
+#################################################
+OutputSHMPartition: LLO_hoft
+BufferMode: 2
+# Use this to approximate the frame size (in bytes) when writing to shared memory
+FrameSize: 405338
+NumBuffers: 10
+###############################################
+# If writing to frame files use these options #
+###############################################
+FrameType: L1_TEST
+
+[CalibrationConfigurations]
+IFO: L1
+# Set calibration mode to Full or Partial
+CalibrationMode: Partial
+ComputeCalibStateVector: Yes
+
+[DebuggingConfigurations]
+# If you want to write a pipeline graph, provide the graph name.  Otherwise, set name equal to None
+PipelineGraphFilename: None
+Verbose: Yes
+# Turn this on to write data presentation timestamps and real-time unix timestamps to file at the beginning and end of the pipeline, to measure latency
+TestLatency: No
+# Turn this on to compute transfer functions for the filters by comparing output data to input data
+TestFilters: No
+
+[TDCFConfigurations]
+#########################################################
+# Options related to time dependent correction  factors #
+#########################################################
+ComputeKappaTST: Yes
+ApplyKappaTST: No
+# Set this to have the \kappa_tst factors filter the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaTST: Yes
+
+ComputeKappaPU: No
+ApplyKappaPU: No
+# Set this to have the \kappa_pu factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors
+ApplyComplexKappaPU: No
+
+ComputeKappaPUM: Yes
+ApplyKappaPUM: No
+# Set this to have the \kappa_p factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaPUM: Yes
+
+ComputeKappaUIM: Yes
+ApplyKappaUIM: No
+# Set this to have the \kappa_u factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaUIM: Yes
+
+ComputeKappaC: Yes
+ApplyKappaC: Yes
+
+ComputeFcc: Yes
+ApplyFcc: Yes
+
+ComputeSRCQ: Yes
+ApplySRCQ: No
+
+ComputeFs: Yes
+ApplyFs: No
+
+###########################################
+# Options related to the coherence gating #
+###########################################
+UseCoherence: Yes
+CoherenceUncThreshold: 0.02
+# Amount of time used in front-end to compute coherence
+CoherenceTime: 130
+###################################################################
+# Options related to the computation configurations for the TDCFs #
+###################################################################
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+# Length in seconds of low-pass FIR filter used in demodulation of the calibration lines
+DemodulationFilterTime: 20
+# Time (in seconds) to smooth out \kappas with a median-like method
+MedianSmoothingTime: 128
+TDCFAveragingTime: 10
+#If set to yes, bad computed kappas will be replaced by the previous computed median in the running median array. Otherwise, they are replaced with the default value
+TDCFDefaultToMedian: Yes
+# If using Y-end Pcal, we need a minus sign, so set this to -1.0
+PcalSign: 1.0
+##################################################
+# Options related to updating cavity pole filter #
+##################################################
+# Duration of the Fcc filter in the time domain in seconds
+FccFilterDuration: 0.01
+# Number of seconds to average Fcc values before creating a new Fcc filter
+FccAveragingTime: 60 
+# Number of samples to be used when tapering old filter and ramping in new filter
+FccFilterTaperLength: 32768
+############################
+# Nominal values for TDCFs #
+############################
+ExpectedKappaTSTReal: 1.0
+ExpectedKappaTSTImag: 0.0
+ExpectedKappaPUMReal: 1.0
+ExpectedKappaPUMImag: 0.0
+ExpectedKappaUIMReal: 1.0
+ExpectedKappaUIMImag: 0.0
+ExpectedKappaPUReal: 1.0
+ExpectedKappaPUImag: 0.0
+ExpectedKappaC: 1.0
+ExpectedFs_Squared: 5.253 
+################################
+# Acceptable variance in TDCFs #
+################################
+KappaTSTRealVar: 0.2
+KappaTSTImagVar: 0.2
+KappaPURealVar: 0.2
+KappaPUImagVar: 0.2
+KappaPUMRealVar: 0.2
+KappaPUMImagVar: 0.2
+KappaUIMRealVar: 0.2
+KappaUIMImagVar: 0.2
+KappaCVar: 0.2
+FccVar: 50.0
+FsVar: 5.0
+SRCQInvMin: 0.0
+SRCQInvMax: 0.5
+#######################
+# EPICS records input #
+#######################
+# Set to Yes if EPICS records for TDCF computations should be read from filters file.  If set to No, they will be read from frames
+FactorsFromFiltersFile: Yes
+##############################################################################################
+# Updating Sensing and Actuation filters with all frequency-dependent corrections parameters #
+##############################################################################################
+# Length of time (in seconds) between when inverse-sensing FIR filter is updated
+SensingFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the sensing function are averaged before updating the filter
+SensingFilterAveragingTime: 1
+# Number of samples to be used when tapering old inverse sensing filter and ramping in new filter
+SensingFilterTaperLength: 32768
+# Length of time (in seconds) between when the actuation FIR filters are updated
+ActuationFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the actuation function are averaged before updating the filter
+ActuationFilterAveragingTime: 1
+# Number of samples to be used when tapering old actuation filters and ramping in new filters
+ActuationFilterTaperLength: 32768
+
+[ChannelNames]
+#############################
+# Calibration Channel Names #
+#############################
+DARMCtrlChannel: CAL-DARM_CTRL_DBL_DQ
+DARMErrChannel: CAL-DARM_ERR_DBL_DQ
+DeltaLTSTChannel: CAL-DELTAL_CTRL_TST_DBL_DQ
+DeltaLPUMChannel: CAL-DELTAL_CTRL_PUM_DBL_DQ
+DeltaLUIMChannel: CAL-DELTAL_CTRL_UIM_DBL_DQ
+DeltaLResChannel: CAL-DELTAL_RESIDUAL_DBL_DQ
+####################################
+# Data Quality Vector Channel Name #
+####################################
+LowNoiseStateChannel: GRD-IFO_READY
+HWInjChannel: CAL-INJ_STATUS_OUT_DQ
+ObsIntentChannel: GRD-IFO_INTENT
+FilterClockChannelList: GRD-ISC_LOCK_OK
+##################################
+# Calibration Line Channel Names #
+##################################
+DARMExcChannel: CAL-CS_LINE_SUM_DQ
+TSTExcChannel: SUS-ETMY_L3_CAL_LINE_OUT_DQ
+PUMExcChannel: SUS-ETMX_L2_CAL_LINE_OUT_DQ 
+UIMExcChannel: SUS-ETMX_L1_CAL_LINE_OUT_DQ
+PCALChannel: CAL-PCALY_RX_PD_OUT_DQ
+############################################
+# Calibration Line Frequency Channel Names #
+############################################
+DARMExcLineFreqChannel: CAL-CS_TDEP_DARM_LINE1_COMPARISON_OSC_FREQ
+TSTExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE3_COMPARISON_OSC_FREQ
+PUMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE2_COMPARISON_OSC_FREQ
+UIMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE1_COMPARISON_OSC_FREQ
+PCALLine1FreqChannel: CAL-CS_TDEP_PCAL_LINE1_COMPARISON_OSC_FREQ
+PcalLine1CorrRealChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_REAL
+PcalLine1CorrImagChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_IMAG
+PCALLine2FreqChannel: CAL-CS_TDEP_PCAL_LINE2_COMPARISON_OSC_FREQ
+PcalLine2CorrRealChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_REAL
+PcalLine2CorrImagChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_IMAG
+PCALLine3FreqChannel: CAL-CS_TDEP_PCAL_LINE3_COMPARISON_OSC_FREQ
+PcalLine3CorrRealChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_REAL
+PcalLine3CorrImagChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_IMAG
+PCALLine4FreqChannel: CAL-CS_TDEP_PCAL_LINE4_COMPARISON_OSC_FREQ
+PcalLine4CorrRealChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_REAL
+PcalLine4CorrImagChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_IMAG
+#######################################
+# Coherence Uncertainty Channel Names #
+#######################################
+CohUncSusLine1Channel: CAL-CS_TDEP_SUS_LINE1_UNCERTAINTY
+CohUncSusLine2Channel: CAL-CS_TDEP_SUS_LINE2_UNCERTAINTY
+CohUncSusLine3Channel: CAL-CS_TDEP_SUS_LINE3_UNCERTAINTY
+CohUncPcalyLine1Channel: CAL-CS_TDEP_PCAL_LINE1_UNCERTAINTY
+CohUncPcalyLine2Channel: CAL-CS_TDEP_PCAL_LINE2_UNCERTAINTY
+CohUncPcalyLine4Channel: CAL-CS_TDEP_PCAL_LINE4_UNCERTAINTY
+CohUncDARMLine1Channel: CAL-CS_TDEP_DARM_LINE1_UNCERTAINTY
+###################################
+# Noise Subtraction Channel Names #
+###################################
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract lines from h(t)
+# Semicolons separate channels to be handled separately (in series), and commas separate channels to be handled in parallel.
+#Set to None if no line witness channels are to be used
+LineWitnessChannelList: SUS-ETMX_L1_CAL_LINE_OUT_DQ;SUS-ETMX_L2_CAL_LINE_OUT_DQ;SUS-ETMY_L3_CAL_LINE_OUT_DQ;CAL-PCALY_RX_PD_OUT_DQ;PEM-EY_MAINSMON_EBAY_1_DQ
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract noise from h(t)
+# Set to None if no witness channels are to be used
+#WitnessChannelList: ASC-DHARD_P_OUT_DQ,ASC-DHARD_Y_OUT_DQ,ASC-CHARD_P_OUT_DQ,ASC-CHARD_Y_OUT_DQ,LSC-SRCL_IN1_DQ,LSC-MICH_IN1_DQ,LSC-PRCL_IN1_DQ
+WitnessChannelList: None
+# What channel should we use to gate the noise subtraction and 60-Hz line subtraction
+NoiseSubGateChannel: GRD-ISC_LOCK_OK
+###############################
+# EPICS Records Channel Names #
+###############################
+EP1RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_REAL
+EP1ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_IMAG
+EP2RealChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_REAL
+EP2ImagChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_IMAG
+EP3RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_REAL
+EP3ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_IMAG
+EP4RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_REAL
+EP4ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_IMAG
+EP5RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_REAL
+EP5ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_IMAG
+EP6RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_REAL
+EP6ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_IMAG
+EP7RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_REAL
+EP7ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_IMAG
+EP8RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_REAL
+EP8Imagchannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_IMAG
+EP9RealChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_REAL
+EP9ImagChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_IMAG
+EP10RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_REAL
+EP10ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_IMAG
+EP11RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_REAL
+EP11ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_IMAG
+EP12RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_REAL
+EP12ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_IMAG
+EP13RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_REAL
+EP13ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_IMAG
+EP14RealChannel: CAL-CS_TDEP_PCALY_LINE1_REF_A_USUM_REAL
+EP14ImagChannel: CAL-CS_TDEP_PCALY_LINE1_REF_A_USUM_IMAG
+EP15RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_REAL
+EP15Imagchannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_IMAG
+EP16RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_REAL
+EP16ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_IMAG
+EP17RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_REAL
+EP17ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_IMAG
+EP18RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_REAL
+EP18ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_IMAG
+EP19RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_REAL
+EP19ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_IMAG
+EP20RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_REAL
+EP20ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_IMAG
+EP21RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_REAL
+EP21ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_IMAG
+EP22RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_REAL
+EP22ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_IMAG
+EP23RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_REAL
+EP23ImagChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_IMAG
+EP24RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_REAL
+EP24ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_IMAG
+
+[SampleRates]
+# Sample rate at which to compute h(t)
+HoftSR: 16384
+# Sample rate at which to compute CALIB_STATE_VECTOR
+CalibStateSR: 16
+# Sample rate of control channel
+# Should be 16384 if using DARM_CTRL and 4096 if using DELTAL_CTRL 
+CtrlSR: 4096
+# Sample rate of low noise state channel
+LowNoiseSR: 16
+# Sample rate of HW injection channel
+HWInjSR: 16384
+# Sample rate of observation intent channel
+ObsIntentSR: 16
+# Sample rate list for chanels being used to trigger filter settling clock
+FilterClockSRList: 16
+# Sample rate of TST excitation channel
+TSTExcSR: 512
+# Sample rate of PUM excitation channel
+PUMExcSR: 512
+# Sample rate of UIM excitation channel
+UIMExcSR: 512
+# Sample rate of coherence channels
+CohSR: 16
+# Sample rate for the EPICS reference channels
+EPICSRefSR: 16
+# Sample rates at which transfer functions will be computed and witness channels will be filtered, given as a semicolon-separated list, e.g., 2048;2048;512;2048. This must be given if WitnessChannelList is not None, and it must be the same length.
+WitnessChannelSR: 512
+# Sample rates at which to compute and record TDCFs
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+
+[Bitmasks]
+ObsReadyBitmask: 1
+ObsIntentBitmask: 1
+FilterClockBitmaskList: 1
+CBCHWInjOffBitmask: 9
+BurstHWInjOffBitmask: 17
+DetCharHWInjOffBitmask: 33
+StochHWInjOffBitmask: 65
+NoiseSubGateBitmask: 1
+
+[PipelineConfigurations]
+BufferLength: 1.0
+FrequencyDomainFiltering: No
+Dewhitening: No
+# Latency of all filtering/averaging/median processes (other than calibration model filters) as a fraction of filter length. Value should be set between 0.0 and 1.0.
+FilterLatency: 0.0
+
+[DataCleaningConfigurations]
+# Remove the DC component from the residual and control channels before filtering
+RemoveDC: No
+# Subtract the calibration lines from the h(t) spectrum
+RemoveCalLines: No
+###############################################################
+# Options for running line subtraction using witness channels #
+###############################################################
+# Semicolon-separated list of comma-separated lists of frequencies (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqs: 15.1;15.7;16.9;16.3,434.9,1083.1;60.0,120.0,180.0,240.0,300.0
+# Time over which to take a median of transfer functions
+LineWitnessTFMedianTime: 128
+# Time over which to average transfer functions
+LineWitnessTFAveragingTime: 1
+# Semicolon-separated list of typical frequency fluctuations in lines being subtracted (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqVars: 0.0;0.0;0.0;0.0;0.02
+#######################################
+# Options for broadband noise removal #
+#######################################
+# The length in seconds of the fast Fourier transforms used to compute transfer functions between witness channels and h(t). The fft's are windowed with Hann windows and overlapped.
+WitnessChannelFFTTime: 4.0
+# The number of ffts to take before averaging the witness -> h(t) transfer functions calculation. The average is taken after the ratio h(f) / witness(f).
+NumWitnessFFTs: 1000
+# Sets the minimum number of FFTs necessary to produce the first transfer functions and clean data after data flow starts.
+MinWitnessFFTs: 300
+# The length in seconds of the filters applied to the witness channels before subtracting from h(t)
+WitnessFIRLength: 1.0
+# The frequency resolution of the filters applied to the witness channels before subtracting from h(t). It can be advantageous to lower the frequency resolution in order to average over excess noise.
+WitnessFrequencyResolution: 0.5
+# List of minima and maxima of frequency ranges where the Fourier transform of h(t) will be replaced by a straight line in the calculation of transfer functions between witness channels and h(t) for noise subtraction. Semicolons separate lists for different sets of witness channels. If no notches are desired, use zeros, e.g., \'0;0;0\'. Here is an example using the expected format: \'495.0,515.0,985.0,1015.0;59,60,119,121;0\' This can be useful, e.g., if there are loud lines in the signal that are not present in the witness channels.
+WitnessNotchFrequencies: 0
+# Cutoff frequencies for high-pass filters for witness channels
+WitnessHighPasses: 10
+# The amount of time after transfer functions between witness channels and h(t) are finished to begin the calculation of the next set of transfer functions
+WitnessTFUpdateTime: 4
+# If lock-loss lasts at least this many seconds, transfer functions will revert to those computed at the beginning of a lock stretch. Set to zero to disbale.
+CriticalLockLossTime: 1800
+# The amount of time to use to taper in newly computed FIR filters for witness channels being used for noise subtraction.
+WitnessFilterTaperTime: 2
+# If writing transfer functions to file, this sets the name. If transfer functions should not be written to file, this should be set to None
+WitnessTFFilename: None
+# Should the transfer function calculation use a median? If not, an average (mean) is used.
+WitnessTFUseMedian: Yes
+# Should transfer functions be computed on a fixed schedule, so that the output does not depend on start time?  This is useful for running jobs in parallel.  Otherwise, they are computed asap.
+WitnessTFParallelMode: No
+# When using parallel mode, how many seconds later should we shift the time when transfer functions start being computed from a multiple of the cycle period?
+WitnessTFTimeShift: 360
+# To write only one strain channel, and pick whichever is less noisy, set this option to 'Yes'. This way, if a problem arises with the noise subtraction it will not affect the output strain channel.
+PickCleanestStrainChannel: No
+# A half Hann window is used for transitions between cleaned and uncleaned data.  This is the length of that window in seconds.
+StrainChannelTransitionTime: 10.0
+###############################
+# Options for HOFT_CLEAN bits #
+###############################
+# The amount of data from h(t) and cleaned h(t) that is used to compute and compare the rms. This comparison between cleaned and uncleaned h(t) determines whether the HOFT_CLEAN bits of the calibration state vector are on or off.
+CleaningCheckRMSTime: 30.0
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMin: 15
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMax: 20
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMin: 20
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMax: 200
diff --git a/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/test_nokappas.ini b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/test_nokappas.ini
new file mode 100644
index 0000000000000000000000000000000000000000..6ca1a6464427c36667e3deb8f5d3686a49767e6c
--- /dev/null
+++ b/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/test_nokappas.ini
@@ -0,0 +1,404 @@
+[InputConfigurations]
+# Filters file containing calibration FIR filters
+FiltersFileName: /home/wademc/src/gstlal/gstlal-calibration/tests/L1GDS_1238100191_filter_tests/L1/Filters/O3/GDSFilters/L1GDS_1238100191.npz
+# Data source should be set to frames or lvshm
+DataSource: frames
+FileChecksum: No
+# Right now, SkipBadFiles needs to be off when reading from frames
+SkipBadFiles: No
+############################################
+# If reading from frames use these options #
+############################################
+# None
+
+###################################################
+# If reading from shared memory use these options #
+###################################################
+SHMPartition: LLO_Online
+# Assumed duration of input frames in seconds
+InputFrameDuration: 1
+
+[OutputConfigurations]
+CompressionScheme: 6
+CompressionLevel: 3
+ChanPrefix: GDS-
+# Set to "None" if you do not want a channel suffix
+ChanSuffix: None
+# Data sink should be set to frames or lvshm
+DataSink: frames
+#################################################
+# If writing to shared memory use these options #
+#################################################
+OutputSHMPartition: LLO_hoft
+BufferMode: 2
+# Use this to approximate the frame size (in bytes) when writing to shared memory
+FrameSize: 405338
+NumBuffers: 10
+###############################################
+# If writing to frame files use these options #
+###############################################
+FrameType: L1_TEST_NOKAPPAS
+
+[CalibrationConfigurations]
+IFO: L1
+# Set calibration mode to Full or Partial
+CalibrationMode: Partial
+ComputeCalibStateVector: Yes
+
+[DebuggingConfigurations]
+# If you want to write a pipeline graph, provide the graph name.  Otherwise, set name equal to None
+PipelineGraphFilename: None
+Verbose: Yes
+# Turn this on to write data presentation timestamps and real-time unix timestamps to file at the beginning and end of the pipeline, to measure latency
+TestLatency: No
+# Turn this on to compute transfer functions for the filters by comparing output data to input data
+TestFilters: No
+
+[TDCFConfigurations]
+#########################################################
+# Options related to time dependent correction  factors #
+#########################################################
+ComputeKappaTST: Yes
+ApplyKappaTST: No
+# Set this to have the \kappa_tst factors filter the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaTST: No
+
+ComputeKappaPU: No
+ApplyKappaPU: No
+# Set this to have the \kappa_pu factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors
+ApplyComplexKappaPU: No
+
+ComputeKappaPUM: Yes
+ApplyKappaPUM: No
+# Set this to have the \kappa_p factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaPUM: No
+
+ComputeKappaUIM: Yes
+ApplyKappaUIM: No
+# Set this to have the \kappa_u factors the actuation chain with an adaptive filter that corrects for both magnitude and phase errors.
+ApplyComplexKappaUIM: No
+
+ComputeKappaC: Yes
+ApplyKappaC: No
+
+ComputeFcc: Yes
+ApplyFcc: No
+
+ComputeSRCQ: Yes
+ApplySRCQ: No
+
+ComputeFs: Yes
+ApplyFs: No
+
+###########################################
+# Options related to the coherence gating #
+###########################################
+UseCoherence: Yes
+CoherenceUncThreshold: 0.02
+# Amount of time used in front-end to compute coherence
+CoherenceTime: 130
+###################################################################
+# Options related to the computation configurations for the TDCFs #
+###################################################################
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+# Length in seconds of low-pass FIR filter used in demodulation of the calibration lines
+DemodulationFilterTime: 20
+# Time (in seconds) to smooth out \kappas with a median-like method
+MedianSmoothingTime: 128
+TDCFAveragingTime: 10
+#If set to yes, bad computed kappas will be replaced by the previous computed median in the running median array. Otherwise, they are replaced with the default value
+TDCFDefaultToMedian: Yes
+# If using Y-end Pcal, we need a minus sign, so set this to -1.0
+PcalSign: 1.0
+##################################################
+# Options related to updating cavity pole filter #
+##################################################
+# Duration of the Fcc filter in the time domain in seconds
+FccFilterDuration: 0.01
+# Number of seconds to average Fcc values before creating a new Fcc filter
+FccAveragingTime: 60 
+# Number of samples to be used when tapering old filter and ramping in new filter
+FccFilterTaperLength: 32768
+############################
+# Nominal values for TDCFs #
+############################
+ExpectedKappaTSTReal: 1.0
+ExpectedKappaTSTImag: 0.0
+ExpectedKappaPUMReal: 1.0
+ExpectedKappaPUMImag: 0.0
+ExpectedKappaUIMReal: 1.0
+ExpectedKappaUIMImag: 0.0
+ExpectedKappaPUReal: 1.0
+ExpectedKappaPUImag: 0.0
+ExpectedKappaC: 1.0
+ExpectedFs_Squared: 5.253 
+################################
+# Acceptable variance in TDCFs #
+################################
+KappaTSTRealVar: 0.2
+KappaTSTImagVar: 0.2
+KappaPURealVar: 0.2
+KappaPUImagVar: 0.2
+KappaPUMRealVar: 0.2
+KappaPUMImagVar: 0.2
+KappaUIMRealVar: 0.2
+KappaUIMImagVar: 0.2
+KappaCVar: 0.2
+FccVar: 50.0
+FsVar: 5.0
+SRCQInvMin: 0.0
+SRCQInvMax: 0.5
+#######################
+# EPICS records input #
+#######################
+# Set to Yes if EPICS records for TDCF computations should be read from filters file.  If set to No, they will be read from frames
+FactorsFromFiltersFile: No
+##############################################################################################
+# Updating Sensing and Actuation filters with all frequency-dependent corrections parameters #
+##############################################################################################
+# Length of time (in seconds) between when inverse-sensing FIR filter is updated
+SensingFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the sensing function are averaged before updating the filter
+SensingFilterAveragingTime: 1
+# Number of samples to be used when tapering old inverse sensing filter and ramping in new filter
+SensingFilterTaperLength: 32768
+# Length of time (in seconds) between when the actuation FIR filters are updated
+ActuationFilterUpdateTime: 64
+# Length of time (in seconds) over which the smoothed time-dependent parameters of the actuation function are averaged before updating the filter
+ActuationFilterAveragingTime: 1
+# Number of samples to be used when tapering old actuation filters and ramping in new filters
+ActuationFilterTaperLength: 32768
+
+[ChannelNames]
+#############################
+# Calibration Channel Names #
+#############################
+DARMCtrlChannel: CAL-DARM_CTRL_DBL_DQ
+DARMErrChannel: CAL-DARM_ERR_DBL_DQ
+DeltaLTSTChannel: CAL-DELTAL_CTRL_TST_DBL_DQ
+DeltaLPUMChannel: CAL-DELTAL_CTRL_PUM_DBL_DQ
+DeltaLUIMChannel: CAL-DELTAL_CTRL_UIM_DBL_DQ
+DeltaLResChannel: CAL-DELTAL_RESIDUAL_DBL_DQ
+####################################
+# Data Quality Vector Channel Name #
+####################################
+LowNoiseStateChannel: GRD-IFO_READY
+HWInjChannel: CAL-INJ_STATUS_OUT_DQ
+ObsIntentChannel: GRD-IFO_INTENT
+FilterClockChannelList: GRD-ISC_LOCK_OK
+##################################
+# Calibration Line Channel Names #
+##################################
+DARMExcChannel: CAL-CS_LINE_SUM_DQ
+TSTExcChannel: SUS-ETMY_L3_CAL_LINE_OUT_DQ
+PUMExcChannel: SUS-ETMX_L2_CAL_LINE_OUT_DQ 
+UIMExcChannel: SUS-ETMX_L1_CAL_LINE_OUT_DQ
+PCALChannel: CAL-PCALY_RX_PD_OUT_DQ
+############################################
+# Calibration Line Frequency Channel Names #
+############################################
+DARMExcLineFreqChannel: CAL-CS_TDEP_DARM_LINE1_COMPARISON_OSC_FREQ
+TSTExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE3_COMPARISON_OSC_FREQ
+PUMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE2_COMPARISON_OSC_FREQ
+UIMExcLineFreqChannel: CAL-CS_TDEP_SUS_LINE1_COMPARISON_OSC_FREQ
+PCALLine1FreqChannel: CAL-CS_TDEP_PCAL_LINE1_COMPARISON_OSC_FREQ
+PcalLine1CorrRealChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_REAL
+PcalLine1CorrImagChannel: CAL-CS_TDEP_PCAL_LINE1_CORRECTION_IMAG
+PCALLine2FreqChannel: CAL-CS_TDEP_PCAL_LINE2_COMPARISON_OSC_FREQ
+PcalLine2CorrRealChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_REAL
+PcalLine2CorrImagChannel: CAL-CS_TDEP_PCAL_LINE2_CORRECTION_IMAG
+PCALLine3FreqChannel: CAL-CS_TDEP_PCAL_LINE3_COMPARISON_OSC_FREQ
+PcalLine3CorrRealChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_REAL
+PcalLine3CorrImagChannel: CAL-CS_TDEP_PCAL_LINE3_CORRECTION_IMAG
+PCALLine4FreqChannel: CAL-CS_TDEP_PCAL_LINE4_COMPARISON_OSC_FREQ
+PcalLine4CorrRealChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_REAL
+PcalLine4CorrImagChannel: CAL-CS_TDEP_PCAL_LINE4_CORRECTION_IMAG
+#######################################
+# Coherence Uncertainty Channel Names #
+#######################################
+CohUncSusLine1Channel: CAL-CS_TDEP_SUS_LINE1_UNCERTAINTY
+CohUncSusLine2Channel: CAL-CS_TDEP_SUS_LINE2_UNCERTAINTY
+CohUncSusLine3Channel: CAL-CS_TDEP_SUS_LINE3_UNCERTAINTY
+CohUncPcalyLine1Channel: CAL-CS_TDEP_PCAL_LINE1_UNCERTAINTY
+CohUncPcalyLine2Channel: CAL-CS_TDEP_PCAL_LINE2_UNCERTAINTY
+CohUncPcalyLine4Channel: CAL-CS_TDEP_PCAL_LINE4_UNCERTAINTY
+CohUncDARMLine1Channel: CAL-CS_TDEP_DARM_LINE1_UNCERTAINTY
+###################################
+# Noise Subtraction Channel Names #
+###################################
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract lines from h(t)
+# Semicolons separate channels to be handled separately (in series), and commas separate channels to be handled in parallel.
+#Set to None if no line witness channels are to be used
+LineWitnessChannelList: SUS-ETMX_L1_CAL_LINE_OUT_DQ;SUS-ETMX_L2_CAL_LINE_OUT_DQ;SUS-ETMY_L3_CAL_LINE_OUT_DQ;CAL-PCALY_RX_PD_OUT_DQ;PEM-EY_MAINSMON_EBAY_1_DQ
+# Semicolon-separated list of comma-separated lists of witness channels to use to subtract noise from h(t)
+# Set to None if no witness channels are to be used
+#WitnessChannelList: ASC-DHARD_P_OUT_DQ,ASC-DHARD_Y_OUT_DQ,ASC-CHARD_P_OUT_DQ,ASC-CHARD_Y_OUT_DQ,LSC-SRCL_IN1_DQ,LSC-MICH_IN1_DQ,LSC-PRCL_IN1_DQ
+WitnessChannelList: None
+# What channel should we use to gate the noise subtraction and 60-Hz line subtraction
+NoiseSubGateChannel: GRD-ISC_LOCK_OK
+###############################
+# EPICS Records Channel Names #
+###############################
+EP1RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_REAL
+EP1ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_INVA_TST_RESPRATIO_IMAG
+EP2RealChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_REAL
+EP2ImagChannel: CAL-CS_TDEP_REF_CLGRATIO_CTRL_IMAG
+EP3RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_REAL
+EP3ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_INV_IMAG
+EP4RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_REAL
+EP4ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_TST_IMAG
+EP5RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_REAL
+EP5ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_USUM_IMAG
+EP6RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_REAL
+EP6ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_C_NOCAVPOLE_IMAG
+EP7RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_REAL
+EP7ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_D_IMAG
+EP8RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_REAL
+EP8Imagchannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_TST_IMAG
+EP9RealChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_REAL
+EP9ImagChannel: CAL-CS_TDEP_PCALY_LINE2_REF_A_USUM_IMAG
+EP10RealChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_REAL
+EP10ImagChannel: CAL-CS_TDEP_SUS_LINE3_REF_A_TST_NOLOCK_IMAG
+EP11RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_REAL
+EP11ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_C_NOCAVPOLE_IMAG
+EP12RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_REAL
+EP12ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_D_IMAG
+EP13RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_REAL
+EP13ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_TST_IMAG
+EP14RealChannel: CAL-CS_TDEP_PCALY_LINE1_REF_A_USUM_REAL
+EP14ImagChannel: CAL-CS_TDEP_PCALY_LINE1_REF_A_USUM_IMAG
+EP15RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_REAL
+EP15Imagchannel: CAL-CS_TDEP_SUS_LINE2_REF_INVA_PUM_RESPRATIO_IMAG
+EP16RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_REAL
+EP16ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_UIM_INV_IMAG
+EP17RealChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_REAL
+EP17ImagChannel: CAL-CS_TDEP_DARM_LINE1_REF_A_PUM_IMAG
+EP18RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_REAL
+EP18ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_PUM_IMAG
+EP19RealChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_REAL
+EP19ImagChannel: CAL-CS_TDEP_PCAL_LINE2_REF_A_UIM_IMAG
+EP20RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_REAL
+EP20ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_PUM_IMAG
+EP21RealChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_REAL
+EP21ImagChannel: CAL-CS_TDEP_PCAL_LINE1_REF_A_UIM_IMAG
+EP22RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_REAL
+EP22ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_INVA_UIM_RESPRATIO_IMAG
+EP23RealChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_REAL
+EP23ImagChannel: CAL-CS_TDEP_SUS_LINE2_REF_A_PUM_NOLOCK_IMAG
+EP24RealChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_REAL
+EP24ImagChannel: CAL-CS_TDEP_SUS_LINE1_REF_A_UIM_NOLOCK_IMAG
+
+[SampleRates]
+# Sample rate at which to compute h(t)
+HoftSR: 16384
+# Sample rate at which to compute CALIB_STATE_VECTOR
+CalibStateSR: 16
+# Sample rate of control channel
+# Should be 16384 if using DARM_CTRL and 4096 if using DELTAL_CTRL 
+CtrlSR: 4096
+# Sample rate of low noise state channel
+LowNoiseSR: 16
+# Sample rate of HW injection channel
+HWInjSR: 16384
+# Sample rate of observation intent channel
+ObsIntentSR: 16
+# Sample rate list for chanels being used to trigger filter settling clock
+FilterClockSRList: 16
+# Sample rate of TST excitation channel
+TSTExcSR: 512
+# Sample rate of PUM excitation channel
+PUMExcSR: 512
+# Sample rate of UIM excitation channel
+UIMExcSR: 512
+# Sample rate of coherence channels
+CohSR: 16
+# Sample rate for the EPICS reference channels
+EPICSRefSR: 16
+# Sample rates at which transfer functions will be computed and witness channels will be filtered, given as a semicolon-separated list, e.g., 2048;2048;512;2048. This must be given if WitnessChannelList is not None, and it must be the same length.
+WitnessChannelSR: 512
+# Sample rates at which to compute and record TDCFs
+ComputeFactorsSR: 16
+RecordFactorsSR: 16
+
+[Bitmasks]
+ObsReadyBitmask: 1
+ObsIntentBitmask: 1
+FilterClockBitmaskList: 1
+CBCHWInjOffBitmask: 9
+BurstHWInjOffBitmask: 17
+DetCharHWInjOffBitmask: 33
+StochHWInjOffBitmask: 65
+NoiseSubGateBitmask: 1
+
+[PipelineConfigurations]
+BufferLength: 1.0
+FrequencyDomainFiltering: No
+Dewhitening: No
+# Latency of all filtering/averaging/median processes (other than calibration model filters) as a fraction of filter length. Value should be set between 0.0 and 1.0.
+FilterLatency: 0.0
+
+[DataCleaningConfigurations]
+# Remove the DC component from the residual and control channels before filtering
+RemoveDC: No
+# Subtract the calibration lines from the h(t) spectrum
+RemoveCalLines: No
+###############################################################
+# Options for running line subtraction using witness channels #
+###############################################################
+# Semicolon-separated list of comma-separated lists of frequencies (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqs: 15.1;15.7;16.9;16.3,434.9,1083.1;60.0,120.0,180.0,240.0,300.0
+# Time over which to take a median of transfer functions
+LineWitnessTFMedianTime: 128
+# Time over which to average transfer functions
+LineWitnessTFAveragingTime: 1
+# Semicolon-separated list of typical frequency fluctuations in lines being subtracted (same number of semicolons as LineWitnessChannelList)
+LineWitnessFreqVars: 0.0;0.0;0.0;0.0;0.02
+#######################################
+# Options for broadband noise removal #
+#######################################
+# The length in seconds of the fast Fourier transforms used to compute transfer functions between witness channels and h(t). The fft's are windowed with Hann windows and overlapped.
+WitnessChannelFFTTime: 4.0
+# The number of ffts to take before averaging the witness -> h(t) transfer functions calculation. The average is taken after the ratio h(f) / witness(f).
+NumWitnessFFTs: 1000
+# Sets the minimum number of FFTs necessary to produce the first transfer functions and clean data after data flow starts.
+MinWitnessFFTs: 300
+# The length in seconds of the filters applied to the witness channels before subtracting from h(t)
+WitnessFIRLength: 1.0
+# The frequency resolution of the filters applied to the witness channels before subtracting from h(t). It can be advantageous to lower the frequency resolution in order to average over excess noise.
+WitnessFrequencyResolution: 0.5
+# List of minima and maxima of frequency ranges where the Fourier transform of h(t) will be replaced by a straight line in the calculation of transfer functions between witness channels and h(t) for noise subtraction. Semicolons separate lists for different sets of witness channels. If no notches are desired, use zeros, e.g., \'0;0;0\'. Here is an example using the expected format: \'495.0,515.0,985.0,1015.0;59,60,119,121;0\' This can be useful, e.g., if there are loud lines in the signal that are not present in the witness channels.
+WitnessNotchFrequencies: 0
+# Cutoff frequencies for high-pass filters for witness channels
+WitnessHighPasses: 10
+# The amount of time after transfer functions between witness channels and h(t) are finished to begin the calculation of the next set of transfer functions
+WitnessTFUpdateTime: 4
+# If lock-loss lasts at least this many seconds, transfer functions will revert to those computed at the beginning of a lock stretch. Set to zero to disbale.
+CriticalLockLossTime: 1800
+# The amount of time to use to taper in newly computed FIR filters for witness channels being used for noise subtraction.
+WitnessFilterTaperTime: 2
+# If writing transfer functions to file, this sets the name. If transfer functions should not be written to file, this should be set to None
+WitnessTFFilename: None
+# Should the transfer function calculation use a median? If not, an average (mean) is used.
+WitnessTFUseMedian: Yes
+# Should transfer functions be computed on a fixed schedule, so that the output does not depend on start time?  This is useful for running jobs in parallel.  Otherwise, they are computed asap.
+WitnessTFParallelMode: No
+# When using parallel mode, how many seconds later should we shift the time when transfer functions start being computed from a multiple of the cycle period?
+WitnessTFTimeShift: 360
+# To write only one strain channel, and pick whichever is less noisy, set this option to 'Yes'. This way, if a problem arises with the noise subtraction it will not affect the output strain channel.
+PickCleanestStrainChannel: No
+# A half Hann window is used for transitions between cleaned and uncleaned data.  This is the length of that window in seconds.
+StrainChannelTransitionTime: 10.0
+###############################
+# Options for HOFT_CLEAN bits #
+###############################
+# The amount of data from h(t) and cleaned h(t) that is used to compute and compare the rms. This comparison between cleaned and uncleaned h(t) determines whether the HOFT_CLEAN bits of the calibration state vector are on or off.
+CleaningCheckRMSTime: 30.0
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMin: 15
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_LOWFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeLowMax: 20
+# Minimum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMin: 20
+# Maximum of a range of frequencies in which we expect line/noise subtraction to be impactful. The HOFT_CLEAN_MIDFREQ_OK bit of the calibration state vector is determined based on whether rms of the cleaned data is less than that of uncleaned h(t) in this range.
+CleaningCheckRangeMidMax: 200