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()