diff --git a/hallc_replay_gui.py b/hallc_replay_gui.py
new file mode 100755
index 0000000000000000000000000000000000000000..6117e0e6b5657cc409c8891e3047ab8d693936c5
--- /dev/null
+++ b/hallc_replay_gui.py
@@ -0,0 +1,764 @@
+#!/usr/bin/python3.6
+
+import sys
+
+if sys.version_info[0] < 3:
+    import Tkinter as tk
+else:	
+    import tkinter as tk
+import os
+
+root = tk.Tk()
+
+hms_def_filename = "DEF-files/HMS/PRODUCTION/hstackana_production.def"
+hms_def_filename_bck = "DEF-files/HMS/PRODUCTION/hstackana_production.def.bck"
+shms_def_filename = "DEF-files/SHMS/PRODUCTION/pstackana_production.def"
+shms_def_filename_bck = "DEF-files/SHMS/PRODUCTION/pstackana_production.def.bck"
+
+def hms_var_states():
+    hms_def_file_text = []
+#    if (hcerana_histos.get() == 1) or (hdcana_histos.get() == 1) or (hhodoana_histos.get() == 1) or (hcalana_histos.get() == 1) or (htrigana_histos.get() == 1):
+#        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/BLOCK/hblock_vars.def"\n''')
+#        hms_def_file_text.append("\n")
+
+    if hcerana_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/TEST_STANDS/CER/hcerana_histos.def"\n''')
+    if hdcana_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/TEST_STANDS/DC/hdcana_histos.def"\n''')
+    if hhodoana_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/TEST_STANDS/HODO/hhodoana_histos.def"\n''')
+    if hcalana_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/TEST_STANDS/CAL/hcalana_histos.def"\n''')
+    if htrigana_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/TEST_STANDS/TRIG/htrigana_histos.def"\n''')
+    if (hcerana_histos.get() == 1) or (hdcana_histos.get() == 1) or (hhodoana_histos.get() == 1) or (hcalana_histos.get() == 1) or (htrigana_histos.get() == 1):
+        hms_def_file_text.append("\n")
+
+    if hcal_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/CAL/hcal_histos.def"\n''')
+    if hcer_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/CER/hcer_histos.def"\n''')
+    if hdc_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/DC/hdc_histos.def"\n''')
+        hms_def_file_text.append('''#include "DEF-files/HMS/TEST_STANDS/DC/hdc_resid.def"\n''')
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/DC/hdc_eff_histos.def"\n''')
+    if hhodo_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/HODO/hhodo_histos.def"\n''')
+    if hkin_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/KIN/hkin_histos.def"\n''')
+    if hgtr_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/GTR/hgtr_histos.def"\n''')
+    if hraster_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/RASTER/hraster_histos.def"\n''')
+    if htrig_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/TRIG/htrig_histos.def"\n''')
+    if hreact_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/REACT/hreact_histos.def"\n''')
+    if hpid_histos.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/PID/hpid_histos.def"\n''')
+    
+    hms_def_file_text.append('''\n''')
+
+    if hf2gtr_vars.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/GTR/hgtr_vars.def"\n''')
+    if hpid_vars.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/PID/hpid_vars.def"\n''')
+    if hepics_vars.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/EPICS/hepics_vars.def"\n''')
+    if hf2kin_vars.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/KIN/hkin_vars.def"\n''')
+
+    hms_def_file_text.append('''\n''')
+    
+    if hf2block_vars.get() == 1:
+        hms_def_file_text.append('''#include "DEF-files/HMS/PRODUCTION/BLOCK/hblock_vars.def"\n''')
+
+    hms_def_file_text.append('''\n''')
+    
+    if hthms_vars.get() == 1:
+        hms_def_file_text.append('''block T.hms.*\n''')
+    if hcer_vars.get() == 1:
+        hms_def_file_text.append('''block H.cer.*\n''')
+    if hdc_vars.get() == 1:
+        hms_def_file_text.append('''block H.dc.*\n''')
+    if htrig_vars.get() == 1:
+        hms_def_file_text.append('''block H.tr.*\n''')
+    if hhodo_vars.get() == 1:
+        hms_def_file_text.append('''block H.hod.*\n''')
+    if hcal_vars.get() == 1:
+        hms_def_file_text.append('''block H.cal.*\n''')
+    if hgtr_vars.get() == 1:
+        hms_def_file_text.append('''block H.gtr.*\n''')
+    if hkin_vars.get() == 1:
+        hms_def_file_text.append('''block H.kin.*\n''')
+    if hraster_vars.get() == 1:
+        hms_def_file_text.append('''block H.rb.*\n''')
+    if hreact_vars.get() == 1:
+        hms_def_file_text.append('''block H.react.*\n''')
+   
+    print ("Backing up current HMS Output DEF-file ...")
+    command = "mv " + hms_def_filename + " " + hms_def_filename_bck
+    os.system(command) 
+    print ("Writing new HMS Output DEF-file ...")
+    hms_def_file = open(hms_def_filename,"w")
+    hms_def_file.writelines(hms_def_file_text)
+    hms_def_file.close()
+
+def shms_var_states():
+    shms_def_file_text = []
+#    if (paeroana_histos.get() == 1) or (pcalana_histos.get() == 1) or (pdcana_histos.get() == 1) or (phgcerana_histos.get() == 1) or (phodoana_histos.get() == 1) or ( pngcerana_histos.get() == 1) or (ptrigana_histos.get() == 1):
+#        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/BLOCK/pblock_vars.def"\n''')
+#        shms_def_file_text.append("\n")
+
+    if paeroana_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/TEST_STANDS/AERO/paeroana_histos.def"\n''')
+    if pcalana_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/TEST_STANDS/CAL/pcalana_histos.def"\n''')
+    if pdcana_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/TEST_STANDS/DC/pdcana_histos.def"\n''')
+    if phgcerana_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/TEST_STANDS/HGCER/pgcerana_histos.def"\n''')
+    if phodoana_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/TEST_STANDS/HODO/phodoana_histos.def"\n''')
+    if pngcerana_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/TEST_STANDS/NGCER/pngcerana_histos.def"\n''')
+    if ptrigana_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/TEST_STANDS/TRIG/ptrigana_histos.def"\n''')
+    if (paeroana_histos.get() == 1) or (pcalana_histos.get() == 1) or (pdcana_histos.get() == 1) or (phgcerana_histos.get() == 1) or (phodoana_histos.get() == 1) or ( pngcerana_histos.get() == 1) or (ptrigana_histos.get() == 1):
+        shms_def_file_text.append("\n")
+
+    if paero_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/AERO/paero_histos.def"\n''')
+    if pcal_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/CAL/pcal_histos.def"\n''')
+    if pdc_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/DC/pdc_histos.def"\n''')
+    if pgtr_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/GTR/pgtr_histos.def"\n''')
+    if phgcer_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/HGCER/phgcer_histos.def"\n''')
+    if phodo_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/HODO/phodo_histos.def"\n''')
+    if pkin_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/KIN/pkin_histos.def"\n''')
+    if pngcer_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/NGCER/pngcer_histos.def"\n''')
+    if praster_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/RASTER/praster_histos.def"\n''')
+    if ptrig_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/TRIG/ptrig_histos.def"\n''')
+    if preact_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/REACT/preact_histos.def"\n''')
+    if ppid_histos.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/PID/ppid_histos.def"\n''')
+    
+    shms_def_file_text.append('''\n''')
+    
+    if pf2dc_vars.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/DC/pdc_vars.def"\n''')
+    if pf2gtr_vars.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/GTR/pgtr_vars.def"\n''')
+    if ppid_vars.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/PID/ppid_vars.def"\n''')
+    if pepics_vars.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/EPICS/pepics_vars.def"\n''')
+    if pf2kin_vars.get() == 1:
+        shms_def_file_text.append('''#include "DEF-files/SHMS/PRODUCTION/KIN/pkin_vars.def"''')
+   
+    if ptshms_vars.get() == 1:
+        shms_def_file_text.append('''block T.shms.*\n''')
+    if pngcer_vars.get() == 1:
+        shms_def_file_text.append('''block P.ngcer.*\n''')
+    if pdc_vars.get() == 1:
+        shms_def_file_text.append('''block P.dc.*\n''')
+    if phodo_vars.get() == 1:
+        shms_def_file_text.append('''block P.hod.*\n''')
+    if phgcer_vars.get() == 1:
+        shms_def_file_text.append('''block P.hgcer.*\n''')
+    if paero_vars.get() == 1:
+        shms_def_file_text.append('''block P.aero.*\n''')
+    if pcal_vars.get() == 1:
+        shms_def_file_text.append('''block P.cal.*\n''')
+    if ptrig_vars.get() == 1:
+        shms_def_file_text.append('''block P.tr.*\n''')
+    if pgtr_vars.get() == 1:
+        shms_def_file_text.append('''block P.gtr.*\n''')
+    if pkin_vars.get() == 1:
+        shms_def_file_text.append('''block P.kin.*\n''')
+    if praster_vars.get() == 1:
+        shms_def_file_text.append('''block P.rb.*\n''')
+    if preact_vars.get() == 1:
+        shms_def_file_text.append('''block P.react.*\n''')
+    
+    print ("Backing up current SHMS Output DEF-file ...")
+    command = "mv " + shms_def_filename + " " + shms_def_filename_bck
+    os.system(command) 
+    print ("Writing new SHMS Output DEF-file ...")
+    shms_def_file = open(shms_def_filename,"w")
+    shms_def_file.writelines(shms_def_file_text)
+    shms_def_file.close()
+
+def set_hms_production_defaults():
+    hcal_histos.set(1)
+    hcer_histos.set(1)
+    hdc_histos.set(1)
+    hhodo_histos.set(1)
+    htrig_histos.set(1)
+    hkin_histos.set(1)
+    hgtr_histos.set(1)
+    hraster_histos.set(1)
+    hreact_histos.set(1)
+    hpid_histos.set(1)
+    hcalana_histos.set(0)
+    hcerana_histos.set(0)
+    hdcana_histos.set(0)
+    hhodoana_histos.set(0)
+    htrigana_histos.set(0)
+    hepics_vars.set(1)
+    hf2gtr_vars.set(1)
+    hf2kin_vars.set(1)
+    hf2block_vars.set(1)
+    hpid_vars.set(1)
+    hthms_vars.set(0)
+    hcal_vars.set(0)
+    hcer_vars.set(0)
+    hdc_vars.set(0)
+    hhodo_vars.set(0)
+    hgtr_vars.set(0)
+    htrig_vars.set(0)
+    hkin_vars.set(0)
+    hraster_vars.set(0)
+    hreact_vars.set(0)
+    
+def set_shms_production_defaults():
+    paero_histos.set(1)
+    pcal_histos.set(1)
+    pdc_histos.set(1)
+    pgtr_histos.set(1)
+    phgcer_histos.set(1)
+    phodo_histos.set(1)
+    pkin_histos.set(1)
+    pngcer_histos.set(1)
+    praster_histos.set(1)
+    ptrig_histos.set(1)
+    preact_histos.set(1)
+    ppid_histos.set(1)
+    paeroana_histos.set(0)
+    pcalana_histos.set(0)
+    pdcana_histos.set(0)
+    phgcerana_histos.set(0)
+    phodoana_histos.set(0)
+    pngcerana_histos.set(0)
+    ptrigana_histos.set(0)
+    pepics_vars.set(1)
+    pf2dc_vars.set(1)
+    pf2kin_vars.set(1)
+    pf2gtr_vars.set(1)
+    ppid_vars.set(1)
+    ptshms_vars.set(0)
+    paero_vars.set(0)
+    pcal_vars.set(0)
+    pdc_vars.set(0)
+    phgcer_vars.set(0)
+    phodo_vars.set(0)
+    pngcer_vars.set(0)
+    ptrig_vars.set(0)
+    pkin_vars.set(0)
+    pgtr_vars.set(0)
+    praster_vars.set(0)
+    preact_vars.set(0)
+    
+def set_hms_teststand_on():
+    hcalana_histos.set(1)
+    hcerana_histos.set(1)
+    hdcana_histos.set(1)
+    hhodoana_histos.set(1)
+    htrigana_histos.set(1)
+    hthms_vars.set(1)
+    hcal_vars.set(1)
+    hcer_vars.set(1)
+    hdc_vars.set(1)
+    hhodo_vars.set(1)
+    hgtr_vars.set(1)
+    htrig_vars.set(1)
+    hkin_vars.set(1)
+    hraster_vars.set(1)
+    hreact_vars.set(1)
+
+def set_shms_teststand_on():
+    paeroana_histos.set(1)
+    pcalana_histos.set(1)
+    pdcana_histos.set(1)
+    phgcerana_histos.set(1)
+    phodoana_histos.set(1)
+    pngcerana_histos.set(1)
+    ptrigana_histos.set(1)
+    ptshms_vars.set(1)
+    paero_vars.set(1)
+    pcal_vars.set(1)
+    pdc_vars.set(1)
+    phgcer_vars.set(1)
+    phodo_vars.set(1)
+    pngcer_vars.set(1)
+    ptrig_vars.set(1)
+    pkin_vars.set(1)
+    praster_vars.set(1)
+    preact_vars.set(1)
+
+hcal_histos = tk.IntVar()
+hcer_histos = tk.IntVar()
+hdc_histos = tk.IntVar()
+hhodo_histos = tk.IntVar()
+hkin_histos = tk.IntVar()
+hgtr_histos = tk.IntVar()
+hraster_histos = tk.IntVar()
+htrig_histos = tk.IntVar()
+hreact_histos = tk.IntVar()
+hpid_histos = tk.IntVar()
+hepics_vars = tk.IntVar()
+hf2gtr_vars = tk.IntVar()
+hf2kin_vars = tk.IntVar()
+hf2block_vars = tk.IntVar()
+hpid_vars = tk.IntVar()
+
+paero_histos = tk.IntVar()
+pcal_histos = tk.IntVar()
+pdc_histos = tk.IntVar()
+pgtr_histos = tk.IntVar()
+phgcer_histos = tk.IntVar()
+phodo_histos = tk.IntVar()
+pkin_histos = tk.IntVar()
+pngcer_histos = tk.IntVar()
+praster_histos = tk.IntVar()
+ptrig_histos = tk.IntVar()
+preact_histos = tk.IntVar()
+ppid_histos = tk.IntVar()
+pepics_vars = tk.IntVar()
+pf2dc_vars = tk.IntVar()
+pf2kin_vars = tk.IntVar()
+pf2gtr_vars = tk.IntVar()
+ppid_vars = tk.IntVar()
+
+hcalana_histos = tk.IntVar()
+hcerana_histos = tk.IntVar()
+hdcana_histos = tk.IntVar()
+hhodoana_histos = tk.IntVar()
+htrigana_histos = tk.IntVar()
+
+hthms_vars = tk.IntVar()
+hcer_vars = tk.IntVar()
+hdc_vars = tk.IntVar()
+htrig_vars = tk.IntVar()
+hhodo_vars = tk.IntVar()
+hcal_vars = tk.IntVar()
+hkin_vars = tk.IntVar()
+hgtr_vars = tk.IntVar()
+hraster_vars = tk.IntVar()
+hreact_vars = tk.IntVar()
+
+paeroana_histos = tk.IntVar()
+pcalana_histos = tk.IntVar()
+pdcana_histos = tk.IntVar()
+phgcerana_histos = tk.IntVar()
+phodoana_histos = tk.IntVar()
+pngcerana_histos = tk.IntVar()
+ptrigana_histos = tk.IntVar()
+
+ptshms_vars = tk.IntVar()
+pngcer_vars = tk.IntVar()
+pdc_vars = tk.IntVar()
+phodo_vars = tk.IntVar()
+phgcer_vars = tk.IntVar()
+paero_vars = tk.IntVar()
+pcal_vars = tk.IntVar()
+ptrig_vars = tk.IntVar()
+pkin_vars = tk.IntVar()
+pgtr_vars = tk.IntVar()
+praster_vars = tk.IntVar()
+preact_vars = tk.IntVar()
+
+set_hms_production_defaults()
+set_shms_production_defaults()
+
+irow=0
+icol=0
+
+tk.Label(root, 
+        text="""HMS Histogram Blocks:""",
+        justify = tk.LEFT,
+        padx = 20,pady=20).grid(row=irow,column=icol,columnspan=2,sticky=tk.W)
+irow=irow+1
+tk.Label(root, 
+        text="""Production:""",
+        justify = tk.LEFT,
+        padx = 20).grid(row=irow,column=icol,sticky=tk.W)
+tk.Label(root, 
+        text="""Test Stands:""",
+        justify = tk.LEFT,
+        padx = 20).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Calorimeter",
+              padx = 20, 
+              variable=hcal_histos).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Raw Calorimeter",
+              padx = 20, 
+              variable=hcalana_histos).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Cerenkov",
+              padx = 20, 
+              variable=hcer_histos).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Raw Cerenkov",
+              padx = 20, 
+              variable=hcerana_histos).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Drift Chambers",
+              padx = 20, 
+              variable=hdc_histos).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Raw Drift Chambers",
+              padx = 20, 
+              variable=hdcana_histos).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Hodoscope",
+              padx = 20, 
+              variable=hhodo_histos).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Raw Hodoscope",
+              padx = 20, 
+              variable=hhodoana_histos).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Trigger",
+              padx = 20, 
+              variable=htrig_histos).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Raw Trigger",
+              padx = 20, 
+              variable=htrigana_histos).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Kinematics",
+              padx = 20, 
+              variable=hkin_histos).grid(row=irow,column=icol,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Tracking",
+              padx = 20, 
+              variable=hgtr_histos).grid(row=irow,column=icol,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Raster",
+              padx = 20, 
+              variable=hraster_histos).grid(row=irow,column=icol,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Reaction",
+              padx = 20, 
+              variable=hreact_histos).grid(row=irow,column=icol,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="PID",
+              padx = 20, 
+              variable=hpid_histos).grid(row=irow,column=icol,sticky=tk.W)
+irow=irow+5
+tk.Label(root, 
+        text="""HMS Variables:""",
+        justify = tk.LEFT,
+        padx = 20,pady=20).grid(row=irow,column=icol,columnspan=2,sticky=tk.W)
+irow=irow+1
+tk.Label(root, 
+        text="""Production:""",
+        justify = tk.LEFT,
+        padx = 20).grid(row=irow,column=icol,sticky=tk.W)
+tk.Label(root, 
+        text="""Test Stands:""",
+        justify = tk.LEFT,
+        padx = 20).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="F2 EPICS",
+              padx = 20, 
+              variable=hepics_vars).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="HMS Tree",
+              padx = 20, 
+              variable=hthms_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="F2 Tracking",
+              padx = 20, 
+              variable=hf2gtr_vars).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Calorimeter",
+              padx = 20, 
+              variable=hcal_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="F2 PID",
+              padx = 20, 
+              variable=hpid_vars).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Cerenkov",
+              padx = 20, 
+              variable=hcer_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="F2 Kinematics",
+              padx = 20, 
+              variable=hf2kin_vars).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Drift Chambers",
+              padx = 20, 
+              variable=hdc_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="F2 Block",
+              padx = 20, 
+              variable=hf2block_vars).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Hodoscope",
+              padx = 20, 
+              variable=hhodo_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Trigger",
+              padx = 20, 
+              variable=htrig_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Kinematics",
+              padx = 20, 
+              variable=hkin_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Tracking",
+              padx = 20, 
+              variable=hgtr_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Raster",
+              padx = 20, 
+              variable=hraster_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Reaction",
+              padx = 20, 
+              variable=hreact_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+5
+tk.Button(root, text='Quit', command=root.quit,justify=tk.LEFT,padx=20).grid(row=irow,column=icol,sticky=tk.W)
+tk.Button(root, text='HMS Production Default', command=set_hms_production_defaults,justify=tk.LEFT,padx=20).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Button(root, text='Write HMS DEF-file', command=hms_var_states,justify=tk.LEFT,padx=20).grid(row=irow,column=icol,sticky=tk.W)
+tk.Button(root, text='All HMS Test Stands', command=set_hms_teststand_on,justify=tk.LEFT,padx=20).grid(row=irow,column=icol+1,sticky=tk.W)
+
+irow=0
+icol=2
+
+tk.Label(root, 
+        text="""SHMS Histogram Blocks:""",
+        justify = tk.LEFT,
+        padx = 20).grid(row=irow,column=icol,columnspan=2,sticky=tk.W)
+irow=irow+1
+tk.Label(root, 
+        text="""Production:""",
+        justify = tk.LEFT,
+        padx = 20).grid(row=irow,column=icol,sticky=tk.W)
+tk.Label(root, 
+        text="""Test Stands:""",
+        justify = tk.LEFT,
+        padx = 20).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Aerogel",
+              padx = 20, 
+              variable=paero_histos).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Raw Aerogel",
+              padx = 20, 
+              variable=paeroana_histos).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Calorimeter",
+              padx = 20, 
+              variable=pcal_histos).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Raw Calorimeter",
+              padx = 20, 
+              variable=pcalana_histos).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Drift Chambers",
+              padx = 20, 
+              variable=pdc_histos).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Raw Drift Chambers",
+              padx = 20, 
+              variable=pdcana_histos).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Heavy Gas Cerenkov",
+              padx = 20, 
+              variable=phgcer_histos).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Raw Heavy Gas Cerenkov",
+              padx = 20, 
+              variable=phgcerana_histos).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Hodoscope",
+              padx = 20, 
+              variable=phodo_histos).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Raw Hodoscope",
+              padx = 20, 
+              variable=phodoana_histos).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Noble Gas Cerenkov",
+              padx = 20, 
+              variable=pngcer_histos).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Raw Noble Gas Cerenkov",
+              padx = 20, 
+              variable=pngcerana_histos).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Trigger",
+              padx = 20, 
+              variable=ptrig_histos).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Raw Trigger",
+              padx = 20, 
+              variable=ptrigana_histos).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Kinematics",
+              padx = 20, 
+              variable=pkin_histos).grid(row=irow,column=icol,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Tracking",
+              padx = 20, 
+              variable=pgtr_histos).grid(row=irow,column=icol,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Raster",
+              padx = 20, 
+              variable=praster_histos).grid(row=irow,column=icol,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Reaction",
+              padx = 20, 
+              variable=preact_histos).grid(row=irow,column=icol,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="PID",
+              padx = 20, 
+              variable=ppid_histos).grid(row=irow,column=icol,sticky=tk.W)
+irow=irow+3
+tk.Label(root, 
+        text="""SHMS Variables:""",
+        justify = tk.LEFT,
+        padx = 20).grid(row=irow,column=icol,columnspan=2,sticky=tk.W)
+irow=irow+1
+tk.Label(root, 
+        text="""Production:""",
+        justify = tk.LEFT,
+        padx = 20).grid(row=irow,column=icol,sticky=tk.W)
+tk.Label(root, 
+        text="""Test Stands:""",
+        justify = tk.LEFT,
+        padx = 20).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="F2 EPICS",
+              padx = 20, 
+              variable=pepics_vars).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="SHMS Tree",
+              padx = 20, 
+              variable=ptshms_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="F2 Tracking",
+              padx = 20, 
+              variable=pf2gtr_vars).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Aerogel",
+              padx = 20, 
+              variable=paero_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="F2 PID",
+              padx = 20, 
+              variable=ppid_vars).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Calorimeter",
+              padx = 20, 
+              variable=pcal_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="F2 Drift Chambers",
+              padx = 20, 
+              variable=pf2dc_vars).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Drift Chambers",
+              padx = 20, 
+              variable=pdc_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="F2 Kinematics",
+              padx = 20, 
+              variable=pf2kin_vars).grid(row=irow,column=icol,sticky=tk.W)
+tk.Checkbutton(root, 
+              text="Heavy Gas Cerenkov",
+              padx = 20, 
+              variable=phgcer_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Hodoscope",
+              padx = 20, 
+              variable=phodo_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Noble Gas Cerenkov",
+              padx = 20, 
+              variable=pngcer_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Trigger",
+              padx = 20, 
+              variable=ptrig_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Kinematics",
+              padx = 20, 
+              variable=pkin_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Tracking",
+              padx = 20, 
+              variable=pgtr_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Raster",
+              padx = 20, 
+              variable=praster_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Checkbutton(root, 
+              text="Reaction",
+              padx = 20, 
+              variable=preact_vars).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+3
+tk.Button(root, text='SHMS Production Default', command=set_shms_production_defaults,justify=tk.LEFT,padx=20).grid(row=irow,column=icol+1,sticky=tk.W)
+irow=irow+1
+tk.Button(root, text='Write SHMS DEF-file', command=shms_var_states,justify=tk.LEFT,padx=20).grid(row=irow,column=icol,sticky=tk.W)
+tk.Button(root, text='All SHMS Test Stands', command=set_shms_teststand_on,justify=tk.LEFT,padx=20).grid(row=irow,column=icol+1,sticky=tk.W)
+
+root.mainloop()
diff --git a/scaler_parse.py b/scaler_parse.py
new file mode 100755
index 0000000000000000000000000000000000000000..1d1d039a2bdde286b8c288e123c5927d30eaa954
--- /dev/null
+++ b/scaler_parse.py
@@ -0,0 +1,79 @@
+#!/usr/bin/python
+
+import argparse
+
+def get_args():
+    '''This function parses and returns arguments passed in'''
+    parser = argparse.ArgumentParser()
+    parser.add_argument(
+        '-r','--runs',type=str,help='Run list',required=True,nargs="+")
+    parser.add_argument(
+        '-f','--infile',type=str,help='Scaler list file',required=True)
+    parser.add_argument(
+        '-o','--outfile',type=str,help='Output file',required=True)
+    args = parser.parse_args()
+    infilename = args.infile
+    outfilename = args.outfile
+    runlist = args.runs[0].split(",")
+
+    return runlist, infilename, outfilename
+
+runlist, infilename, outfilename = get_args()
+
+print "\nScaler File Name: [ %s ]\n" % infilename
+print "\nOutput File Name: [ %s ]\n" % outfilename
+
+final_runlist = []
+for r in runlist:
+    minirunlist = r.split("-")
+    nruns = len(minirunlist)
+    if nruns == 1:
+       #print "Run: [%s]" % r
+       scaler_filename = "replay_coin_scalers_" + r + ".report"
+       final_runlist.append(scaler_filename)
+    else:
+       startrun=int(minirunlist[0])
+       endrun=int(minirunlist[1])
+       while startrun <= endrun:
+           #print "MiniRun: [%s]" % startrun
+           scaler_filename = "replay_coin_scalers_" + str(startrun) + ".report"
+           final_runlist.append(scaler_filename)
+           startrun=startrun+1
+
+#print final_runlist
+
+basic_name_array = ["Run Number"]
+scaler_name_array = []
+with open(infilename) as fp:
+    scaler_name_array = fp.read().splitlines()
+fp.close()
+
+of = open(outfilename,'w')
+scaler_name_array_run_number = basic_name_array+scaler_name_array
+mx = len(max(scaler_name_array_run_number))
+print (" ".join(["{:<{mx}}".format(ele,mx=mx) for ele in scaler_name_array_run_number]))
+of.write(" ".join(["{:<{mx}}".format(ele,mx=mx) for ele in scaler_name_array_run_number]))
+of.write("\n")
+
+for runfile in final_runlist:
+    with open(runfile) as fp:
+        runfile_linelist = fp.read().splitlines()
+	runnumbersplit = runfile.split("_")
+	runnumbersplit2 = runnumbersplit[3].split(".")
+        run_number_array=[]
+        run_number_array.append(runnumbersplit2[0])
+	scaler_value_array=[]
+        for line in runfile_linelist:
+            parsed_line = line.split(":")
+            for scaler in scaler_name_array:
+                	if parsed_line[0].rstrip(" ") == scaler:
+			    full_value = parsed_line[1].lstrip()
+		            numerical_value = full_value.split(" ")
+                            scaler_value_array.append(numerical_value[0])
+        scaler_value_array_run_number=run_number_array+scaler_value_array
+        print (" ".join(["{:<{mx}}".format(ele,mx=mx) for ele in scaler_value_array_run_number]))
+        of.write(" ".join(["{:<{mx}}".format(ele,mx=mx) for ele in scaler_value_array_run_number]))
+        of.write("\n")
+        fp.close()
+
+of.close()