From 477c516060788780a114572912a04a795934e2f5 Mon Sep 17 00:00:00 2001
From: Carlos Yero <cyero002@fiu.edu>
Date: Wed, 8 Mar 2017 12:59:56 -0500
Subject: [PATCH] Updating repo

---
 .gitignore                                    |    6 +-
 .rootrc                                       |    1 +
 CALIBRATION/.gitignore                        |   18 +
 CALIBRATION/hms_dc_calib/run_Cal.C            |   68 +
 .../hms_dc_calib/scripts/get_LookUp_Values.C  |  126 +
 .../hms_dc_calib/scripts/get_hdc_time_histo.C |   98 +
 .../get_hdc_time_histo_tzero_corrected.C      |  107 +
 .../hms_dc_calib/scripts/get_wire_tzero.C     |  409 ++
 .../hms_dc_calib/scripts/update_hdcparam.C    |  111 +
 .../hms_dc_calib/scripts/wire_drift_times.C   |  305 ++
 .../hms_dc_calib/scripts/wire_drift_times.h   |  550 +++
 CALIBRATION/hodo_calib/.gitignore             |    4 +
 CALIBRATION/hodo_calib/Maketof                |    1 +
 CALIBRATION/hodo_calib/README.md              |   50 +
 CALIBRATION/hodo_calib/hmstofcal.inp          |    4 +
 CALIBRATION/hodo_calib/shmstofcal.inp         |    4 +
 CALIBRATION/hodo_calib/tofcal.f               |  475 ++
 CALIBRATION/hodo_calib/tofcal.inp             |    4 +
 CALIBRATION/shms_dc_calib/run_Cal.C           |   68 +
 .../shms_dc_calib/scripts/get_LookUp_Values.C |  126 +
 .../scripts/get_pdc_time_histo.C              |   93 +
 .../get_pdc_time_histo_tzero_corrected.C      |  107 +
 .../shms_dc_calib/scripts/get_wire_tzero.C    |  397 ++
 .../shms_dc_calib/scripts/input_RUN.txt       |    1 +
 .../shms_dc_calib/scripts/update_pdcparam.C   |  111 +
 .../shms_dc_calib/scripts/wire_drift_times.C  |  282 ++
 .../shms_dc_calib/scripts/wire_drift_times.h  |  545 +++
 DATFILES/SHMS_fr3_rec__order_3.dat            |   61 +
 DATFILES/SHMS_fr3_rec__order_4.dat            |  131 +
 DATFILES/SHMS_fr3_rec__order_5.dat            |  257 ++
 DATFILES/SHMS_fr3_rec__order_6.dat            |  467 ++
 DATFILES/hms_recon_coeff.dat                  |  170 +
 DBASE/general.param                           |   17 +-
 DBASE/standard.database                       |    2 -
 DBASE/standard.kinematics                     |   14 +-
 DEF-files/HMS/CAL/hcalana.def                 |   59 +
 DEF-files/HMS/CAL/hcalana_cuts.def            |   13 +
 DEF-files/HMS/CER/hcerana.def                 |   15 +
 DEF-files/HMS/CER/hcerana_cuts.def            |   13 +
 DEF-files/HMS/DC/hdcana.def                   |   42 +-
 DEF-files/HMS/DC/hdcana_cuts.def              |    1 -
 DEF-files/HMS/EPICS/epics.def                 |  299 ++
 DEF-files/HMS/GEN/hstackana.def               |  189 +
 DEF-files/HMS/GEN/hstackana_cuts.def          |   13 +
 DEF-files/HMS/GEN/hstackana_report.def        |  196 +
 DEF-files/HMS/GEN/hstackana_report_cuts.def   |  191 +
 DEF-files/HMS/HODO/hhodoana.def               |  134 +
 DEF-files/HMS/HODO/hhodoana_cuts.def          |   13 +
 DEF-files/HMS/RASTER/hms_raster_simple.def    |   20 +
 .../HMS/RASTER/hms_raster_simple_cuts.def     |   13 +
 DEF-files/HMS/TRIG/htrigana.def               |  115 +
 DEF-files/HMS/TRIG/htrigana_cuts.def          |   13 +
 DEF-files/SHMS/AERO/paeroana.def              |   25 +
 DEF-files/SHMS/AERO/paeroana_cuts.def         |   14 +
 DEF-files/SHMS/CAL/pcalana.def                |   34 +
 DEF-files/SHMS/CAL/pcalana_cuts.def           |   13 +
 DEF-files/SHMS/DC/pdcana.def                  |  126 +-
 DEF-files/SHMS/GEN/pstackana.def              |  183 +
 DEF-files/SHMS/GEN/pstackana_cuts.def         |   13 +
 DEF-files/SHMS/GEN/pstackana_report.def       |  183 +
 DEF-files/SHMS/GEN/pstackana_report_cuts.def  |  189 +
 DEF-files/SHMS/HGCER/phgcerana.def            |   25 +
 DEF-files/SHMS/HGCER/phgcerana_cuts.def       |   14 +
 DEF-files/SHMS/HODO/phodoana.def              |  119 +
 DEF-files/SHMS/HODO/phodoana_cuts.def         |   14 +
 DEF-files/SHMS/NGCER/pngcerana.def            |   15 +
 DEF-files/SHMS/NGCER/pngcerana_cuts.def       |   14 +
 DEF-files/SHMS/RASTER/shms_raster_simple.def  |   20 +
 .../SHMS/RASTER/shms_raster_simple_cuts.def   |   13 +
 DEF-files/SHMS/TRIG/ptrigana.def              |   38 +
 DEF-files/SHMS/TRIG/ptrigana_cuts.def         |   13 +
 MAPS/HMS/CRATE/db_crate1map.dat               |    2 +-
 MAPS/HMS/DETEC/haero.map                      |    2 +-
 MAPS/HMS/DETEC/hcal.map                       |    6 +-
 MAPS/HMS/DETEC/hcal_htrig.map                 |  145 +
 MAPS/HMS/DETEC/hcer.map                       |   12 +
 MAPS/HMS/DETEC/hcer_htrig.map                 |   61 +
 MAPS/HMS/DETEC/hdc.map                        | 2252 ++++-----
 MAPS/HMS/DETEC/hdc_hhodo_htrig.map            | 1442 ++++++
 MAPS/HMS/DETEC/hdc_htrig.map                  | 1210 +++++
 MAPS/HMS/DETEC/hhodo.map                      |   18 +-
 MAPS/HMS/DETEC/hhodo_htrig.map                |  283 ++
 MAPS/HMS/DETEC/hms_stack.map                  | 1546 +++++++
 .../DETEC/hms_stack_spring17_current_run.map  | 1544 +++++++
 .../hms_stack_spring17_run_00001_00243.map    | 1544 +++++++
 MAPS/HMS/DETEC/hraster_simple.map             |   18 +
 MAPS/HMS/DETEC/htrig.map                      |   21 +-
 MAPS/SHMS/DETEC/paero.map                     |   24 +
 MAPS/SHMS/DETEC/paero_ptrig.map               |   83 +
 MAPS/SHMS/DETEC/pcal.map                      |  543 ++-
 MAPS/SHMS/DETEC/pdc.map                       | 2455 +++++-----
 MAPS/SHMS/DETEC/phgcer.map                    |   12 +
 MAPS/SHMS/DETEC/phgcer_ptrig.map              |   71 +
 MAPS/SHMS/DETEC/phodo.map                     |  274 ++
 MAPS/SHMS/DETEC/phodo_ptrig.map               |  333 ++
 MAPS/SHMS/DETEC/pngcer.map                    |   12 +
 MAPS/SHMS/DETEC/pngcer_ptrig.map              |   71 +
 MAPS/SHMS/DETEC/praster_simple.map            |   18 +
 MAPS/SHMS/DETEC/ptrig.map                     |   59 +
 MAPS/SHMS/DETEC/shms_stack.map                | 2008 ++++++++
 MAPS/db_cratemap.dat                          |    1 +
 MAPS/make_cratemap.sh                         |    2 +-
 MAPS/merge_list.txt                           |   10 +-
 MAPS/merge_maps.py                            |   21 +-
 PARAM/HMS/CER/hcer.param                      |    2 +-
 PARAM/HMS/DC/hdc.param                        |   33 -
 PARAM/HMS/DC/hdc.pos                          |  271 +-
 PARAM/HMS/DC/hdc_offsets.param                |    3 +-
 PARAM/HMS/DC/hdc_test_stand.param             |   28 +-
 PARAM/HMS/DC/hdc_tracking.param               |   30 +
 PARAM/HMS/DC/hdeadwires.param                 |    2 +
 PARAM/HMS/DC/hdriftmap.param                  |  363 +-
 PARAM/HMS/GEN/hcana.param                     |   19 -
 PARAM/HMS/GEN/htracking.param                 |   48 +-
 PARAM/HMS/HODO/hhodo.param                    |  406 +-
 PARAM/HMS/HODO/hhodo.pos                      |    4 +
 PARAM/HMS/HODO/hhodo_3of4trigger.param        |  191 +
 PARAM/HMS/HODO/hhodo_4of4trigger.param        |  191 +
 PARAM/HMS/HODO/htofcal.param                  |    2 +
 PARAM/README.md                               |  218 +
 PARAM/SHMS/AERO/paero.param                   |   12 +
 PARAM/SHMS/CAL/pcal.param                     |   65 +
 PARAM/SHMS/DC/pdc.param                       |   34 +-
 PARAM/SHMS/DC/pdc.param.ori                   |   14 -
 PARAM/SHMS/DC/pdc.param.ori.dnd               |  377 --
 PARAM/SHMS/DC/pdc.pos                         |  204 +-
 PARAM/SHMS/DC/pdc_test_stand.param            |    5 +
 PARAM/SHMS/DC/pdc_tracking.param              |   27 +
 PARAM/SHMS/DC/pdriftmap.param                 |  350 +-
 PARAM/SHMS/GEN/pcana.param                    |   17 +-
 PARAM/SHMS/GEN/pdebug.param                   |   15 +-
 PARAM/SHMS/GEN/ptracking.param                |   68 +-
 PARAM/SHMS/GEN/shmsflags.param                |   10 +-
 PARAM/SHMS/HGCER/phgcer.param                 |   24 +
 PARAM/SHMS/HODO/phodo.param                   |  411 ++
 PARAM/SHMS/HODO/phodo.pos                     |  101 +
 PARAM/SHMS/HODO/ptofcal.param                 |    2 +
 PARAM/SHMS/NGCER/pngcer.param                 |   24 +
 PARAM/TRIG/thms.param                         |    8 +-
 PARAM/TRIG/thms_raster.param                  |    7 +
 PARAM/TRIG/tshms.param                        |    8 +
 PARAM/TRIG/tshms_raster.param                 |    7 +
 SCRIPTS/HMS/hhodo_analysis.C                  |  140 +
 SCRIPTS/HMS/replay_epics_test.C               |  110 +
 SCRIPTS/HMS/replay_hcal_test_stand.C          |   94 +
 SCRIPTS/HMS/replay_hcer_test_stand.C          |  104 +
 SCRIPTS/HMS/replay_hdc_test_stand.C           |   37 +-
 SCRIPTS/HMS/replay_hhodo_test_stand.C         |  104 +
 SCRIPTS/HMS/replay_hms.C                      |  117 +
 SCRIPTS/HMS/replay_hms_raster_simple.C        |  100 +
 SCRIPTS/HMS/replay_hms_report.C               |  121 +
 SCRIPTS/HMS/replay_htrig_test_stand.C         |   97 +
 SCRIPTS/SHMS/replay_paero_test_stand.C        |  104 +
 SCRIPTS/SHMS/replay_pcal_test_stand.C         |   94 +
 SCRIPTS/SHMS/replay_pdc_test_stand.C          |   12 +-
 SCRIPTS/SHMS/replay_phgcer_test_stand.C       |  104 +
 SCRIPTS/SHMS/replay_phodo_test_stand.C        |  104 +
 SCRIPTS/SHMS/replay_pngcer_test_stand.C       |  104 +
 SCRIPTS/SHMS/replay_ptrig_test_stand.C        |   97 +
 SCRIPTS/SHMS/replay_shms.C                    |  126 +
 SCRIPTS/SHMS/replay_shms_raster_simple.C      |  100 +
 SCRIPTS/SHMS/replay_shms_report.C             |  124 +
 TEMPLATES/dcana.template                      |   48 +
 TEMPLATES/hstackana.template                  |   64 +
 TEMPLATES/pstackana.template                  |   64 +
 onlineGUI/.gitignore                          |    3 +
 onlineGUI/.rootrc                             |    2 +
 onlineGUI/Config/HMS/GEN/hallc_onlana.cfg     |  200 +
 onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg   |  363 ++
 .../Config/HMS/HODO/good_hhodo_2d_dis.cfg     |  123 +
 onlineGUI/Config/HMS/HODO/raw_hhodo_1x.cfg    |  327 ++
 onlineGUI/Config/HMS/HODO/raw_hhodo_1y.cfg    |  219 +
 onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg    |  304 ++
 onlineGUI/Config/HMS/HODO/raw_hhodo_2x.cfg    |  327 ++
 onlineGUI/Config/HMS/HODO/raw_hhodo_2y.cfg    |  219 +
 onlineGUI/Config/HMS/HODO/raw_hhodoana.cfg    |  130 +
 onlineGUI/Config/HMS/RASTER/simple_raster.cfg |   20 +
 onlineGUI/Config/SHMS/GEN/hallc_onlana.cfg    |  191 +
 onlineGUI/Config/SHMS/HODO/good_phodo_2d.cfg  |  367 ++
 .../Config/SHMS/HODO/good_phodo_2d_dis.cfg    |  293 ++
 onlineGUI/Config/SHMS/HODO/raw_phodo_1x.cfg   |  273 ++
 onlineGUI/Config/SHMS/HODO/raw_phodo_1y.cfg   |  270 ++
 onlineGUI/Config/SHMS/HODO/raw_phodo_2d.cfg   |  306 ++
 .../Config/SHMS/HODO/raw_phodo_2d_pad.cfg     |  120 +
 onlineGUI/Config/SHMS/HODO/raw_phodo_2x.cfg   |  291 ++
 onlineGUI/Config/SHMS/HODO/raw_phodo_2y.cfg   |  417 ++
 onlineGUI/Config/SHMS/HODO/raw_phodoana.cfg   |  130 +
 .../Config/SHMS/RASTER/simple_raster.cfg      |   20 +
 onlineGUI/Config/kpp.cfg                      |  121 +
 onlineGUI/Config/rawhmshodo.cfg               |  243 +
 onlineGUI/Config/standard.cfg                 |   57 +
 onlineGUI/Macros/gooddraw_2d_hhodo.C          |  286 ++
 onlineGUI/Macros/gooddraw_2d_phodo.C          |  325 ++
 onlineGUI/Macros/hodo_efficiency.C            |   24 +
 onlineGUI/Macros/kpp_analysis.C               |  686 +++
 onlineGUI/Macros/overlay.C                    |   54 +
 onlineGUI/Macros/rawdraw.C                    |  265 ++
 onlineGUI/Macros/rawdraw_2d_hhodo.C           |  275 ++
 onlineGUI/Macros/rawdraw_2d_phodo.C           |  377 ++
 onlineGUI/Macros/rawdraw_hhodo.C              |  349 ++
 onlineGUI/Macros/rawdraw_phodo.C              |  349 ++
 onlineGUI/README.md                           |   37 +
 onlineGUI/onlineGUI_v1.2.1/Makefile           |   27 +-
 onlineGUI/onlineGUI_v1.2.1/guiHOWTO2007.pdf   |  Bin 157338 -> 0 bytes
 onlineGUI/onlineGUI_v1.2.1/online.C           | 4098 +++++++++--------
 onlineGUI/onlineGUI_v1.2.1/online.h           |  351 +-
 onlineGUI/onlineGUI_v1.2.1/onlineDict.C       | 2058 ---------
 207 files changed, 36105 insertions(+), 8259 deletions(-)
 create mode 100644 .rootrc
 create mode 100644 CALIBRATION/.gitignore
 create mode 100644 CALIBRATION/hms_dc_calib/run_Cal.C
 create mode 100644 CALIBRATION/hms_dc_calib/scripts/get_LookUp_Values.C
 create mode 100644 CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo.C
 create mode 100644 CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo_tzero_corrected.C
 create mode 100644 CALIBRATION/hms_dc_calib/scripts/get_wire_tzero.C
 create mode 100644 CALIBRATION/hms_dc_calib/scripts/update_hdcparam.C
 create mode 100644 CALIBRATION/hms_dc_calib/scripts/wire_drift_times.C
 create mode 100644 CALIBRATION/hms_dc_calib/scripts/wire_drift_times.h
 create mode 100644 CALIBRATION/hodo_calib/.gitignore
 create mode 100755 CALIBRATION/hodo_calib/Maketof
 create mode 100644 CALIBRATION/hodo_calib/README.md
 create mode 100644 CALIBRATION/hodo_calib/hmstofcal.inp
 create mode 100644 CALIBRATION/hodo_calib/shmstofcal.inp
 create mode 100644 CALIBRATION/hodo_calib/tofcal.f
 create mode 100644 CALIBRATION/hodo_calib/tofcal.inp
 create mode 100644 CALIBRATION/shms_dc_calib/run_Cal.C
 create mode 100644 CALIBRATION/shms_dc_calib/scripts/get_LookUp_Values.C
 create mode 100644 CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo.C
 create mode 100644 CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo_tzero_corrected.C
 create mode 100644 CALIBRATION/shms_dc_calib/scripts/get_wire_tzero.C
 create mode 100644 CALIBRATION/shms_dc_calib/scripts/input_RUN.txt
 create mode 100644 CALIBRATION/shms_dc_calib/scripts/update_pdcparam.C
 create mode 100644 CALIBRATION/shms_dc_calib/scripts/wire_drift_times.C
 create mode 100644 CALIBRATION/shms_dc_calib/scripts/wire_drift_times.h
 create mode 100644 DATFILES/SHMS_fr3_rec__order_3.dat
 create mode 100644 DATFILES/SHMS_fr3_rec__order_4.dat
 create mode 100644 DATFILES/SHMS_fr3_rec__order_5.dat
 create mode 100644 DATFILES/SHMS_fr3_rec__order_6.dat
 create mode 100644 DATFILES/hms_recon_coeff.dat
 create mode 100644 DEF-files/HMS/CAL/hcalana.def
 create mode 100644 DEF-files/HMS/CAL/hcalana_cuts.def
 create mode 100644 DEF-files/HMS/CER/hcerana.def
 create mode 100644 DEF-files/HMS/CER/hcerana_cuts.def
 create mode 100644 DEF-files/HMS/EPICS/epics.def
 create mode 100644 DEF-files/HMS/GEN/hstackana.def
 create mode 100644 DEF-files/HMS/GEN/hstackana_cuts.def
 create mode 100644 DEF-files/HMS/GEN/hstackana_report.def
 create mode 100644 DEF-files/HMS/GEN/hstackana_report_cuts.def
 create mode 100644 DEF-files/HMS/HODO/hhodoana.def
 create mode 100644 DEF-files/HMS/HODO/hhodoana_cuts.def
 create mode 100644 DEF-files/HMS/RASTER/hms_raster_simple.def
 create mode 100644 DEF-files/HMS/RASTER/hms_raster_simple_cuts.def
 create mode 100644 DEF-files/HMS/TRIG/htrigana.def
 create mode 100644 DEF-files/HMS/TRIG/htrigana_cuts.def
 create mode 100644 DEF-files/SHMS/AERO/paeroana.def
 create mode 100644 DEF-files/SHMS/AERO/paeroana_cuts.def
 create mode 100644 DEF-files/SHMS/CAL/pcalana.def
 create mode 100644 DEF-files/SHMS/CAL/pcalana_cuts.def
 create mode 100644 DEF-files/SHMS/GEN/pstackana.def
 create mode 100644 DEF-files/SHMS/GEN/pstackana_cuts.def
 create mode 100644 DEF-files/SHMS/GEN/pstackana_report.def
 create mode 100644 DEF-files/SHMS/GEN/pstackana_report_cuts.def
 create mode 100644 DEF-files/SHMS/HGCER/phgcerana.def
 create mode 100644 DEF-files/SHMS/HGCER/phgcerana_cuts.def
 create mode 100644 DEF-files/SHMS/HODO/phodoana.def
 create mode 100644 DEF-files/SHMS/HODO/phodoana_cuts.def
 create mode 100644 DEF-files/SHMS/NGCER/pngcerana.def
 create mode 100644 DEF-files/SHMS/NGCER/pngcerana_cuts.def
 create mode 100644 DEF-files/SHMS/RASTER/shms_raster_simple.def
 create mode 100644 DEF-files/SHMS/RASTER/shms_raster_simple_cuts.def
 create mode 100644 DEF-files/SHMS/TRIG/ptrigana.def
 create mode 100644 DEF-files/SHMS/TRIG/ptrigana_cuts.def
 create mode 100644 MAPS/HMS/DETEC/hcal_htrig.map
 create mode 100644 MAPS/HMS/DETEC/hcer.map
 create mode 100644 MAPS/HMS/DETEC/hcer_htrig.map
 create mode 100644 MAPS/HMS/DETEC/hdc_hhodo_htrig.map
 create mode 100644 MAPS/HMS/DETEC/hdc_htrig.map
 create mode 100644 MAPS/HMS/DETEC/hhodo_htrig.map
 create mode 100644 MAPS/HMS/DETEC/hms_stack.map
 create mode 100644 MAPS/HMS/DETEC/hms_stack_spring17_current_run.map
 create mode 100644 MAPS/HMS/DETEC/hms_stack_spring17_run_00001_00243.map
 create mode 100644 MAPS/HMS/DETEC/hraster_simple.map
 create mode 100644 MAPS/SHMS/DETEC/paero.map
 create mode 100644 MAPS/SHMS/DETEC/paero_ptrig.map
 create mode 100644 MAPS/SHMS/DETEC/phgcer.map
 create mode 100644 MAPS/SHMS/DETEC/phgcer_ptrig.map
 create mode 100644 MAPS/SHMS/DETEC/phodo.map
 create mode 100644 MAPS/SHMS/DETEC/phodo_ptrig.map
 create mode 100644 MAPS/SHMS/DETEC/pngcer.map
 create mode 100644 MAPS/SHMS/DETEC/pngcer_ptrig.map
 create mode 100644 MAPS/SHMS/DETEC/praster_simple.map
 create mode 100644 MAPS/SHMS/DETEC/ptrig.map
 create mode 100644 MAPS/SHMS/DETEC/shms_stack.map
 delete mode 100644 PARAM/HMS/DC/hdc.param
 create mode 100644 PARAM/HMS/DC/hdc_tracking.param
 create mode 100644 PARAM/HMS/HODO/hhodo_3of4trigger.param
 create mode 100644 PARAM/HMS/HODO/hhodo_4of4trigger.param
 create mode 100644 PARAM/HMS/HODO/htofcal.param
 create mode 100644 PARAM/README.md
 create mode 100644 PARAM/SHMS/AERO/paero.param
 create mode 100644 PARAM/SHMS/CAL/pcal.param
 delete mode 100644 PARAM/SHMS/DC/pdc.param.ori
 delete mode 100644 PARAM/SHMS/DC/pdc.param.ori.dnd
 create mode 100644 PARAM/SHMS/DC/pdc_test_stand.param
 create mode 100644 PARAM/SHMS/DC/pdc_tracking.param
 create mode 100644 PARAM/SHMS/HGCER/phgcer.param
 create mode 100644 PARAM/SHMS/HODO/phodo.param
 create mode 100644 PARAM/SHMS/HODO/phodo.pos
 create mode 100644 PARAM/SHMS/HODO/ptofcal.param
 create mode 100644 PARAM/SHMS/NGCER/pngcer.param
 create mode 100644 PARAM/TRIG/thms_raster.param
 create mode 100644 PARAM/TRIG/tshms.param
 create mode 100644 PARAM/TRIG/tshms_raster.param
 create mode 100644 SCRIPTS/HMS/hhodo_analysis.C
 create mode 100644 SCRIPTS/HMS/replay_epics_test.C
 create mode 100644 SCRIPTS/HMS/replay_hcal_test_stand.C
 create mode 100644 SCRIPTS/HMS/replay_hcer_test_stand.C
 create mode 100644 SCRIPTS/HMS/replay_hhodo_test_stand.C
 create mode 100644 SCRIPTS/HMS/replay_hms.C
 create mode 100644 SCRIPTS/HMS/replay_hms_raster_simple.C
 create mode 100644 SCRIPTS/HMS/replay_hms_report.C
 create mode 100644 SCRIPTS/HMS/replay_htrig_test_stand.C
 create mode 100644 SCRIPTS/SHMS/replay_paero_test_stand.C
 create mode 100644 SCRIPTS/SHMS/replay_pcal_test_stand.C
 create mode 100644 SCRIPTS/SHMS/replay_phgcer_test_stand.C
 create mode 100644 SCRIPTS/SHMS/replay_phodo_test_stand.C
 create mode 100644 SCRIPTS/SHMS/replay_pngcer_test_stand.C
 create mode 100644 SCRIPTS/SHMS/replay_ptrig_test_stand.C
 create mode 100644 SCRIPTS/SHMS/replay_shms.C
 create mode 100644 SCRIPTS/SHMS/replay_shms_raster_simple.C
 create mode 100644 SCRIPTS/SHMS/replay_shms_report.C
 create mode 100644 TEMPLATES/hstackana.template
 create mode 100644 TEMPLATES/pstackana.template
 create mode 100644 onlineGUI/.rootrc
 create mode 100644 onlineGUI/Config/HMS/GEN/hallc_onlana.cfg
 create mode 100644 onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg
 create mode 100644 onlineGUI/Config/HMS/HODO/good_hhodo_2d_dis.cfg
 create mode 100644 onlineGUI/Config/HMS/HODO/raw_hhodo_1x.cfg
 create mode 100644 onlineGUI/Config/HMS/HODO/raw_hhodo_1y.cfg
 create mode 100644 onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg
 create mode 100644 onlineGUI/Config/HMS/HODO/raw_hhodo_2x.cfg
 create mode 100644 onlineGUI/Config/HMS/HODO/raw_hhodo_2y.cfg
 create mode 100644 onlineGUI/Config/HMS/HODO/raw_hhodoana.cfg
 create mode 100644 onlineGUI/Config/HMS/RASTER/simple_raster.cfg
 create mode 100644 onlineGUI/Config/SHMS/GEN/hallc_onlana.cfg
 create mode 100644 onlineGUI/Config/SHMS/HODO/good_phodo_2d.cfg
 create mode 100644 onlineGUI/Config/SHMS/HODO/good_phodo_2d_dis.cfg
 create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodo_1x.cfg
 create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodo_1y.cfg
 create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodo_2d.cfg
 create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodo_2d_pad.cfg
 create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodo_2x.cfg
 create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodo_2y.cfg
 create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodoana.cfg
 create mode 100644 onlineGUI/Config/SHMS/RASTER/simple_raster.cfg
 create mode 100755 onlineGUI/Config/kpp.cfg
 create mode 100755 onlineGUI/Config/rawhmshodo.cfg
 create mode 100755 onlineGUI/Config/standard.cfg
 create mode 100644 onlineGUI/Macros/gooddraw_2d_hhodo.C
 create mode 100644 onlineGUI/Macros/gooddraw_2d_phodo.C
 create mode 100644 onlineGUI/Macros/hodo_efficiency.C
 create mode 100644 onlineGUI/Macros/kpp_analysis.C
 create mode 100755 onlineGUI/Macros/overlay.C
 create mode 100755 onlineGUI/Macros/rawdraw.C
 create mode 100644 onlineGUI/Macros/rawdraw_2d_hhodo.C
 create mode 100644 onlineGUI/Macros/rawdraw_2d_phodo.C
 create mode 100755 onlineGUI/Macros/rawdraw_hhodo.C
 create mode 100755 onlineGUI/Macros/rawdraw_phodo.C
 create mode 100644 onlineGUI/README.md
 delete mode 100644 onlineGUI/onlineGUI_v1.2.1/guiHOWTO2007.pdf
 mode change 100644 => 100755 onlineGUI/onlineGUI_v1.2.1/online.C
 mode change 100644 => 100755 onlineGUI/onlineGUI_v1.2.1/online.h
 delete mode 100644 onlineGUI/onlineGUI_v1.2.1/onlineDict.C

diff --git a/.gitignore b/.gitignore
index 60234d01..5d640234 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,8 @@
 ROOTfiles/*
 #*
 hcana
-raw
\ No newline at end of file
+raw
+.root_history
+data_files/*
+root_files/*
+REPORT_OUTPUT/*
diff --git a/.rootrc b/.rootrc
new file mode 100644
index 00000000..313d262d
--- /dev/null
+++ b/.rootrc
@@ -0,0 +1 @@
+Rint.History: .root_history
diff --git a/CALIBRATION/.gitignore b/CALIBRATION/.gitignore
new file mode 100644
index 00000000..a9da3531
--- /dev/null
+++ b/CALIBRATION/.gitignore
@@ -0,0 +1,18 @@
+#
+# Ignore file for calorimeter calibration code
+#
+
+# Debug files
+*.deb
+# Monte Carlo results
+*.r
+*.pdf
+*.cal_data
+*.raw_data
+*.root
+# Parameter files generated by calibration
+*.param
+hms_dc_calib/data_files
+*.d
+hms_dc_calib/scripts/*.txt
+
diff --git a/CALIBRATION/hms_dc_calib/run_Cal.C b/CALIBRATION/hms_dc_calib/run_Cal.C
new file mode 100644
index 00000000..94f7daf4
--- /dev/null
+++ b/CALIBRATION/hms_dc_calib/run_Cal.C
@@ -0,0 +1,68 @@
+//SCRIPT TO RUN OVER ALL HMS DC CALIBRATION SCRIPTS AT ONCE, AND UPDATE THE
+//NECESSARY PARAMTER FILES hdriftmap.param and  hdc.param
+void run_Cal()
+{
+      
+  //User Input Run
+  int run_NUM;
+  cout << "Enter Run Number: " << endl;
+  cin >> run_NUM;
+
+  //Create input file with run number
+  ofstream fout;
+  fout.open("scripts/input_RUN.txt");
+  fout << run_NUM << endl;
+  fout.close();
+
+
+  //Create root and data files Directories if they dont exist
+  char *dir_root = "mkdir ./root_files/";
+  char *dir_data = "mkdir ./data_files/";
+
+  if (system(dir_root || dir_data) != 0) {
+    system(dir_root);
+    system(dir_data);
+  }
+
+  //Create run Directories if they dont exist
+  char *dir0 = Form("mkdir ./root_files/run%d", run_NUM);
+  char *dir1 = Form("mkdir ./data_files/run%d", run_NUM);
+
+  if (system(dir0 || dir1) != 0) {
+    system(dir0);
+    system(dir1);
+  }
+
+  
+
+  //change directories and execute scripts
+  gSystem->cd("./scripts");
+  gSystem->Exec("root -l -q get_hdc_time_histo.C");
+  
+  //Load and Loop over Make Class events to get individual drift times
+  gROOT->LoadMacro("wire_drift_times.C");
+  gROOT->ProcessLine("wire_drift_times t"); //process line allows one to execute interactive root commands from a script, such as this one
+  gROOT->ProcessLine("t.Loop()");
+  //gROOT->ProcessLine(".q");
+  gROOT->Reset();
+  
+  
+
+gSystem->cd("./scripts");
+
+  
+  //execute code to get t0 from each wire in each plane
+  gSystem->Exec("root -l -q -b get_wire_tzero.C");
+ 
+  //execute code to update hdc parameter file
+  gSystem->Exec("root -l -q update_hdcparam.C");
+
+  //execute code to get t0 corrected drift times
+  gSystem->Exec("root -l -q get_hdc_time_histo_tzero_corrected.C");
+  
+ //execute code to update LookUp Table
+  gSystem->Exec("root -l -q get_LookUp_Values.C");
+
+  
+  
+}
diff --git a/CALIBRATION/hms_dc_calib/scripts/get_LookUp_Values.C b/CALIBRATION/hms_dc_calib/scripts/get_LookUp_Values.C
new file mode 100644
index 00000000..e4a40276
--- /dev/null
+++ b/CALIBRATION/hms_dc_calib/scripts/get_LookUp_Values.C
@@ -0,0 +1,126 @@
+/*This code produces a lookup table necessary to convert drift times to
+drift distances in the HMS drift chambers
+*/
+
+#define NPLANES 12
+#define TOTAL_BINS 137
+
+void get_LookUp_Values() {
+
+   
+  //Read Run Number from txt file
+  int run_NUM;
+ TString f0 = "input_RUN.txt";
+ ifstream infile(f0);
+ infile >> run_NUM;
+ 
+//Open root file containing drift time histos
+ TFile *f = new TFile(Form("../root_files/run%d/hms_dc_t0_corrected_%d.root", run_NUM, run_NUM),"READ");
+ 
+ //Define histogram array
+ TH1F *h[NPLANES];
+ 
+ //Define the number Drift Chamber planes
+ TString plane_names[NPLANES]={"1x1", "1y1", "1u1", "1v1", "1y2", "1x2", "2x1", "2y1", "2u1", "2v1", "2y2", "2x2"};
+ 
+ //Declare bin properties
+	int bin_t0[NPLANES];
+  int bin_final[NPLANES];					/*Array to store the bin number corresponding to last bin*/
+  int bin_Content[NPLANES];          /*Array to store the content (# events) corresponding to the bin with maximum content*/
+  double binContent_TOTAL[NPLANES];     /*Array to store sum of all bin contents for each plane*/
+  double binSUM[NPLANES];
+  int bin;
+  int binx;
+  double lookup_value[NPLANES];           /*Array to store lookup values for each plane*/ 
+  
+  //Create an output file to store lookup values  
+  ofstream ofs;
+ TString lookup_table = "../../../PARAM/HMS/DC/hdriftmap_new.param";
+ ofs.open (lookup_table);
+ 
+ 
+//Set headers for subsequent columns of data
+ ofs << Form("; Lookup Table: RUN %d", run_NUM) << "\n";
+ ofs << "; number of bins in Carlos's time to distance lookup table" << "\n";
+ ofs << Form("hdriftbins = %d", TOTAL_BINS+1) << "\n";
+ ofs << "; number of 1st bin in Carlos's table in ns" << "\n";
+ ofs << "hdrift1stbin=0" << "\n";
+ ofs << "; bin size in ns" << "\n";
+ ofs << "hdriftbinsz=2" << "\n";
+ 
+ 
+ 
+ //Loop over each plane of HMS Drift Chambers (DC1 & DC2)
+
+ for (int ip=0; ip<NPLANES; ip++){
+   
+   TString drift_time_histo = "hdc"+plane_names[ip]+"_time: t0_corr"; 
+
+   //Get drift time histograms from root file
+   h[ip] = (TH1F*)f->Get(drift_time_histo);
+
+   //Get bin corresponding to t0 = 0 ns
+  bin_t0[ip] = h[ip]->GetXaxis()->FindBin(0.0);
+   
+   //Get final bin 
+   bin_final[ip] = bin_t0[ip] + TOTAL_BINS;
+   
+   
+   
+   //Find total BIN Content over entire integration range
+   binContent_TOTAL[ip] = 0; //set counter to zero
+
+   for (bin = bin_t0[ip]; bin <= bin_final[ip]; bin ++ ) {
+     
+     bin_Content[ip] = h[ip] -> GetBinContent(bin);
+     
+     binContent_TOTAL[ip] = bin_Content[ip] + binContent_TOTAL[ip];
+     
+     //   cout << "Bin: " << bin << endl;
+     //   cout << "Content " << bin_Content[ip] << endl;
+     //   cout << "Content SUM : " << binContent_TOTAL[ip] << endl;
+   }
+   
+   TString headers = "hwc" + plane_names[ip] + "fract=";      
+   ofs << headers;	  
+   
+   //Calculate LookUp Value
+   
+   binSUM[ip] = 0.0;
+   int bin_count = 0;
+   
+   for (bin = bin_t0[ip]; bin <= bin_final[ip]; bin++) {
+     
+     bin_Content[ip] = h[ip] -> GetBinContent(bin);
+     binSUM[ip] = binSUM[ip] + bin_Content[ip];
+     
+     
+     lookup_value[ip] = binSUM[ip] / binContent_TOTAL[ip];
+     bin_count = bin_count + 1;
+     
+     if (bin_count < = 8 ) {
+       ofs << setprecision(5) << lookup_value[ip] << fixed << ",";
+     }
+     
+     else if (bin_count >8 && bin_count < 138) {
+       ofs << setprecision(5) << lookup_value[ip] << ((bin_count+1) % 10 ? "," : "\n") << fixed; 
+     }
+     else {
+       ofs << setprecision(5) << lookup_value[ip] << fixed << endl;	  
+     }
+     
+   }
+
+ }                                            
+ 
+}
+
+
+	 
+  
+
+
+
+
+
+
diff --git a/CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo.C b/CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo.C
new file mode 100644
index 00000000..b3bfee58
--- /dev/null
+++ b/CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo.C
@@ -0,0 +1,98 @@
+//Script to add necessary drift time histograms/plane from original root file to new root file
+
+
+#define NPLANES 12
+
+void get_hdc_time_histo()
+{
+
+//Read Run Number from txt file
+int run_NUM;
+TString f0 = "input_RUN.txt";
+ifstream infile(f0);
+infile >> run_NUM;
+
+//Create RUN Directories if they dont exist
+char *dir0 = Form("mkdir ../root_files/run%d", run_NUM);
+char *dir1 = Form("mkdir ../data_files/run%d", run_NUM);
+
+if (system(dir0 || dir1) != 0) {
+system(dir0);
+system(dir1);
+}
+
+//open file
+TFile *f = new TFile(Form("../../../ROOTfiles/test_%d.root", run_NUM), "READ");
+
+//create new file
+ TFile *g = new TFile(Form("../root_files/run%d/hms_dc_time_%d.root", run_NUM, run_NUM), "RECREATE"); // create new file to store histo
+
+f->cd();
+
+//Get the tree
+TTree *tree = (TTree*)f->Get("T");
+TString SPECTROMETER="H";
+TString DETECTOR="dc";
+TString plane_names[NPLANES]={"1x1", "1y1", "1u1", "1v1", "1y2", "1x2", "2x1", "2y1", "2u1", "2v1", "2y2", "2x2"};
+
+//Declare Variables to Loop Over
+Int_t Ndata[NPLANES];
+Double_t hdc_time[NPLANES][1000];
+    
+//Declare Histogram array to store AVG drift times per plane
+TH1F* h[NPLANES];
+	
+g->cd();
+	
+//Loop over each plane
+for(Int_t ip=0; ip<NPLANES; ip++){
+  TString base_name = SPECTROMETER+"."+DETECTOR+"."+plane_names[ip];
+  TString ndata_name = "Ndata."+base_name+".time";
+  TString drift_time = base_name+".time";
+  
+  TString drift_time_histo = "hdc"+plane_names[ip]+"_time"; 
+  TString title = "hdc"+plane_names[ip]+"_drifttime";
+     
+  //Set Branch Address
+  tree->SetBranchAddress(drift_time, &hdc_time[ip][0]);   
+  tree->SetBranchAddress(ndata_name, &Ndata[ip]);  /* Ndata represents number of triggers vs number of hits that each trigger produced.
+                                                      A hit is refer to as when a trigger(traversing particle), ionizes the WC gas and ionized
+                                                      electrons reach the rearest sense wire, producing a detectable signal in the O'scope */
+  
+  //Create Histograms
+  h[ip] = new TH1F(drift_time_histo, title, 200, -50, 350);  //set time to 400 ns/200 bins = 2ns/bin
+ }
+ 
+
+ 
+//Declare number of entries in the tree
+ Long64_t nentries = tree->GetEntries(); //number of triggers (particles that passed through all 4 hodo planes)
+ 
+ //Loop over all entries
+ for(Long64_t i=0; i<nentries; i++)
+   {
+     tree->GetEntry(i);
+    
+    
+     //Loop over number of hits for each trigger in each DC plane 
+     for(ip=0; ip<NPLANES; ip++){
+       
+    
+       for(Int_t j=0; j<Ndata[ip]; j++){
+	
+	 h[ip]->Fill(hdc_time[ip][j]); 
+       }
+       
+     }
+
+   }
+
+
+
+		
+ //Write histograms to file
+ g->Write();
+
+
+
+}
diff --git a/CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo_tzero_corrected.C b/CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo_tzero_corrected.C
new file mode 100644
index 00000000..d847ce0b
--- /dev/null
+++ b/CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo_tzero_corrected.C
@@ -0,0 +1,107 @@
+//Script to add t0 correction to HMS DC drift times
+
+#define NPLANES 12
+
+void get_hdc_time_histo_tzero_corrected()
+{
+
+	  
+  //read run number from input file
+  int run_NUM;
+  TString f0 = "input_RUN.txt";
+  ifstream infile(f0);
+  infile >> run_NUM;   
+
+  TString run = Form("run%d", run_NUM);
+
+
+	  //open file
+	  TFile *f = new TFile(Form("../../../ROOTfiles/test_%d.root", run_NUM), "READ");
+
+	  //updates file
+	  TFile *g = new TFile(Form("../root_files/run%d/hms_dc_t0_corrected_%d.root", run_NUM, run_NUM), "UPDATE"); // create new file to store histo
+
+      f->cd();
+
+     //Get the tree
+     TTree *tree = (TTree*)f->Get("T");
+
+	TString SPECTROMETER="H";
+	TString DETECTOR="dc";
+	TString plane_names[NPLANES]={"1x1", "1y1", "1u1", "1v1", "1y2", "1x2", "2x1", "2y1", "2u1", "2v1", "2y2", "2x2"};
+
+    //Declare Variables to Loop Over
+    Int_t Ndata[NPLANES];
+    Double_t hdc_time[NPLANES][1000];
+    
+    //Declare Histogram array to store AVG drift times per plane
+    TH1F* h[NPLANES];
+	
+	g->cd();
+	
+	//Loop over each plane
+	for(Int_t ip=0; ip<NPLANES; ip++){
+		TString base_name = SPECTROMETER+"."+DETECTOR+"."+plane_names[ip];
+		TString ndata_name = "Ndata."+base_name+".time";
+		TString drift_time = base_name+".time";
+
+		TString drift_time_histo = "hdc"+plane_names[ip]+"_time: t0_corr"; 
+        TString title = "hdc"+plane_names[ip]+"_drifttime: t0-corrected";
+     
+     //Set Branch Address
+     tree->SetBranchAddress(drift_time, hdc_time[ip]);   
+     tree->SetBranchAddress(ndata_name, &Ndata[ip]);  /* Ndata represents number of triggers vs number of hits that each trigger produced.
+                                                      A hit is refer to as when a trigger(traversing particle), ionizes the WC gas and ionized
+                                                      electrons reach the rearest sense wire, producing a detectable signal in the O'scope */
+	
+     //Create Histograms
+     h[ip] = new TH1F(drift_time_histo, title, 200, -50, 350);  //set time to 400 ns/200 bins = 2ns/bin
+}
+	
+	
+	//open and read tzero data file
+    ifstream ifs;
+    ifs.open("../data_files/" + run + "/tzero.dat");
+    
+	double t_zero_offsets[NPLANES];
+
+     for (ip=0; ip < 12; ip++) {	 
+	 ifs >> t_zero_offsets[ip];  //add tzero offsets to array
+   }
+   
+    //Declare number of entries in the tree
+    Long64_t nentries = tree->GetEntries(); //number of triggers (particles that passed through all 4 hodo planes)
+
+    //Loop over all entries
+    for(Long64_t i=0; i<nentries; i++)
+    {
+	tree->GetEntry(i);
+    
+    
+    //Loop over number of hits for each trigger in each DC plane 
+    for(ip=0; ip<NPLANES; ip++){
+   
+ 
+    
+    for(Int_t j=0; j<Ndata[ip]; j++){
+	
+	h[ip]->Fill(hdc_time[ip][j] - t_zero_offsets[ip]); //add t0 offset correction 
+       }
+      
+      
+
+			
+	
+	}
+
+}
+
+
+
+		
+//Write histograms to file
+g->Write();
+
+
+
+}
diff --git a/CALIBRATION/hms_dc_calib/scripts/get_wire_tzero.C b/CALIBRATION/hms_dc_calib/scripts/get_wire_tzero.C
new file mode 100644
index 00000000..290d96ce
--- /dev/null
+++ b/CALIBRATION/hms_dc_calib/scripts/get_wire_tzero.C
@@ -0,0 +1,409 @@
+
+
+/*Script to extract reference time "t0"  for each sense wire in a given HMS Wire Chamber Plane with COSMIC RUNS.  
+20% (MAX BIN CONTENT) is calculated per wire, and the corresponding bin is fitted linearly about +/- 
+a certain number of bins and this fit is extrapolated to y=0(x-axis). The extrapolated value is take to be t0*/
+
+#include <vector>
+#include <TMath>
+
+#define NPLANES 12
+
+void get_wire_tzero()
+{
+  using namespace std;
+
+  int run_NUM;
+  TString f0 = "input_RUN.txt";
+  ifstream infile(f0);
+  infile >> run_NUM;   
+
+  //check if tzero_weighted_avg text file exists (if it does, DELETE IT, otherwise new values will be appended to it, in addition to pre-existing tzero values)
+  std::ifstream stream(Form("../data_files/run%d/tzero_weighted_avg_run%d.txt",run_NUM, run_NUM));
+ if (stream.good())
+  {
+  gSystem->Exec(Form("rm ../data_files/run%d/tzero_weighted_avg_run%d.txt",run_NUM, run_NUM));
+  }
+
+ TString run = Form("run%d", run_NUM);
+
+ //Declare plane names to loop over
+ TString plane_names[NPLANES]={"1x1", "1y1", "1u1", "1v1", "1y2", "1x2", "2x1", "2y1", "2u1", "2v1", "2y2", "2x2"};
+
+ //Declare a root file array to store individual DC cell drift times
+ TString root_file;
+ TFile *f[NPLANES];
+   
+ int total_wires;  //integer to store total sense wires for a plane chosen by the user
+        
+ //Loop over all planes
+ for (int ip = 0; ip < NPLANES; ip++){
+
+   //READ root file
+   root_file = "../root_files/"+run+"/hms_DC_"+plane_names[ip]+Form("_%d.root",run_NUM);
+   f[ip] = new TFile(root_file, "READ");
+
+   //Create a file output file stream object to write t0 values to data file
+   ofstream ofs;
+   TString t_zero_file = "../data_files/" + run + "/hdc_"+plane_names[ip]+Form("tzero_run%d.dat", run_NUM);
+   ofs.open (t_zero_file);
+
+   //Set headers for subsequent columns of data
+   ofs << "#WIRE " << "   "  << "t0" << "   " << "t0_err" << "   " << " entries " << endl;
+
+   //Create root file to store fitted wire drift times histos and "t0 vs. wirenum"
+   TString output_root_file = "../root_files/"+run+"/hmsDC_"+plane_names[ip]+Form("run%d_fitted_histos.root", run_NUM);
+   TFile *g = new TFile(output_root_file,"RECREATE");
+
+   f[ip]->cd();  //change to file containing the wire drift times histos
+ 
+   int total_wires;  //integer to store total sense wires for a plane chosen by the user
+   
+   //Set variables depending on which plane is being studied
+   if (ip == 0 || ip == 5 || ip == 6 || ip == 11) {  
+     TH1F *cell_dt[113]; //declare array of histos to store drift times     
+     total_wires=113; 
+
+     //Declare bin properties for given sense wires in a plane
+
+     int bin_max[113];                    /*Array to store the bin number corresponding to the drift time distribution peak*/
+     int bin_maxContent[113];             /*Array to store the content (# events) corresponding to the bin with maximum content*/
+     double time_max[113];                /*Array to store the x-axis(drift time (ns)) corresponding to bin_max*/
+     double twenty_perc_maxContent[113];  /*Array to store 20% of maximum bin content (peak)*/						     
+     double ref_time[113];               /*Array to store reference times for each sense wire*/
+
+   }
+
+   else if (ip == 2 || ip == 3 || ip == 8 || ip == 9) {
+     TH1F *cell_dt[107];
+     total_wires=107;      
+   
+     int bin_max[107];                                 
+     int bin_maxContent[107];                           
+     double time_max[107];                               
+     double twenty_perc_maxContent[107];                
+     double ref_time[107];          
+
+   }	   
+ 
+   else if (ip == 1 || ip == 4 || ip == 7 || ip == 10) {
+     TH1F *cell_dt[52];
+     total_wires=52;
+
+     int bin_max[52];                                 
+     int bin_maxContent[52];                           
+     double time_max[52];                               
+     double twenty_perc_maxContent[52];                
+     double ref_time[52];          
+
+   }	 
+    
+ 	
+   /*Get wire histos from root file and loop over each 
+     sense wire of a plane in HMS Drift Chambers (DC1 or DC2)*/
+ 
+   for (int sensewire=1; sensewire<=total_wires; sensewire++){
+
+     //Get title of histos in root file
+     TString drift_time_histo = Form("wire_%d", sensewire); 
+ 
+     //Get drift time histograms from root file
+     cell_dt[sensewire-1] = (TH1F*)f[ip]->Get(drift_time_histo);
+
+     
+     //Get bin with Maximum Content
+     bin_max[sensewire-1] = cell_dt[sensewire-1]->GetMaximumBin();
+
+     //Get content of bin_max
+     bin_maxContent[sensewire-1] = cell_dt[sensewire-1]->GetBinContent(bin_max[sensewire-1]);
+     
+     //Get time (ns) [x-axis] corresponding to bin_max 
+     time_max[sensewire-1] = cell_dt[sensewire-1]->GetXaxis()->GetBinCenter(bin_max[sensewire-1]);
+     
+     //Calculate 20% of max content
+     twenty_perc_maxContent[sensewire-1] = bin_maxContent[sensewire-1] * 0.20;
+     
+
+   }
+   
+   
+   
+   //****************************************************//
+   //Determine  which bin has around 20% max_BinContent *//
+   //****************************************************//
+   
+   
+   //Declarations
+   int content_bin;      //stores content for each bin
+   int counts;           //a counter used to count the number of bins that have >20% max bin content for a plane 
+   int bin;              //store bin number
+   int j;                //jth bin, used to loop over n bins 
+   
+   //Declare vector arrays 
+   vector<int> content;               //stores bin content
+   vector <int> bin_num;           //stores bin number
+   
+   
+   //Loop over each wire 
+   for(sensewire=1; sensewire<=total_wires; sensewire++) {
+     
+     //Loop over each bin for individual wire drift time histo
+     for(bin=0; bin < bin_max[sensewire-1]; bin++) {
+       
+       content_bin = cell_dt[sensewire-1]->GetBinContent(bin);              //get bin content for all bins in a wire
+       
+       content.push_back(content_bin);                                      //add bin content to array
+       bin_num.push_back(bin);                                              //add bin number to array
+       
+       
+       // check if 2 bin contents have been stored and examine if these contents exceed or not 20% of peak
+       if (content.size() == 2) {
+	 
+	 //initialize counter to count how many bin contents >= 20%
+	 counts = 0;
+	 
+	 // Loop over 2 bin contents stored in array content
+	 for (j=0; j<2; j++){
+	   
+	   if(content[j] > =  twenty_perc_maxContent[sensewire-1]){
+	     counts = counts+1;
+             
+	     if(counts >= 2) { goto stop;}
+	     
+	     
+	   }
+	   
+	   content.clear();
+	   bin_num.clear();
+	   
+	 }
+	 
+       }
+     }
+     
+     //Print the time(ns) and BIN NUM corresponding to 20% of MAX content 
+     //if 2/2 elements exceeds 20% of Max content (for each plane)
+     
+   stop:
+     ref_time[sensewire-1] = cell_dt[sensewire-1] ->GetXaxis() -> GetBinCenter(bin_num[0]); //Get time corresponding ~20% Max BIN CONTENT  
+     
+     //cout << " ******* " << "Wire " << sensewire << " ******* " << endl;
+     //cout << "time (20% of Max BIN): " << ref_time[sensewire-1] << " ns" << endl;
+     //cout << "BIN: " << bin_num[0] << endl;
+     
+     
+     //*********************************************************//
+     //*******Extract the "t0" Using a Fitting Procedure********//
+     //*********************************************************//
+     
+     //Declarations
+     int time_init;           //start fit value 
+     int time_final;          //end fit value
+     int t_zero;
+     int entries;             //entries for each wire
+     
+     double m;                //slope
+     double y_int;            //y-intercept
+     double m_err;
+     double y_int_err;
+     double t_zero_err;
+     
+     //Get time corresponding to bin (fit range) 
+     time_init = cell_dt[sensewire-1] -> GetXaxis() -> GetBinCenter(bin_num[0]-5); //choose bin range over which to fit
+     time_final = cell_dt[sensewire-1] -> GetXaxis() -> GetBinCenter(bin_num[0]+5); 
+     
+     //Create Fit Function
+     TF1* tZero_fit = new TF1("tZero_fit", "[0]*x + [1]", time_init, time_final);
+     
+     //Set Parameter Names and Values
+     tZero_fit->SetParName(0, "slope");
+     tZero_fit->SetParName(1, "y-int");
+     tZero_fit->SetParameter(0, 1.0);
+     tZero_fit->SetParameter(1, 1.0);
+     
+     //Fit Function in specified range
+     cell_dt[sensewire-1]->Fit("tZero_fit", "QR");
+     
+     //Get Parameters and their errors
+     m = tZero_fit->GetParameter(0);
+     y_int = tZero_fit->GetParameter(1);
+     m_err = tZero_fit->GetParError(0);
+     y_int_err = tZero_fit->GetParError(1);
+     
+     //Calculate error on t0 using error propagation method of expanding partial derivatives
+     t_zero = - y_int/m;
+     t_zero_err = sqrt(y_int_err*y_int_err/(m*m) + y_int*y_int*m_err*m_err/(m*m*m*m) );
+     entries = cell_dt[sensewire-1]->GetEntries();  //number of entries (triggers) per wire
+     
+     //Write "t0" values to file
+     ofs << sensewire << "          " << t_zero << "          " << t_zero_err << "          " << entries << endl;
+     
+     //Change to output root file and write fitted histos to file
+     g->cd();
+     cell_dt[sensewire-1]->Write();
+     
+   }
+   
+   // Make Plot of t0 versus Wire Number 
+   
+   TCanvas *t = new TCanvas("t", "", 2000,500);
+   t->SetGrid();
+
+   
+   TGraphErrors *graph = new TGraphErrors(t_zero_file, "%lg %lg %lg");
+   graph->SetName("graph");
+   TString title = "DC"+plane_names[ip]+": t0 versus sensewire";
+   graph->SetTitle(title);
+   graph->SetMarkerStyle(20);
+   graph->SetMarkerColor(1);
+   graph->GetXaxis()->SetLimits(0., total_wires);
+   graph->GetXaxis()->SetTitle("Wire Number");
+   graph->GetXaxis()->CenterTitle();
+   graph->GetYaxis()->SetTitle("t-Zero (ns)");
+   graph->GetYaxis()->CenterTitle();
+   graph->GetYaxis()->SetRangeUser(-50.0, 50.0);
+   graph->Draw("AP");
+   t->Update();
+   t->Write(title);   //write to a root file
+   
+   //close dat file
+   ofs.close();
+   //save plots
+   //TString tzero_plots = "plots/"+run_NUM +"/hdc"+plane_names[ip]+Form("TESTING_tzero_v_wire_%d.eps", run);
+   //t->SaveAs(tzero_plots);
+   
+   
+   //*****************************************************************************************//
+   //        CALCULATE THE "t0s" WEIGHTED AVERAGE FOR WIRE DRIFT TIMES WITH ENTRIES > = 300   //
+   //*****************************************************************************************//
+   
+   
+   //open t0 dat file
+   ifstream ifs;
+   ifs.open (t_zero_file);
+   string line;
+   
+   //open new data file to write updated t0 values
+   TString t_zero_file_corr = "../data_files/" + run + "/hdc_"+plane_names[ip]+Form("tzero_run%d_updated.txt", run_NUM);
+   ofs.open(t_zero_file_corr);
+   ofs << " #Wire " << "     " << " t_zero " << "     " << " t_zero_err " << "     " << " entries " << endl; 
+   
+   //Initialize variables related to weighted avg
+   double sum_NUM;  //numerator of weighted avg
+   double sum_DEN;   //denominator of weighted avg
+   double weighted_AVG;
+   double weighted_AVG_err; 
+  
+   //set them to zero to start sum inside while loop 
+   sum_NUM = 0.0;
+   sum_DEN = 0.0;
+   
+   weighted_AVG;
+   weighted_AVG_err; 
+   
+   //read line bt line the t_zero_file
+   while(getline(ifs, line)) {
+     if(!line.length()|| line[0] == '#')
+       continue;
+     //	sensewire = 0, t_zero = 0.0, t_zero_err = 0.0, entries = 0 ; //set values to zero
+     
+     sscanf(line.c_str(), "%d %d %lf %d", &sensewire, &t_zero, &t_zero_err, &entries); //assign each of the variables above a data in the t_zero_file
+     
+     //Check if entries for each sensewire exceeds a certain number of events
+     
+     if (entries>300 && t_zero < 30) {
+	
+       //Calculate the weighted average of t0s
+       sum_NUM = sum_NUM + t_zero/(t_zero_err*t_zero_err);
+       sum_DEN = sum_DEN + 1.0/(t_zero_err*t_zero_err);      
+       
+       //cout << "sum_NUM : " << sum_NUM << endl;  
+       //cout << "sum_DEN : " << sum_DEN << endl;  
+       
+    
+
+
+       ofs << sensewire << "        " << t_zero << "        " << t_zero_err << "        " << entries << endl;
+
+       
+       
+     }
+     
+   }
+   
+   
+   
+   weighted_AVG = sum_NUM / sum_DEN;
+   weighted_AVG_err = sqrt( 1.0 / sum_DEN );
+   
+   
+   
+   //open new data file to write weighted average of updated t_zero values
+   
+   TString t_zero_AVG = Form("../data_files/run%d/tzero_weighted_avg_run%d.txt", run_NUM, run_NUM);
+   
+   ofstream ofile;
+   ofile.open(t_zero_AVG, std::ofstream::out | std::ofstream::app); //open file in and output and append mode
+   
+   ofile << " #weighted_AVG " << "     " << " DC plane: " <<  plane_names[ip] << endl; 
+   ofile << weighted_AVG << endl;
+   
+  
+   
+   
+   
+   ifs.close();
+
+   // Make Plot of t0 versus Wire Number for entries > 300 events
+
+   TCanvas *t1 = new TCanvas("t1", "", 2000,500);
+   t1->SetGrid();
+
+   //TString mygraph = "hdc"+plane_names[ip]+Form("_t_zero_run%d.txt", run);
+   TGraphErrors *graph1 = new TGraphErrors(t_zero_file_corr, "%lg %lg %lg");
+   graph1->SetName("graph1");
+   TString title1 = "hdc"+plane_names[ip]+": t0 versus sensewire_corrected";
+   graph1->SetTitle(title1);
+   graph1->SetMarkerStyle(20);
+   graph1->SetMarkerColor(1);
+   //graph1->GetXaxis()->SetLimits(0., total_wires);
+   graph1->GetXaxis()->SetTitle("Wire Number");
+   graph1->GetXaxis()->CenterTitle();
+   graph1->GetYaxis()->SetTitle("t-Zero (ns)");
+   graph1->GetYaxis()->CenterTitle();
+   graph1->GetYaxis()->SetRangeUser(-50.0, 50.0);
+   graph1->Draw("AP");
+   t1->Update();
+
+   // Draw TLine
+   TLine *wght_avg = new TLine(t1->GetUxmin(), weighted_AVG, t1->GetUxmax(), weighted_AVG);
+   wght_avg->SetLineColor(kRed);
+   wght_avg->SetLineWidth(2);
+   wght_avg->SetLineStyle(2);
+   wght_avg->Draw();
+   
+   //Add text to canvas
+   TLatex* ltx1 =  new TLatex();
+   ltx1->DrawLatex(t1->GetUxmax()*0.75,40, Form("Weighted Average = %lf #pm %lf ns", weighted_AVG, weighted_AVG_err) );
+   
+   t1->Write(title1);   //write canvas to a root file
+   
+   ofs.close();  //close data file
+
+   
+
+
+
+
+
+
+
+
+ }
+ 
+ 
+
+
+
+
+}
diff --git a/CALIBRATION/hms_dc_calib/scripts/update_hdcparam.C b/CALIBRATION/hms_dc_calib/scripts/update_hdcparam.C
new file mode 100644
index 00000000..85acf3c9
--- /dev/null
+++ b/CALIBRATION/hms_dc_calib/scripts/update_hdcparam.C
@@ -0,0 +1,111 @@
+//This scirpt will produce an updated version of hdc.param file, with
+//the necessary t-zero corrections
+#define time_shift 1300.0
+
+void update_hdcparam()
+{
+	  
+  //read run number from input file
+  int run_NUM;
+  TString f0 = "input_RUN.txt";
+  ifstream infile(f0);
+  infile >> run_NUM;   
+
+  TString run = Form("run%d", run_NUM);
+
+    int lin_NUM = 0;
+	string t_zero[12];
+	double tzero[12];
+	string line;
+   //open t_zero file
+   ifstream ifs;
+   ifs.open("../data_files/"+ run +"/tzero_weighted_avg_" + run + ".txt");
+   
+
+while (getline(ifs, line))
+  {
+    
+    istringstream ss(line);
+    char id;
+    
+    if ( ss >> t_zero)
+      {
+		
+	if (id != '#') //skip comments   
+	  {
+	    //count lines  
+	    lin_NUM = lin_NUM + 1;
+	    cout << lin_NUM << endl;    
+	       t_zero[lin_NUM-1] = line;
+	       tzero[lin_NUM-1] = atof(t_zero[lin_NUM-1].c_str()); // convert string to double
+	    cout << tzero[lin_NUM-1] << endl;
+	  }       
+	
+      }     
+    
+  }
+ifs.close();
+
+//Update hdc.param parameter file 
+TString hdc_param = "../../../PARAM/HMS/DC/hdc_new.param";
+ofstream ofs(hdc_param);
+
+ofs << ";---------------------------------------------------------------------" << endl;
+ofs <<"; HMS_TRACKING"<< endl;
+ofs <<"; CTP parameter file containing all tracking parameters for the HMS "<< endl;
+ofs <<";----------------------------------------------------------------------"<< endl;
+ofs <<"; sigma of wire chamber resolution for each plane "<< endl;
+ofs <<" hdc_sigma = 0.020 "<< endl;
+ofs <<"             0.020"<< endl;
+ofs <<"             0.020"<< endl;
+ofs <<"             0.020"<< endl;
+ofs <<"             0.020"<< endl;
+ofs <<"             0.020"<< endl;
+ofs <<"             0.020"<< endl;
+ofs <<"             0.020"<< endl;
+ofs <<"             0.020"<< endl;
+ofs <<"             0.020"<< endl;
+ofs <<"             0.020"<< endl;
+ofs <<"             0.020"<< endl;
+ofs <<"  hdc_tdc_min_win = -25000,-25000,-25000,-25000,-25000,-25000 "<< endl;
+ofs <<"  		    -25000,-25000,-25000,-25000,-25000,-25000 "<< endl;
+ofs <<"  hdc_tdc_max_win = 25000,25000,25000,25000,25000,25000 "<< endl;
+ofs <<"                    25000,25000,25000,25000,25000,25000 "<< endl;
+ofs <<"; hms drift chamber tdc's time per channel "<< endl;
+ofs <<"        hdc_tdc_time_per_channel = -0.10 "<< endl;
+ofs <<"; hms zero time for drift chambers	!DECREASING this number moves the hdtime plots to LOWER time. "<< endl;
+ofs <<"hdc_plane_time_zero =  ";
+
+
+//*****************************************************************
+//output all t_0 corrected values to hdc.param    
+for (int i=0; i<12; i++) { 
+{
+if (i < = 5){
+ofs  <<  time_shift - tzero[i]   << ","; 
+}
+if (i ==6) {ofs << "\n" << time_shift - tzero[6]  << ",";}
+else if (i>6 && i <11) {
+ofs << time_shift - tzero[i] << ","; 
+}
+if (i==11){ ofs << time_shift - tzero[i] << endl;}
+}
+}
+//*****************************************************************
+ofs << "\n";
+ofs <<"; Dave Abbott's wire velocity correction "<< endl;
+ofs <<"hdc_wire_velocity = 12.0 "<< endl;
+ofs <<"hdc_central_time = 7,9,3,4,6,5 "<< endl;
+ofs << "                   7,5,3,4,6,6" << endl;
+ofs.close();
+
+//create a t_zero data file copy in another directory that will also use these values
+TString tzero_dat = "../data_files/" + run + "/tzero.dat";
+ofstream ofs(tzero_dat);
+
+for (int i=0; i<12; i++) 
+{
+ofs  <<  tzero[i]  << endl; 
+}
+ 
+}
diff --git a/CALIBRATION/hms_dc_calib/scripts/wire_drift_times.C b/CALIBRATION/hms_dc_calib/scripts/wire_drift_times.C
new file mode 100644
index 00000000..11c86b9c
--- /dev/null
+++ b/CALIBRATION/hms_dc_calib/scripts/wire_drift_times.C
@@ -0,0 +1,305 @@
+#define wire_drift_times_cxx
+#include "wire_drift_times.h"
+#include <TH2.h>
+#include <TStyle.h>
+#include <TCanvas.h>
+#define NPLANES 12
+
+void wire_drift_times::Loop()
+{
+//   In a ROOT session, you can do:
+//      Root > .L wire_drift_times.C
+//      Root > wire_drift_times t
+//      Root > t.GetEntry(12); // Fill t data members with entry number 12
+//      Root > t.Show();       // Show values of entry 12
+//      Root > t.Show(16);     // Read and show values of entry 16
+//      Root > t.Loop();       // Loop on all entries
+//
+
+//     This is the loop skeleton where:
+//    jentry is the global entry number in the chain
+//    ientry is the entry number in the current Tree
+//  Note that the argument to GetEntry must be:
+//    jentry for TChain::GetEntry
+//    ientry for TTree::GetEntry and TBranch::GetEntry
+//
+//       To read only selected branches, Insert statements like:
+// METHOD1:
+//    fChain->SetBranchStatus("*",0);  // disable all branches
+//    fChain->SetBranchStatus("branchname",1);  // activate branchname
+// METHOD2: replace line
+//    fChain->GetEntry(jentry);       //read all branches
+//by  b_branchname->GetEntry(ientry); //read only this branch
+   if (fChain == 0) return;
+
+   Long64_t nentries = fChain->GetEntriesFast();
+
+//Read Run Number from txt file
+int run_NUM;
+TString f0 = "input_RUN.txt";
+ifstream infile(f0);
+infile >> run_NUM;
+
+ TString run = Form("run%d", run_NUM);
+//Declare plane names to loop over
+TString plane_names[NPLANES]={"1x1", "1y1", "1u1", "1v1", "1y2", "1x2", "2x1", "2y1", "2u1", "2v1", "2y2", "2x2"};
+
+//Declare a root file array to store individual DC cell drift times
+TString root_file[NPLANES];
+TFile *g[NPLANES];
+   
+int total_wires;  //integer to store total sense wires for a plane chosen by the user
+     
+   Long64_t nbytes = 0, nb = 0;
+   
+//Loop over all planes
+for (int ip = 0; ip < NPLANES; ip++){
+
+//Initialize a root file array to store individual DC cell drift times
+root_file[ip] = "../root_files/" + run + "/hms_DC_"+plane_names[ip]+Form("_%d.root", run_NUM);
+g[ip] = new TFile(root_file[ip], "RECREATE");
+g[ip]->cd();
+
+/*========================PLANES 1X1,1X2,2X1,2X2=====================================*/
+	
+	//If specific planes are encountered, treat them as follows:
+	
+	if(ip==0 || ip==5 || ip==6 || ip==11) {
+
+	total_wires = 113;
+	TH1F *cell_dt[113];    
+    TH2F *wire_vs_dt = new TH2F("wire_vs_dt", "", 200., -50., 350., 113., 0.,113.);
+    
+    //Initialize wire drift time histograms
+    for (int wirenum=1; wirenum<=total_wires; wirenum++){
+	cell_dt[wirenum-1] = new TH1F(Form("wire_%d", wirenum), "", 200., -50., 350.);
+     }
+	
+       //Loop over all entries (triggers or events)   
+    for (Long64_t jentry=0; jentry<nentries; jentry++) {
+      Long64_t ientry = LoadTree(jentry);
+      if (ientry < 0) break;
+      nb = fChain->GetEntry(jentry);   nbytes += nb;
+      // if (Cut(ientry) < 0) continue;
+ 
+ if (ip==0) {
+    for (int i=0; i< Ndata_H_dc_1x1_wirenum; i++){
+       wirenum = int(H_dc_1x1_wirenum[i]);
+      //cout << " wire num: " << H_dc_1x1_wirenum[i] << endl;
+	  //cout << "Time: " << H_dc_1x1_time[i] << endl;
+
+      //Fill the Histograms
+     cell_dt[wirenum-1]->Fill(H_dc_1x1_time[i]);
+     wire_vs_dt->Fill(H_dc_1x1_time[i], H_dc_1x1_wirenum[i]);
+
+				}
+			}
+							
+	 if (ip==5) {
+    for (int i=0; i< Ndata_H_dc_1x2_wirenum; i++){
+       wirenum = int(H_dc_1x2_wirenum[i]);
+      //cout << " wire num: " << H_dc_1x2_wirenum[i] << endl;
+	  //cout << "Time: " << H_dc_1x2_time[i] << endl;
+
+      //Fill the Histograms
+     cell_dt[wirenum-1]->Fill(H_dc_1x2_time[i]);
+     wire_vs_dt->Fill(H_dc_1x2_time[i], H_dc_1x2_wirenum[i]);
+
+				}
+			}						
+			
+		 if (ip==6) {
+    for (int i=0; i< Ndata_H_dc_2x1_wirenum; i++){
+       wirenum = int(H_dc_2x1_wirenum[i]);
+      //cout << " wire num: " << H_dc_2x1_wirenum[i] << endl;
+	  //cout << "Time: " << H_dc_2x1_time[i] << endl;
+
+      //Fill the Histograms
+     cell_dt[wirenum-1]->Fill(H_dc_2x1_time[i]);
+     wire_vs_dt->Fill(H_dc_2x1_time[i], H_dc_2x1_wirenum[i]);
+
+				}
+			}		
+			
+		if (ip==11) {
+    for (int i=0; i< Ndata_H_dc_2x2_wirenum; i++){
+       wirenum = int(H_dc_2x2_wirenum[i]);
+      //cout << " wire num: " << H_dc_2x2_wirenum[i] << endl;
+	  //cout << "Time: " << H_dc_2x2_time[i] << endl;
+
+      //Fill the Histograms
+     cell_dt[wirenum-1]->Fill(H_dc_2x2_time[i]);
+     wire_vs_dt->Fill(H_dc_2x2_time[i], H_dc_2x2_wirenum[i]);
+
+				}
+			}						
+					
+					
+					
+					}
+					}
+					
+	/*PLANE 1U1, 1V1, 2U1, 2V1*/				
+	//If specific planes are encountered, treat them as follows:
+	if(ip==2 || ip==3 || ip==8 || ip==9) {
+
+	total_wires = 107;
+	TH1F *cell_dt[107];    
+    TH2F *wire_vs_dt = new TH2F("wire_vs_dt", "", 200., -50., 350., 107., 0.,107.);
+    
+    //Initialize wire drift time histograms
+    for (int wirenum=1; wirenum<=total_wires; wirenum++){
+	cell_dt[wirenum-1] = new TH1F(Form("wire_%d", wirenum), "", 200., -50., 350.);
+     }
+	
+       //Loop over all entries (triggers or events)   
+    for (Long64_t jentry=0; jentry<nentries; jentry++) {
+      Long64_t ientry = LoadTree(jentry);
+      if (ientry < 0) break;
+      nb = fChain->GetEntry(jentry);   nbytes += nb;
+      // if (Cut(ientry) < 0) continue;
+ 
+ if (ip==2) {
+    for (int i=0; i< Ndata_H_dc_1u1_wirenum; i++){
+       wirenum = int(H_dc_1u1_wirenum[i]);
+      //cout << " wire num: " << H_dc_1u1_wirenum[i] << endl;
+	  //cout << "Time: " << H_dc_1u1_time[i] << endl;
+
+      //Fill the Histograms
+     cell_dt[wirenum-1]->Fill(H_dc_1u1_time[i]);
+     wire_vs_dt->Fill(H_dc_1u1_time[i], H_dc_1u1_wirenum[i]);
+
+				}
+			}
+							
+	 if (ip==3) {
+    for (int i=0; i< Ndata_H_dc_1v1_wirenum; i++){
+       wirenum = int(H_dc_1v1_wirenum[i]);
+      //cout << " wire num: " << H_dc_1v1_wirenum[i] << endl;
+	  //cout << "Time: " << H_dc_1v1_time[i] << endl;
+
+      //Fill the Histograms
+     cell_dt[wirenum-1]->Fill(H_dc_1v1_time[i]);
+     wire_vs_dt->Fill(H_dc_1v1_time[i], H_dc_1v1_wirenum[i]);
+
+				}
+			}						
+			
+		 if (ip==8) {
+    for (int i=0; i< Ndata_H_dc_2u1_wirenum; i++){
+       wirenum = int(H_dc_2u1_wirenum[i]);
+      //cout << " wire num: " << H_dc_2u1_wirenum[i] << endl;
+	  //cout << "Time: " << H_dc_2u1_time[i] << endl;
+
+      //Fill the Histograms
+     cell_dt[wirenum-1]->Fill(H_dc_2u1_time[i]);
+     wire_vs_dt->Fill(H_dc_2u1_time[i], H_dc_2u1_wirenum[i]);
+
+				}
+			}		
+			
+		if (ip==9) {
+    for (int i=0; i< Ndata_H_dc_2v1_wirenum; i++){
+       wirenum = int(H_dc_2v1_wirenum[i]);
+      //cout << " wire num: " << H_dc_2v1_wirenum[i] << endl;
+	  //cout << "Time: " << H_dc_2v1_time[i] << endl;
+
+      //Fill the Histograms
+     cell_dt[wirenum-1]->Fill(H_dc_2v1_time[i]);
+     wire_vs_dt->Fill(H_dc_2v1_time[i], H_dc_2v1_wirenum[i]);
+
+				}
+			}						
+					
+					
+					
+					}
+					}
+
+	/*PLANE 1Y1, 1Y2, 2Y1, 2Y2*/				
+	//If specific planes are encountered, treat them as follows:
+	if(ip==1 || ip==4 || ip==7 || ip==10) {
+
+	total_wires = 52;
+	TH1F *cell_dt[52];    
+    TH2F *wire_vs_dt = new TH2F("wire_vs_dt", "", 200., -50., 350., 52., 0.,52.);
+    
+    //Initialize wire drift time histograms
+    for (int wirenum=1; wirenum<=total_wires; wirenum++){
+	cell_dt[wirenum-1] = new TH1F(Form("wire_%d", wirenum), "", 200., -50., 350.);
+     }
+	
+       //Loop over all entries (triggers or events)   
+    for (Long64_t jentry=0; jentry<nentries; jentry++) {
+      Long64_t ientry = LoadTree(jentry);
+      if (ientry < 0) break;
+      nb = fChain->GetEntry(jentry);   nbytes += nb;
+      // if (Cut(ientry) < 0) continue;
+ 
+ if (ip==1) {
+    for (int i=0; i< Ndata_H_dc_1y1_wirenum; i++){
+       wirenum = int(H_dc_1y1_wirenum[i]);
+      //cout << " wire num: " << H_dc_1y1_wirenum[i] << endl;
+	  //cout << "Time: " << H_dc_1y1_time[i] << endl;
+
+      //Fill the Histograms
+     cell_dt[wirenum-1]->Fill(H_dc_1y1_time[i]);
+     wire_vs_dt->Fill(H_dc_1y1_time[i], H_dc_1y1_wirenum[i]);
+
+				}
+			}
+							
+	 if (ip==4) {
+    for (int i=0; i< Ndata_H_dc_1y2_wirenum; i++){
+       wirenum = int(H_dc_1y2_wirenum[i]);
+      //cout << " wire num: " << H_dc_1y2_wirenum[i] << endl;
+	  //cout << "Time: " << H_dc_1y2_time[i] << endl;
+
+      //Fill the Histograms
+     cell_dt[wirenum-1]->Fill(H_dc_1y2_time[i]);
+     wire_vs_dt->Fill(H_dc_1y2_time[i], H_dc_1y2_wirenum[i]);
+
+				}
+			}						
+			
+		 if (ip==7) {
+    for (int i=0; i< Ndata_H_dc_2y1_wirenum; i++){
+       wirenum = int(H_dc_2y1_wirenum[i]);
+      //cout << " wire num: " << H_dc_2y1_wirenum[i] << endl;
+	  //cout << "Time: " << H_dc_2y1_time[i] << endl;
+
+      //Fill the Histograms
+     cell_dt[wirenum-1]->Fill(H_dc_2y1_time[i]);
+     wire_vs_dt->Fill(H_dc_2y1_time[i], H_dc_2y1_wirenum[i]);
+
+				}
+			}		
+			
+		if (ip==10) {
+    for (int i=0; i< Ndata_H_dc_2y2_wirenum; i++){
+       wirenum = int(H_dc_2y2_wirenum[i]);
+      //cout << " wire num: " << H_dc_2y2_wirenum[i] << endl;
+	  //cout << "Time: " << H_dc_2y2_time[i] << endl;
+
+      //Fill the Histograms
+     cell_dt[wirenum-1]->Fill(H_dc_2y2_time[i]);
+     wire_vs_dt->Fill(H_dc_2y2_time[i], H_dc_2y2_wirenum[i]);
+
+				}
+			}						
+					
+					
+					
+					}
+					}
+
+//Write wire drift time histos to file
+g[ip]->Write();
+	cout << "EVERYTHING OK in plane:" << ip << endl;	
+
+}
+
+
+     //     cout << "\r          \r" << (float)sensewire / total_wires * 100.0 << "%" << flush; 
+
+}
diff --git a/CALIBRATION/hms_dc_calib/scripts/wire_drift_times.h b/CALIBRATION/hms_dc_calib/scripts/wire_drift_times.h
new file mode 100644
index 00000000..e0bafccd
--- /dev/null
+++ b/CALIBRATION/hms_dc_calib/scripts/wire_drift_times.h
@@ -0,0 +1,550 @@
+//////////////////////////////////////////////////////////
+// This class has been automatically generated on
+// Sun Dec 18 12:03:19 2016 by ROOT version 5.34/18
+// from TTree T/Hall A Analyzer Output DST
+// found on file: test_259.root
+//////////////////////////////////////////////////////////
+
+#ifndef wire_drift_times_h
+#define wire_drift_times_h
+
+#include <TROOT.h>
+#include <TChain.h>
+#include <TFile.h>
+
+// Header file for the classes stored in the TTree if any.
+
+// Fixed size dimensions of array or collections stored in the TTree if any.
+
+class wire_drift_times {
+public :
+   TTree          *fChain;   //!pointer to the analyzed TTree or TChain
+   Int_t           fCurrent; //!current Tree number in a TChain
+
+   // Declaration of leaf types
+   Int_t           Ndata_H_dc_1u1_dist;
+   Double_t        H_dc_1u1_dist[107];   //[Ndata.H.dc.1u1.dist]
+   Int_t           Ndata_H_dc_1u1_rawtdc;
+   Double_t        H_dc_1u1_rawtdc[107];   //[Ndata.H.dc.1u1.rawtdc]
+   Int_t           Ndata_H_dc_1u1_time;
+   Double_t        H_dc_1u1_time[107];   //[Ndata.H.dc.1u1.time]
+   Int_t           Ndata_H_dc_1u1_wirenum;
+   Double_t        H_dc_1u1_wirenum[107];   //[Ndata.H.dc.1u1.wirenum]
+   Int_t           Ndata_H_dc_1v1_dist;
+   Double_t        H_dc_1v1_dist[107];   //[Ndata.H.dc.1v1.dist]
+   Int_t           Ndata_H_dc_1v1_rawtdc;
+   Double_t        H_dc_1v1_rawtdc[107];   //[Ndata.H.dc.1v1.rawtdc]
+   Int_t           Ndata_H_dc_1v1_time;
+   Double_t        H_dc_1v1_time[107];   //[Ndata.H.dc.1v1.time]
+   Int_t           Ndata_H_dc_1v1_wirenum;
+   Double_t        H_dc_1v1_wirenum[107];   //[Ndata.H.dc.1v1.wirenum]
+   Int_t           Ndata_H_dc_1x1_dist;
+   Double_t        H_dc_1x1_dist[113];   //[Ndata.H.dc.1x1.dist]
+   Int_t           Ndata_H_dc_1x1_rawtdc;
+   Double_t        H_dc_1x1_rawtdc[113];   //[Ndata.H.dc.1x1.rawtdc]
+   Int_t           Ndata_H_dc_1x1_time;
+   Double_t        H_dc_1x1_time[113];   //[Ndata.H.dc.1x1.time]
+   Int_t           Ndata_H_dc_1x1_wirenum;
+   Double_t        H_dc_1x1_wirenum[113];   //[Ndata.H.dc.1x1.wirenum]
+   Int_t           Ndata_H_dc_1x2_dist;
+   Double_t        H_dc_1x2_dist[113];   //[Ndata.H.dc.1x2.dist]
+   Int_t           Ndata_H_dc_1x2_rawtdc;
+   Double_t        H_dc_1x2_rawtdc[113];   //[Ndata.H.dc.1x2.rawtdc]
+   Int_t           Ndata_H_dc_1x2_time;
+   Double_t        H_dc_1x2_time[113];   //[Ndata.H.dc.1x2.time]
+   Int_t           Ndata_H_dc_1x2_wirenum;
+   Double_t        H_dc_1x2_wirenum[113];   //[Ndata.H.dc.1x2.wirenum]
+   Int_t           Ndata_H_dc_1y1_dist;
+   Double_t        H_dc_1y1_dist[52];   //[Ndata.H.dc.1y1.dist]
+   Int_t           Ndata_H_dc_1y1_rawtdc;
+   Double_t        H_dc_1y1_rawtdc[52];   //[Ndata.H.dc.1y1.rawtdc]
+   Int_t           Ndata_H_dc_1y1_time;
+   Double_t        H_dc_1y1_time[52];   //[Ndata.H.dc.1y1.time]
+   Int_t           Ndata_H_dc_1y1_wirenum;
+   Double_t        H_dc_1y1_wirenum[52];   //[Ndata.H.dc.1y1.wirenum]
+   Int_t           Ndata_H_dc_1y2_dist;
+   Double_t        H_dc_1y2_dist[52];   //[Ndata.H.dc.1y2.dist]
+   Int_t           Ndata_H_dc_1y2_rawtdc;
+   Double_t        H_dc_1y2_rawtdc[52];   //[Ndata.H.dc.1y2.rawtdc]
+   Int_t           Ndata_H_dc_1y2_time;
+   Double_t        H_dc_1y2_time[52];   //[Ndata.H.dc.1y2.time]
+   Int_t           Ndata_H_dc_1y2_wirenum;
+   Double_t        H_dc_1y2_wirenum[52];   //[Ndata.H.dc.1y2.wirenum]
+   Int_t           Ndata_H_dc_2u1_dist;
+   Double_t        H_dc_2u1_dist[107];   //[Ndata.H.dc.2u1.dist]
+   Int_t           Ndata_H_dc_2u1_rawtdc;
+   Double_t        H_dc_2u1_rawtdc[107];   //[Ndata.H.dc.2u1.rawtdc]
+   Int_t           Ndata_H_dc_2u1_time;
+   Double_t        H_dc_2u1_time[107];   //[Ndata.H.dc.2u1.time]
+   Int_t           Ndata_H_dc_2u1_wirenum;
+   Double_t        H_dc_2u1_wirenum[107];   //[Ndata.H.dc.2u1.wirenum]
+   Int_t           Ndata_H_dc_2v1_dist;
+   Double_t        H_dc_2v1_dist[107];   //[Ndata.H.dc.2v1.dist]
+   Int_t           Ndata_H_dc_2v1_rawtdc;
+   Double_t        H_dc_2v1_rawtdc[107];   //[Ndata.H.dc.2v1.rawtdc]
+   Int_t           Ndata_H_dc_2v1_time;
+   Double_t        H_dc_2v1_time[107];   //[Ndata.H.dc.2v1.time]
+   Int_t           Ndata_H_dc_2v1_wirenum;
+   Double_t        H_dc_2v1_wirenum[107];   //[Ndata.H.dc.2v1.wirenum]
+   Int_t           Ndata_H_dc_2x1_dist;
+   Double_t        H_dc_2x1_dist[113];   //[Ndata.H.dc.2x1.dist]
+   Int_t           Ndata_H_dc_2x1_rawtdc;
+   Double_t        H_dc_2x1_rawtdc[113];   //[Ndata.H.dc.2x1.rawtdc]
+   Int_t           Ndata_H_dc_2x1_time;
+   Double_t        H_dc_2x1_time[113];   //[Ndata.H.dc.2x1.time]
+   Int_t           Ndata_H_dc_2x1_wirenum;
+   Double_t        H_dc_2x1_wirenum[113];   //[Ndata.H.dc.2x1.wirenum]
+   Int_t           Ndata_H_dc_2x2_dist;
+   Double_t        H_dc_2x2_dist[113];   //[Ndata.H.dc.2x2.dist]
+   Int_t           Ndata_H_dc_2x2_rawtdc;
+   Double_t        H_dc_2x2_rawtdc[113];   //[Ndata.H.dc.2x2.rawtdc]
+   Int_t           Ndata_H_dc_2x2_time;
+   Double_t        H_dc_2x2_time[113];   //[Ndata.H.dc.2x2.time]
+   Int_t           Ndata_H_dc_2x2_wirenum;
+   Double_t        H_dc_2x2_wirenum[113];   //[Ndata.H.dc.2x2.wirenum]
+   Int_t           Ndata_H_dc_2y1_dist;
+   Double_t        H_dc_2y1_dist[52];   //[Ndata.H.dc.2y1.dist]
+   Int_t           Ndata_H_dc_2y1_rawtdc;
+   Double_t        H_dc_2y1_rawtdc[52];   //[Ndata.H.dc.2y1.rawtdc]
+   Int_t           Ndata_H_dc_2y1_time;
+   Double_t        H_dc_2y1_time[52];   //[Ndata.H.dc.2y1.time]
+   Int_t           Ndata_H_dc_2y1_wirenum;
+   Double_t        H_dc_2y1_wirenum[52];   //[Ndata.H.dc.2y1.wirenum]
+   Int_t           Ndata_H_dc_2y2_dist;
+   Double_t        H_dc_2y2_dist[52];   //[Ndata.H.dc.2y2.dist]
+   Int_t           Ndata_H_dc_2y2_rawtdc;
+   Double_t        H_dc_2y2_rawtdc[52];   //[Ndata.H.dc.2y2.rawtdc]
+   Int_t           Ndata_H_dc_2y2_time;
+   Double_t        H_dc_2y2_time[52];   //[Ndata.H.dc.2y2.time]
+   Int_t           Ndata_H_dc_2y2_wirenum;
+   Double_t        H_dc_2y2_wirenum[52];   //[Ndata.H.dc.2y2.wirenum]
+   Int_t           Ndata_H_dc_residual;
+   Double_t        H_dc_residual[12];   //[Ndata.H.dc.residual]
+   Int_t           Ndata_H_dc_x;
+   Double_t        H_dc_x[8];   //[Ndata.H.dc.x]
+   Int_t           Ndata_H_dc_xp;
+   Double_t        H_dc_xp[8];   //[Ndata.H.dc.xp]
+   Int_t           Ndata_H_dc_y;
+   Double_t        H_dc_y[8];   //[Ndata.H.dc.y]
+   Int_t           Ndata_H_dc_yp;
+   Double_t        H_dc_yp[8];   //[Ndata.H.dc.yp]
+   Double_t        H_dc_1u1_nhit;
+   Double_t        H_dc_1v1_nhit;
+   Double_t        H_dc_1x1_nhit;
+   Double_t        H_dc_1x2_nhit;
+   Double_t        H_dc_1y1_nhit;
+   Double_t        H_dc_1y2_nhit;
+   Double_t        H_dc_2u1_nhit;
+   Double_t        H_dc_2v1_nhit;
+   Double_t        H_dc_2x1_nhit;
+   Double_t        H_dc_2x2_nhit;
+   Double_t        H_dc_2y1_nhit;
+   Double_t        H_dc_2y2_nhit;
+   Double_t        H_dc_Ch1_maxhits;
+   Double_t        H_dc_Ch1_nhit;
+   Double_t        H_dc_Ch1_spacepoints;
+   Double_t        H_dc_Ch1_trawhit;
+   Double_t        H_dc_Ch2_maxhits;
+   Double_t        H_dc_Ch2_nhit;
+   Double_t        H_dc_Ch2_spacepoints;
+   Double_t        H_dc_Ch2_trawhit;
+   Double_t        H_dc_nhit;
+   Double_t        H_dc_nsp;
+   Double_t        H_dc_ntrack;
+   Double_t        H_dc_stubtest;
+   Double_t        H_dc_tnhit;
+   Double_t        H_dc_trawhit;
+ 
+ //THaEvent        *Event_Branch;
+   ULong64_t       fEvtHdr_fEvtTime;
+   UInt_t          fEvtHdr_fEvtNum;
+   Int_t           fEvtHdr_fEvtType;
+   Int_t           fEvtHdr_fEvtLen;
+   Int_t           fEvtHdr_fHelicity;
+   Int_t           fEvtHdr_fTargetPol;
+   Int_t           fEvtHdr_fRun;
+
+   // List of branches
+   TBranch        *b_Ndata_H_dc_1u1_dist;   //!
+   TBranch        *b_H_dc_1u1_dist;   //!
+   TBranch        *b_Ndata_H_dc_1u1_rawtdc;   //!
+   TBranch        *b_H_dc_1u1_rawtdc;   //!
+   TBranch        *b_Ndata_H_dc_1u1_time;   //!
+   TBranch        *b_H_dc_1u1_time;   //!
+   TBranch        *b_Ndata_H_dc_1u1_wirenum;   //!
+   TBranch        *b_H_dc_1u1_wirenum;   //!
+   TBranch        *b_Ndata_H_dc_1v1_dist;   //!
+   TBranch        *b_H_dc_1v1_dist;   //!
+   TBranch        *b_Ndata_H_dc_1v1_rawtdc;   //!
+   TBranch        *b_H_dc_1v1_rawtdc;   //!
+   TBranch        *b_Ndata_H_dc_1v1_time;   //!
+   TBranch        *b_H_dc_1v1_time;   //!
+   TBranch        *b_Ndata_H_dc_1v1_wirenum;   //!
+   TBranch        *b_H_dc_1v1_wirenum;   //!
+   TBranch        *b_Ndata_H_dc_1x1_dist;   //!
+   TBranch        *b_H_dc_1x1_dist;   //!
+   TBranch        *b_Ndata_H_dc_1x1_rawtdc;   //!
+   TBranch        *b_H_dc_1x1_rawtdc;   //!
+   TBranch        *b_Ndata_H_dc_1x1_time;   //!
+   TBranch        *b_H_dc_1x1_time;   //!
+   TBranch        *b_Ndata_H_dc_1x1_wirenum;   //!
+   TBranch        *b_H_dc_1x1_wirenum;   //!
+   TBranch        *b_Ndata_H_dc_1x2_dist;   //!
+   TBranch        *b_H_dc_1x2_dist;   //!
+   TBranch        *b_Ndata_H_dc_1x2_rawtdc;   //!
+   TBranch        *b_H_dc_1x2_rawtdc;   //!
+   TBranch        *b_Ndata_H_dc_1x2_time;   //!
+   TBranch        *b_H_dc_1x2_time;   //!
+   TBranch        *b_Ndata_H_dc_1x2_wirenum;   //!
+   TBranch        *b_H_dc_1x2_wirenum;   //!
+   TBranch        *b_Ndata_H_dc_1y1_dist;   //!
+   TBranch        *b_H_dc_1y1_dist;   //!
+   TBranch        *b_Ndata_H_dc_1y1_rawtdc;   //!
+   TBranch        *b_H_dc_1y1_rawtdc;   //!
+   TBranch        *b_Ndata_H_dc_1y1_time;   //!
+   TBranch        *b_H_dc_1y1_time;   //!
+   TBranch        *b_Ndata_H_dc_1y1_wirenum;   //!
+   TBranch        *b_H_dc_1y1_wirenum;   //!
+   TBranch        *b_Ndata_H_dc_1y2_dist;   //!
+   TBranch        *b_H_dc_1y2_dist;   //!
+   TBranch        *b_Ndata_H_dc_1y2_rawtdc;   //!
+   TBranch        *b_H_dc_1y2_rawtdc;   //!
+   TBranch        *b_Ndata_H_dc_1y2_time;   //!
+   TBranch        *b_H_dc_1y2_time;   //!
+   TBranch        *b_Ndata_H_dc_1y2_wirenum;   //!
+   TBranch        *b_H_dc_1y2_wirenum;   //!
+   TBranch        *b_Ndata_H_dc_2u1_dist;   //!
+   TBranch        *b_H_dc_2u1_dist;   //!
+   TBranch        *b_Ndata_H_dc_2u1_rawtdc;   //!
+   TBranch        *b_H_dc_2u1_rawtdc;   //!
+   TBranch        *b_Ndata_H_dc_2u1_time;   //!
+   TBranch        *b_H_dc_2u1_time;   //!
+   TBranch        *b_Ndata_H_dc_2u1_wirenum;   //!
+   TBranch        *b_H_dc_2u1_wirenum;   //!
+   TBranch        *b_Ndata_H_dc_2v1_dist;   //!
+   TBranch        *b_H_dc_2v1_dist;   //!
+   TBranch        *b_Ndata_H_dc_2v1_rawtdc;   //!
+   TBranch        *b_H_dc_2v1_rawtdc;   //!
+   TBranch        *b_Ndata_H_dc_2v1_time;   //!
+   TBranch        *b_H_dc_2v1_time;   //!
+   TBranch        *b_Ndata_H_dc_2v1_wirenum;   //!
+   TBranch        *b_H_dc_2v1_wirenum;   //!
+   TBranch        *b_Ndata_H_dc_2x1_dist;   //!
+   TBranch        *b_H_dc_2x1_dist;   //!
+   TBranch        *b_Ndata_H_dc_2x1_rawtdc;   //!
+   TBranch        *b_H_dc_2x1_rawtdc;   //!
+   TBranch        *b_Ndata_H_dc_2x1_time;   //!
+   TBranch        *b_H_dc_2x1_time;   //!
+   TBranch        *b_Ndata_H_dc_2x1_wirenum;   //!
+   TBranch        *b_H_dc_2x1_wirenum;   //!
+   TBranch        *b_Ndata_H_dc_2x2_dist;   //!
+   TBranch        *b_H_dc_2x2_dist;   //!
+   TBranch        *b_Ndata_H_dc_2x2_rawtdc;   //!
+   TBranch        *b_H_dc_2x2_rawtdc;   //!
+   TBranch        *b_Ndata_H_dc_2x2_time;   //!
+   TBranch        *b_H_dc_2x2_time;   //!
+   TBranch        *b_Ndata_H_dc_2x2_wirenum;   //!
+   TBranch        *b_H_dc_2x2_wirenum;   //!
+   TBranch        *b_Ndata_H_dc_2y1_dist;   //!
+   TBranch        *b_H_dc_2y1_dist;   //!
+   TBranch        *b_Ndata_H_dc_2y1_rawtdc;   //!
+   TBranch        *b_H_dc_2y1_rawtdc;   //!
+   TBranch        *b_Ndata_H_dc_2y1_time;   //!
+   TBranch        *b_H_dc_2y1_time;   //!
+   TBranch        *b_Ndata_H_dc_2y1_wirenum;   //!
+   TBranch        *b_H_dc_2y1_wirenum;   //!
+   TBranch        *b_Ndata_H_dc_2y2_dist;   //!
+   TBranch        *b_H_dc_2y2_dist;   //!
+   TBranch        *b_Ndata_H_dc_2y2_rawtdc;   //!
+   TBranch        *b_H_dc_2y2_rawtdc;   //!
+   TBranch        *b_Ndata_H_dc_2y2_time;   //!
+   TBranch        *b_H_dc_2y2_time;   //!
+   TBranch        *b_Ndata_H_dc_2y2_wirenum;   //!
+   TBranch        *b_H_dc_2y2_wirenum;   //!
+   TBranch        *b_Ndata_H_dc_residual;   //!
+   TBranch        *b_H_dc_residual;   //!
+   TBranch        *b_Ndata_H_dc_x;   //!
+   TBranch        *b_H_dc_x;   //!
+   TBranch        *b_Ndata_H_dc_xp;   //!
+   TBranch        *b_H_dc_xp;   //!
+   TBranch        *b_Ndata_H_dc_y;   //!
+   TBranch        *b_H_dc_y;   //!
+   TBranch        *b_Ndata_H_dc_yp;   //!
+   TBranch        *b_H_dc_yp;   //!
+   TBranch        *b_H_dc_1u1_nhit;   //!
+   TBranch        *b_H_dc_1v1_nhit;   //!
+   TBranch        *b_H_dc_1x1_nhit;   //!
+   TBranch        *b_H_dc_1x2_nhit;   //!
+   TBranch        *b_H_dc_1y1_nhit;   //!
+   TBranch        *b_H_dc_1y2_nhit;   //!
+   TBranch        *b_H_dc_2u1_nhit;   //!
+   TBranch        *b_H_dc_2v1_nhit;   //!
+   TBranch        *b_H_dc_2x1_nhit;   //!
+   TBranch        *b_H_dc_2x2_nhit;   //!
+   TBranch        *b_H_dc_2y1_nhit;   //!
+   TBranch        *b_H_dc_2y2_nhit;   //!
+   TBranch        *b_H_dc_Ch1_maxhits;   //!
+   TBranch        *b_H_dc_Ch1_nhit;   //!
+   TBranch        *b_H_dc_Ch1_spacepoints;   //!
+   TBranch        *b_H_dc_Ch1_trawhit;   //!
+   TBranch        *b_H_dc_Ch2_maxhits;   //!
+   TBranch        *b_H_dc_Ch2_nhit;   //!
+   TBranch        *b_H_dc_Ch2_spacepoints;   //!
+   TBranch        *b_H_dc_Ch2_trawhit;   //!
+   TBranch        *b_H_dc_nhit;   //!
+   TBranch        *b_H_dc_nsp;   //!
+   TBranch        *b_H_dc_ntrack;   //!
+   TBranch        *b_H_dc_stubtest;   //!
+   TBranch        *b_H_dc_tnhit;   //!
+   TBranch        *b_H_dc_trawhit;   //!
+   TBranch        *b_Event_Branch_fEvtHdr_fEvtTime;   //!
+   TBranch        *b_Event_Branch_fEvtHdr_fEvtNum;   //!
+   TBranch        *b_Event_Branch_fEvtHdr_fEvtType;   //!
+   TBranch        *b_Event_Branch_fEvtHdr_fEvtLen;   //!
+   TBranch        *b_Event_Branch_fEvtHdr_fHelicity;   //!
+   TBranch        *b_Event_Branch_fEvtHdr_fTargetPol;   //!
+   TBranch        *b_Event_Branch_fEvtHdr_fRun;   //!
+
+   wire_drift_times(TTree *tree=0);
+   virtual ~wire_drift_times();
+   virtual Int_t    Cut(Long64_t entry);
+   virtual Int_t    GetEntry(Long64_t entry);
+   virtual Long64_t LoadTree(Long64_t entry);
+   virtual void     Init(TTree *tree);
+   virtual void     Loop();
+   virtual Bool_t   Notify();
+   virtual void     Show(Long64_t entry = -1);
+};
+
+#endif
+
+#ifdef wire_drift_times_cxx
+wire_drift_times::wire_drift_times(TTree *tree) : fChain(0)
+{
+// if parameter tree is not specified (or zero), connect the file
+// used to generate this class and read the Tree.
+   if (tree == 0) {
+     int run_NUM;
+     TString f0 = "input_RUN.txt";
+     ifstream infile(f0);
+     infile >> run_NUM;         
+     
+     TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject(Form("../../../ROOTfiles/test_%d.root", run_NUM));
+     if (!f || !f->IsOpen()) {
+       f = new TFile(Form("../../../ROOTfiles/test_%d.root", run_NUM));
+     }
+     f->GetObject("T",tree);
+
+   }
+   Init(tree);
+}
+
+wire_drift_times::~wire_drift_times()
+{
+   if (!fChain) return;
+   delete fChain->GetCurrentFile();
+}
+
+Int_t wire_drift_times::GetEntry(Long64_t entry)
+{
+// Read contents of entry.
+   if (!fChain) return 0;
+   return fChain->GetEntry(entry);
+}
+Long64_t wire_drift_times::LoadTree(Long64_t entry)
+{
+// Set the environment to read one entry
+   if (!fChain) return -5;
+   Long64_t centry = fChain->LoadTree(entry);
+   if (centry < 0) return centry;
+   if (fChain->GetTreeNumber() != fCurrent) {
+      fCurrent = fChain->GetTreeNumber();
+      Notify();
+   }
+   return centry;
+}
+
+void wire_drift_times::Init(TTree *tree)
+{
+   // The Init() function is called when the selector needs to initialize
+   // a new tree or chain. Typically here the branch addresses and branch
+   // pointers of the tree will be set.
+   // It is normally not necessary to make changes to the generated
+   // code, but the routine can be extended by the user if needed.
+   // Init() will be called many times when running on PROOF
+   // (once per file to be processed).
+
+   // Set branch addresses and branch pointers
+   if (!tree) return;
+   fChain = tree;
+   fCurrent = -1;
+   fChain->SetMakeClass(1);
+
+   fChain->SetBranchAddress("Ndata.H.dc.1u1.dist", &Ndata_H_dc_1u1_dist, &b_Ndata_H_dc_1u1_dist);
+   fChain->SetBranchAddress("H.dc.1u1.dist", H_dc_1u1_dist, &b_H_dc_1u1_dist);
+   fChain->SetBranchAddress("Ndata.H.dc.1u1.rawtdc", &Ndata_H_dc_1u1_rawtdc, &b_Ndata_H_dc_1u1_rawtdc);
+   fChain->SetBranchAddress("H.dc.1u1.rawtdc", H_dc_1u1_rawtdc, &b_H_dc_1u1_rawtdc);
+   fChain->SetBranchAddress("Ndata.H.dc.1u1.time", &Ndata_H_dc_1u1_time, &b_Ndata_H_dc_1u1_time);
+   fChain->SetBranchAddress("H.dc.1u1.time", H_dc_1u1_time, &b_H_dc_1u1_time);
+   fChain->SetBranchAddress("Ndata.H.dc.1u1.wirenum", &Ndata_H_dc_1u1_wirenum, &b_Ndata_H_dc_1u1_wirenum);
+   fChain->SetBranchAddress("H.dc.1u1.wirenum", H_dc_1u1_wirenum, &b_H_dc_1u1_wirenum);
+   fChain->SetBranchAddress("Ndata.H.dc.1v1.dist", &Ndata_H_dc_1v1_dist, &b_Ndata_H_dc_1v1_dist);
+   fChain->SetBranchAddress("H.dc.1v1.dist", H_dc_1v1_dist, &b_H_dc_1v1_dist);
+   fChain->SetBranchAddress("Ndata.H.dc.1v1.rawtdc", &Ndata_H_dc_1v1_rawtdc, &b_Ndata_H_dc_1v1_rawtdc);
+   fChain->SetBranchAddress("H.dc.1v1.rawtdc", H_dc_1v1_rawtdc, &b_H_dc_1v1_rawtdc);
+   fChain->SetBranchAddress("Ndata.H.dc.1v1.time", &Ndata_H_dc_1v1_time, &b_Ndata_H_dc_1v1_time);
+   fChain->SetBranchAddress("H.dc.1v1.time", H_dc_1v1_time, &b_H_dc_1v1_time);
+   fChain->SetBranchAddress("Ndata.H.dc.1v1.wirenum", &Ndata_H_dc_1v1_wirenum, &b_Ndata_H_dc_1v1_wirenum);
+   fChain->SetBranchAddress("H.dc.1v1.wirenum", H_dc_1v1_wirenum, &b_H_dc_1v1_wirenum);
+   fChain->SetBranchAddress("Ndata.H.dc.1x1.dist", &Ndata_H_dc_1x1_dist, &b_Ndata_H_dc_1x1_dist);
+   fChain->SetBranchAddress("H.dc.1x1.dist", H_dc_1x1_dist, &b_H_dc_1x1_dist);
+   fChain->SetBranchAddress("Ndata.H.dc.1x1.rawtdc", &Ndata_H_dc_1x1_rawtdc, &b_Ndata_H_dc_1x1_rawtdc);
+   fChain->SetBranchAddress("H.dc.1x1.rawtdc", H_dc_1x1_rawtdc, &b_H_dc_1x1_rawtdc);
+   fChain->SetBranchAddress("Ndata.H.dc.1x1.time", &Ndata_H_dc_1x1_time, &b_Ndata_H_dc_1x1_time);
+   fChain->SetBranchAddress("H.dc.1x1.time", H_dc_1x1_time, &b_H_dc_1x1_time);
+   fChain->SetBranchAddress("Ndata.H.dc.1x1.wirenum", &Ndata_H_dc_1x1_wirenum, &b_Ndata_H_dc_1x1_wirenum);
+   fChain->SetBranchAddress("H.dc.1x1.wirenum", H_dc_1x1_wirenum, &b_H_dc_1x1_wirenum);
+   fChain->SetBranchAddress("Ndata.H.dc.1x2.dist", &Ndata_H_dc_1x2_dist, &b_Ndata_H_dc_1x2_dist);
+   fChain->SetBranchAddress("H.dc.1x2.dist", H_dc_1x2_dist, &b_H_dc_1x2_dist);
+   fChain->SetBranchAddress("Ndata.H.dc.1x2.rawtdc", &Ndata_H_dc_1x2_rawtdc, &b_Ndata_H_dc_1x2_rawtdc);
+   fChain->SetBranchAddress("H.dc.1x2.rawtdc", H_dc_1x2_rawtdc, &b_H_dc_1x2_rawtdc);
+   fChain->SetBranchAddress("Ndata.H.dc.1x2.time", &Ndata_H_dc_1x2_time, &b_Ndata_H_dc_1x2_time);
+   fChain->SetBranchAddress("H.dc.1x2.time", H_dc_1x2_time, &b_H_dc_1x2_time);
+   fChain->SetBranchAddress("Ndata.H.dc.1x2.wirenum", &Ndata_H_dc_1x2_wirenum, &b_Ndata_H_dc_1x2_wirenum);
+   fChain->SetBranchAddress("H.dc.1x2.wirenum", H_dc_1x2_wirenum, &b_H_dc_1x2_wirenum);
+   fChain->SetBranchAddress("Ndata.H.dc.1y1.dist", &Ndata_H_dc_1y1_dist, &b_Ndata_H_dc_1y1_dist);
+   fChain->SetBranchAddress("H.dc.1y1.dist", H_dc_1y1_dist, &b_H_dc_1y1_dist);
+   fChain->SetBranchAddress("Ndata.H.dc.1y1.rawtdc", &Ndata_H_dc_1y1_rawtdc, &b_Ndata_H_dc_1y1_rawtdc);
+   fChain->SetBranchAddress("H.dc.1y1.rawtdc", H_dc_1y1_rawtdc, &b_H_dc_1y1_rawtdc);
+   fChain->SetBranchAddress("Ndata.H.dc.1y1.time", &Ndata_H_dc_1y1_time, &b_Ndata_H_dc_1y1_time);
+   fChain->SetBranchAddress("H.dc.1y1.time", H_dc_1y1_time, &b_H_dc_1y1_time);
+   fChain->SetBranchAddress("Ndata.H.dc.1y1.wirenum", &Ndata_H_dc_1y1_wirenum, &b_Ndata_H_dc_1y1_wirenum);
+   fChain->SetBranchAddress("H.dc.1y1.wirenum", H_dc_1y1_wirenum, &b_H_dc_1y1_wirenum);
+   fChain->SetBranchAddress("Ndata.H.dc.1y2.dist", &Ndata_H_dc_1y2_dist, &b_Ndata_H_dc_1y2_dist);
+   fChain->SetBranchAddress("H.dc.1y2.dist", H_dc_1y2_dist, &b_H_dc_1y2_dist);
+   fChain->SetBranchAddress("Ndata.H.dc.1y2.rawtdc", &Ndata_H_dc_1y2_rawtdc, &b_Ndata_H_dc_1y2_rawtdc);
+   fChain->SetBranchAddress("H.dc.1y2.rawtdc", H_dc_1y2_rawtdc, &b_H_dc_1y2_rawtdc);
+   fChain->SetBranchAddress("Ndata.H.dc.1y2.time", &Ndata_H_dc_1y2_time, &b_Ndata_H_dc_1y2_time);
+   fChain->SetBranchAddress("H.dc.1y2.time", H_dc_1y2_time, &b_H_dc_1y2_time);
+   fChain->SetBranchAddress("Ndata.H.dc.1y2.wirenum", &Ndata_H_dc_1y2_wirenum, &b_Ndata_H_dc_1y2_wirenum);
+   fChain->SetBranchAddress("H.dc.1y2.wirenum", H_dc_1y2_wirenum, &b_H_dc_1y2_wirenum);
+   fChain->SetBranchAddress("Ndata.H.dc.2u1.dist", &Ndata_H_dc_2u1_dist, &b_Ndata_H_dc_2u1_dist);
+   fChain->SetBranchAddress("H.dc.2u1.dist", H_dc_2u1_dist, &b_H_dc_2u1_dist);
+   fChain->SetBranchAddress("Ndata.H.dc.2u1.rawtdc", &Ndata_H_dc_2u1_rawtdc, &b_Ndata_H_dc_2u1_rawtdc);
+   fChain->SetBranchAddress("H.dc.2u1.rawtdc", H_dc_2u1_rawtdc, &b_H_dc_2u1_rawtdc);
+   fChain->SetBranchAddress("Ndata.H.dc.2u1.time", &Ndata_H_dc_2u1_time, &b_Ndata_H_dc_2u1_time);
+   fChain->SetBranchAddress("H.dc.2u1.time", H_dc_2u1_time, &b_H_dc_2u1_time);
+   fChain->SetBranchAddress("Ndata.H.dc.2u1.wirenum", &Ndata_H_dc_2u1_wirenum, &b_Ndata_H_dc_2u1_wirenum);
+   fChain->SetBranchAddress("H.dc.2u1.wirenum", H_dc_2u1_wirenum, &b_H_dc_2u1_wirenum);
+   fChain->SetBranchAddress("Ndata.H.dc.2v1.dist", &Ndata_H_dc_2v1_dist, &b_Ndata_H_dc_2v1_dist);
+   fChain->SetBranchAddress("H.dc.2v1.dist", H_dc_2v1_dist, &b_H_dc_2v1_dist);
+   fChain->SetBranchAddress("Ndata.H.dc.2v1.rawtdc", &Ndata_H_dc_2v1_rawtdc, &b_Ndata_H_dc_2v1_rawtdc);
+   fChain->SetBranchAddress("H.dc.2v1.rawtdc", H_dc_2v1_rawtdc, &b_H_dc_2v1_rawtdc);
+   fChain->SetBranchAddress("Ndata.H.dc.2v1.time", &Ndata_H_dc_2v1_time, &b_Ndata_H_dc_2v1_time);
+   fChain->SetBranchAddress("H.dc.2v1.time", H_dc_2v1_time, &b_H_dc_2v1_time);
+   fChain->SetBranchAddress("Ndata.H.dc.2v1.wirenum", &Ndata_H_dc_2v1_wirenum, &b_Ndata_H_dc_2v1_wirenum);
+   fChain->SetBranchAddress("H.dc.2v1.wirenum", H_dc_2v1_wirenum, &b_H_dc_2v1_wirenum);
+   fChain->SetBranchAddress("Ndata.H.dc.2x1.dist", &Ndata_H_dc_2x1_dist, &b_Ndata_H_dc_2x1_dist);
+   fChain->SetBranchAddress("H.dc.2x1.dist", H_dc_2x1_dist, &b_H_dc_2x1_dist);
+   fChain->SetBranchAddress("Ndata.H.dc.2x1.rawtdc", &Ndata_H_dc_2x1_rawtdc, &b_Ndata_H_dc_2x1_rawtdc);
+   fChain->SetBranchAddress("H.dc.2x1.rawtdc", H_dc_2x1_rawtdc, &b_H_dc_2x1_rawtdc);
+   fChain->SetBranchAddress("Ndata.H.dc.2x1.time", &Ndata_H_dc_2x1_time, &b_Ndata_H_dc_2x1_time);
+   fChain->SetBranchAddress("H.dc.2x1.time", H_dc_2x1_time, &b_H_dc_2x1_time);
+   fChain->SetBranchAddress("Ndata.H.dc.2x1.wirenum", &Ndata_H_dc_2x1_wirenum, &b_Ndata_H_dc_2x1_wirenum);
+   fChain->SetBranchAddress("H.dc.2x1.wirenum", H_dc_2x1_wirenum, &b_H_dc_2x1_wirenum);
+   fChain->SetBranchAddress("Ndata.H.dc.2x2.dist", &Ndata_H_dc_2x2_dist, &b_Ndata_H_dc_2x2_dist);
+   fChain->SetBranchAddress("H.dc.2x2.dist", H_dc_2x2_dist, &b_H_dc_2x2_dist);
+   fChain->SetBranchAddress("Ndata.H.dc.2x2.rawtdc", &Ndata_H_dc_2x2_rawtdc, &b_Ndata_H_dc_2x2_rawtdc);
+   fChain->SetBranchAddress("H.dc.2x2.rawtdc", H_dc_2x2_rawtdc, &b_H_dc_2x2_rawtdc);
+   fChain->SetBranchAddress("Ndata.H.dc.2x2.time", &Ndata_H_dc_2x2_time, &b_Ndata_H_dc_2x2_time);
+   fChain->SetBranchAddress("H.dc.2x2.time", H_dc_2x2_time, &b_H_dc_2x2_time);
+   fChain->SetBranchAddress("Ndata.H.dc.2x2.wirenum", &Ndata_H_dc_2x2_wirenum, &b_Ndata_H_dc_2x2_wirenum);
+   fChain->SetBranchAddress("H.dc.2x2.wirenum", H_dc_2x2_wirenum, &b_H_dc_2x2_wirenum);
+   fChain->SetBranchAddress("Ndata.H.dc.2y1.dist", &Ndata_H_dc_2y1_dist, &b_Ndata_H_dc_2y1_dist);
+   fChain->SetBranchAddress("H.dc.2y1.dist", H_dc_2y1_dist, &b_H_dc_2y1_dist);
+   fChain->SetBranchAddress("Ndata.H.dc.2y1.rawtdc", &Ndata_H_dc_2y1_rawtdc, &b_Ndata_H_dc_2y1_rawtdc);
+   fChain->SetBranchAddress("H.dc.2y1.rawtdc", H_dc_2y1_rawtdc, &b_H_dc_2y1_rawtdc);
+   fChain->SetBranchAddress("Ndata.H.dc.2y1.time", &Ndata_H_dc_2y1_time, &b_Ndata_H_dc_2y1_time);
+   fChain->SetBranchAddress("H.dc.2y1.time", H_dc_2y1_time, &b_H_dc_2y1_time);
+   fChain->SetBranchAddress("Ndata.H.dc.2y1.wirenum", &Ndata_H_dc_2y1_wirenum, &b_Ndata_H_dc_2y1_wirenum);
+   fChain->SetBranchAddress("H.dc.2y1.wirenum", H_dc_2y1_wirenum, &b_H_dc_2y1_wirenum);
+   fChain->SetBranchAddress("Ndata.H.dc.2y2.dist", &Ndata_H_dc_2y2_dist, &b_Ndata_H_dc_2y2_dist);
+   fChain->SetBranchAddress("H.dc.2y2.dist", H_dc_2y2_dist, &b_H_dc_2y2_dist);
+   fChain->SetBranchAddress("Ndata.H.dc.2y2.rawtdc", &Ndata_H_dc_2y2_rawtdc, &b_Ndata_H_dc_2y2_rawtdc);
+   fChain->SetBranchAddress("H.dc.2y2.rawtdc", H_dc_2y2_rawtdc, &b_H_dc_2y2_rawtdc);
+   fChain->SetBranchAddress("Ndata.H.dc.2y2.time", &Ndata_H_dc_2y2_time, &b_Ndata_H_dc_2y2_time);
+   fChain->SetBranchAddress("H.dc.2y2.time", H_dc_2y2_time, &b_H_dc_2y2_time);
+   fChain->SetBranchAddress("Ndata.H.dc.2y2.wirenum", &Ndata_H_dc_2y2_wirenum, &b_Ndata_H_dc_2y2_wirenum);
+   fChain->SetBranchAddress("H.dc.2y2.wirenum", H_dc_2y2_wirenum, &b_H_dc_2y2_wirenum);
+   fChain->SetBranchAddress("Ndata.H.dc.residual", &Ndata_H_dc_residual, &b_Ndata_H_dc_residual);
+   fChain->SetBranchAddress("H.dc.residual", H_dc_residual, &b_H_dc_residual);
+   fChain->SetBranchAddress("Ndata.H.dc.x", &Ndata_H_dc_x, &b_Ndata_H_dc_x);
+   fChain->SetBranchAddress("H.dc.x", H_dc_x, &b_H_dc_x);
+   fChain->SetBranchAddress("Ndata.H.dc.xp", &Ndata_H_dc_xp, &b_Ndata_H_dc_xp);
+   fChain->SetBranchAddress("H.dc.xp", H_dc_xp, &b_H_dc_xp);
+   fChain->SetBranchAddress("Ndata.H.dc.y", &Ndata_H_dc_y, &b_Ndata_H_dc_y);
+   fChain->SetBranchAddress("H.dc.y", H_dc_y, &b_H_dc_y);
+   fChain->SetBranchAddress("Ndata.H.dc.yp", &Ndata_H_dc_yp, &b_Ndata_H_dc_yp);
+   fChain->SetBranchAddress("H.dc.yp", H_dc_yp, &b_H_dc_yp);
+   fChain->SetBranchAddress("H.dc.1u1.nhit", &H_dc_1u1_nhit, &b_H_dc_1u1_nhit);
+   fChain->SetBranchAddress("H.dc.1v1.nhit", &H_dc_1v1_nhit, &b_H_dc_1v1_nhit);
+   fChain->SetBranchAddress("H.dc.1x1.nhit", &H_dc_1x1_nhit, &b_H_dc_1x1_nhit);
+   fChain->SetBranchAddress("H.dc.1x2.nhit", &H_dc_1x2_nhit, &b_H_dc_1x2_nhit);
+   fChain->SetBranchAddress("H.dc.1y1.nhit", &H_dc_1y1_nhit, &b_H_dc_1y1_nhit);
+   fChain->SetBranchAddress("H.dc.1y2.nhit", &H_dc_1y2_nhit, &b_H_dc_1y2_nhit);
+   fChain->SetBranchAddress("H.dc.2u1.nhit", &H_dc_2u1_nhit, &b_H_dc_2u1_nhit);
+   fChain->SetBranchAddress("H.dc.2v1.nhit", &H_dc_2v1_nhit, &b_H_dc_2v1_nhit);
+   fChain->SetBranchAddress("H.dc.2x1.nhit", &H_dc_2x1_nhit, &b_H_dc_2x1_nhit);
+   fChain->SetBranchAddress("H.dc.2x2.nhit", &H_dc_2x2_nhit, &b_H_dc_2x2_nhit);
+   fChain->SetBranchAddress("H.dc.2y1.nhit", &H_dc_2y1_nhit, &b_H_dc_2y1_nhit);
+   fChain->SetBranchAddress("H.dc.2y2.nhit", &H_dc_2y2_nhit, &b_H_dc_2y2_nhit);
+   fChain->SetBranchAddress("H.dc.Ch1.maxhits", &H_dc_Ch1_maxhits, &b_H_dc_Ch1_maxhits);
+   fChain->SetBranchAddress("H.dc.Ch1.nhit", &H_dc_Ch1_nhit, &b_H_dc_Ch1_nhit);
+   fChain->SetBranchAddress("H.dc.Ch1.spacepoints", &H_dc_Ch1_spacepoints, &b_H_dc_Ch1_spacepoints);
+   fChain->SetBranchAddress("H.dc.Ch1.trawhit", &H_dc_Ch1_trawhit, &b_H_dc_Ch1_trawhit);
+   fChain->SetBranchAddress("H.dc.Ch2.maxhits", &H_dc_Ch2_maxhits, &b_H_dc_Ch2_maxhits);
+   fChain->SetBranchAddress("H.dc.Ch2.nhit", &H_dc_Ch2_nhit, &b_H_dc_Ch2_nhit);
+   fChain->SetBranchAddress("H.dc.Ch2.spacepoints", &H_dc_Ch2_spacepoints, &b_H_dc_Ch2_spacepoints);
+   fChain->SetBranchAddress("H.dc.Ch2.trawhit", &H_dc_Ch2_trawhit, &b_H_dc_Ch2_trawhit);
+   fChain->SetBranchAddress("H.dc.nhit", &H_dc_nhit, &b_H_dc_nhit);
+   fChain->SetBranchAddress("H.dc.nsp", &H_dc_nsp, &b_H_dc_nsp);
+   fChain->SetBranchAddress("H.dc.ntrack", &H_dc_ntrack, &b_H_dc_ntrack);
+   fChain->SetBranchAddress("H.dc.stubtest", &H_dc_stubtest, &b_H_dc_stubtest);
+   fChain->SetBranchAddress("H.dc.tnhit", &H_dc_tnhit, &b_H_dc_tnhit);
+   fChain->SetBranchAddress("H.dc.trawhit", &H_dc_trawhit, &b_H_dc_trawhit);
+   fChain->SetBranchAddress("fEvtHdr.fEvtTime", &fEvtHdr_fEvtTime, &b_Event_Branch_fEvtHdr_fEvtTime);
+   fChain->SetBranchAddress("fEvtHdr.fEvtNum", &fEvtHdr_fEvtNum, &b_Event_Branch_fEvtHdr_fEvtNum);
+   fChain->SetBranchAddress("fEvtHdr.fEvtType", &fEvtHdr_fEvtType, &b_Event_Branch_fEvtHdr_fEvtType);
+   fChain->SetBranchAddress("fEvtHdr.fEvtLen", &fEvtHdr_fEvtLen, &b_Event_Branch_fEvtHdr_fEvtLen);
+   fChain->SetBranchAddress("fEvtHdr.fHelicity", &fEvtHdr_fHelicity, &b_Event_Branch_fEvtHdr_fHelicity);
+   fChain->SetBranchAddress("fEvtHdr.fTargetPol", &fEvtHdr_fTargetPol, &b_Event_Branch_fEvtHdr_fTargetPol);
+   fChain->SetBranchAddress("fEvtHdr.fRun", &fEvtHdr_fRun, &b_Event_Branch_fEvtHdr_fRun);
+   Notify();
+}
+
+Bool_t wire_drift_times::Notify()
+{
+   // The Notify() function is called when a new file is opened. This
+   // can be either for a new TTree in a TChain or when when a new TTree
+   // is started when using PROOF. It is normally not necessary to make changes
+   // to the generated code, but the routine can be extended by the
+   // user if needed. The return value is currently not used.
+
+   return kTRUE;
+}
+
+void wire_drift_times::Show(Long64_t entry)
+{
+// Print contents of entry.
+// If entry is not specified, print current entry
+   if (!fChain) return;
+   fChain->Show(entry);
+}
+Int_t wire_drift_times::Cut(Long64_t entry)
+{
+// This function may be called from Loop.
+// returns  1 if entry is accepted.
+// returns -1 otherwise.
+   return 1;
+}
+#endif // #ifdef wire_drift_times_cxx
diff --git a/CALIBRATION/hodo_calib/.gitignore b/CALIBRATION/hodo_calib/.gitignore
new file mode 100644
index 00000000..016c0321
--- /dev/null
+++ b/CALIBRATION/hodo_calib/.gitignore
@@ -0,0 +1,4 @@
+*.37
+tofcal.param
+tofcal.parampass1
+tofcal
diff --git a/CALIBRATION/hodo_calib/Maketof b/CALIBRATION/hodo_calib/Maketof
new file mode 100755
index 00000000..41260f4b
--- /dev/null
+++ b/CALIBRATION/hodo_calib/Maketof
@@ -0,0 +1 @@
+gfortran -W -ff2c -fbounds-check -fno-automatic  -fdefault-real-8  tofcal.f -L$CERN_ROOT/lib -lmathlib -lpacklib -lkernlib  -o tofcal
diff --git a/CALIBRATION/hodo_calib/README.md b/CALIBRATION/hodo_calib/README.md
new file mode 100644
index 00000000..9a7869d3
--- /dev/null
+++ b/CALIBRATION/hodo_calib/README.md
@@ -0,0 +1,50 @@
+Hodoscope Calibrations
+============================================
+This is directory contains the code for calibrating the hodoscope timing
+in SHMS and HMS
+
+Directory structure
+----------------------
+* tofcal.f  : Fortran code which execute the calibration.
+* Maketof   : Script to compile tofcal.f and make executable tofcal
+* tofcal.inp : Input file for tofcal.f
+* shmstofcal.inp : Version of tofcal.inp for SHMS
+* hmstofcal.inp : Version of tofcal.inp for HMS
+
+
+
+Compiling code
+--------------
+* Execute ./Maketof
+
+Running code
+-----------
+* First replay data with either
+** HMS:   gHcParms->Load("PARAM/HMS/HODO/htofcal.param");
+** SHMS:   gHcParms->Load("PARAM/HMS/HODO/ptofcal.param");
+* The replay should put the new file : hfort.37 or pfort.37 in the CALIBRATION/hodo_calib directory
+* Copy either hmstofcal.inp or shmstofcal.inp to tofcal.inp
+* Execute ./tofcal
+* Print out info on the initial chi2 of  data and final chi2 of the fit.
+* Creates file tofcal.param
+* Edit the parameters in tofcal.param into either PARAM/HMS/HODO/hhodo.param or  PARAM/SHMS/HODO/phodo.param
+
+Brief decription of code
+------------------------
+* The code fits tcorr = time - offset - path * velocity - adccor / sqrt(ADC)
+* Uses paddle 10 positive PMT on plane 1 as the reference PMT ( offset fixed at 0)
+* To get data file name. Reads-in the input file: tofcal.inp 
+* Opens data file
+    * "0" line separates events
+    * Should have pair of neg and pos PMTs for each paddle
+    * Format is : iside  ipl ipad tdcval_uncorr pathl zcor tdcval_corr adcval
+        * iside = 1,2 for pos and neg PMT
+        * ipl = plane number
+        * tdcval_uncorr = raw time in ns. The program uses this in optimization.
+        * pathl = distance for focal plane to the paddle using the track
+        * zcor = time (ns) for the particle to go from focal plane to paddle. Correction subtracted from tdcval_uncrr
+        * tdcval_corr = the corrected time in ns. Not used by program. Just gives the initial chi2.
+        * adcval = ADC value used in fit
+* Loops through data determines the number of hits in each PMT. Will only include PMT if the number of hits > 100.
+* Again loops through the data filling array with time difference between all pairs PMTs, pathl and adcval.
+* Use the CERNLIB routine deqn to invert the matrix and determine the fit parameters.
diff --git a/CALIBRATION/hodo_calib/hmstofcal.inp b/CALIBRATION/hodo_calib/hmstofcal.inp
new file mode 100644
index 00000000..74c9201d
--- /dev/null
+++ b/CALIBRATION/hodo_calib/hmstofcal.inp
@@ -0,0 +1,4 @@
+hfort.37
+
+
+
diff --git a/CALIBRATION/hodo_calib/shmstofcal.inp b/CALIBRATION/hodo_calib/shmstofcal.inp
new file mode 100644
index 00000000..dfa7acf8
--- /dev/null
+++ b/CALIBRATION/hodo_calib/shmstofcal.inp
@@ -0,0 +1,4 @@
+pfort.37
+
+
+
diff --git a/CALIBRATION/hodo_calib/tofcal.f b/CALIBRATION/hodo_calib/tofcal.f
new file mode 100644
index 00000000..0239fbed
--- /dev/null
+++ b/CALIBRATION/hodo_calib/tofcal.f
@@ -0,0 +1,475 @@
+      program tofcal
+! Fit TOF for Hall C HMS or SOS with the form for each PMT:
+! tcorr = time - offset - path * velocity - adccor / sqrt(ADC)
+! where offset, velocity, and adccor are parameters
+! April 10, 2005 P. Bosted
+! Input file: tofcal.inp should contain name of data file to be fit
+!             First xter of file name should be "h" for HMS data
+!             and "s" for SOS. 
+! To generate an input file, set xdumptof = 1 in xdebug.param in
+! the PARAM directory, where x=h for HMS, x=s for SOS
+! The HMS output will be in fort.37, and the SOS in fort.38
+! The output parameters will be in tofcal.param. Insert these
+! into the xhodo.param file that you are using. Make sure to 
+! erase the old values of sigma, or put the new ones after the
+! old ones, so that they get used properly
+! Normal values of invadc_offset are between -50 and 50,
+! normal values of invadc_velocity are between 12 and 17 (50 is
+! default if not enough data for the fit), and normal values of
+! shodo_pos_invadc_adc are 20 to 50. Normal values of the sigmas
+! are 0.3 to 0.8 nsec. 
+
+      implicit none
+      integer i,j,k,n,nparam,ipn,ipl,idt,idet(1000),nhit(200)
+      integer ip1(200),ip2(200),ip3(200),ifail,nhit0(200)
+      integer ipdet(600),iptyp(600),iwork(1000),k1,k2,k3,k4,k5,k6
+      real*8 tr(1000),p(1000),zc(1000),tc1(1000),p2(1000),hival,dtc
+      real*8 ax(1000,1000),bx(1000),sum1(200),sum2(200),sum3(200)
+      real*8 mean0(200),sig0(200),mean(200),sig(200),dt,adc(1000)
+      real*8 toff(200),vel(200),quad(200),chisq,df,ttol,adcmin(200)
+      real*8 avtime,ntime
+      integer thist(200,10),iloop,adchist(200,18),phist(200,18)
+      integer thistf(200,50),adchistf(200,50)
+      integer adchistpm(200,20,2)
+
+      character*80 string
+      character*40 filename
+
+      open(unit=7,file='tofcal.inp')
+      read(7,'(a)') filename
+c      open(unit=8,file='tofcal.out')
+      open(unit=11,file='tofcal.parampass1')
+      open(unit=12,file='tofcal.param')
+c      open(unit=13,file='tofcal.adchist')
+c      write(13,'(1x,'' xv'',50f5.0)') (20.*(j-0.5),j=1,50)
+c      open(unit=14,file='tofcal.tdchist')
+c      write(14,'(1x,'' xv'',50f5.1)') (-5.0+0.2*(j-0.5),j=1,50)
+
+! first see how many hits per PMT: need at least 100 for fitting
+! also make ADC histograms
+      open(unit=9,file=filename,err=998)
+       if(filename(1:1).ne.'h'.and.filename(1:1).ne.'p') then
+        write(6,'(1x,''error, input file name '',
+     >   '' should start with h or p'')')
+        goto 999
+       endif
+       write(*,*) ' filling adc histograms'
+       do i=1,10000000
+        n=0
+        do j=1,1000
+          read(9,'(a)',end=10) string
+          read(string,'(1x,i1)') k
+          if(k.eq.0) goto 9
+          n=n+1
+          read(string,'(1x,i1,2i3,5f10.3)') ipn,ipl,idt, 
+     >      tr(n),p(n),zc(n),tc1(n),adc(n)
+          k = min(18, max(1, int((adc(n)/20.)+1)))
+          idet(n) = 100*(ipn-1) + 20*(ipl-1) + idt
+          adchist(idet(n), k) = adchist(idet(n), k) + 1 
+          k = min(50, max(1, int((adc(n)/20.)+1)))
+          adchistf(idet(n), k) = adchistf(idet(n), k) + 1 
+          nhit0(idet(n)) = nhit0(idet(n)) + 1.
+        enddo
+ 9      continue
+      enddo
+
+! find more or less where threshold is
+ 10   do i=1,200
+        adcmin(i)=50.
+        if(nhit0(i).gt.0.) then
+c          write(13,'(i3,50i4)') i,(min(999,adchistf(i,j)),j=1,50)
+          hival=0.
+          k=0
+          do j=1,17
+            if(adchist(i,j).gt.hival) then
+              hival = adchist(i,j)
+              k = j
+            endif
+          enddo
+c for test
+c         do n=1,max(1,k)
+c           if(adchist(i,n).lt.hival/20.) adcmin(i)=20.*(n-0.5)
+c         enddo
+c         write(13,'(1x,''adcmin='',f6.1)') adcmin(i) 
+        endif
+      enddo
+      close(unit=9)
+      do i=1,200
+        sum1(i)=0.
+        sum2(i)=0.
+        sum3(i)=0.
+      enddo
+
+! Do everything twice, 2nd time with tighter tolerance (ttol) on
+! time differences, based on first pass
+      ttol=10.0
+      do iloop=1,2
+         write(*,*) ' loop = ',iloop
+! Initialize the fitting arrays
+        do i=1,1000
+          if(i.le.200) nhit(i)=0
+          bx(i)=0.
+          do j=1,1000
+            ax(i,j)=0.
+          enddo
+        enddo
+
+! read in data
+      open(unit=9,file=filename)
+      nparam=0
+      chisq=0.
+      df=0.
+      do i=1,10000000
+        n=0
+        do j=1,1000
+          read(9,'(a)',end=12) string
+          read(string,'(1x,i1)') k
+          if(k.eq.0) goto 11
+          n=n+1
+          read(string,'(1x,i1,2i3,5f10.3)') ipn,ipl,idt, 
+     >      tr(n),p(n),zc(n),tc1(n),adc(n)
+! linearize the detector numbers
+          idet(n) = 100*(ipn-1) + 20*(ipl-1) + idt
+          if(idet(n).lt.1.or.idet(n).gt.200) write(6,'(1x,
+     >      ''error! '',4i4)') ipn,ipl,idt,idet(n)
+
+! correct raw times for zpos using betap
+          tr(n) = tr(n)- zc(n)
+
+! remember path**2 or sqrt(p) or adc
+          p(n) = min(200., max(0., p(n)))
+c          adc(n) = min(500, max(0., adc(n)))
+          p2(n) = 1./sqrt(max(20., adc(n)))
+          k = min(18, max(1, int(p(n)/7.)+1))
+          phist(idet(n), k) = phist(idet(n), k) + 1 
+! ignore hits from paddles that are rarely hit
+          if(nhit0(idet(n)).lt.100) n=n-1
+        enddo
+
+! Loop over all pairs, if at least 6
+ 11     if(n.ge.6) then
+! see if this is first time a detector is used
+          do j=1,n
+            nhit(idet(j))=nhit(idet(j))+1
+
+! If first time detector used, assign corresponding parameters
+! Note that detector had has a fixed time offset (ip1) of zero
+! since all times are relative)
+            if(nhit(idet(j)).eq.1) then
+              if(idet(j).eq.10) then
+                ip1(idet(j))=0
+              else
+
+! fixed time offsets
+                nparam=nparam+1
+                ip1(idet(j))=nparam
+                ipdet(nparam)=idet(j)
+                iptyp(nparam)=1
+              endif
+
+! linear term in path 
+              nparam=nparam+1
+              ip2(idet(j))=nparam
+              ipdet(nparam)=idet(j)
+              iptyp(nparam)=2
+
+! quadratic term for path**2
+              nparam=nparam+1
+              ip3(idet(j))=nparam
+              ipdet(nparam)=idet(j)
+              iptyp(nparam)=3
+              k=idet(j)
+c              write(8,'(1x,i3,4i5)') k,nhit(k),ip1(k),ip2(k),ip3(k)
+            endif
+          enddo ! loop over n
+
+! now loop over all pairs in fill in the matrix
+! also accumulate sums to get means and sigmas for each detector
+! of original corrected times as read in from the file
+          do j=1,n-1
+            do k=j+1,n
+              dt = tc1(j)-tc1(k)
+              dtc = dt
+              if(iloop.eq.1.or.abs(dt).lt.ttol) then
+               idt = min(10,max(1,int((dt+5.))+1))
+               thist(idet(j),idt) = thist(idet(j),idt) + 1
+               chisq = chisq + dt**2
+               df = df + 1
+               sum1(idet(j)) = sum1(idet(j)) + 1.
+               sum2(idet(j)) = sum2(idet(j)) + dt
+               sum3(idet(j)) = sum3(idet(j)) + dt**2
+               dt = tc1(k)-tc1(j)
+               idt = min(10,max(1,int((dt+5.))+1))
+               thist(idet(k),idt) = thist(idet(k),idt) + 1
+               sum1(idet(k)) = sum1(idet(k)) + 1.
+               sum2(idet(k)) = sum2(idet(k)) + dt
+               sum3(idet(k)) = sum3(idet(k)) + dt**2
+              endif
+              k1 = idet(j)
+              k2 = idet(k)
+              dt = (tr(j) + toff(k1) + vel(k1)*p(j) + quad(k1)*p2(j))-
+     >             (tr(k) + toff(k2) + vel(k2)*p(k) + quad(k2)*p2(k))
+              if(iloop.eq.1.or.abs(dt).lt.ttol) then
+               k1=ip1(idet(j))
+               k2=ip1(idet(k))
+               k3=ip2(idet(j))
+               k4=ip2(idet(k))
+               k5=ip3(idet(j))
+               k6=ip3(idet(k))
+               if(k1.gt.0) then
+                bx(k1) = bx(k1) - (tr(j)-tr(k))
+                ax(k1,k1) = ax(k1,k1) + 1.
+                ax(k1,k3) = ax(k1,k3) + p(j)
+                ax(k1,k4) = ax(k1,k4) - p(k)
+                ax(k1,k5) = ax(k1,k5) + p2(j)
+                ax(k1,k6) = ax(k1,k6) - p2(k)
+                ax(k3,k1) = ax(k3,k1) + p(j)
+                ax(k4,k1) = ax(k4,k1) - p(k)
+                ax(k5,k1) = ax(k5,k1) + p2(j)
+                ax(k6,k1) = ax(k6,k1) - p2(k)
+               endif
+               if(k1.gt.0.and.k2.gt.0) then
+                ax(k1,k2) = ax(k1,k2) - 1.
+                ax(k2,k1) = ax(k2,k1) - 1.
+               endif
+               if(k2.gt.0) then
+                bx(k2) = bx(k2) + (tr(j)-tr(k))
+                ax(k2,k2) = ax(k2,k2) + 1.
+                ax(k2,k3) = ax(k2,k3) - p(j)
+                ax(k2,k4) = ax(k2,k4) + p(k)
+                ax(k2,k5) = ax(k2,k5) - p2(j)
+                ax(k2,k6) = ax(k2,k6) + p2(k)
+                ax(k3,k2) = ax(k3,k2) - p(j)    
+                ax(k4,k2) = ax(k4,k2) + p(k)    
+                ax(k5,k2) = ax(k5,k2) - p2(j)    
+                ax(k6,k2) = ax(k6,k2) + p2(k)    
+               endif
+               bx(k3) = bx(k3) - (tr(j)-tr(k)) * p(j)
+               bx(k4) = bx(k4) + (tr(j)-tr(k)) * p(k)
+               bx(k5) = bx(k5) - (tr(j)-tr(k)) * p2(j)
+               bx(k6) = bx(k6) + (tr(j)-tr(k)) * p2(k)
+               ax(k3,k3) = ax(k3,k3) + p(j)*p(j)
+               ax(k3,k4) = ax(k3,k4) - p(k)*p(j)
+               ax(k3,k5) = ax(k3,k5) + p2(j)*p(j)
+               ax(k3,k6) = ax(k3,k6) - p2(k)*p(j)
+               ax(k4,k3) = ax(k4,k3) - p(j)*p(k)
+               ax(k4,k4) = ax(k4,k4) + p(k)*p(k)
+               ax(k4,k5) = ax(k4,k5) - p2(j)*p(k)
+               ax(k4,k6) = ax(k4,k6) + p2(k)*p(k)
+               ax(k5,k3) = ax(k5,k3) + p(j)*p2(j)
+               ax(k5,k4) = ax(k5,k4) - p(k)*p2(j)
+               ax(k5,k5) = ax(k5,k5) + p2(j)*p2(j)
+               ax(k5,k6) = ax(k5,k6) - p2(k)*p2(j)
+               ax(k6,k3) = ax(k6,k3) - p(j)*p2(k)
+               ax(k6,k4) = ax(k6,k4) + p(k)*p2(k)
+               ax(k6,k5) = ax(k6,k5) - p2(j)*p2(k)
+               ax(k6,k6) = ax(k6,k6) + p2(k)*p2(k)
+              endif
+            enddo
+          enddo
+        endif ! if n>1
+      enddo ! loop over reading in data 
+ 12   close(unit=9)
+
+! Histograms
+      if(iloop.eq.1) then
+       do i=1,200
+        if(sum1(i).gt.0.) then
+c          write(13,'(i3,18i4)') i,(phist(i,j),j=1,18)
+        endif
+       enddo
+      endif
+! see how many hits per detector and get mean, sigma of original corr. times
+      do i=1,200
+        if(sum1(i).gt.0.) then
+          mean0(i)=sum2(i)/sum1(i)
+          sig0(i)=sqrt(sum3(i)/sum1(i) - mean0(i)**2)
+        endif
+c        write(8,'(1x,i3,i5,2f6.2,10i5)') i,nhit(i),
+c     >    mean0(i),sig0(i),(min(9999,thist(i,j)),j=1,10)
+        sum1(i)=0.
+        sum2(i)=0.
+        sum3(i)=0.
+        do j=1,10
+          thist(i,j)=0
+        enddo
+      enddo
+      df = max(1., df - nparam)
+      write(6,'(1x,''initial chi2/d.f.='',f8.3,'' for '',f7.0,
+     >   '' deg. freedom'')') chisq/df,df
+c      write(8,'(1x,''initial chi2/d.f.='',f8.3,'' for '',f7.0,
+c     >   '' deg. freedom'')') chisq/df,df
+
+! find the solutions
+      call deqn (nparam,ax,1000,iwork,ifail,1,bx)
+c      write(8,'(1x,''ifail='',i10)') ifail
+
+! association of parameters with detectors
+      do i=1,nparam
+        if(iptyp(i).eq.1) toff(ipdet(i))=bx(i)
+        if(iptyp(i).eq.2)  vel(ipdet(i))=bx(i)
+        if(iptyp(i).eq.3) quad(ipdet(i))=bx(i)
+      enddo
+
+! write solutions
+      write(10 + iloop,'(/''; use '',a,
+     >  ''tofusinginvadc=1 if want invadc_offset''/
+     >  '';  invadc_linear, and invadc_adc to be used''/
+     >            a,''tofusinginvadc=1'')') 
+     >  filename(1:1),filename(1:1)
+      write(10+iloop,'(/a,''hodo_pos_invadc_offset ='',3(f8.2,'',''),
+     >  f8.2)') filename(1:1),(-1.0*toff(i),i=1,80,20)
+      do j=2,16
+       write(10+iloop,'(1x,''                        '',3(f8.2,'',''),
+     >  f8.2)')(-1.0*toff(i),i=j,79+j,20)
+      enddo
+
+      write(10+iloop,'(/a,''hodo_neg_invadc_offset ='',3(f8.2,'',''),
+     >  f8.2)')filename(1:1),(-1.0*toff(i),i=101,180,20)
+      do j=2,16
+       write(10+iloop,'(1x,''                        '',3(f8.2,'',''),
+     >  f8.2)')(-1.0*toff(i),i=100+j,179+j,20)
+      enddo
+
+      write(10+iloop,'(/a,''hodo_pos_invadc_linear ='',3(f8.2,'',''),
+     >  f8.2)')filename(1:1),( -1./min(-1./15.,vel(i)),i=1,80,20)
+      do j=2,16
+       write(10+iloop,'(1x,''                        '',3(f8.2,'',''),
+     >  f8.2)')(-1./min(-1./15.,vel(i)),i=j,79+j,20)
+      enddo
+
+      write(10+iloop,'(/a,''hodo_neg_invadc_linear ='',3(f8.2,'',''),
+     >  f8.2)')filename(1:1),( -1./min(-1./15.,vel(i)),i=101,180,20)
+      do j=2,16
+       write(10+iloop,'(1x,''                        '',3(f8.2,'',''),
+     >  f8.2)')(-1./min(-1./15.,vel(i)),i=100+j,179+j,20)
+      enddo
+
+      write(10+iloop,'(/a,''hodo_pos_invadc_adc='',3(f9.2,'',''),
+     >  f9.2)')filename(1:1),(-1.*quad(i),i=1,80,20)
+      do j=2,16
+       write(10+iloop,'(1x,''                   '',3(f9.2,'',''),
+     >  f9.2)')(-1.*quad(i),i=j,79+j,20)
+      enddo
+
+      write(10+iloop,'(/a,''hodo_neg_invadc_adc='',3(f9.2,'',''),
+     >  f9.2)')filename(1:1),(-1.0*quad(i),i=101,180,20)
+      do j=2,16
+       write(10+iloop,'(1x,''                   '',3(f9.2,'',''),
+     >  f9.2)')(-1.*quad(i),i=100+j,179+j,20)
+      enddo
+
+
+! read in data again and look at sigmas relative to average fp time
+      chisq = 0.
+      df = 0.
+      open(unit=9,file=filename)
+      do i=1,10000000
+        n=0
+        do j=1,1000
+          read(9,'(a)',end=14) string
+          read(string,'(1x,i1)') k
+          if(k.eq.0) goto 13
+          n=n+1
+          read(string,'(1x,i1,2i3,5f10.3)') ipn,ipl,idt, 
+     >      tr(n),p(n),zc(n),tc1(n),adc(n)
+          idet(n) = 100*(ipn-1) + 20*(ipl-1) + idt
+          tr(n) = tr(n)- zc(n)
+          p(n) = min(200., max(0., p(n)))
+c          adc(n) = min(500, max(0., adc(n)))
+          p2(n) = 1./sqrt(max(20., adc(n)))
+! ignore hits from paddles that are rarely hit
+          k1 = idet(n)
+          dt = (tr(n) + toff(k1) + vel(k1)*p(n) + quad(k1)*p2(n))  
+          if(nhit0(idet(n)).lt.100) n=n-1
+        enddo
+! Loop over all pairs, if at least 6 hits
+ 13     if(n.ge.6) then
+          do j=1,n
+            avtime=0.
+            ntime=0.
+            do k=1,n
+             if(k.ne.j) then
+              k1 = idet(j)
+              k2 = idet(k)
+              dt = (tr(k) + toff(k2) + vel(k2)*p(k) + quad(k2)*p2(k))
+              avtime = avtime + dt
+              ntime = ntime + 1.
+             endif
+            enddo
+            avtime = avtime / ntime
+            dt = (tr(j) + toff(k1) + vel(k1)*p(j) + quad(k1)*p2(j))-
+     >             avtime
+            if(iloop.eq.2) then
+              idt = min(50,max(1,int((dt+ 5.)/0.2)+1))
+              thistf(idet(j),idt) = thistf(idet(j),idt) + 1
+              idt = max(1,min(20, int(adc(j)/50.)+1))
+              if(dt.gt.0.) adchistpm(idet(j),idt,1)=
+     >          adchistpm(idet(j),idt,1)+1
+              if(dt.le.0.) adchistpm(idet(j),idt,2)=
+     >          adchistpm(idet(j),idt,2)+1
+            endif
+            if(iloop.eq.1.or.abs(dt).lt.ttol) then
+              idt = min(10,max(1,int((dt+ 5.))+1))
+              thist(idet(j),idt) = thist(idet(j),idt) + 1
+              chisq = chisq + dt**2
+              df = df + 1
+              sum1(idet(j)) = sum1(idet(j)) + 1.
+              sum2(idet(j)) = sum2(idet(j)) + dt
+              sum3(idet(j)) = sum3(idet(j)) + dt**2
+            endif
+          enddo
+        endif ! if n>5
+      enddo ! loop over reading in data 
+ 14   close(unit=9)
+! see how many hits per detector and get mean, sigma of original corr. times
+      do i=1,200
+        sig(i)=100.
+        if(sum1(i).gt.0.) then
+          mean(i)=sum2(i)/sum1(i)
+          sig(i)=sqrt(sum3(i)/sum1(i) - mean(i)**2)
+        endif
+c        write(8,'(1x,i3,i5,2f6.2,10i5)') i,nhit(i),
+c     >    mean(i),sig(i),(min(9999,thist(i,j)),j=1,10)
+c        if(iloop.eq.2)
+c     >    write(14,'(1x,i3,50i5)') i,(min(9999,thistf(i,j)),j=1,50)
+        sum1(i)=0.
+        sum2(i)=0.
+        sum3(i)=0.
+        do j=1,10
+          thist(i,j)=0
+        enddo
+      enddo
+      df = max(1., df - nparam)
+      write(6,'(1x,''  final chi2/d.f.='',f8.3,'' for '',f7.0,
+     >   '' deg. freedom'')') chisq/df,df
+c      write(8,'(1x,''  final chi2/d.f.='',f8.3,'' for '',f7.0,
+c     >   '' deg. freedom'')') chisq/df,df
+
+      write(10+iloop,'(/a,''hodo_pos_sigma ='',3(f8.2,'',''),
+     >  f8.2)')filename(1:1),(sig(i),i=  1, 80,20)
+      do j=2,16
+       write(10+iloop,'(1x,''                '',3(f8.2,'',''),
+     >  f8.2)')(sig(i),i=    j, 79+j,20)
+      enddo
+      write(10+iloop,'(/a,''hodo_neg_sigma ='',3(f8.2,'',''),
+     >  f8.2)')filename(1:1),(sig(i),i=101,180,20)
+      do j=2,16
+       write(10+iloop,'(1x,''                '',3(f8.2,'',''),
+     >  f8.2)')(sig(i),i=100+j,179+j,20)
+      enddo
+
+      enddo ! loop over time tolerance
+
+      do i=1,200
+c        write(15,'(1x,i3,20i4)') i,(adchistpm(i,j,1),j=1,20)
+c        write(15,'(1x,i3,20i4)') i,(adchistpm(i,j,2),j=1,20)
+      enddo
+
+      goto 999
+
+ 998  write(6,'(1x,''error, cant find file '',a)') filename
+
+ 999  stop
+      end
+
diff --git a/CALIBRATION/hodo_calib/tofcal.inp b/CALIBRATION/hodo_calib/tofcal.inp
new file mode 100644
index 00000000..dfa7acf8
--- /dev/null
+++ b/CALIBRATION/hodo_calib/tofcal.inp
@@ -0,0 +1,4 @@
+pfort.37
+
+
+
diff --git a/CALIBRATION/shms_dc_calib/run_Cal.C b/CALIBRATION/shms_dc_calib/run_Cal.C
new file mode 100644
index 00000000..8d08d80b
--- /dev/null
+++ b/CALIBRATION/shms_dc_calib/run_Cal.C
@@ -0,0 +1,68 @@
+//SCRIPT TO RUN OVER ALL HMS DC CALIBRATION SCRIPTS AT ONCE, AND UPDATE THE
+//NECESSARY PARAMTER FILES hdriftmap.param and  hdc.param
+void run_Cal()
+{
+      
+  //User Input Run
+  int run_NUM;
+  cout << "Enter Run Number: " << endl;
+  cin >> run_NUM;
+
+  //Create input file with run number
+  ofstream fout;
+  fout.open("scripts/input_RUN.txt");
+  fout << run_NUM << endl;
+  fout.close();
+
+
+  //Create root and data files Directories if they dont exist
+  char *dir_root = "mkdir ./root_files/";
+  char *dir_data = "mkdir ./data_files/";
+
+  if (system(dir_root || dir_data) != 0) {
+    system(dir_root);
+    system(dir_data);
+  }
+
+  //Create run Directories if they dont exist
+  char *dir0 = Form("mkdir ./root_files/run%d", run_NUM);
+  char *dir1 = Form("mkdir ./data_files/run%d", run_NUM);
+
+  if (system(dir0 || dir1) != 0) {
+    system(dir0);
+    system(dir1);
+  }
+
+  
+
+  //change directories and execute scripts
+  gSystem->cd("./scripts");
+  gSystem->Exec("root -l -q get_pdc_time_histo.C");
+  
+  //Load and Loop over Make Class events to get individual drift times
+  gROOT->LoadMacro("wire_drift_times.C");
+  gROOT->ProcessLine("wire_drift_times t"); //process line allows one to execute interactive root commands from a script, such as this one
+  gROOT->ProcessLine("t.Loop()");
+  //gROOT->ProcessLine(".q");
+  gROOT->Reset();
+  
+  
+
+gSystem->cd("./scripts");
+
+  
+  //execute code to get t0 from each wire in each plane
+  gSystem->Exec("root -l -q -b get_wire_tzero.C");
+ 
+  //execute code to update pdc parameter file
+  gSystem->Exec("root -l -q update_pdcparam.C");
+
+  //execute code to get t0 corrected drift times
+  gSystem->Exec("root -l -q get_pdc_time_histo_tzero_corrected.C");
+  
+ //execute code to update LookUp Table
+  gSystem->Exec("root -l -q get_LookUp_Values.C");
+
+  
+  
+}
diff --git a/CALIBRATION/shms_dc_calib/scripts/get_LookUp_Values.C b/CALIBRATION/shms_dc_calib/scripts/get_LookUp_Values.C
new file mode 100644
index 00000000..52f7457e
--- /dev/null
+++ b/CALIBRATION/shms_dc_calib/scripts/get_LookUp_Values.C
@@ -0,0 +1,126 @@
+/*This code produces a lookup table necessary to convert drift times to
+  drift distances in the shms drift chambers
+*/
+
+#define NPLANES 12
+#define TOTAL_BINS 137
+
+void get_LookUp_Values() {
+
+   
+  //Read Run Number from txt file
+  int run_NUM;
+  TString f0 = "input_RUN.txt";
+  ifstream infile(f0);
+  infile >> run_NUM;
+ 
+  //Open root file containing drift time histos
+  TFile *f = new TFile(Form("../root_files/run%d/shms_dc_t0_corrected_%d.root", run_NUM, run_NUM),"READ");
+ 
+  //Define histogram array
+  TH1F *h[NPLANES];
+ 
+  //Define the number Drift Chamber planes
+  TString plane_names[NPLANES]={"1u1", "1u2", "1x1", "1x2", "1v1", "1v2", "2v2", "2v1", "2x2", "2x1", "2u2", "2u1"};
+ 
+  //Declare bin properties
+  int bin_t0[NPLANES];
+  int bin_final[NPLANES];					/*Array to store the bin number corresponding to last bin*/
+  int bin_Content[NPLANES];          /*Array to store the content (# events) corresponding to the bin with maximum content*/
+  double binContent_TOTAL[NPLANES];     /*Array to store sum of all bin contents for each plane*/
+  double binSUM[NPLANES];
+  int bin;
+  int binx;
+  double lookup_value[NPLANES];           /*Array to store lookup values for each plane*/ 
+  
+  //Create an output file to store lookup values  
+  ofstream ofs;
+  TString lookup_table = "../../../PARAM/SHMS/DC/pdriftmap_new.param";
+  ofs.open (lookup_table);
+ 
+ 
+  //Set headers for subsequent columns of data
+  ofs << Form("; Lookup Table: RUN %d", run_NUM) << "\n";
+  ofs << "; number of bins in Carlos's time to distance lookup table" << "\n";
+  ofs << Form("pdriftbins = %d", TOTAL_BINS+1) << "\n";
+  ofs << "; number of 1st bin in Carlos's table in ns" << "\n";
+  ofs << "pdrift1stbin=0" << "\n";
+  ofs << "; bin size in ns" << "\n";
+  ofs << "pdriftbinsz=2" << "\n";
+ 
+ 
+ 
+  //Loop over each plane of shms Drift Chambers (DC1 & DC2)
+
+  for (int ip=0; ip<NPLANES; ip++){
+   
+    TString drift_time_histo = "pdc"+plane_names[ip]+"_time: t0_corr"; 
+
+    //Get drift time histograms from root file
+    h[ip] = (TH1F*)f->Get(drift_time_histo);
+
+    //Get bin corresponding to t0 = 0 ns
+    bin_t0[ip] = h[ip]->GetXaxis()->FindBin(0.0);
+   
+    //Get final bin 
+    bin_final[ip] = bin_t0[ip] + TOTAL_BINS;
+   
+   
+   
+    //Find total BIN Content over entire integration range
+    binContent_TOTAL[ip] = 0; //set counter to zero
+
+    for (bin = bin_t0[ip]; bin <= bin_final[ip]; bin ++ ) {
+     
+      bin_Content[ip] = h[ip] -> GetBinContent(bin);
+     
+      binContent_TOTAL[ip] = bin_Content[ip] + binContent_TOTAL[ip];
+     
+      //   cout << "Bin: " << bin << endl;
+      //   cout << "Content " << bin_Content[ip] << endl;
+      //   cout << "Content SUM : " << binContent_TOTAL[ip] << endl;
+    }
+   
+    TString headers = "pwc" + plane_names[ip] + "fract=";      
+    ofs << headers;	  
+   
+    //Calculate LookUp Value
+   
+    binSUM[ip] = 0.0;
+    int bin_count = 0;
+   
+    for (bin = bin_t0[ip]; bin <= bin_final[ip]; bin++) {
+     
+      bin_Content[ip] = h[ip] -> GetBinContent(bin);
+      binSUM[ip] = binSUM[ip] + bin_Content[ip];
+     
+     
+      lookup_value[ip] = binSUM[ip] / binContent_TOTAL[ip];
+      bin_count = bin_count + 1;
+     
+      if (bin_count < = 8 ) {
+	ofs << setprecision(5) << lookup_value[ip] << fixed << ",";
+      }
+     
+      else if (bin_count >8 && bin_count < 138) {
+	ofs << setprecision(5) << lookup_value[ip] << ((bin_count+1) % 10 ? "," : "\n") << fixed; 
+      }
+      else {
+	ofs << setprecision(5) << lookup_value[ip] << fixed << endl;	  
+      }
+     
+    }
+
+  }                                            
+ 
+}
+
+
+	 
+  
+
+
+
+
+
+
diff --git a/CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo.C b/CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo.C
new file mode 100644
index 00000000..87669b2b
--- /dev/null
+++ b/CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo.C
@@ -0,0 +1,93 @@
+//Script to add necessary drift time histograms/plane from original root file to new root file
+
+
+#define NPLANES 12
+
+void get_pdc_time_histo()
+{
+
+  //Read Run Number from txt file
+  int run_NUM;
+  TString f0 = "input_RUN.txt";
+  ifstream infile(f0);
+  infile >> run_NUM;
+
+  TString file_name = "../../../ROOTfiles/shms_replay_%d.root";
+
+  //Create RUN Directories if they dont exist
+  char *dir0 = Form("mkdir -p ../root_files/run%d", run_NUM);
+  char *dir1 = Form("mkdir -p ../data_files/run%d", run_NUM);
+
+  if (system(dir0 || dir1) != 0) {
+    system(dir0);
+    system(dir1);
+  }
+
+  //open file
+  TFile *f = new TFile(Form(file_name.Data(), run_NUM), "READ");
+
+  //create new file
+  TFile *g = new TFile(Form("../root_files/run%d/shms_dc_time_%d.root", run_NUM, run_NUM), "RECREATE"); // create new file to store histo
+
+  f->cd();
+
+  //Get the tree
+  TTree *tree = (TTree*)f->Get("T");
+  TString SPECTROMETER="P";
+  TString DETECTOR="dc";
+  TString plane_names[NPLANES]={"1u1", "1u2", "1x1", "1x2", "1v1", "1v2", "2v2", "2v1", "2x2", "2x1", "2u2", "2u1"};
+  
+  //Declare Variables to Loop Over
+  Int_t Ndata[NPLANES];
+  Double_t pdc_time[NPLANES][1000];
+    
+  //Declare Histogram array to store AVG drift times per plane
+  TH1F* h[NPLANES];
+	
+  g->cd();
+	
+  //Loop over each plane
+  for(Int_t ip=0; ip<NPLANES; ip++){
+    TString base_name = SPECTROMETER+"."+DETECTOR+"."+plane_names[ip];
+    TString ndata_name = "Ndata."+base_name+".time";
+    TString drift_time = base_name+".time";
+  
+    TString drift_time_histo = "pdc"+plane_names[ip]+"_time"; 
+    TString title = "pdc"+plane_names[ip]+"_drifttime";
+     
+    //Set Branch Address
+    tree->SetBranchAddress(drift_time, &pdc_time[ip][0]);   
+    tree->SetBranchAddress(ndata_name, &Ndata[ip]);  /* Ndata represents number of triggers vs number of hits that each trigger produced.
+							A hit is refer to as when a trigger(traversing particle), ionizes the WC gas and ionized
+							electrons reach the rearest sense wire, producing a detectable signal in the O'scope */
+  
+    //Create Histograms
+    h[ip] = new TH1F(drift_time_histo, title, 200, -50, 350);  //set time to 400 ns/200 bins = 2ns/bin
+  }
+ 
+ 
+  //Declare number of entries in the tree
+  Long64_t nentries = tree->GetEntries(); //number of triggers (particles that passed through all 4 hodo planes)
+ 
+  //Loop over all entries
+  for(Long64_t i=0; i<nentries; i++)
+    {
+      tree->GetEntry(i);
+    
+    
+      //Loop over number of hits for each trigger in each DC plane 
+      for(ip=0; ip<NPLANES; ip++){
+       
+    
+	for(Int_t j=0; j<Ndata[ip]; j++){
+	
+	  h[ip]->Fill(pdc_time[ip][j]); 
+	}
+       
+      }
+
+    }
+
+  //Write histograms to file
+  g->Write();
+}
diff --git a/CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo_tzero_corrected.C b/CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo_tzero_corrected.C
new file mode 100644
index 00000000..fa028104
--- /dev/null
+++ b/CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo_tzero_corrected.C
@@ -0,0 +1,107 @@
+//Script to add t0 correction to SHMS DC drift times
+
+#define NPLANES 12
+
+void get_pdc_time_histo_tzero_corrected()
+{
+
+	  
+  //read run number from input file
+  int run_NUM;
+  TString f0 = "input_RUN.txt";
+  ifstream infile(f0);
+  infile >> run_NUM;   
+
+  TString run = Form("run%d", run_NUM);
+
+
+	  //open file
+	  TFile *f = new TFile(Form("../../../ROOTfiles/shms_replay_%d.root", run_NUM), "READ");
+
+	  //updates file
+	  TFile *g = new TFile(Form("../root_files/run%d/shms_dc_t0_corrected_%d.root", run_NUM, run_NUM), "UPDATE"); // create new file to store histo
+
+      f->cd();
+
+     //Get the tree
+     TTree *tree = (TTree*)f->Get("T");
+
+	TString SPECTROMETER="P";
+	TString DETECTOR="dc";
+	TString plane_names[NPLANES]={"1u1", "1u2", "1x1", "1x2", "1v1", "1v2", "2v2", "2v1", "2x2", "2x1", "2u2", "2u1"};
+
+    //Declare Variables to Loop Over
+    Int_t Ndata[NPLANES];
+    Double_t pdc_time[NPLANES][1000];
+    
+    //Declare Histogram array to store AVG drift times per plane
+    TH1F* h[NPLANES];
+	
+	g->cd();
+	
+	//Loop over each plane
+	for(Int_t ip=0; ip<NPLANES; ip++){
+		TString base_name = SPECTROMETER+"."+DETECTOR+"."+plane_names[ip];
+		TString ndata_name = "Ndata."+base_name+".time";
+		TString drift_time = base_name+".time";
+
+		TString drift_time_histo = "pdc"+plane_names[ip]+"_time: t0_corr"; 
+        TString title = "pdc"+plane_names[ip]+"_drifttime: t0-corrected";
+     
+     //Set Branch Address
+     tree->SetBranchAddress(drift_time, pdc_time[ip]);   
+     tree->SetBranchAddress(ndata_name, &Ndata[ip]);  /* Ndata represents number of triggers vs number of hits that each trigger produced.
+                                                      A hit is refer to as when a trigger(traversing particle), ionizes the WC gas and ionized
+                                                      electrons reach the rearest sense wire, producing a detectable signal in the O'scope */
+	
+     //Create Histograms
+     h[ip] = new TH1F(drift_time_histo, title, 200, -50, 350);  //set time to 400 ns/200 bins = 2ns/bin
+}
+	
+	
+	//open and read tzero data file
+    ifstream ifs;
+    ifs.open("../data_files/" + run + "/tzero.dat");
+    
+	double t_zero_offsets[NPLANES];
+
+     for (ip=0; ip < 12; ip++) {	 
+	 ifs >> t_zero_offsets[ip];  //add tzero offsets to array
+   }
+   
+    //Declare number of entries in the tree
+    Long64_t nentries = tree->GetEntries(); //number of triggers (particles that passed through all 4 hodo planes)
+
+    //Loop over all entries
+    for(Long64_t i=0; i<nentries; i++)
+    {
+	tree->GetEntry(i);
+    
+    
+    //Loop over number of hits for each trigger in each DC plane 
+    for(ip=0; ip<NPLANES; ip++){
+   
+ 
+    
+    for(Int_t j=0; j<Ndata[ip]; j++){
+	
+	h[ip]->Fill(pdc_time[ip][j] - t_zero_offsets[ip]); //add t0 offset correction 
+       }
+      
+      
+
+			
+	
+	}
+
+}
+
+
+
+		
+//Write histograms to file
+g->Write();
+
+
+
+}
diff --git a/CALIBRATION/shms_dc_calib/scripts/get_wire_tzero.C b/CALIBRATION/shms_dc_calib/scripts/get_wire_tzero.C
new file mode 100644
index 00000000..1c6974e2
--- /dev/null
+++ b/CALIBRATION/shms_dc_calib/scripts/get_wire_tzero.C
@@ -0,0 +1,397 @@
+
+
+/*Script to extract reference time "t0"  for each sense wire in a given HMS Wire Chamber Plane with COSMIC RUNS.  
+20% (MAX BIN CONTENT) is calculated per wire, and the corresponding bin is fitted linearly about +/- 
+a certain number of bins and this fit is extrapolated to y=0(x-axis). The extrapolated value is take to be t0*/
+
+#include <vector>
+#include <TMath>
+
+#define NPLANES 12
+
+void get_wire_tzero()
+{
+  using namespace std;
+
+  int run_NUM;
+  TString f0 = "input_RUN.txt";
+  ifstream infile(f0);
+  infile >> run_NUM;   
+
+  //check if tzero_weighted_avg text file exists (if it does, DELETE IT, otherwise new values will be appended to it, in addition to pre-existing tzero values)
+  std::ifstream stream(Form("../data_files/run%d/tzero_weighted_avg_run%d.txt",run_NUM, run_NUM));
+ if (stream.good())
+  {
+  gSystem->Exec(Form("rm ../data_files/run%d/tzero_weighted_avg_run%d.txt",run_NUM, run_NUM));
+  }
+
+ TString run = Form("run%d", run_NUM);
+
+ //Declare plane names to loop over
+ TString plane_names[NPLANES]={"1u1", "1u2", "1x1", "1x2", "1v1", "1v2", "2v2", "2v1", "2x2", "2x1", "2u2", "2u1"};
+
+ //Declare a root file array to store individual DC cell drift times
+ TString root_file;
+ TFile *f[NPLANES];
+   
+ int total_wires;  //integer to store total sense wires for a plane chosen by the user
+        
+ //Loop over all planes
+ for (int ip = 0; ip < NPLANES; ip++){
+
+   //READ root file
+   root_file = "../root_files/"+run+"/shms_DC_"+plane_names[ip]+Form("_%d.root",run_NUM);
+   f[ip] = new TFile(root_file, "READ");
+
+   //Create a file output file stream object to write t0 values to data file
+   ofstream ofs;
+   TString t_zero_file = "../data_files/" + run + "/hdc_"+plane_names[ip]+Form("tzero_run%d.dat", run_NUM);
+   ofs.open (t_zero_file);
+
+   //Set headers for subsequent columns of data
+   ofs << "#WIRE " << "   "  << "t0" << "   " << "t0_err" << "   " << " entries " << endl;
+
+   //Create root file to store fitted wire drift times histos and "t0 vs. wirenum"
+   TString output_root_file = "../root_files/"+run+"/shmsDC_"+plane_names[ip]+Form("run%d_fitted_histos.root", run_NUM);
+   TFile *g = new TFile(output_root_file,"RECREATE");
+
+   f[ip]->cd();  //change to file containing the wire drift times histos
+ 
+   int total_wires;  //integer to store total sense wires for a plane chosen by the user
+   
+   //Set variables depending on which plane is being studied
+   if(ip == 0 || ip == 1 || ip == 4 || ip == 5 || ip == 6 || ip == 7 || ip == 10 || ip == 11) {
+     TH1F *cell_dt[107]; //declare array of histos to store drift times     
+     total_wires=107; 
+
+     //Declare bin properties for given sense wires in a plane
+
+     int bin_max[107];                    /*Array to store the bin number corresponding to the drift time distribution peak*/
+     int bin_maxContent[107];             /*Array to store the content (# events) corresponding to the bin with maximum content*/
+     double time_max[107];                /*Array to store the x-axis(drift time (ns)) corresponding to bin_max*/
+     double twenty_perc_maxContent[107];  /*Array to store 20% of maximum bin content (peak)*/						     
+     double ref_time[107];               /*Array to store reference times for each sense wire*/
+
+   }
+
+   else if(ip == 2 || ip == 3 || ip == 8 || ip == 9) {
+     TH1F *cell_dt[79];
+     total_wires=79;      
+   
+     int bin_max[79];                                 
+     int bin_maxContent[79];                           
+     double time_max[79];                               
+     double twenty_perc_maxContent[79];                
+     double ref_time[79];          
+
+   }	   
+   
+ 	
+   /*Get wire histos from root file and loop over each 
+     sense wire of a plane in shms Drift Chambers (DC1 or DC2)*/
+ 
+   for (int sensewire=1; sensewire<=total_wires; sensewire++){
+
+     //Get title of histos in root file
+     TString drift_time_histo = Form("wire_%d", sensewire); 
+ 
+     //Get drift time histograms from root file
+     cell_dt[sensewire-1] = (TH1F*)f[ip]->Get(drift_time_histo);
+
+     
+     //Get bin with Maximum Content
+     bin_max[sensewire-1] = cell_dt[sensewire-1]->GetMaximumBin();
+
+     //Get content of bin_max
+     bin_maxContent[sensewire-1] = cell_dt[sensewire-1]->GetBinContent(bin_max[sensewire-1]);
+     
+     //Get time (ns) [x-axis] corresponding to bin_max 
+     time_max[sensewire-1] = cell_dt[sensewire-1]->GetXaxis()->GetBinCenter(bin_max[sensewire-1]);
+     
+     //Calculate 20% of max content
+     twenty_perc_maxContent[sensewire-1] = bin_maxContent[sensewire-1] * 0.20;
+     
+
+   }
+   
+   
+   
+   //****************************************************//
+   //Determine  which bin has around 20% max_BinContent *//
+   //****************************************************//
+   
+   
+   //Declarations
+   int content_bin;      //stores content for each bin
+   int counts;           //a counter used to count the number of bins that have >20% max bin content for a plane 
+   int bin;              //store bin number
+   int j;                //jth bin, used to loop over n bins 
+   
+   //Declare vector arrays 
+   vector<int> content;               //stores bin content
+   vector <int> bin_num;           //stores bin number
+   
+   
+   //Loop over each wire 
+   for(sensewire=1; sensewire<=total_wires; sensewire++) {
+     
+     //Loop over each bin for individual wire drift time histo
+     for(bin=0; bin < bin_max[sensewire-1]; bin++) {
+       
+       content_bin = cell_dt[sensewire-1]->GetBinContent(bin);              //get bin content for all bins in a wire
+       
+       content.push_back(content_bin);                                      //add bin content to array
+       bin_num.push_back(bin);                                              //add bin number to array
+       
+       
+       // check if 2 bin contents have been stored and examine if these contents exceed or not 20% of peak
+       if (content.size() == 2) {
+	 
+	 //initialize counter to count how many bin contents >= 20%
+	 counts = 0;
+	 
+	 // Loop over 2 bin contents stored in array content
+	 for (j=0; j<2; j++){
+	   
+	   if(content[j] > =  twenty_perc_maxContent[sensewire-1]){
+	     counts = counts+1;
+             
+	     if(counts >= 2) { goto stop;}
+	     
+	     
+	   }
+	   
+	   content.clear();
+	   bin_num.clear();
+	   
+	 }
+	 
+       }
+     }
+     
+     //Print the time(ns) and BIN NUM corresponding to 20% of MAX content 
+     //if 2/2 elements exceeds 20% of Max content (for each plane)
+     
+   stop:
+     ref_time[sensewire-1] = cell_dt[sensewire-1] ->GetXaxis() -> GetBinCenter(bin_num[0]); //Get time corresponding ~20% Max BIN CONTENT  
+     
+     //cout << " ******* " << "Wire " << sensewire << " ******* " << endl;
+     //cout << "time (20% of Max BIN): " << ref_time[sensewire-1] << " ns" << endl;
+     //cout << "BIN: " << bin_num[0] << endl;
+     
+     
+     //*********************************************************//
+     //*******Extract the "t0" Using a Fitting Procedure********//
+     //*********************************************************//
+     
+     //Declarations
+     int time_init;           //start fit value 
+     int time_final;          //end fit value
+     int t_zero;
+     int entries;             //entries for each wire
+     
+     double m;                //slope
+     double y_int;            //y-intercept
+     double m_err;
+     double y_int_err;
+     double t_zero_err;
+     
+     //Get time corresponding to bin (fit range) 
+     time_init = cell_dt[sensewire-1] -> GetXaxis() -> GetBinCenter(bin_num[0]-5); //choose bin range over which to fit
+     time_final = cell_dt[sensewire-1] -> GetXaxis() -> GetBinCenter(bin_num[0]+5); 
+     
+     //Create Fit Function
+     TF1* tZero_fit = new TF1("tZero_fit", "[0]*x + [1]", time_init, time_final);
+     
+     //Set Parameter Names and Values
+     tZero_fit->SetParName(0, "slope");
+     tZero_fit->SetParName(1, "y-int");
+     tZero_fit->SetParameter(0, 1.0);
+     tZero_fit->SetParameter(1, 1.0);
+     
+     //Fit Function in specified range
+     cell_dt[sensewire-1]->Fit("tZero_fit", "QR");
+     
+     //Get Parameters and their errors
+     m = tZero_fit->GetParameter(0);
+     y_int = tZero_fit->GetParameter(1);
+     m_err = tZero_fit->GetParError(0);
+     y_int_err = tZero_fit->GetParError(1);
+     
+     //Calculate error on t0 using error propagation method of expanding partial derivatives
+     t_zero = - y_int/m;
+     t_zero_err = sqrt(y_int_err*y_int_err/(m*m) + y_int*y_int*m_err*m_err/(m*m*m*m) );
+     entries = cell_dt[sensewire-1]->GetEntries();  //number of entries (triggers) per wire
+     
+     //Write "t0" values to file
+     ofs << sensewire << "          " << t_zero << "          " << t_zero_err << "          " << entries << endl;
+     
+     //Change to output root file and write fitted histos to file
+     g->cd();
+     cell_dt[sensewire-1]->Write();
+     
+   }
+   
+   // Make Plot of t0 versus Wire Number 
+   
+   TCanvas *t = new TCanvas("t", "", 2000,500);
+   t->SetGrid();
+
+   
+   TGraphErrors *graph = new TGraphErrors(t_zero_file, "%lg %lg %lg");
+   graph->SetName("graph");
+   TString title = "DC"+plane_names[ip]+": t0 versus sensewire";
+   graph->SetTitle(title);
+   graph->SetMarkerStyle(20);
+   graph->SetMarkerColor(1);
+   graph->GetXaxis()->SetLimits(0., total_wires);
+   graph->GetXaxis()->SetTitle("Wire Number");
+   graph->GetXaxis()->CenterTitle();
+   graph->GetYaxis()->SetTitle("t-Zero (ns)");
+   graph->GetYaxis()->CenterTitle();
+   graph->GetYaxis()->SetRangeUser(-50.0, 50.0);
+   graph->Draw("AP");
+   t->Update();
+   t->Write(title);   //write to a root file
+   
+   //close dat file
+   ofs.close();
+   //save plots
+   //TString tzero_plots = "plots/"+run_NUM +"/hdc"+plane_names[ip]+Form("TESTING_tzero_v_wire_%d.eps", run);
+   //t->SaveAs(tzero_plots);
+   
+   
+   //*****************************************************************************************//
+   //        CALCULATE THE "t0s" WEIGHTED AVERAGE FOR WIRE DRIFT TIMES WITH ENTRIES > = 300   //
+   //*****************************************************************************************//
+   
+   
+   //open t0 dat file
+   ifstream ifs;
+   ifs.open (t_zero_file);
+   string line;
+   
+   //open new data file to write updated t0 values
+   TString t_zero_file_corr = "../data_files/" + run + "/hdc_"+plane_names[ip]+Form("tzero_run%d_updated.txt", run_NUM);
+   ofs.open(t_zero_file_corr);
+   ofs << " #Wire " << "     " << " t_zero " << "     " << " t_zero_err " << "     " << " entries " << endl; 
+   
+   //Initialize variables related to weighted avg
+   double sum_NUM;  //numerator of weighted avg
+   double sum_DEN;   //denominator of weighted avg
+   double weighted_AVG;
+   double weighted_AVG_err; 
+  
+   //set them to zero to start sum inside while loop 
+   sum_NUM = 0.0;
+   sum_DEN = 0.0;
+   
+   weighted_AVG;
+   weighted_AVG_err; 
+   
+   //read line bt line the t_zero_file
+   while(getline(ifs, line)) {
+     if(!line.length()|| line[0] == '#')
+       continue;
+     //	sensewire = 0, t_zero = 0.0, t_zero_err = 0.0, entries = 0 ; //set values to zero
+     
+     sscanf(line.c_str(), "%d %d %lf %d", &sensewire, &t_zero, &t_zero_err, &entries); //assign each of the variables above a data in the t_zero_file
+     
+     //Check if entries for each sensewire exceeds a certain number of events
+     
+     if (entries>300 && t_zero < 30) {
+	
+       //Calculate the weighted average of t0s
+       sum_NUM = sum_NUM + t_zero/(t_zero_err*t_zero_err);
+       sum_DEN = sum_DEN + 1.0/(t_zero_err*t_zero_err);      
+       
+       //cout << "sum_NUM : " << sum_NUM << endl;  
+       //cout << "sum_DEN : " << sum_DEN << endl;  
+       
+    
+
+
+       ofs << sensewire << "        " << t_zero << "        " << t_zero_err << "        " << entries << endl;
+
+       
+       
+     }
+     
+   }
+   
+   
+   
+   weighted_AVG = sum_NUM / sum_DEN;
+   weighted_AVG_err = sqrt( 1.0 / sum_DEN );
+   
+   
+   
+   //open new data file to write weighted average of updated t_zero values
+   
+   TString t_zero_AVG = Form("../data_files/run%d/tzero_weighted_avg_run%d.txt", run_NUM, run_NUM);
+   
+   ofstream ofile;
+   ofile.open(t_zero_AVG, std::ofstream::out | std::ofstream::app); //open file in and output and append mode
+   
+   ofile << " #weighted_AVG " << "     " << " DC plane: " <<  plane_names[ip] << endl; 
+   ofile << weighted_AVG << endl;
+   
+  
+   
+   
+   
+   ifs.close();
+
+   // Make Plot of t0 versus Wire Number for entries > 300 events
+
+   TCanvas *t1 = new TCanvas("t1", "", 2000,500);
+   t1->SetGrid();
+
+   //TString mygraph = "hdc"+plane_names[ip]+Form("_t_zero_run%d.txt", run);
+   TGraphErrors *graph1 = new TGraphErrors(t_zero_file_corr, "%lg %lg %lg");
+   graph1->SetName("graph1");
+   TString title1 = "hdc"+plane_names[ip]+": t0 versus sensewire_corrected";
+   graph1->SetTitle(title1);
+   graph1->SetMarkerStyle(20);
+   graph1->SetMarkerColor(1);
+   //graph1->GetXaxis()->SetLimits(0., total_wires);
+   graph1->GetXaxis()->SetTitle("Wire Number");
+   graph1->GetXaxis()->CenterTitle();
+   graph1->GetYaxis()->SetTitle("t-Zero (ns)");
+   graph1->GetYaxis()->CenterTitle();
+   graph1->GetYaxis()->SetRangeUser(-50.0, 50.0);
+   graph1->Draw("AP");
+   t1->Update();
+
+   // Draw TLine
+   TLine *wght_avg = new TLine(t1->GetUxmin(), weighted_AVG, t1->GetUxmax(), weighted_AVG);
+   wght_avg->SetLineColor(kRed);
+   wght_avg->SetLineWidth(2);
+   wght_avg->SetLineStyle(2);
+   wght_avg->Draw();
+   
+   //Add text to canvas
+   TLatex* ltx1 =  new TLatex();
+   ltx1->DrawLatex(t1->GetUxmax()*0.75,40, Form("Weighted Average = %lf #pm %lf ns", weighted_AVG, weighted_AVG_err) );
+   
+   t1->Write(title1);   //write canvas to a root file
+   
+   ofs.close();  //close data file
+
+   
+
+
+
+
+
+
+
+
+ }
+ 
+ 
+
+
+
+
+}
diff --git a/CALIBRATION/shms_dc_calib/scripts/input_RUN.txt b/CALIBRATION/shms_dc_calib/scripts/input_RUN.txt
new file mode 100644
index 00000000..ce9cd490
--- /dev/null
+++ b/CALIBRATION/shms_dc_calib/scripts/input_RUN.txt
@@ -0,0 +1 @@
+437
diff --git a/CALIBRATION/shms_dc_calib/scripts/update_pdcparam.C b/CALIBRATION/shms_dc_calib/scripts/update_pdcparam.C
new file mode 100644
index 00000000..bc10993b
--- /dev/null
+++ b/CALIBRATION/shms_dc_calib/scripts/update_pdcparam.C
@@ -0,0 +1,111 @@
+//This scirpt will produce an updated version of hdc.param file, with
+//the necessary t-zero corrections
+#define time_shift 1280.0
+
+void update_pdcparam()
+{
+	  
+  //read run number from input file
+  int run_NUM;
+  TString f0 = "input_RUN.txt";
+  ifstream infile(f0);
+  infile >> run_NUM;   
+
+  TString run = Form("run%d", run_NUM);
+
+    int lin_NUM = 0;
+	string t_zero[12];
+	double tzero[12];
+	string line;
+   //open t_zero file
+   ifstream ifs;
+   ifs.open("../data_files/"+ run +"/tzero_weighted_avg_" + run + ".txt");
+   
+
+while (getline(ifs, line))
+  {
+    
+    istringstream ss(line);
+    char id;
+    
+    if ( ss >> t_zero)
+      {
+		
+	if (id != '#') //skip comments   
+	  {
+	    //count lines  
+	    lin_NUM = lin_NUM + 1;
+	    cout << lin_NUM << endl;    
+	       t_zero[lin_NUM-1] = line;
+	       tzero[lin_NUM-1] = atof(t_zero[lin_NUM-1].c_str()); // convert string to double
+	    cout << tzero[lin_NUM-1] << endl;
+	  }       
+	
+      }     
+    
+  }
+ifs.close();
+
+//Update pdc.param parameter file 
+TString pdc_param = "../../../PARAM/SHMS/DC/pdc_tracking_new.param";
+ofstream ofs(pdc_param);
+
+// ofs << ";---------------------------------------------------------------------" << endl;
+// ofs <<"; SHMS_TRACKING"<< endl;
+// ofs <<"; CTP parameter file containing all tracking parameters for the SHMS "<< endl;
+// ofs <<";----------------------------------------------------------------------"<< endl;
+// ofs <<"; sigma of wire chamber resolution for each plane "<< endl;
+// ofs <<" pdc_sigma = 0.020 "<< endl;
+// ofs <<"             0.020"<< endl;
+// ofs <<"             0.020"<< endl;
+// ofs <<"             0.020"<< endl;
+// ofs <<"             0.020"<< endl;
+// ofs <<"             0.020"<< endl;
+// ofs <<"             0.020"<< endl;
+// ofs <<"             0.020"<< endl;
+// ofs <<"             0.020"<< endl;
+// ofs <<"             0.020"<< endl;
+// ofs <<"             0.020"<< endl;
+// ofs <<"             0.020"<< endl;
+// ofs <<"  pdc_tdc_min_win = -25000,-25000,-25000,-25000,-25000,-25000 "<< endl;
+// ofs <<"  		    -25000,-25000,-25000,-25000,-25000,-25000 "<< endl;
+// ofs <<"  pdc_tdc_max_win = 25000,25000,25000,25000,25000,25000 "<< endl;
+// ofs <<"                    25000,25000,25000,25000,25000,25000 "<< endl;
+// ofs <<"; hms drift chamber tdc's time per channel "<< endl;
+// ofs <<"        pdc_tdc_time_per_channel = -0.10 "<< endl;
+// ofs <<"; hms zero time for drift chambers	!DECREASING this number moves the hdtime plots to LOWER time. "<< endl;
+// ofs <<"pdc_plane_time_zero =  ";
+
+
+//*****************************************************************
+//output all t_0 corrected values to pdc.param    
+for (int i=0; i<12; i++) { 
+{
+if (i < = 5){
+ofs  <<  time_shift - tzero[i]   << ","; 
+}
+if (i ==6) {ofs << "\n" << time_shift - tzero[6]  << ",";}
+else if (i>6 && i <11) {
+ofs << time_shift - tzero[i] << ","; 
+}
+if (i==11){ ofs << time_shift - tzero[i] << endl;}
+}
+}
+//*****************************************************************
+// ofs << "\n";
+// ofs <<"; Dave Abbott's wire velocity correction "<< endl;
+// ofs <<"pdc_wire_velocity = 12.0 "<< endl;
+// ofs <<"pdc_central_time = 7,9,3,4,6,5 "<< endl;
+// ofs << "                   7,5,3,4,6,6" << endl;
+ofs.close();
+
+//create a t_zero data file copy in another directory that will also use these values
+TString tzero_dat = "../data_files/" + run + "/tzero.dat";
+ofstream ofs(tzero_dat);
+
+for (int i=0; i<12; i++) 
+{
+ofs  <<  tzero[i]  << endl; 
+}
+ 
+}
diff --git a/CALIBRATION/shms_dc_calib/scripts/wire_drift_times.C b/CALIBRATION/shms_dc_calib/scripts/wire_drift_times.C
new file mode 100644
index 00000000..7d8cb945
--- /dev/null
+++ b/CALIBRATION/shms_dc_calib/scripts/wire_drift_times.C
@@ -0,0 +1,282 @@
+#define wire_drift_times_cxx
+#include "wire_drift_times.h"
+#include <TH2.h>
+#include <TStyle.h>
+#include <TCanvas.h>
+#define NPLANES 12
+
+void wire_drift_times::Loop()
+{
+  //   In a ROOT session, you can do:
+  //      Root > .L wire_drift_times.C
+  //      Root > wire_drift_times t
+  //      Root > t.GetEntry(12); // Fill t data members with entry number 12
+  //      Root > t.Show();       // Show values of entry 12
+  //      Root > t.Show(16);     // Read and show values of entry 16
+  //      Root > t.Loop();       // Loop on all entries
+  //
+
+  //     This is the loop skeleton where:
+  //    jentry is the global entry number in the chain
+  //    ientry is the entry number in the current Tree
+  //  Note that the argument to GetEntry must be:
+  //    jentry for TChain::GetEntry
+  //    ientry for TTree::GetEntry and TBranch::GetEntry
+  //
+  //       To read only selected branches, Insert statements like:
+  // METHOD1:
+  //    fChain->SetBranchStatus("*",0);  // disable all branches
+  //    fChain->SetBranchStatus("branchname",1);  // activate branchname
+  // METHOD2: replace line
+  //    fChain->GetEntry(jentry);       //read all branches
+  //by  b_branchname->GetEntry(ientry); //read only this branch
+  if (fChain == 0) return;
+
+  Long64_t nentries = fChain->GetEntriesFast();
+
+  //Read Run Number from txt file
+  int run_NUM;
+  TString f0 = "input_RUN.txt";
+  ifstream infile(f0);
+  infile >> run_NUM;
+
+  TString run = Form("run%d", run_NUM);
+  //Declare plane names to loop over
+  TString plane_names[NPLANES]={"1u1", "1u2", "1x1", "1x2", "1v1", "1v2", "2v2", "2v1", "2x2", "2x1", "2u2", "2u1"};
+
+  //Declare a root file array to store individual DC cell drift times
+  TString root_file[NPLANES];
+  TFile *g[NPLANES];
+   
+  //integer to store total sense wires for a plane chosen by the user
+  static const Int_t total_wires_x  = 79;  
+  static const Int_t total_wires_uv = 107;
+     
+  Long64_t nbytes = 0, nb = 0;
+   
+  //Loop over all planes
+  for (int ip = 0; ip < NPLANES; ip++){
+
+    //Initialize a root file array to store individual DC cell drift times
+    root_file[ip] = "../root_files/" + run + "/shms_DC_"+plane_names[ip]+Form("_%d.root", run_NUM);
+    g[ip] = new TFile(root_file[ip], "RECREATE");
+    g[ip]->cd();
+
+    /*========================PLANES 1X1,1X2,2X1,2X2=====================================*/
+	
+    //If specific planes are encountered, treat them as follows:
+
+    /*PLANE 1U1, 1V1, 2U1, 2V1*/				
+    //If specific planes are encountered, treat them as follows:
+    if(ip == 0 || ip == 1 || ip == 4 || ip == 5 || ip == 6 || ip == 7 || ip == 10 || ip == 11) {
+
+      TH1F *cell_dt[total_wires_uv];    
+      TH2F *wire_vs_dt = new TH2F("wire_vs_dt", "", 200., -50., 350., 107., 0.,107.);
+    
+      //Initialize wire drift time histograms
+      for (int wirenum=1; wirenum<=total_wires_uv; wirenum++){
+	cell_dt[wirenum-1] = new TH1F(Form("wire_%d", wirenum), "", 200., -50., 350.);
+      }
+	
+      //Loop over all entries (triggers or events)   
+      for (Long64_t jentry=0; jentry<nentries; jentry++) {
+	Long64_t ientry = LoadTree(jentry);
+	if (ientry < 0) break;
+	nb = fChain->GetEntry(jentry);   nbytes += nb;
+	// if (Cut(ientry) < 0) continue;
+ 
+	if (ip == 0) {
+	  for (int i=0; i< Ndata_P_dc_1u1_wirenum; i++){
+	    wirenum = int(P_dc_1u1_wirenum[i]);
+	    //cout << " wire num: " << P_dc_1u1_wirenum[i] << endl;
+	    //cout << "Time: " << P_dc_1u1_time[i] << endl;
+
+	    //Fill the Histograms
+	    cell_dt[wirenum-1]->Fill(P_dc_1u1_time[i]);
+	    wire_vs_dt->Fill(P_dc_1u1_time[i], P_dc_1u1_wirenum[i]);
+
+	  }
+	}
+							
+	if (ip == 1) {
+	  for (int i=0; i< Ndata_P_dc_1u2_wirenum; i++){
+	    wirenum = int(P_dc_1u2_wirenum[i]);
+	    //cout << " wire num: " << P_dc_1u2_wirenum[i] << endl;
+	    //cout << "Time: " << P_dc_1u2_time[i] << endl;
+
+	    //Fill the Histograms
+	    cell_dt[wirenum-1]->Fill(P_dc_1u2_time[i]);
+	    wire_vs_dt->Fill(P_dc_1u2_time[i], P_dc_1u2_wirenum[i]);
+
+	  }
+	}						
+			
+	if (ip == 4) {
+	  for (int i=0; i< Ndata_P_dc_1v1_wirenum; i++){
+	    wirenum = int(P_dc_1v1_wirenum[i]);
+	    //cout << " wire num: " << P_dc_1v1_wirenum[i] << endl;
+	    //cout << "Time: " << P_dc_1v1_time[i] << endl;
+
+	    //Fill the Histograms
+	    cell_dt[wirenum-1]->Fill(P_dc_1v1_time[i]);
+	    wire_vs_dt->Fill(P_dc_1v1_time[i], P_dc_1v1_wirenum[i]);
+
+	  }
+	}		
+			
+	if (ip == 5) {
+	  for (int i=0; i< Ndata_P_dc_1v2_wirenum; i++){
+	    wirenum = int(P_dc_1v2_wirenum[i]);
+	    //cout << " wire num: " << P_dc_1v2_wirenum[i] << endl;
+	    //cout << "Time: " << P_dc_1v2_time[i] << endl;
+
+	    //Fill the Histograms
+	    cell_dt[wirenum-1]->Fill(P_dc_1v2_time[i]);
+	    wire_vs_dt->Fill(P_dc_1v2_time[i], P_dc_1v2_wirenum[i]);
+
+	  }
+	}
+
+	if (ip == 6) {
+	  for (int i=0; i< Ndata_P_dc_2v2_wirenum; i++){
+	    wirenum = int(P_dc_2v2_wirenum[i]);
+	    //cout << " wire num: " << P_dc_2v2_wirenum[i] << endl;
+	    //cout << "Time: " << P_dc_2v2_time[i] << endl;
+
+	    //Fill the Histograms
+	    cell_dt[wirenum-1]->Fill(P_dc_2v2_time[i]);
+	    wire_vs_dt->Fill(P_dc_2v2_time[i], P_dc_2v2_wirenum[i]);
+
+	  }
+	}
+
+	if (ip == 7) {
+	  for (int i=0; i< Ndata_P_dc_2v1_wirenum; i++){
+	    wirenum = int(P_dc_2v1_wirenum[i]);
+	    //cout << " wire num: " << P_dc_2v1_wirenum[i] << endl;
+	    //cout << "Time: " << P_dc_2v1_time[i] << endl;
+
+	    //Fill the Histograms
+	    cell_dt[wirenum-1]->Fill(P_dc_2v1_time[i]);
+	    wire_vs_dt->Fill(P_dc_2v1_time[i], P_dc_2v1_wirenum[i]);
+
+	  }
+	}
+
+	if (ip == 10) {
+	  for (int i=0; i< Ndata_P_dc_2u2_wirenum; i++){
+	    wirenum = int(P_dc_2u2_wirenum[i]);
+	    //cout << " wire num: " << P_dc_2u2_wirenum[i] << endl;
+	    //cout << "Time: " << P_dc_2u2_time[i] << endl;
+
+	    //Fill the Histograms
+	    cell_dt[wirenum-1]->Fill(P_dc_2u2_time[i]);
+	    wire_vs_dt->Fill(P_dc_2u2_time[i], P_dc_2u2_wirenum[i]);
+
+	  }
+	}
+
+	if (ip == 11) {
+	  for (int i=0; i< Ndata_P_dc_2u1_wirenum; i++){
+	    wirenum = int(P_dc_2u1_wirenum[i]);
+	    //cout << " wire num: " << P_dc_2u1_wirenum[i] << endl;
+	    //cout << "Time: " << P_dc_2u1_time[i] << endl;
+
+	    //Fill the Histograms
+	    cell_dt[wirenum-1]->Fill(P_dc_2u1_time[i]);
+	    wire_vs_dt->Fill(P_dc_2u1_time[i], P_dc_2u1_wirenum[i]);
+
+	  }
+	}						
+					
+					
+					
+      }
+    }
+	
+    if(ip == 2 || ip == 3 || ip == 8 || ip == 9) {
+
+      TH1F *cell_dt[total_wires_x];    
+      TH2F *wire_vs_dt = new TH2F("wire_vs_dt", "", 200., -50., 350., 79., 0., 79.);
+    
+      //Initialize wire drift time histograms
+      for (int wirenum=1; wirenum<=total_wires_x; wirenum++){
+	cell_dt[wirenum-1] = new TH1F(Form("wire_%d", wirenum), "", 200., -50., 350.);
+      }
+	
+      //Loop over all entries (triggers or events)   
+      for (Long64_t jentry=0; jentry<nentries; jentry++) {
+	Long64_t ientry = LoadTree(jentry);
+	if (ientry < 0) break;
+	nb = fChain->GetEntry(jentry);   nbytes += nb;
+	// if (Cut(ientry) < 0) continue;
+ 
+	if (ip == 2) {
+	  for (int i=0; i< Ndata_P_dc_1x1_wirenum; i++){
+	    wirenum = int(P_dc_1x1_wirenum[i]);
+	    //cout << " wire num: " << P_dc_1x1_wirenum[i] << endl;
+	    //cout << "Time: " << P_dc_1x1_time[i] << endl;
+
+	    //Fill the Histograms
+	    cell_dt[wirenum-1]->Fill(P_dc_1x1_time[i]);
+	    wire_vs_dt->Fill(P_dc_1x1_time[i], P_dc_1x1_wirenum[i]);
+
+	  }
+	}
+							
+	if (ip == 3) {
+	  for (int i=0; i< Ndata_P_dc_1x2_wirenum; i++){
+	    wirenum = int(P_dc_1x2_wirenum[i]);
+	    //cout << " wire num: " << P_dc_1x2_wirenum[i] << endl;
+	    //cout << "Time: " << P_dc_1x2_time[i] << endl;
+
+	    //Fill the Histograms
+	    cell_dt[wirenum-1]->Fill(P_dc_1x2_time[i]);
+	    wire_vs_dt->Fill(P_dc_1x2_time[i], P_dc_1x2_wirenum[i]);
+
+	  }
+	}						
+			
+	if (ip == 8) {
+	  for (int i=0; i< Ndata_P_dc_2x2_wirenum; i++){
+	    wirenum = int(P_dc_2x2_wirenum[i]);
+	    //cout << " wire num: " << P_dc_2x2_wirenum[i] << endl;
+	    //cout << "Time: " << P_dc_2x2_time[i] << endl;
+
+	    //Fill the Histograms
+	    cell_dt[wirenum-1]->Fill(P_dc_2x2_time[i]);
+	    wire_vs_dt->Fill(P_dc_2x2_time[i], P_dc_2x2_wirenum[i]);
+
+	  }
+	}		
+			
+	if (ip == 9) {
+	  for (int i=0; i< Ndata_P_dc_2x1_wirenum; i++){
+	    wirenum = int(P_dc_2x1_wirenum[i]);
+	    //cout << " wire num: " << P_dc_2x1_wirenum[i] << endl;
+	    //cout << "Time: " << P_dc_2x1_time[i] << endl;
+
+	    //Fill the Histograms
+	    cell_dt[wirenum-1]->Fill(P_dc_2x1_time[i]);
+	    wire_vs_dt->Fill(P_dc_2x1_time[i], P_dc_2x1_wirenum[i]);
+
+	  }
+	}						
+					
+					
+					
+      }
+    }
+					
+
+
+    //Write wire drift time histos to file
+    g[ip]->Write();
+    cout << "EVERYTHING OK in plane:" << ip << endl;	
+
+  }
+
+
+  //     cout << "\r          \r" << (float)sensewire / total_wires * 100.0 << "%" << flush; 
+
+}
diff --git a/CALIBRATION/shms_dc_calib/scripts/wire_drift_times.h b/CALIBRATION/shms_dc_calib/scripts/wire_drift_times.h
new file mode 100644
index 00000000..0e6c0b22
--- /dev/null
+++ b/CALIBRATION/shms_dc_calib/scripts/wire_drift_times.h
@@ -0,0 +1,545 @@
+//////////////////////////////////////////////////////////
+// This class has been automatically generated on
+// Tue Mar  7 17:30:40 2017 by ROOT version 5.34/36
+// from TTree T/Hall A Analyzer Output DST
+// found on file: ROOTfiles/pdc_replay_437.root
+//////////////////////////////////////////////////////////
+
+#ifndef wire_drift_times_h
+#define wire_drift_times_h
+
+#include <TROOT.h>
+#include <TChain.h>
+#include <TFile.h>
+
+// Header file for the classes stored in the TTree if any.
+
+// Fixed size dimensions of array or collections stored in the TTree if any.
+
+class wire_drift_times {
+public :
+
+   TTree          *fChain;   //!pointer to the analyzed TTree or TChain
+   Int_t           fCurrent; //!current Tree number in a TChain
+
+   // Declaration of leaf types
+   Int_t           Ndata_P_dc_1u1_dist;
+   Double_t        P_dc_1u1_dist[107];   //[Ndata.P.dc.1u1.dist]
+   Int_t           Ndata_P_dc_1u1_rawtdc;
+   Double_t        P_dc_1u1_rawtdc[107];   //[Ndata.P.dc.1u1.rawtdc]
+   Int_t           Ndata_P_dc_1u1_time;
+   Double_t        P_dc_1u1_time[107];   //[Ndata.P.dc.1u1.time]
+   Int_t           Ndata_P_dc_1u1_wirenum;
+   Double_t        P_dc_1u1_wirenum[107];   //[Ndata.P.dc.1u1.wirenum]
+   Int_t           Ndata_P_dc_1u2_dist;
+   Double_t        P_dc_1u2_dist[107];   //[Ndata.P.dc.1u2.dist]
+   Int_t           Ndata_P_dc_1u2_rawtdc;
+   Double_t        P_dc_1u2_rawtdc[107];   //[Ndata.P.dc.1u2.rawtdc]
+   Int_t           Ndata_P_dc_1u2_time;
+   Double_t        P_dc_1u2_time[107];   //[Ndata.P.dc.1u2.time]
+   Int_t           Ndata_P_dc_1u2_wirenum;
+   Double_t        P_dc_1u2_wirenum[107];   //[Ndata.P.dc.1u2.wirenum]
+   Int_t           Ndata_P_dc_1v1_dist;
+   Double_t        P_dc_1v1_dist[107];   //[Ndata.P.dc.1v1.dist]
+   Int_t           Ndata_P_dc_1v1_rawtdc;
+   Double_t        P_dc_1v1_rawtdc[107];   //[Ndata.P.dc.1v1.rawtdc]
+   Int_t           Ndata_P_dc_1v1_time;
+   Double_t        P_dc_1v1_time[107];   //[Ndata.P.dc.1v1.time]
+   Int_t           Ndata_P_dc_1v1_wirenum;
+   Double_t        P_dc_1v1_wirenum[107];   //[Ndata.P.dc.1v1.wirenum]
+   Int_t           Ndata_P_dc_1v2_dist;
+   Double_t        P_dc_1v2_dist[107];   //[Ndata.P.dc.1v2.dist]
+   Int_t           Ndata_P_dc_1v2_rawtdc;
+   Double_t        P_dc_1v2_rawtdc[107];   //[Ndata.P.dc.1v2.rawtdc]
+   Int_t           Ndata_P_dc_1v2_time;
+   Double_t        P_dc_1v2_time[107];   //[Ndata.P.dc.1v2.time]
+   Int_t           Ndata_P_dc_1v2_wirenum;
+   Double_t        P_dc_1v2_wirenum[107];   //[Ndata.P.dc.1v2.wirenum]
+   Int_t           Ndata_P_dc_1x1_dist;
+   Double_t        P_dc_1x1_dist[80];   //[Ndata.P.dc.1x1.dist]
+   Int_t           Ndata_P_dc_1x1_rawtdc;
+   Double_t        P_dc_1x1_rawtdc[80];   //[Ndata.P.dc.1x1.rawtdc]
+   Int_t           Ndata_P_dc_1x1_time;
+   Double_t        P_dc_1x1_time[80];   //[Ndata.P.dc.1x1.time]
+   Int_t           Ndata_P_dc_1x1_wirenum;
+   Double_t        P_dc_1x1_wirenum[80];   //[Ndata.P.dc.1x1.wirenum]
+   Int_t           Ndata_P_dc_1x2_dist;
+   Double_t        P_dc_1x2_dist[80];   //[Ndata.P.dc.1x2.dist]
+   Int_t           Ndata_P_dc_1x2_rawtdc;
+   Double_t        P_dc_1x2_rawtdc[80];   //[Ndata.P.dc.1x2.rawtdc]
+   Int_t           Ndata_P_dc_1x2_time;
+   Double_t        P_dc_1x2_time[80];   //[Ndata.P.dc.1x2.time]
+   Int_t           Ndata_P_dc_1x2_wirenum;
+   Double_t        P_dc_1x2_wirenum[80];   //[Ndata.P.dc.1x2.wirenum]
+   Int_t           Ndata_P_dc_2u1_dist;
+   Double_t        P_dc_2u1_dist[107];   //[Ndata.P.dc.2u1.dist]
+   Int_t           Ndata_P_dc_2u1_rawtdc;
+   Double_t        P_dc_2u1_rawtdc[107];   //[Ndata.P.dc.2u1.rawtdc]
+   Int_t           Ndata_P_dc_2u1_time;
+   Double_t        P_dc_2u1_time[107];   //[Ndata.P.dc.2u1.time]
+   Int_t           Ndata_P_dc_2u1_wirenum;
+   Double_t        P_dc_2u1_wirenum[107];   //[Ndata.P.dc.2u1.wirenum]
+   Int_t           Ndata_P_dc_2u2_dist;
+   Double_t        P_dc_2u2_dist[107];   //[Ndata.P.dc.2u2.dist]
+   Int_t           Ndata_P_dc_2u2_rawtdc;
+   Double_t        P_dc_2u2_rawtdc[107];   //[Ndata.P.dc.2u2.rawtdc]
+   Int_t           Ndata_P_dc_2u2_time;
+   Double_t        P_dc_2u2_time[107];   //[Ndata.P.dc.2u2.time]
+   Int_t           Ndata_P_dc_2u2_wirenum;
+   Double_t        P_dc_2u2_wirenum[107];   //[Ndata.P.dc.2u2.wirenum]
+   Int_t           Ndata_P_dc_2v1_dist;
+   Double_t        P_dc_2v1_dist[107];   //[Ndata.P.dc.2v1.dist]
+   Int_t           Ndata_P_dc_2v1_rawtdc;
+   Double_t        P_dc_2v1_rawtdc[107];   //[Ndata.P.dc.2v1.rawtdc]
+   Int_t           Ndata_P_dc_2v1_time;
+   Double_t        P_dc_2v1_time[107];   //[Ndata.P.dc.2v1.time]
+   Int_t           Ndata_P_dc_2v1_wirenum;
+   Double_t        P_dc_2v1_wirenum[107];   //[Ndata.P.dc.2v1.wirenum]
+   Int_t           Ndata_P_dc_2v2_dist;
+   Double_t        P_dc_2v2_dist[107];   //[Ndata.P.dc.2v2.dist]
+   Int_t           Ndata_P_dc_2v2_rawtdc;
+   Double_t        P_dc_2v2_rawtdc[107];   //[Ndata.P.dc.2v2.rawtdc]
+   Int_t           Ndata_P_dc_2v2_time;
+   Double_t        P_dc_2v2_time[107];   //[Ndata.P.dc.2v2.time]
+   Int_t           Ndata_P_dc_2v2_wirenum;
+   Double_t        P_dc_2v2_wirenum[107];   //[Ndata.P.dc.2v2.wirenum]
+   Int_t           Ndata_P_dc_2x1_dist;
+   Double_t        P_dc_2x1_dist[80];   //[Ndata.P.dc.2x1.dist]
+   Int_t           Ndata_P_dc_2x1_rawtdc;
+   Double_t        P_dc_2x1_rawtdc[80];   //[Ndata.P.dc.2x1.rawtdc]
+   Int_t           Ndata_P_dc_2x1_time;
+   Double_t        P_dc_2x1_time[80];   //[Ndata.P.dc.2x1.time]
+   Int_t           Ndata_P_dc_2x1_wirenum;
+   Double_t        P_dc_2x1_wirenum[80];   //[Ndata.P.dc.2x1.wirenum]
+   Int_t           Ndata_P_dc_2x2_dist;
+   Double_t        P_dc_2x2_dist[80];   //[Ndata.P.dc.2x2.dist]
+   Int_t           Ndata_P_dc_2x2_rawtdc;
+   Double_t        P_dc_2x2_rawtdc[80];   //[Ndata.P.dc.2x2.rawtdc]
+   Int_t           Ndata_P_dc_2x2_time;
+   Double_t        P_dc_2x2_time[80];   //[Ndata.P.dc.2x2.time]
+   Int_t           Ndata_P_dc_2x2_wirenum;
+   Double_t        P_dc_2x2_wirenum[80];   //[Ndata.P.dc.2x2.wirenum]
+   Int_t           Ndata_P_dc_residual;
+   Double_t        P_dc_residual[12];   //[Ndata.P.dc.residual]
+   Int_t           Ndata_P_dc_x;
+   Double_t        P_dc_x[10];   //[Ndata.P.dc.x]
+   Int_t           Ndata_P_dc_xp;
+   Double_t        P_dc_xp[10];   //[Ndata.P.dc.xp]
+   Int_t           Ndata_P_dc_y;
+   Double_t        P_dc_y[10];   //[Ndata.P.dc.y]
+   Int_t           Ndata_P_dc_yp;
+   Double_t        P_dc_yp[10];   //[Ndata.P.dc.yp]
+   Double_t        P_dc_1u1_nhit;
+   Double_t        P_dc_1u2_nhit;
+   Double_t        P_dc_1v1_nhit;
+   Double_t        P_dc_1v2_nhit;
+   Double_t        P_dc_1x1_nhit;
+   Double_t        P_dc_1x2_nhit;
+   Double_t        P_dc_2u1_nhit;
+   Double_t        P_dc_2u2_nhit;
+   Double_t        P_dc_2v1_nhit;
+   Double_t        P_dc_2v2_nhit;
+   Double_t        P_dc_2x1_nhit;
+   Double_t        P_dc_2x2_nhit;
+   Double_t        P_dc_Ch1_maxhits;
+   Double_t        P_dc_Ch1_nhit;
+   Double_t        P_dc_Ch1_spacepoints;
+   Double_t        P_dc_Ch1_trawhit;
+   Double_t        P_dc_Ch2_maxhits;
+   Double_t        P_dc_Ch2_nhit;
+   Double_t        P_dc_Ch2_spacepoints;
+   Double_t        P_dc_Ch2_trawhit;
+   Double_t        P_dc_nhit;
+   Double_t        P_dc_nsp;
+   Double_t        P_dc_ntrack;
+   Double_t        P_dc_stubtest;
+   Double_t        P_dc_tnhit;
+   Double_t        P_dc_trawhit;
+ //THaEvent        *Event_Branch;
+   ULong64_t       fEvtHdr_fEvtTime;
+   UInt_t          fEvtHdr_fEvtNum;
+   Int_t           fEvtHdr_fEvtType;
+   Int_t           fEvtHdr_fEvtLen;
+   Int_t           fEvtHdr_fHelicity;
+   Int_t           fEvtHdr_fTargetPol;
+   Int_t           fEvtHdr_fRun;
+
+   // List of branches
+   TBranch        *b_Ndata_P_dc_1u1_dist;   //!
+   TBranch        *b_P_dc_1u1_dist;   //!
+   TBranch        *b_Ndata_P_dc_1u1_rawtdc;   //!
+   TBranch        *b_P_dc_1u1_rawtdc;   //!
+   TBranch        *b_Ndata_P_dc_1u1_time;   //!
+   TBranch        *b_P_dc_1u1_time;   //!
+   TBranch        *b_Ndata_P_dc_1u1_wirenum;   //!
+   TBranch        *b_P_dc_1u1_wirenum;   //!
+   TBranch        *b_Ndata_P_dc_1u2_dist;   //!
+   TBranch        *b_P_dc_1u2_dist;   //!
+   TBranch        *b_Ndata_P_dc_1u2_rawtdc;   //!
+   TBranch        *b_P_dc_1u2_rawtdc;   //!
+   TBranch        *b_Ndata_P_dc_1u2_time;   //!
+   TBranch        *b_P_dc_1u2_time;   //!
+   TBranch        *b_Ndata_P_dc_1u2_wirenum;   //!
+   TBranch        *b_P_dc_1u2_wirenum;   //!
+   TBranch        *b_Ndata_P_dc_1v1_dist;   //!
+   TBranch        *b_P_dc_1v1_dist;   //!
+   TBranch        *b_Ndata_P_dc_1v1_rawtdc;   //!
+   TBranch        *b_P_dc_1v1_rawtdc;   //!
+   TBranch        *b_Ndata_P_dc_1v1_time;   //!
+   TBranch        *b_P_dc_1v1_time;   //!
+   TBranch        *b_Ndata_P_dc_1v1_wirenum;   //!
+   TBranch        *b_P_dc_1v1_wirenum;   //!
+   TBranch        *b_Ndata_P_dc_1v2_dist;   //!
+   TBranch        *b_P_dc_1v2_dist;   //!
+   TBranch        *b_Ndata_P_dc_1v2_rawtdc;   //!
+   TBranch        *b_P_dc_1v2_rawtdc;   //!
+   TBranch        *b_Ndata_P_dc_1v2_time;   //!
+   TBranch        *b_P_dc_1v2_time;   //!
+   TBranch        *b_Ndata_P_dc_1v2_wirenum;   //!
+   TBranch        *b_P_dc_1v2_wirenum;   //!
+   TBranch        *b_Ndata_P_dc_1x1_dist;   //!
+   TBranch        *b_P_dc_1x1_dist;   //!
+   TBranch        *b_Ndata_P_dc_1x1_rawtdc;   //!
+   TBranch        *b_P_dc_1x1_rawtdc;   //!
+   TBranch        *b_Ndata_P_dc_1x1_time;   //!
+   TBranch        *b_P_dc_1x1_time;   //!
+   TBranch        *b_Ndata_P_dc_1x1_wirenum;   //!
+   TBranch        *b_P_dc_1x1_wirenum;   //!
+   TBranch        *b_Ndata_P_dc_1x2_dist;   //!
+   TBranch        *b_P_dc_1x2_dist;   //!
+   TBranch        *b_Ndata_P_dc_1x2_rawtdc;   //!
+   TBranch        *b_P_dc_1x2_rawtdc;   //!
+   TBranch        *b_Ndata_P_dc_1x2_time;   //!
+   TBranch        *b_P_dc_1x2_time;   //!
+   TBranch        *b_Ndata_P_dc_1x2_wirenum;   //!
+   TBranch        *b_P_dc_1x2_wirenum;   //!
+   TBranch        *b_Ndata_P_dc_2u1_dist;   //!
+   TBranch        *b_P_dc_2u1_dist;   //!
+   TBranch        *b_Ndata_P_dc_2u1_rawtdc;   //!
+   TBranch        *b_P_dc_2u1_rawtdc;   //!
+   TBranch        *b_Ndata_P_dc_2u1_time;   //!
+   TBranch        *b_P_dc_2u1_time;   //!
+   TBranch        *b_Ndata_P_dc_2u1_wirenum;   //!
+   TBranch        *b_P_dc_2u1_wirenum;   //!
+   TBranch        *b_Ndata_P_dc_2u2_dist;   //!
+   TBranch        *b_P_dc_2u2_dist;   //!
+   TBranch        *b_Ndata_P_dc_2u2_rawtdc;   //!
+   TBranch        *b_P_dc_2u2_rawtdc;   //!
+   TBranch        *b_Ndata_P_dc_2u2_time;   //!
+   TBranch        *b_P_dc_2u2_time;   //!
+   TBranch        *b_Ndata_P_dc_2u2_wirenum;   //!
+   TBranch        *b_P_dc_2u2_wirenum;   //!
+   TBranch        *b_Ndata_P_dc_2v1_dist;   //!
+   TBranch        *b_P_dc_2v1_dist;   //!
+   TBranch        *b_Ndata_P_dc_2v1_rawtdc;   //!
+   TBranch        *b_P_dc_2v1_rawtdc;   //!
+   TBranch        *b_Ndata_P_dc_2v1_time;   //!
+   TBranch        *b_P_dc_2v1_time;   //!
+   TBranch        *b_Ndata_P_dc_2v1_wirenum;   //!
+   TBranch        *b_P_dc_2v1_wirenum;   //!
+   TBranch        *b_Ndata_P_dc_2v2_dist;   //!
+   TBranch        *b_P_dc_2v2_dist;   //!
+   TBranch        *b_Ndata_P_dc_2v2_rawtdc;   //!
+   TBranch        *b_P_dc_2v2_rawtdc;   //!
+   TBranch        *b_Ndata_P_dc_2v2_time;   //!
+   TBranch        *b_P_dc_2v2_time;   //!
+   TBranch        *b_Ndata_P_dc_2v2_wirenum;   //!
+   TBranch        *b_P_dc_2v2_wirenum;   //!
+   TBranch        *b_Ndata_P_dc_2x1_dist;   //!
+   TBranch        *b_P_dc_2x1_dist;   //!
+   TBranch        *b_Ndata_P_dc_2x1_rawtdc;   //!
+   TBranch        *b_P_dc_2x1_rawtdc;   //!
+   TBranch        *b_Ndata_P_dc_2x1_time;   //!
+   TBranch        *b_P_dc_2x1_time;   //!
+   TBranch        *b_Ndata_P_dc_2x1_wirenum;   //!
+   TBranch        *b_P_dc_2x1_wirenum;   //!
+   TBranch        *b_Ndata_P_dc_2x2_dist;   //!
+   TBranch        *b_P_dc_2x2_dist;   //!
+   TBranch        *b_Ndata_P_dc_2x2_rawtdc;   //!
+   TBranch        *b_P_dc_2x2_rawtdc;   //!
+   TBranch        *b_Ndata_P_dc_2x2_time;   //!
+   TBranch        *b_P_dc_2x2_time;   //!
+   TBranch        *b_Ndata_P_dc_2x2_wirenum;   //!
+   TBranch        *b_P_dc_2x2_wirenum;   //!
+   TBranch        *b_Ndata_P_dc_residual;   //!
+   TBranch        *b_P_dc_residual;   //!
+   TBranch        *b_Ndata_P_dc_x;   //!
+   TBranch        *b_P_dc_x;   //!
+   TBranch        *b_Ndata_P_dc_xp;   //!
+   TBranch        *b_P_dc_xp;   //!
+   TBranch        *b_Ndata_P_dc_y;   //!
+   TBranch        *b_P_dc_y;   //!
+   TBranch        *b_Ndata_P_dc_yp;   //!
+   TBranch        *b_P_dc_yp;   //!
+   TBranch        *b_P_dc_1u1_nhit;   //!
+   TBranch        *b_P_dc_1u2_nhit;   //!
+   TBranch        *b_P_dc_1v1_nhit;   //!
+   TBranch        *b_P_dc_1v2_nhit;   //!
+   TBranch        *b_P_dc_1x1_nhit;   //!
+   TBranch        *b_P_dc_1x2_nhit;   //!
+   TBranch        *b_P_dc_2u1_nhit;   //!
+   TBranch        *b_P_dc_2u2_nhit;   //!
+   TBranch        *b_P_dc_2v1_nhit;   //!
+   TBranch        *b_P_dc_2v2_nhit;   //!
+   TBranch        *b_P_dc_2x1_nhit;   //!
+   TBranch        *b_P_dc_2x2_nhit;   //!
+   TBranch        *b_P_dc_Ch1_maxhits;   //!
+   TBranch        *b_P_dc_Ch1_nhit;   //!
+   TBranch        *b_P_dc_Ch1_spacepoints;   //!
+   TBranch        *b_P_dc_Ch1_trawhit;   //!
+   TBranch        *b_P_dc_Ch2_maxhits;   //!
+   TBranch        *b_P_dc_Ch2_nhit;   //!
+   TBranch        *b_P_dc_Ch2_spacepoints;   //!
+   TBranch        *b_P_dc_Ch2_trawhit;   //!
+   TBranch        *b_P_dc_nhit;   //!
+   TBranch        *b_P_dc_nsp;   //!
+   TBranch        *b_P_dc_ntrack;   //!
+   TBranch        *b_P_dc_stubtest;   //!
+   TBranch        *b_P_dc_tnhit;   //!
+   TBranch        *b_P_dc_trawhit;   //!
+   TBranch        *b_Event_Branch_fEvtHdr_fEvtTime;   //!
+   TBranch        *b_Event_Branch_fEvtHdr_fEvtNum;   //!
+   TBranch        *b_Event_Branch_fEvtHdr_fEvtType;   //!
+   TBranch        *b_Event_Branch_fEvtHdr_fEvtLen;   //!
+   TBranch        *b_Event_Branch_fEvtHdr_fHelicity;   //!
+   TBranch        *b_Event_Branch_fEvtHdr_fTargetPol;   //!
+   TBranch        *b_Event_Branch_fEvtHdr_fRun;   //!
+
+   wire_drift_times(TTree *tree=0);
+   virtual ~wire_drift_times();
+   virtual Int_t    Cut(Long64_t entry);
+   virtual Int_t    GetEntry(Long64_t entry);
+   virtual Long64_t LoadTree(Long64_t entry);
+   virtual void     Init(TTree *tree);
+   virtual void     Loop();
+   virtual Bool_t   Notify();
+   virtual void     Show(Long64_t entry = -1);
+};
+
+#endif
+
+#ifdef wire_drift_times_cxx
+wire_drift_times::wire_drift_times(TTree *tree) : fChain(0) 
+{
+// if parameter tree is not specified (or zero), connect the file
+// used to generate this class and read the Tree.
+   if (tree == 0) {
+      TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("../../../ROOTfiles/shms_replay_437.root");
+      if (!f || !f->IsOpen()) {
+         f = new TFile("../../../ROOTfiles/shms_replay_437.root");
+      }
+      f->GetObject("T",tree);
+
+   }
+   Init(tree);
+}
+
+wire_drift_times::~wire_drift_times()
+{
+   if (!fChain) return;
+   delete fChain->GetCurrentFile();
+}
+
+Int_t wire_drift_times::GetEntry(Long64_t entry)
+{
+// Read contents of entry.
+   if (!fChain) return 0;
+   return fChain->GetEntry(entry);
+}
+Long64_t wire_drift_times::LoadTree(Long64_t entry)
+{
+// Set the environment to read one entry
+   if (!fChain) return -5;
+   Long64_t centry = fChain->LoadTree(entry);
+   if (centry < 0) return centry;
+   if (fChain->GetTreeNumber() != fCurrent) {
+      fCurrent = fChain->GetTreeNumber();
+      Notify();
+   }
+   return centry;
+}
+
+void wire_drift_times::Init(TTree *tree)
+{
+   // The Init() function is called when the selector needs to initialize
+   // a new tree or chain. Typically here the branch addresses and branch
+   // pointers of the tree will be set.
+   // It is normally not necessary to make changes to the generated
+   // code, but the routine can be extended by the user if needed.
+   // Init() will be called many times when running on PROOF
+   // (once per file to be processed).
+
+   // Set branch addresses and branch pointers
+   if (!tree) return;
+   fChain = tree;
+   fCurrent = -1;
+   fChain->SetMakeClass(1);
+
+   fChain->SetBranchAddress("Ndata.P.dc.1u1.dist", &Ndata_P_dc_1u1_dist, &b_Ndata_P_dc_1u1_dist);
+   fChain->SetBranchAddress("P.dc.1u1.dist", P_dc_1u1_dist, &b_P_dc_1u1_dist);
+   fChain->SetBranchAddress("Ndata.P.dc.1u1.rawtdc", &Ndata_P_dc_1u1_rawtdc, &b_Ndata_P_dc_1u1_rawtdc);
+   fChain->SetBranchAddress("P.dc.1u1.rawtdc", P_dc_1u1_rawtdc, &b_P_dc_1u1_rawtdc);
+   fChain->SetBranchAddress("Ndata.P.dc.1u1.time", &Ndata_P_dc_1u1_time, &b_Ndata_P_dc_1u1_time);
+   fChain->SetBranchAddress("P.dc.1u1.time", P_dc_1u1_time, &b_P_dc_1u1_time);
+   fChain->SetBranchAddress("Ndata.P.dc.1u1.wirenum", &Ndata_P_dc_1u1_wirenum, &b_Ndata_P_dc_1u1_wirenum);
+   fChain->SetBranchAddress("P.dc.1u1.wirenum", P_dc_1u1_wirenum, &b_P_dc_1u1_wirenum);
+   fChain->SetBranchAddress("Ndata.P.dc.1u2.dist", &Ndata_P_dc_1u2_dist, &b_Ndata_P_dc_1u2_dist);
+   fChain->SetBranchAddress("P.dc.1u2.dist", P_dc_1u2_dist, &b_P_dc_1u2_dist);
+   fChain->SetBranchAddress("Ndata.P.dc.1u2.rawtdc", &Ndata_P_dc_1u2_rawtdc, &b_Ndata_P_dc_1u2_rawtdc);
+   fChain->SetBranchAddress("P.dc.1u2.rawtdc", P_dc_1u2_rawtdc, &b_P_dc_1u2_rawtdc);
+   fChain->SetBranchAddress("Ndata.P.dc.1u2.time", &Ndata_P_dc_1u2_time, &b_Ndata_P_dc_1u2_time);
+   fChain->SetBranchAddress("P.dc.1u2.time", P_dc_1u2_time, &b_P_dc_1u2_time);
+   fChain->SetBranchAddress("Ndata.P.dc.1u2.wirenum", &Ndata_P_dc_1u2_wirenum, &b_Ndata_P_dc_1u2_wirenum);
+   fChain->SetBranchAddress("P.dc.1u2.wirenum", P_dc_1u2_wirenum, &b_P_dc_1u2_wirenum);
+   fChain->SetBranchAddress("Ndata.P.dc.1v1.dist", &Ndata_P_dc_1v1_dist, &b_Ndata_P_dc_1v1_dist);
+   fChain->SetBranchAddress("P.dc.1v1.dist", P_dc_1v1_dist, &b_P_dc_1v1_dist);
+   fChain->SetBranchAddress("Ndata.P.dc.1v1.rawtdc", &Ndata_P_dc_1v1_rawtdc, &b_Ndata_P_dc_1v1_rawtdc);
+   fChain->SetBranchAddress("P.dc.1v1.rawtdc", P_dc_1v1_rawtdc, &b_P_dc_1v1_rawtdc);
+   fChain->SetBranchAddress("Ndata.P.dc.1v1.time", &Ndata_P_dc_1v1_time, &b_Ndata_P_dc_1v1_time);
+   fChain->SetBranchAddress("P.dc.1v1.time", P_dc_1v1_time, &b_P_dc_1v1_time);
+   fChain->SetBranchAddress("Ndata.P.dc.1v1.wirenum", &Ndata_P_dc_1v1_wirenum, &b_Ndata_P_dc_1v1_wirenum);
+   fChain->SetBranchAddress("P.dc.1v1.wirenum", P_dc_1v1_wirenum, &b_P_dc_1v1_wirenum);
+   fChain->SetBranchAddress("Ndata.P.dc.1v2.dist", &Ndata_P_dc_1v2_dist, &b_Ndata_P_dc_1v2_dist);
+   fChain->SetBranchAddress("P.dc.1v2.dist", P_dc_1v2_dist, &b_P_dc_1v2_dist);
+   fChain->SetBranchAddress("Ndata.P.dc.1v2.rawtdc", &Ndata_P_dc_1v2_rawtdc, &b_Ndata_P_dc_1v2_rawtdc);
+   fChain->SetBranchAddress("P.dc.1v2.rawtdc", P_dc_1v2_rawtdc, &b_P_dc_1v2_rawtdc);
+   fChain->SetBranchAddress("Ndata.P.dc.1v2.time", &Ndata_P_dc_1v2_time, &b_Ndata_P_dc_1v2_time);
+   fChain->SetBranchAddress("P.dc.1v2.time", P_dc_1v2_time, &b_P_dc_1v2_time);
+   fChain->SetBranchAddress("Ndata.P.dc.1v2.wirenum", &Ndata_P_dc_1v2_wirenum, &b_Ndata_P_dc_1v2_wirenum);
+   fChain->SetBranchAddress("P.dc.1v2.wirenum", P_dc_1v2_wirenum, &b_P_dc_1v2_wirenum);
+   fChain->SetBranchAddress("Ndata.P.dc.1x1.dist", &Ndata_P_dc_1x1_dist, &b_Ndata_P_dc_1x1_dist);
+   fChain->SetBranchAddress("P.dc.1x1.dist", P_dc_1x1_dist, &b_P_dc_1x1_dist);
+   fChain->SetBranchAddress("Ndata.P.dc.1x1.rawtdc", &Ndata_P_dc_1x1_rawtdc, &b_Ndata_P_dc_1x1_rawtdc);
+   fChain->SetBranchAddress("P.dc.1x1.rawtdc", P_dc_1x1_rawtdc, &b_P_dc_1x1_rawtdc);
+   fChain->SetBranchAddress("Ndata.P.dc.1x1.time", &Ndata_P_dc_1x1_time, &b_Ndata_P_dc_1x1_time);
+   fChain->SetBranchAddress("P.dc.1x1.time", P_dc_1x1_time, &b_P_dc_1x1_time);
+   fChain->SetBranchAddress("Ndata.P.dc.1x1.wirenum", &Ndata_P_dc_1x1_wirenum, &b_Ndata_P_dc_1x1_wirenum);
+   fChain->SetBranchAddress("P.dc.1x1.wirenum", P_dc_1x1_wirenum, &b_P_dc_1x1_wirenum);
+   fChain->SetBranchAddress("Ndata.P.dc.1x2.dist", &Ndata_P_dc_1x2_dist, &b_Ndata_P_dc_1x2_dist);
+   fChain->SetBranchAddress("P.dc.1x2.dist", P_dc_1x2_dist, &b_P_dc_1x2_dist);
+   fChain->SetBranchAddress("Ndata.P.dc.1x2.rawtdc", &Ndata_P_dc_1x2_rawtdc, &b_Ndata_P_dc_1x2_rawtdc);
+   fChain->SetBranchAddress("P.dc.1x2.rawtdc", P_dc_1x2_rawtdc, &b_P_dc_1x2_rawtdc);
+   fChain->SetBranchAddress("Ndata.P.dc.1x2.time", &Ndata_P_dc_1x2_time, &b_Ndata_P_dc_1x2_time);
+   fChain->SetBranchAddress("P.dc.1x2.time", P_dc_1x2_time, &b_P_dc_1x2_time);
+   fChain->SetBranchAddress("Ndata.P.dc.1x2.wirenum", &Ndata_P_dc_1x2_wirenum, &b_Ndata_P_dc_1x2_wirenum);
+   fChain->SetBranchAddress("P.dc.1x2.wirenum", P_dc_1x2_wirenum, &b_P_dc_1x2_wirenum);
+   fChain->SetBranchAddress("Ndata.P.dc.2u1.dist", &Ndata_P_dc_2u1_dist, &b_Ndata_P_dc_2u1_dist);
+   fChain->SetBranchAddress("P.dc.2u1.dist", P_dc_2u1_dist, &b_P_dc_2u1_dist);
+   fChain->SetBranchAddress("Ndata.P.dc.2u1.rawtdc", &Ndata_P_dc_2u1_rawtdc, &b_Ndata_P_dc_2u1_rawtdc);
+   fChain->SetBranchAddress("P.dc.2u1.rawtdc", P_dc_2u1_rawtdc, &b_P_dc_2u1_rawtdc);
+   fChain->SetBranchAddress("Ndata.P.dc.2u1.time", &Ndata_P_dc_2u1_time, &b_Ndata_P_dc_2u1_time);
+   fChain->SetBranchAddress("P.dc.2u1.time", P_dc_2u1_time, &b_P_dc_2u1_time);
+   fChain->SetBranchAddress("Ndata.P.dc.2u1.wirenum", &Ndata_P_dc_2u1_wirenum, &b_Ndata_P_dc_2u1_wirenum);
+   fChain->SetBranchAddress("P.dc.2u1.wirenum", P_dc_2u1_wirenum, &b_P_dc_2u1_wirenum);
+   fChain->SetBranchAddress("Ndata.P.dc.2u2.dist", &Ndata_P_dc_2u2_dist, &b_Ndata_P_dc_2u2_dist);
+   fChain->SetBranchAddress("P.dc.2u2.dist", P_dc_2u2_dist, &b_P_dc_2u2_dist);
+   fChain->SetBranchAddress("Ndata.P.dc.2u2.rawtdc", &Ndata_P_dc_2u2_rawtdc, &b_Ndata_P_dc_2u2_rawtdc);
+   fChain->SetBranchAddress("P.dc.2u2.rawtdc", P_dc_2u2_rawtdc, &b_P_dc_2u2_rawtdc);
+   fChain->SetBranchAddress("Ndata.P.dc.2u2.time", &Ndata_P_dc_2u2_time, &b_Ndata_P_dc_2u2_time);
+   fChain->SetBranchAddress("P.dc.2u2.time", P_dc_2u2_time, &b_P_dc_2u2_time);
+   fChain->SetBranchAddress("Ndata.P.dc.2u2.wirenum", &Ndata_P_dc_2u2_wirenum, &b_Ndata_P_dc_2u2_wirenum);
+   fChain->SetBranchAddress("P.dc.2u2.wirenum", P_dc_2u2_wirenum, &b_P_dc_2u2_wirenum);
+   fChain->SetBranchAddress("Ndata.P.dc.2v1.dist", &Ndata_P_dc_2v1_dist, &b_Ndata_P_dc_2v1_dist);
+   fChain->SetBranchAddress("P.dc.2v1.dist", P_dc_2v1_dist, &b_P_dc_2v1_dist);
+   fChain->SetBranchAddress("Ndata.P.dc.2v1.rawtdc", &Ndata_P_dc_2v1_rawtdc, &b_Ndata_P_dc_2v1_rawtdc);
+   fChain->SetBranchAddress("P.dc.2v1.rawtdc", P_dc_2v1_rawtdc, &b_P_dc_2v1_rawtdc);
+   fChain->SetBranchAddress("Ndata.P.dc.2v1.time", &Ndata_P_dc_2v1_time, &b_Ndata_P_dc_2v1_time);
+   fChain->SetBranchAddress("P.dc.2v1.time", P_dc_2v1_time, &b_P_dc_2v1_time);
+   fChain->SetBranchAddress("Ndata.P.dc.2v1.wirenum", &Ndata_P_dc_2v1_wirenum, &b_Ndata_P_dc_2v1_wirenum);
+   fChain->SetBranchAddress("P.dc.2v1.wirenum", P_dc_2v1_wirenum, &b_P_dc_2v1_wirenum);
+   fChain->SetBranchAddress("Ndata.P.dc.2v2.dist", &Ndata_P_dc_2v2_dist, &b_Ndata_P_dc_2v2_dist);
+   fChain->SetBranchAddress("P.dc.2v2.dist", P_dc_2v2_dist, &b_P_dc_2v2_dist);
+   fChain->SetBranchAddress("Ndata.P.dc.2v2.rawtdc", &Ndata_P_dc_2v2_rawtdc, &b_Ndata_P_dc_2v2_rawtdc);
+   fChain->SetBranchAddress("P.dc.2v2.rawtdc", P_dc_2v2_rawtdc, &b_P_dc_2v2_rawtdc);
+   fChain->SetBranchAddress("Ndata.P.dc.2v2.time", &Ndata_P_dc_2v2_time, &b_Ndata_P_dc_2v2_time);
+   fChain->SetBranchAddress("P.dc.2v2.time", P_dc_2v2_time, &b_P_dc_2v2_time);
+   fChain->SetBranchAddress("Ndata.P.dc.2v2.wirenum", &Ndata_P_dc_2v2_wirenum, &b_Ndata_P_dc_2v2_wirenum);
+   fChain->SetBranchAddress("P.dc.2v2.wirenum", P_dc_2v2_wirenum, &b_P_dc_2v2_wirenum);
+   fChain->SetBranchAddress("Ndata.P.dc.2x1.dist", &Ndata_P_dc_2x1_dist, &b_Ndata_P_dc_2x1_dist);
+   fChain->SetBranchAddress("P.dc.2x1.dist", P_dc_2x1_dist, &b_P_dc_2x1_dist);
+   fChain->SetBranchAddress("Ndata.P.dc.2x1.rawtdc", &Ndata_P_dc_2x1_rawtdc, &b_Ndata_P_dc_2x1_rawtdc);
+   fChain->SetBranchAddress("P.dc.2x1.rawtdc", P_dc_2x1_rawtdc, &b_P_dc_2x1_rawtdc);
+   fChain->SetBranchAddress("Ndata.P.dc.2x1.time", &Ndata_P_dc_2x1_time, &b_Ndata_P_dc_2x1_time);
+   fChain->SetBranchAddress("P.dc.2x1.time", P_dc_2x1_time, &b_P_dc_2x1_time);
+   fChain->SetBranchAddress("Ndata.P.dc.2x1.wirenum", &Ndata_P_dc_2x1_wirenum, &b_Ndata_P_dc_2x1_wirenum);
+   fChain->SetBranchAddress("P.dc.2x1.wirenum", P_dc_2x1_wirenum, &b_P_dc_2x1_wirenum);
+   fChain->SetBranchAddress("Ndata.P.dc.2x2.dist", &Ndata_P_dc_2x2_dist, &b_Ndata_P_dc_2x2_dist);
+   fChain->SetBranchAddress("P.dc.2x2.dist", P_dc_2x2_dist, &b_P_dc_2x2_dist);
+   fChain->SetBranchAddress("Ndata.P.dc.2x2.rawtdc", &Ndata_P_dc_2x2_rawtdc, &b_Ndata_P_dc_2x2_rawtdc);
+   fChain->SetBranchAddress("P.dc.2x2.rawtdc", P_dc_2x2_rawtdc, &b_P_dc_2x2_rawtdc);
+   fChain->SetBranchAddress("Ndata.P.dc.2x2.time", &Ndata_P_dc_2x2_time, &b_Ndata_P_dc_2x2_time);
+   fChain->SetBranchAddress("P.dc.2x2.time", P_dc_2x2_time, &b_P_dc_2x2_time);
+   fChain->SetBranchAddress("Ndata.P.dc.2x2.wirenum", &Ndata_P_dc_2x2_wirenum, &b_Ndata_P_dc_2x2_wirenum);
+   fChain->SetBranchAddress("P.dc.2x2.wirenum", P_dc_2x2_wirenum, &b_P_dc_2x2_wirenum);
+   fChain->SetBranchAddress("Ndata.P.dc.residual", &Ndata_P_dc_residual, &b_Ndata_P_dc_residual);
+   fChain->SetBranchAddress("P.dc.residual", P_dc_residual, &b_P_dc_residual);
+   fChain->SetBranchAddress("Ndata.P.dc.x", &Ndata_P_dc_x, &b_Ndata_P_dc_x);
+   fChain->SetBranchAddress("P.dc.x", P_dc_x, &b_P_dc_x);
+   fChain->SetBranchAddress("Ndata.P.dc.xp", &Ndata_P_dc_xp, &b_Ndata_P_dc_xp);
+   fChain->SetBranchAddress("P.dc.xp", P_dc_xp, &b_P_dc_xp);
+   fChain->SetBranchAddress("Ndata.P.dc.y", &Ndata_P_dc_y, &b_Ndata_P_dc_y);
+   fChain->SetBranchAddress("P.dc.y", P_dc_y, &b_P_dc_y);
+   fChain->SetBranchAddress("Ndata.P.dc.yp", &Ndata_P_dc_yp, &b_Ndata_P_dc_yp);
+   fChain->SetBranchAddress("P.dc.yp", P_dc_yp, &b_P_dc_yp);
+   fChain->SetBranchAddress("P.dc.1u1.nhit", &P_dc_1u1_nhit, &b_P_dc_1u1_nhit);
+   fChain->SetBranchAddress("P.dc.1u2.nhit", &P_dc_1u2_nhit, &b_P_dc_1u2_nhit);
+   fChain->SetBranchAddress("P.dc.1v1.nhit", &P_dc_1v1_nhit, &b_P_dc_1v1_nhit);
+   fChain->SetBranchAddress("P.dc.1v2.nhit", &P_dc_1v2_nhit, &b_P_dc_1v2_nhit);
+   fChain->SetBranchAddress("P.dc.1x1.nhit", &P_dc_1x1_nhit, &b_P_dc_1x1_nhit);
+   fChain->SetBranchAddress("P.dc.1x2.nhit", &P_dc_1x2_nhit, &b_P_dc_1x2_nhit);
+   fChain->SetBranchAddress("P.dc.2u1.nhit", &P_dc_2u1_nhit, &b_P_dc_2u1_nhit);
+   fChain->SetBranchAddress("P.dc.2u2.nhit", &P_dc_2u2_nhit, &b_P_dc_2u2_nhit);
+   fChain->SetBranchAddress("P.dc.2v1.nhit", &P_dc_2v1_nhit, &b_P_dc_2v1_nhit);
+   fChain->SetBranchAddress("P.dc.2v2.nhit", &P_dc_2v2_nhit, &b_P_dc_2v2_nhit);
+   fChain->SetBranchAddress("P.dc.2x1.nhit", &P_dc_2x1_nhit, &b_P_dc_2x1_nhit);
+   fChain->SetBranchAddress("P.dc.2x2.nhit", &P_dc_2x2_nhit, &b_P_dc_2x2_nhit);
+   fChain->SetBranchAddress("P.dc.Ch1.maxhits", &P_dc_Ch1_maxhits, &b_P_dc_Ch1_maxhits);
+   fChain->SetBranchAddress("P.dc.Ch1.nhit", &P_dc_Ch1_nhit, &b_P_dc_Ch1_nhit);
+   fChain->SetBranchAddress("P.dc.Ch1.spacepoints", &P_dc_Ch1_spacepoints, &b_P_dc_Ch1_spacepoints);
+   fChain->SetBranchAddress("P.dc.Ch1.trawhit", &P_dc_Ch1_trawhit, &b_P_dc_Ch1_trawhit);
+   fChain->SetBranchAddress("P.dc.Ch2.maxhits", &P_dc_Ch2_maxhits, &b_P_dc_Ch2_maxhits);
+   fChain->SetBranchAddress("P.dc.Ch2.nhit", &P_dc_Ch2_nhit, &b_P_dc_Ch2_nhit);
+   fChain->SetBranchAddress("P.dc.Ch2.spacepoints", &P_dc_Ch2_spacepoints, &b_P_dc_Ch2_spacepoints);
+   fChain->SetBranchAddress("P.dc.Ch2.trawhit", &P_dc_Ch2_trawhit, &b_P_dc_Ch2_trawhit);
+   fChain->SetBranchAddress("P.dc.nhit", &P_dc_nhit, &b_P_dc_nhit);
+   fChain->SetBranchAddress("P.dc.nsp", &P_dc_nsp, &b_P_dc_nsp);
+   fChain->SetBranchAddress("P.dc.ntrack", &P_dc_ntrack, &b_P_dc_ntrack);
+   fChain->SetBranchAddress("P.dc.stubtest", &P_dc_stubtest, &b_P_dc_stubtest);
+   fChain->SetBranchAddress("P.dc.tnhit", &P_dc_tnhit, &b_P_dc_tnhit);
+   fChain->SetBranchAddress("P.dc.trawhit", &P_dc_trawhit, &b_P_dc_trawhit);
+   fChain->SetBranchAddress("fEvtHdr.fEvtTime", &fEvtHdr_fEvtTime, &b_Event_Branch_fEvtHdr_fEvtTime);
+   fChain->SetBranchAddress("fEvtHdr.fEvtNum", &fEvtHdr_fEvtNum, &b_Event_Branch_fEvtHdr_fEvtNum);
+   fChain->SetBranchAddress("fEvtHdr.fEvtType", &fEvtHdr_fEvtType, &b_Event_Branch_fEvtHdr_fEvtType);
+   fChain->SetBranchAddress("fEvtHdr.fEvtLen", &fEvtHdr_fEvtLen, &b_Event_Branch_fEvtHdr_fEvtLen);
+   fChain->SetBranchAddress("fEvtHdr.fHelicity", &fEvtHdr_fHelicity, &b_Event_Branch_fEvtHdr_fHelicity);
+   fChain->SetBranchAddress("fEvtHdr.fTargetPol", &fEvtHdr_fTargetPol, &b_Event_Branch_fEvtHdr_fTargetPol);
+   fChain->SetBranchAddress("fEvtHdr.fRun", &fEvtHdr_fRun, &b_Event_Branch_fEvtHdr_fRun);
+   Notify();
+}
+
+Bool_t wire_drift_times::Notify()
+{
+   // The Notify() function is called when a new file is opened. This
+   // can be either for a new TTree in a TChain or when when a new TTree
+   // is started when using PROOF. It is normally not necessary to make changes
+   // to the generated code, but the routine can be extended by the
+   // user if needed. The return value is currently not used.
+
+   return kTRUE;
+}
+
+void wire_drift_times::Show(Long64_t entry)
+{
+// Print contents of entry.
+// If entry is not specified, print current entry
+   if (!fChain) return;
+   fChain->Show(entry);
+}
+Int_t wire_drift_times::Cut(Long64_t entry)
+{
+// This function may be called from Loop.
+// returns  1 if entry is accepted.
+// returns -1 otherwise.
+   return 1;
+}
+#endif // #ifdef wire_drift_times_cxx
diff --git a/DATFILES/SHMS_fr3_rec__order_3.dat b/DATFILES/SHMS_fr3_rec__order_3.dat
new file mode 100644
index 00000000..c5f2181d
--- /dev/null
+++ b/DATFILES/SHMS_fr3_rec__order_3.dat
@@ -0,0 +1,61 @@
+! SHMS reconstruction optics
+! made with Cosy from `shms-2011-26cm-monte.fox`
+! order: 3
+! 2017/03/02
+ ------------------------------------------------------------------------------
+  0.271575341    -0.562369031E-01 0.319566081E-01 0.610081290     10000
+  -1.40168967     0.324549705E-02-0.184425300E-02-0.352085004E-01 01000
+   0.00000000    -0.614627877     0.268258711      0.00000000     00100
+   0.00000000    -0.334494693E-01 -1.61240146      0.00000000     00010
+  0.292838822    -0.779452895E-01 0.442923940E-01 0.845582884     00001
+ -0.461777083     0.133175413    -0.795465554E-01 -1.10941840     20000
+   2.31345901    -0.651650790     0.410139672      7.40765439     11000
+  0.313171813    -0.189779813     0.503365420E-02  1.07619090     02000
+  0.832253162E-02  3.25891656    -0.623172327     0.130538752E-01 10100
+ -0.429553235E-01-0.337197013     0.115900052    -0.673753442E-01 01100
+  0.123978840E-02 0.104304505E-02-0.173094061E-02 0.293611475E-02 00200
+ -0.346040884E-01 -34.2794401      6.37461563    -0.337822756E-01 10010
+  0.178603084      2.78206786    -0.304747320     0.174361437     01010
+  0.628665995E-01-0.824087278E-01 0.307462429E-01 0.154433455     00110
+  -1.40937257     0.301926273    -0.187978799     -2.47726546     10001
+   3.33484635    -0.862548006     0.574689551      10.5041926     01001
+  0.130450160E-01  4.51258325    -0.861523847     0.259132153E-01 00101
+ -0.372584164     0.399413222    -0.891791733E-01-0.402593585     00020
+ -0.618394302E-01 -47.7437685      8.94535901    -0.107744042     00011
+  -1.06632062     0.166741451    -0.107916204     -1.30229160     00002
+   2.02204786    -0.537494821     0.320946553      4.39751589     30000
+  -17.7287121      4.88024882     -2.93121031     -45.2936945     21000
+   41.4726095     -12.1033754      7.27184134      135.859531     12000
+  -19.2547522      6.35601113     -3.56945324     -68.6229278     03000
+ -0.639687330E-01 -12.8390163      2.47275279    -0.116142488     20100
+  0.383562426      75.4946872     -14.1477166     0.765093581     11100
+ -0.277071263     -83.0427890      15.0668682    -0.857237446     02100
+  0.521382345    -0.660319024E-01 0.836917529E-01  1.62277288     10200
+  -2.71588574     0.417636863    -0.374384882     -8.42602578     01200
+  0.379937962E-04 -2.22772445     0.411212109     0.595931979E-04 00300
+  0.401258847      134.208982     -25.7567354     0.723062757     20010
+  -2.21408761     -779.349257      145.964199     -4.18430354     11010
+  0.744454923      871.241762     -162.500709      2.34060679     02010
+  -11.1502022      2.11028391     -1.81145056     -34.1647857     10110
+   56.9030538     -11.4096323      8.30827966      175.204252     01110
+  0.176859767E-02  71.0256213     -13.2910486     0.286760156E-02 00210
+   8.25911531     -1.83293852      1.12279865      14.9915931     20001
+  -47.6174637      11.2343899     -6.91073184     -102.172282     11001
+   55.1407020     -14.8476604      8.99669952      167.425329     02001
+ -0.200203452     -29.7959889      5.79495205    -0.355610730     10101
+  0.581102351      92.6441192     -17.5793543      1.10085095     01101
+  0.674591396     0.105565721E-01 0.737030600E-01  1.59446569     00201
+   59.0337400     -14.8057660      9.71260964      178.996897     10020
+  -300.510217      74.3557252     -46.1380542     -914.862611     01020
+ -0.194284386E-01 -753.743934      142.021236    -0.257293020E-01 00120
+   1.26360425      313.950247     -60.8321033      2.32007781     10011
+  -3.37979081     -961.090841      181.666941     -6.43192219     01011
+  -14.6993850     0.949357085     -1.68119853     -34.2620511     00111
+   11.3392101     -2.12339845      1.34371762      17.7676078     10002
+  -33.1512599      6.62921723     -4.19625684     -59.3627787     01002
+ -0.156245518     -18.1815608      3.55438555    -0.262047136     00102
+  0.474746171E-01  2656.39369     -502.850206     0.463471419E-01 00030
+   78.9827113     -11.1025866      9.41992841      183.089209     00021
+  0.994119583      193.354137     -37.7652046      1.77029229     00012
+   5.21699886    -0.833070758     0.548672097      7.31883656     00003
+ ------------------------------------------------------------------------------
diff --git a/DATFILES/SHMS_fr3_rec__order_4.dat b/DATFILES/SHMS_fr3_rec__order_4.dat
new file mode 100644
index 00000000..f76564f4
--- /dev/null
+++ b/DATFILES/SHMS_fr3_rec__order_4.dat
@@ -0,0 +1,131 @@
+! SHMS reconstruction optics
+! made with Cosy from `shms-2011-26cm-monte.fox`
+! order: 4
+! 2017/03/02
+ ------------------------------------------------------------------------------
+  0.271575341    -0.562369031E-01 0.319566081E-01 0.610081290     10000
+  -1.40168967     0.324549705E-02-0.184425300E-02-0.352085004E-01 01000
+   0.00000000    -0.614627877     0.268258711      0.00000000     00100
+   0.00000000    -0.334494694E-01 -1.61240146      0.00000000     00010
+  0.292838822    -0.779452895E-01 0.442923940E-01 0.845582884     00001
+ -0.461777083     0.133175413    -0.795465553E-01 -1.10941840     20000
+   2.31345901    -0.651650789     0.410139671      7.40765439     11000
+  0.313171813    -0.189779816     0.503365581E-02  1.07619090     02000
+  0.832253162E-02  3.25891656    -0.623172327     0.130538752E-01 10100
+ -0.429553235E-01-0.337197013     0.115900052    -0.673753442E-01 01100
+  0.123978942E-02 0.104304463E-02-0.173094037E-02 0.293611934E-02 00200
+ -0.346040884E-01 -34.2794401      6.37461563    -0.337822756E-01 10010
+  0.178603084      2.78206786    -0.304747320     0.174361437     01010
+  0.628665828E-01-0.824087197E-01 0.307462384E-01 0.154433368     00110
+  -1.40937257     0.301926272    -0.187978799     -2.47726546     10001
+   3.33484635    -0.862548003     0.574689548      10.5041926     01001
+  0.130450160E-01  4.51258325    -0.861523847     0.259132153E-01 00101
+ -0.372584092     0.399413185    -0.891791525E-01-0.402593189     00020
+ -0.618394303E-01 -47.7437685      8.94535901    -0.107744042     00011
+  -1.06632062     0.166741450    -0.107916202     -1.30229160     00002
+   2.02204786    -0.537494821     0.320946553      4.39751589     30000
+  -17.7287121      4.88024881     -2.93121031     -45.2936945     21000
+   41.4726095     -12.1033754      7.27184134      135.859531     12000
+  -19.2547522      6.35601113     -3.56945324     -68.6229278     03000
+ -0.639687330E-01 -12.8390163      2.47275279    -0.116142488     20100
+  0.383562426      75.4946872     -14.1477166     0.765093581     11100
+ -0.277071263     -83.0427890      15.0668682    -0.857237446     02100
+  0.521382339    -0.660319006E-01 0.836917518E-01  1.62277287     10200
+  -2.71588573     0.417636857    -0.374384878     -8.42602572     01200
+  0.379938274E-04 -2.22772443     0.411212104     0.595932468E-04 00300
+  0.401258847      134.208982     -25.7567354     0.723062757     20010
+  -2.21408761     -779.349257      145.964199     -4.18430354     11010
+  0.744454923      871.241762     -162.500709      2.34060679     02010
+  -11.1502021      2.11028387     -1.81145055     -34.1647855     10110
+   56.9030534     -11.4096322      8.30827960      175.204251     01110
+  0.176859702E-02  71.0256206     -13.2910484     0.286760063E-02 00210
+   8.25911531     -1.83293852      1.12279865      14.9915931     20001
+  -47.6174637      11.2343899     -6.91073183     -102.172282     11001
+   55.1407020     -14.8476603      8.99669951      167.425329     02001
+ -0.200203452     -29.7959889      5.79495205    -0.355610730     10101
+  0.581102351      92.6441192     -17.5793543      1.10085095     01101
+  0.674591387     0.105565741E-01 0.737030589E-01  1.59446567     00201
+   59.0337395     -14.8057659      9.71260956      178.996896     10020
+  -300.510215      74.3557247     -46.1380539     -914.862606     01020
+ -0.194284343E-01 -753.743927      142.021235    -0.257292965E-01 00120
+   1.26360425      313.950247     -60.8321033      2.32007781     10011
+  -3.37979081     -961.090841      181.666941     -6.43192219     01011
+  -14.6993848     0.949357049     -1.68119850     -34.2620508     00111
+   11.3392100     -2.12339844      1.34371761      17.7676078     10002
+  -33.1512599      6.62921721     -4.19625682     -59.3627787     01002
+ -0.156245518     -18.1815608      3.55438555    -0.262047136     00102
+  0.474746080E-01  2656.39367     -502.850202     0.463471330E-01 00030
+   78.9827105     -11.1025864      9.41992832      183.089208     00021
+  0.994119584      193.354137     -37.7652046      1.77029229     00012
+   5.21699886    -0.833070754     0.548672093      7.31883655     00003
+  -10.2310470      2.58793363     -1.55296721     -20.8818053     40000
+   122.346406     -31.8016932      19.1514013      274.803183     31000
+  -484.927223      130.536709     -78.8502838     -1239.39171     22000
+   698.547701     -196.026028      118.569038      2117.59464     13000
+  -253.197685      71.4733330     -43.2279696     -793.955820     04000
+  0.478755489      50.8042228     -9.90654419     0.873955482     30100
+  -4.37397264     -447.898534      86.2746229     -8.66132024     21100
+   11.4763945      1021.87912     -193.798068      25.5532707     12100
+  -8.48802044     -353.060335      66.8753150     -21.2396696     03100
+  -3.36720856    -0.838236137E-01-0.415102089     -7.72252748     20200
+   24.0878684    -0.495441583E-01  2.90836969      60.9325014     11200
+  -34.4455156      1.63349895     -4.69517143     -108.631838     02200
+  0.442912824E-01  12.5587081     -2.42559825     0.848367227E-01 10300
+ -0.230283981     -47.3794478      9.03448084    -0.440507240     01300
+  0.283577483E-02-0.143540814E-01-0.547824335E-02 0.852019165E-02 00400
+  -3.26791035     -534.506885      103.795498     -5.92725409     30010
+   28.6301188      4659.91444     -893.080659      56.0463947     21010
+  -70.6746261     -10463.9773      1970.57194     -152.877065     12010
+   51.0546659      3328.38500     -620.439421      110.384945     03010
+   70.5111913     -3.43784621      9.33042294      161.394208     20110
+  -496.879282      38.6458465     -65.4747054     -1255.15132     11110
+   692.837995     -91.3622773      104.349749      2188.94307     02110
+  -1.25350163     -400.576726      77.1331104     -2.34946862     10210
+   6.41379070      1464.94648     -277.703944      12.0388384     01210
+  0.616071108E-01 0.431663756     0.233010610     0.205151913     00310
+  -53.7324212      12.0470375     -7.36030184     -98.1457887     30001
+   479.946011     -111.483955      68.2857468      965.271814     21001
+  -1264.83188      310.320248     -190.049701     -2920.57582     12001
+   908.437630     -243.926965      148.585766      2640.79125     03001
+   2.09423955      181.634158     -35.4615615      3.66998998     20101
+  -12.4222735     -1095.06205      211.310694     -23.6481174     11101
+   15.9439662      1318.52165     -249.844514      34.4087498     02101
+  -9.04889731    -0.981106252    -0.821042459     -17.5288402     10201
+   32.7896220      1.98193201      3.03790517      68.2379234     01201
+  0.669006161E-01  13.8708530     -2.68487436     0.137585092     00301
+  -364.345369      44.3259006     -51.4824086     -832.969309     20020
+   2544.78208     -394.818493      363.991885      6417.23262     11020
+  -3471.80737      769.376790     -575.098054     -10993.0813     02020
+   11.3713563      4214.76797     -808.266433      20.7767758     10120
+  -57.8302273     -15048.6461      2835.73628     -105.832362     01120
+  -2.94126789     -4.06795828     -3.57808305     -9.18394603     00220
+  -14.3642114     -1918.69584      373.400431     -25.3958401     20011
+   81.1943805      11438.0513     -2198.62554      156.120611     11011
+  -97.3240701     -13566.1443      2554.66748     -212.552115     02011
+   190.592395      5.72007104      19.3473584      369.014697     10111
+  -681.345877      11.0581498     -71.0735626     -1421.30507     01111
+  -1.91822029     -449.741669      86.8561920     -3.88665845     00211
+  -106.687061      21.3753199     -13.3322724     -177.074890     20002
+   635.350738     -132.444105      82.7053122      1158.01320     11002
+  -835.125874      186.172717     -115.959664     -1741.61113     02002
+   3.06174899      221.985076     -43.3397534      5.08551026     10102
+  -8.92400515     -682.419547      131.944729     -16.1898306     01102
+  -5.93441915     -1.10073089    -0.387050717     -10.1072756     00202
+  -32.9889804     -14661.6002      2798.56486     -58.1276687     10030
+   167.517882      51368.8943     -9618.43653      295.415008     01030
+   28.3941058      9.68440912      23.4686858      87.2909201     00130
+  -991.039515      46.5410861     -111.012273     -1919.22414     10021
+   3518.02262     -329.920257      408.281903      7348.25893     01021
+   17.6373144      4803.10768     -924.194977      35.2966403     00121
+  -21.1299702     -2355.14589      458.851005     -35.7625112     10012
+   58.3993981      7153.37736     -1379.14932      108.523448     01012
+   125.953372      12.6540917      9.76198657      213.987872     00112
+  -95.1280312      17.1315503     -10.9364018     -145.190535     10003
+   284.630982     -53.3887762      34.0723953      475.442592     01003
+   1.49562799      92.8494452     -18.0995701      2.34278439     00103
+  -79.5213480      20.8879779     -54.9235969     -242.773246     00040
+  -51.9910231     -16946.9750      3246.45578     -102.509862     00031
+  -659.873281     -11.7721902     -58.9266855     -1119.21453     00022
+  -10.4011417     -989.993417      192.843488     -16.7150638     00013
+  -32.1638309      5.22805783     -3.42382893     -45.5409473     00004
+ ------------------------------------------------------------------------------
diff --git a/DATFILES/SHMS_fr3_rec__order_5.dat b/DATFILES/SHMS_fr3_rec__order_5.dat
new file mode 100644
index 00000000..5179911b
--- /dev/null
+++ b/DATFILES/SHMS_fr3_rec__order_5.dat
@@ -0,0 +1,257 @@
+! SHMS reconstruction optics
+! made with Cosy from `shms-2011-26cm-monte.fox`
+! order: 5
+! 2017/03/02
+ ------------------------------------------------------------------------------
+  0.271575341    -0.562369031E-01 0.319566081E-01 0.610081289     10000
+  -1.40168967     0.324549698E-02-0.184425296E-02-0.352084997E-01 01000
+   0.00000000    -0.614627877     0.268258711      0.00000000     00100
+   0.00000000    -0.334494674E-01 -1.61240146      0.00000000     00010
+  0.292838822    -0.779452895E-01 0.442923940E-01 0.845582884     00001
+ -0.461777082     0.133175413    -0.795465553E-01 -1.10941840     20000
+   2.31345901    -0.651650789     0.410139671      7.40765439     11000
+  0.313171815    -0.189779816     0.503365625E-02  1.07619091     02000
+  0.832253162E-02  3.25891656    -0.623172326     0.130538752E-01 10100
+ -0.429553235E-01-0.337197010     0.115900052    -0.673753442E-01 01100
+  0.123978942E-02 0.104304463E-02-0.173094037E-02 0.293611934E-02 00200
+ -0.346040884E-01 -34.2794401      6.37461563    -0.337822756E-01 10010
+  0.178603084      2.78206782    -0.304747312     0.174361437     01010
+  0.628665828E-01-0.824087197E-01 0.307462384E-01 0.154433368     00110
+  -1.40937257     0.301926272    -0.187978798     -2.47726545     10001
+   3.33484635    -0.862548002     0.574689547      10.5041925     01001
+  0.130450160E-01  4.51258325    -0.861523847     0.259132153E-01 00101
+ -0.372584092     0.399413185    -0.891791525E-01-0.402593189     00020
+ -0.618394303E-01 -47.7437684      8.94535901    -0.107744042     00011
+  -1.06632062     0.166741450    -0.107916202     -1.30229160     00002
+   2.02204786    -0.537494821     0.320946553      4.39751589     30000
+  -17.7287122      4.88024881     -2.93121031     -45.2936945     21000
+   41.4726098     -12.1033754      7.27184134      135.859531     12000
+  -19.2547528      6.35601114     -3.56945325     -68.6229279     03000
+ -0.639687329E-01 -12.8390162      2.47275278    -0.116142488     20100
+  0.383562426      75.4946868     -14.1477165     0.765093581     11100
+ -0.277071262     -83.0427880      15.0668680    -0.857237445     02100
+  0.521382349    -0.660319017E-01 0.836917524E-01  1.62277288     10200
+  -2.71588577     0.417636863    -0.374384882     -8.42602578     01200
+  0.379938273E-04 -2.22772442     0.411212102     0.595932467E-04 00300
+  0.401258847      134.208981     -25.7567352     0.723062756     20010
+  -2.21408761     -779.349251      145.964198     -4.18430354     11010
+  0.744454921      871.241749     -162.500706      2.34060678     02010
+  -11.1502023      2.11028391     -1.81145056     -34.1647858     10110
+   56.9030546     -11.4096324      8.30827969      175.204252     01110
+  0.176859702E-02  71.0256202     -13.2910484     0.286760063E-02 00210
+   8.25911533     -1.83293852      1.12279865      14.9915932     20001
+  -47.6174640      11.2343899     -6.91073184     -102.172283     11001
+   55.1407027     -14.8476604      8.99669956      167.425330     02001
+ -0.200203451     -29.7959888      5.79495202    -0.355610730     10101
+  0.581102350      92.6441184     -17.5793541      1.10085095     01101
+  0.674591404     0.105565714E-01 0.737030604E-01  1.59446570     00201
+   59.0337410     -14.8057661      9.71260968      178.996899     10020
+  -300.510223      74.3557258     -46.1380545     -914.862619     01020
+ -0.194284343E-01 -753.743922      142.021234    -0.257292965E-01 00120
+   1.26360425      313.950245     -60.8321028      2.32007780     10011
+  -3.37979080     -961.090831      181.666938     -6.43192218     01011
+  -14.6993853     0.949357116     -1.68119854     -34.2620515     00111
+   11.3392101     -2.12339845      1.34371761      17.7676078     10002
+  -33.1512601      6.62921725     -4.19625684     -59.3627791     01002
+ -0.156245518     -18.1815606      3.55438552    -0.262047136     00102
+  0.474746080E-01  2656.39365     -502.850198     0.463471331E-01 00030
+   78.9827133     -11.1025869      9.41992856      183.089213     00021
+  0.994119583      193.354135     -37.7652042      1.77029229     00012
+   5.21699889    -0.833070759     0.548672095      7.31883661     00003
+  -10.2310470      2.58793362     -1.55296720     -20.8818053     40000
+   122.346406     -31.8016930      19.1514013      274.803184     31000
+  -484.927225      130.536708     -78.8502835     -1239.39171     22000
+   698.547705     -196.026025      118.569037      2117.59465     13000
+  -253.197685      71.4733280     -43.2279683     -793.955821     04000
+  0.478755489      50.8042226     -9.90654415     0.873955482     30100
+  -4.37397264     -447.898533      86.2746226     -8.66132023     21100
+   11.4763945      1021.87911     -193.798067      25.5532707     12100
+  -8.48802047     -353.060336      66.8753151     -21.2396696     03100
+  -3.36720859    -0.838236058E-01-0.415102092     -7.72252752     20200
+   24.0878686    -0.495442242E-01  2.90836971      60.9325017     11200
+  -34.4455158      1.63349908     -4.69517149     -108.631838     02200
+  0.442912829E-01  12.5587082     -2.42559826     0.848367234E-01 10300
+ -0.230283983     -47.3794481      9.03448090    -0.440507243     01300
+  0.283577623E-02-0.143540811E-01-0.547824347E-02 0.852018881E-02 00400
+  -3.26791034     -534.506883      103.795497     -5.92725408     30010
+   28.6301187      4659.91443     -893.080655      56.0463946     21010
+  -70.6746258     -10463.9772      1970.57193     -152.877065     12010
+   51.0546655      3328.38501     -620.439424      110.384945     03010
+   70.5111920     -3.43784640      9.33042304      161.394209     20110
+  -496.879287      38.6458480     -65.4747062     -1255.15133     11110
+   692.838002     -91.3622801      104.349751      2188.94309     02110
+  -1.25350164     -400.576729      77.1331109     -2.34946863     10210
+   6.41379076      1464.94649     -277.703946      12.0388385     01210
+  0.616071012E-01 0.431663751     0.233010610     0.205151952     00310
+  -53.7324214      12.0470374     -7.36030183     -98.1457889     30001
+   479.946013     -111.483954      68.2857467      965.271817     21001
+  -1264.83189      310.320245     -190.049701     -2920.57583     12001
+   908.437639     -243.926958      148.585765      2640.79126     03001
+   2.09423955      181.634158     -35.4615614      3.66998997     20101
+  -12.4222735     -1095.06205      211.310693     -23.6481174     11101
+   15.9439662      1318.52165     -249.844514      34.4087498     02101
+  -9.04889740    -0.981106225    -0.821042471     -17.5288403     10201
+   32.7896223      1.98193189      3.03790521      68.2379240     01201
+  0.669006170E-01  13.8708532     -2.68487439     0.137585094     00301
+  -364.345374      44.3259017     -51.4824092     -832.969317     20020
+   2544.78211     -394.818501      363.991890      6417.23269     11020
+  -3471.80741      769.376804     -575.098061     -10993.0814     02020
+   11.3713564      4214.76800     -808.266439      20.7767760     10120
+  -57.8302278     -15048.6462      2835.73631     -105.832362     01120
+  -2.94126792     -4.06795824     -3.57808304     -9.18394633     00220
+  -14.3642114     -1918.69583      373.400429     -25.3958400     20011
+   81.1943803      11438.0513     -2198.62553      156.120610     11011
+  -97.3240697     -13566.1443      2554.66747     -212.552114     02011
+   190.592397      5.72007042      19.3473587      369.014700     10111
+  -681.345885      11.0581522     -71.0735638     -1421.30508     01111
+  -1.91822032     -449.741675      86.8561930     -3.88665848     00211
+  -106.687061      21.3753198     -13.3322724     -177.074891     20002
+   635.350743     -132.444104      82.7053121      1158.01320     11002
+  -835.125883      186.172714     -115.959663     -1741.61114     02002
+   3.06174899      221.985076     -43.3397533      5.08551026     10102
+  -8.92400516     -682.419546      131.944729     -16.1898306     01102
+  -5.93441922     -1.10073087    -0.387050726     -10.1072757     00202
+  -32.9889805     -14661.6003      2798.56489     -58.1276688     10030
+   167.517883      51368.8950     -9618.43666      295.415008     01030
+   28.3941064      9.68440896      23.4686857      87.2909218     00130
+  -991.039530      46.5410894     -111.012275     -1919.22417     10021
+   3518.02268     -329.920270      408.281910      7348.25903     01021
+   17.6373146      4803.10775     -924.194990      35.2966406     00121
+  -21.1299702     -2355.14588      458.851003     -35.7625111     10012
+   58.3993979      7153.37734     -1379.14931      108.523448     01012
+   125.953374      12.6540913      9.76198680      213.987875     00112
+  -95.1280319      17.1315501     -10.9364018     -145.190536     10003
+   284.630985     -53.3887753      34.0723952      475.442597     01003
+   1.49562799      92.8494449     -18.0995700      2.34278440     00103
+  -79.5213500      20.8879780     -54.9235967     -242.773250     00040
+  -51.9910235     -16946.9753      3246.45584     -102.509863     00031
+  -659.873293     -11.7721877     -58.9266869     -1119.21455     00022
+  -10.4011417     -989.993413      192.843487     -16.7150638     00013
+  -32.1638312      5.22805774     -3.42382892     -45.5409478     00004
+   56.9874052     -14.0280263      8.44406126      113.166389     50000
+  -862.148504      217.000788     -130.924262     -1835.65902     41000
+   4799.47652     -1241.60187      750.626149      11147.8478     32000
+  -11898.1698      3183.83477     -1927.63729     -30857.8307     23000
+   12434.6516     -3462.29213      2097.50161      36948.2031     14000
+  -3990.49244      1146.30283     -695.128709     -12945.5677     05000
+  -3.44477032     -249.145828      48.6057862     -6.29724345     40100
+   41.7714168      3027.67374     -585.679647      81.4344326     31100
+  -171.531494     -12177.5931      2329.03675     -364.018985     22100
+   270.625730      17725.3388     -3335.70768      643.261694     13100
+  -126.957714     -6539.67012      1198.52782     -351.996902     04100
+   23.2462346      2.43155837      2.29253668      49.3366366     30200
+  -234.783393     -17.9606079     -23.9389059     -539.518291     21200
+   704.178643      25.5892552      77.1664334      1824.75535     12200
+  -576.444408      12.2697306     -71.2693576     -1828.16626     03200
+ -0.598599182     -84.4603491      16.4396122     -1.13912510     20300
+   4.45817688      605.281820     -116.354654      8.83333001     11300
+  -7.03512063     -915.661182      172.660638     -15.2093916     02300
+   1.06762704     0.374255924     0.119161486      2.95562701     10400
+  -5.59540997     -1.56625339    -0.450286240     -15.4431799     01400
+  0.217197000E-03-0.960608366     0.168448980     0.411150714E-03 00500
+   24.1580478      2632.70126     -511.988836      43.9432023     40010
+  -283.128549     -31772.9550      6125.08862     -549.087000     31010
+   1107.42109      126922.676     -24183.7800      2337.09747     22010
+  -1621.47504     -183964.370      34490.9352     -3824.14748     13010
+   659.869151      68870.4014     -12630.8408      1800.59807     04010
+  -485.210604     -16.1842214     -53.1948724     -1031.03277     30110
+   4859.46831      25.5791673      551.405275      11180.9997     21110
+  -14433.5182      504.059994     -1757.92419     -37456.4033     12110
+   11677.5132     -1058.56813      1592.31596      37107.0771     03110
+   16.8661919      2683.74362     -521.349453      31.9458035     20210
+  -123.178207     -18974.1474      3639.79305     -243.290295     11210
+   187.528059      28293.7118     -5322.14179      406.182661     02210
+  -47.5232327     -12.3285624     -5.60088482     -130.920636     10310
+   244.431098      48.5160794      21.8048230      674.824538     01310
+  0.431976467E-02  59.8136908     -11.0319431     0.864761359E-02 00410
+   367.377567     -82.6824915      50.4619769      673.160709     40001
+  -4435.92025      1023.92370     -626.038427     -8711.03977     31001
+   18493.3531     -4415.47173      2702.05022      39666.9109     22001
+  -30567.4222      7638.46524     -4671.44742     -73617.1308     13001
+   16038.4954     -4252.36261      2593.32705      45293.5060     04001
+  -19.4043828     -1193.12161      232.740037     -34.0166755     30101
+   174.493103      10939.1238     -2117.64680      326.128670     21101
+  -473.155134     -29745.1369      5698.26365     -962.418162     12101
+   370.379831      22233.4059     -4191.91515      845.592924     03101
+   91.0190854      14.9697702      6.95171402      172.875986     20201
+  -613.410062     -77.7304058     -50.4260848     -1251.62438     11201
+   926.799756      71.2278125      85.5228150      2115.72110     02201
+  -1.75130753     -195.741237      38.1734565     -3.26332266     10301
+   6.40012284      720.989443     -139.129269      12.2486999     01301
+   1.27109344     0.743554964     0.743139297E-01  3.18869907     00401
+   2499.68930     -92.0884395      300.960890      5321.22948     30020
+  -24933.5577      1656.32226     -3115.41289     -57451.6252     21020
+   73661.4307     -7942.31534      9882.57243      191450.910     12020
+  -59184.9250      9591.30798     -8838.09084     -188552.036     03020
+  -153.998922     -28195.2434      5464.23299     -290.242072     20120
+   1103.92870      197369.539     -37773.2044      2170.71865     11120
+  -1613.20094     -291108.369      54629.3971     -3496.90704     02120
+   775.584342      138.679038      96.0710850      2130.83121     10220
+  -3940.62199     -489.398388     -384.097382     -10885.0526     01220
+ -0.294033498     -1413.02750      264.755228    -0.557828885     00320
+   136.908065      12637.7063     -2459.05241      240.570548     30011
+  -1189.00726     -115052.551      22210.8941     -2230.01537     21011
+   3074.10115      310484.814     -59292.1644      6282.87279     12011
+  -2245.00467     -230632.952      43325.6304     -5153.99079     03011
+  -1905.33134     -170.893713     -168.479423     -3624.81709     20111
+   12735.6104      676.510595      1202.37578      26046.1290     11111
+  -19041.3456     -89.1798916     -1996.87135     -43631.5482     02111
+   49.6705800      6260.46872     -1218.72438      92.3424360     10211
+  -177.736416     -22749.9325      4381.96994     -340.054305     01211
+  -57.1634358     -26.8276872     -3.97845276     -142.039230     00311
+   955.320788     -197.644075      122.452961      1629.28796     30002
+  -8645.71138      1838.09648     -1140.13038     -15786.8327     21002
+   24022.7123     -5306.89371      3290.49341      47910.1278     12002
+  -19860.1945      4633.69315     -2864.62252     -44514.6215     03002
+  -41.0518476     -2186.45130      426.114423     -68.7276992     20102
+   244.190268      13439.4172     -2601.50144      436.382642     11102
+  -328.503492     -18478.6624      3543.14182     -639.758333     02102
+   118.919180      25.8939262      6.86989890      205.981939     10202
+  -404.064248     -69.2253993     -26.3853981     -745.324679     01202
+  -1.26449657     -114.704160      22.3668870     -2.26605584     00302
+   455.464686      98107.3191     -18964.7244      853.218781     20030
+  -3197.09543     -682046.123      130223.471     -6246.78311     11030
+   4428.96802      998321.180     -186937.682      9597.92772     02030
+  -5526.58960     -579.618541     -717.130860     -15173.1141     10130
+   27890.3721      1516.19385      2940.47657      77117.8731     01130
+   4.12740865      16022.0792     -3013.04039      7.64253774     00230
+   9846.83071      160.286895      986.066875      18773.2629     20021
+  -65566.5962      1354.63778     -6982.87458     -134372.683     11021
+   97426.3918     -6713.28525      11450.7709      223931.713     02021
+  -456.872353     -66175.1137      12853.5558     -848.384005     10121
+   1601.78891      238078.392     -45760.3184      3063.93531     01121
+   939.888077      347.481304      74.9163503      2324.91804     00221
+   291.291280      23217.1250     -4516.92215      491.395891     20012
+  -1672.25515     -141679.134      27370.4460     -3018.96270     11012
+   2145.08264      193215.095     -36959.2643      4231.12527     02012
+  -2498.26487     -348.210426     -176.637168     -4332.69216     10112
+   8422.08921      801.803136      657.778824      15569.9687     01112
+   36.1334242      3694.59848     -719.338793      64.6877708     00212
+   1253.94055     -239.430298      150.769632      2004.15183     20003
+  -7573.08007      1487.60127     -937.185346     -12941.0765     11003
+   10531.1436     -2156.83420      1356.43726      19652.8353     02003
+  -38.7031132     -1815.97136      353.365535     -61.7810020     10103
+   114.627679      5618.04358     -1086.75763      195.570480     01103
+   51.7940111      13.8809432      2.15620301      83.1013912     00203
+   14564.2549      511.990977      1974.52369      40035.0881     10040
+  -73363.6784      943.163943     -8305.08084     -203174.862     01040
+  -22.8085734     -88027.5212      16535.0877     -41.2193059     00140
+   1362.71596      231613.917     -44879.3389      2529.02565     10031
+  -4667.45713     -827371.337      158681.295     -8926.39149     01031
+  -6733.37773     -1886.39701     -600.492321     -16647.5823     00131
+   12959.2913      812.675183      1078.63618      22515.2213     10022
+  -43542.1228     -835.654469     -3950.38443     -80648.1551     01022
+  -335.014584     -39308.1721      7638.29187     -600.384561     00122
+   276.145232      19334.5383     -3758.95614      445.849699     10013
+  -788.763635     -59372.6331      11471.8453     -1366.71593     01013
+  -1092.59778     -202.863258     -60.5394738     -1753.76896     00113
+   831.520392     -146.935766      94.1466613      1252.09492     10004
+  -2518.45211      457.879726     -293.345340     -4046.44792     01004
+  -13.7319298     -575.917403      111.835289     -20.8987165     00104
+   44.4270743      188823.510     -35350.8790      78.3118688     00050
+   17812.3889      3504.86325      1749.96339      44166.2643     00041
+   1008.09985      138438.014     -26843.5381      1811.48774     00032
+   5691.22754      599.924140      391.062451      9145.39260     00023
+   98.5289267      6149.62744     -1194.22453      152.056469     00014
+   223.021664     -36.5318347      23.8422660      317.711926     00005
+ ------------------------------------------------------------------------------
diff --git a/DATFILES/SHMS_fr3_rec__order_6.dat b/DATFILES/SHMS_fr3_rec__order_6.dat
new file mode 100644
index 00000000..3974aa1d
--- /dev/null
+++ b/DATFILES/SHMS_fr3_rec__order_6.dat
@@ -0,0 +1,467 @@
+! SHMS reconstruction optics
+! made with Cosy from `shms-2011-26cm-monte.fox`
+! order: 6
+! 2017/03/02
+ ------------------------------------------------------------------------------
+  0.271575341    -0.562369031E-01 0.319566081E-01 0.610081289     10000
+  -1.40168967     0.324549698E-02-0.184425296E-02-0.352084997E-01 01000
+   0.00000000    -0.614627877     0.268258711      0.00000000     00100
+   0.00000000    -0.334494674E-01 -1.61240146      0.00000000     00010
+  0.292838822    -0.779452895E-01 0.442923940E-01 0.845582884     00001
+ -0.461777082     0.133175412    -0.795465553E-01 -1.10941840     20000
+   2.31345901    -0.651650789     0.410139671      7.40765439     11000
+  0.313171816    -0.189779817     0.503365657E-02  1.07619091     02000
+  0.832253162E-02  3.25891656    -0.623172326     0.130538752E-01 10100
+ -0.429553235E-01-0.337197010     0.115900052    -0.673753442E-01 01100
+  0.123978944E-02 0.104304462E-02-0.173094037E-02 0.293611941E-02 00200
+ -0.346040884E-01 -34.2794401      6.37461563    -0.337822756E-01 10010
+  0.178603084      2.78206782    -0.304747312     0.174361437     01010
+  0.628665824E-01-0.824087196E-01 0.307462383E-01 0.154433366     00110
+  -1.40937257     0.301926272    -0.187978798     -2.47726545     10001
+   3.33484635    -0.862548001     0.574689548      10.5041925     01001
+  0.130450160E-01  4.51258325    -0.861523847     0.259132153E-01 00101
+ -0.372584091     0.399413184    -0.891791521E-01-0.402593181     00020
+ -0.618394303E-01 -47.7437684      8.94535901    -0.107744042     00011
+  -1.06632062     0.166741450    -0.107916203     -1.30229160     00002
+   2.02204786    -0.537494821     0.320946553      4.39751589     30000
+  -17.7287122      4.88024881     -2.93121031     -45.2936945     21000
+   41.4726098     -12.1033754      7.27184133      135.859531     12000
+  -19.2547528      6.35601114     -3.56945325     -68.6229279     03000
+ -0.639687329E-01 -12.8390162      2.47275278    -0.116142488     20100
+  0.383562426      75.4946868     -14.1477165     0.765093581     11100
+ -0.277071262     -83.0427880      15.0668680    -0.857237445     02100
+  0.521382349    -0.660319016E-01 0.836917524E-01  1.62277288     10200
+  -2.71588577     0.417636863    -0.374384881     -8.42602577     01200
+  0.379938280E-04 -2.22772442     0.411212102     0.595932479E-04 00300
+  0.401258847      134.208981     -25.7567352     0.723062756     20010
+  -2.21408761     -779.349251      145.964198     -4.18430354     11010
+  0.744454921      871.241749     -162.500706      2.34060678     02010
+  -11.1502023      2.11028390     -1.81145056     -34.1647858     10110
+   56.9030546     -11.4096324      8.30827969      175.204252     01110
+  0.176859701E-02  71.0256202     -13.2910484     0.286760060E-02 00210
+   8.25911533     -1.83293852      1.12279865      14.9915932     20001
+  -47.6174640      11.2343899     -6.91073184     -102.172283     11001
+   55.1407027     -14.8476604      8.99669956      167.425330     02001
+ -0.200203451     -29.7959888      5.79495202    -0.355610730     10101
+  0.581102350      92.6441184     -17.5793541      1.10085095     01101
+  0.674591404     0.105565714E-01 0.737030604E-01  1.59446570     00201
+   59.0337410     -14.8057661      9.71260968      178.996899     10020
+  -300.510223      74.3557258     -46.1380545     -914.862618     01020
+ -0.194284342E-01 -753.743922      142.021234    -0.257292963E-01 00120
+   1.26360425      313.950245     -60.8321028      2.32007780     10011
+  -3.37979080     -961.090831      181.666938     -6.43192218     01011
+  -14.6993853     0.949357116     -1.68119854     -34.2620515     00111
+   11.3392101     -2.12339845      1.34371761      17.7676078     10002
+  -33.1512601      6.62921725     -4.19625684     -59.3627791     01002
+ -0.156245518     -18.1815606      3.55438552    -0.262047135     00102
+  0.474746078E-01  2656.39365     -502.850198     0.463471329E-01 00030
+   78.9827133     -11.1025869      9.41992856      183.089213     00021
+  0.994119583      193.354135     -37.7652042      1.77029229     00012
+   5.21699889    -0.833070758     0.548672097      7.31883661     00003
+  -10.2310470      2.58793363     -1.55296720     -20.8818053     40000
+   122.346406     -31.8016931      19.1514013      274.803184     31000
+  -484.927225      130.536708     -78.8502836     -1239.39171     22000
+   698.547705     -196.026026      118.569037      2117.59465     13000
+  -253.197685      71.4733299     -43.2279688     -793.955821     04000
+  0.478755489      50.8042226     -9.90654415     0.873955482     30100
+  -4.37397264     -447.898533      86.2746226     -8.66132023     21100
+   11.4763945      1021.87911     -193.798067      25.5532707     12100
+  -8.48802047     -353.060336      66.8753151     -21.2396696     03100
+  -3.36720859    -0.838236063E-01-0.415102092     -7.72252752     20200
+   24.0878685    -0.495442198E-01  2.90836971      60.9325017     11200
+  -34.4455158      1.63349907     -4.69517148     -108.631838     02200
+  0.442912828E-01  12.5587082     -2.42559826     0.848367234E-01 10300
+ -0.230283983     -47.3794481      9.03448089    -0.440507243     01300
+  0.283577733E-02-0.143540800E-01-0.547824407E-02 0.852017739E-02 00400
+  -3.26791034     -534.506883      103.795497     -5.92725407     30010
+   28.6301187      4659.91443     -893.080655      56.0463946     21010
+  -70.6746258     -10463.9772      1970.57193     -152.877065     12010
+   51.0546655      3328.38501     -620.439424      110.384945     03010
+   70.5111920     -3.43784639      9.33042303      161.394209     20110
+  -496.879287      38.6458479     -65.4747061     -1255.15133     11110
+   692.838001     -91.3622799      104.349751      2188.94309     02110
+  -1.25350164     -400.576728      77.1331109     -2.34946863     10210
+   6.41379076      1464.94649     -277.703946      12.0388385     01210
+  0.616070570E-01 0.431663738     0.233010617     0.205152083     00310
+  -53.7324214      12.0470375     -7.36030184     -98.1457889     30001
+   479.946013     -111.483955      68.2857468      965.271817     21001
+  -1264.83189      310.320246     -190.049701     -2920.57583     12001
+   908.437639     -243.926960      148.585765      2640.79126     03001
+   2.09423955      181.634158     -35.4615614      3.66998997     20101
+  -12.4222735     -1095.06205      211.310693     -23.6481174     11101
+   15.9439662      1318.52165     -249.844514      34.4087498     02101
+  -9.04889740    -0.981106226    -0.821042471     -17.5288403     10201
+   32.7896223      1.98193190      3.03790521      68.2379240     01201
+  0.669006170E-01  13.8708532     -2.68487439     0.137585094     00301
+  -364.345374      44.3259017     -51.4824091     -832.969317     20020
+   2544.78211     -394.818501      363.991889      6417.23269     11020
+  -3471.80741      769.376803     -575.098061     -10993.0814     02020
+   11.3713564      4214.76800     -808.266439      20.7767759     10120
+  -57.8302278     -15048.6462      2835.73631     -105.832362     01120
+  -2.94126738     -4.06795826     -3.57808303     -9.18394609     00220
+  -14.3642114     -1918.69583      373.400429     -25.3958400     20011
+   81.1943803      11438.0513     -2198.62553      156.120610     11011
+  -97.3240696     -13566.1443      2554.66747     -212.552114     02011
+   190.592397      5.72007044      19.3473587      369.014700     10111
+  -681.345885      11.0581522     -71.0735638     -1421.30508     01111
+  -1.91822032     -449.741674      86.8561930     -3.88665848     00211
+  -106.687061      21.3753198     -13.3322724     -177.074891     20002
+   635.350743     -132.444105      82.7053122      1158.01320     11002
+  -835.125883      186.172715     -115.959663     -1741.61114     02002
+   3.06174899      221.985076     -43.3397533      5.08551026     10102
+  -8.92400515     -682.419546      131.944729     -16.1898306     01102
+  -5.93441922     -1.10073087    -0.387050727     -10.1072757     00202
+  -32.9889805     -14661.6003      2798.56489     -58.1276688     10030
+   167.517883      51368.8950     -9618.43665      295.415008     01030
+   28.3941035      9.68440966      23.4686853      87.2909141     00130
+  -991.039530      46.5410893     -111.012275     -1919.22416     10021
+   3518.02268     -329.920269      408.281910      7348.25903     01021
+   17.6373146      4803.10774     -924.194989      35.2966405     00121
+  -21.1299702     -2355.14588      458.851003     -35.7625111     10012
+   58.3993979      7153.37734     -1379.14931      108.523448     01012
+   125.953374      12.6540913      9.76198680      213.987875     00112
+  -95.1280319      17.1315502     -10.9364018     -145.190536     10003
+   284.630985     -53.3887756      34.0723952      475.442597     01003
+   1.49562799      92.8494449     -18.0995700      2.34278439     00103
+  -79.5213439      20.8879758     -54.9235955     -242.773226     00040
+  -51.9910235     -16946.9753      3246.45584     -102.509862     00031
+  -659.873293     -11.7721877     -58.9266869     -1119.21455     00022
+  -10.4011416     -989.993413      192.843487     -16.7150638     00013
+  -32.1638312      5.22805775     -3.42382897     -45.5409478     00004
+   56.9874052     -14.0280264      8.44406126      113.166389     50000
+  -862.148504      217.000788     -130.924262     -1835.65902     41000
+   4799.47652     -1241.60187      750.626149      11147.8478     32000
+  -11898.1698      3183.83478     -1927.63729     -30857.8307     23000
+   12434.6516     -3462.29214      2097.50161      36948.2031     14000
+  -3990.49244      1146.30283     -695.128709     -12945.5677     05000
+  -3.44477032     -249.145828      48.6057862     -6.29724345     40100
+   41.7714168      3027.67374     -585.679647      81.4344326     31100
+  -171.531494     -12177.5931      2329.03675     -364.018985     22100
+   270.625730      17725.3388     -3335.70768      643.261693     13100
+  -126.957714     -6539.67012      1198.52782     -351.996902     04100
+   23.2462346      2.43155837      2.29253668      49.3366365     30200
+  -234.783393     -17.9606079     -23.9389058     -539.518291     21200
+   704.178643      25.5892554      77.1664333      1824.75535     12200
+  -576.444408      12.2697305     -71.2693576     -1828.16626     03200
+ -0.598599181     -84.4603491      16.4396122     -1.13912509     20300
+   4.45817688      605.281819     -116.354654      8.83333001     11300
+  -7.03512062     -915.661181      172.660638     -15.2093915     02300
+   1.06762705     0.374255925     0.119161485      2.95562699     10400
+  -5.59541001     -1.56625339    -0.450286237     -15.4431799     01400
+  0.217197036E-03-0.960608428     0.168448991     0.411150773E-03 00500
+   24.1580478      2632.70126     -511.988836      43.9432023     40010
+  -283.128549     -31772.9550      6125.08862     -549.087000     31010
+   1107.42109      126922.676     -24183.7800      2337.09747     22010
+  -1621.47504     -183964.370      34490.9352     -3824.14748     13010
+   659.869151      68870.4014     -12630.8408      1800.59807     04010
+  -485.210604     -16.1842215     -53.1948723     -1031.03277     30110
+   4859.46831      25.5791678      551.405274      11180.9997     21110
+  -14433.5182      504.059993     -1757.92419     -37456.4033     12110
+   11677.5132     -1058.56813      1592.31596      37107.0770     03110
+   16.8661919      2683.74362     -521.349453      31.9458035     20210
+  -123.178207     -18974.1474      3639.79305     -243.290295     11210
+   187.528059      28293.7117     -5322.14179      406.182661     02210
+  -47.5232327     -12.3285625     -5.60088479     -130.920635     10310
+   244.431098      48.5160796      21.8048229      674.824535     01310
+  0.431976306E-02  59.8136922     -11.0319433     0.864761108E-02 00410
+   367.377567     -82.6824917      50.4619769      673.160709     40001
+  -4435.92025      1023.92371     -626.038428     -8711.03977     31001
+   18493.3531     -4415.47174      2702.05023      39666.9109     22001
+  -30567.4222      7638.46527     -4671.44743     -73617.1309     13001
+   16038.4954     -4252.36263      2593.32705      45293.5060     04001
+  -19.4043828     -1193.12161      232.740037     -34.0166755     30101
+   174.493103      10939.1238     -2117.64680      326.128670     21101
+  -473.155134     -29745.1369      5698.26365     -962.418162     12101
+   370.379830      22233.4059     -4191.91514      845.592924     03101
+   91.0190854      14.9697702      6.95171401      172.875986     20201
+  -613.410062     -77.7304059     -50.4260848     -1251.62438     11201
+   926.799755      71.2278127      85.5228149      2115.72110     02201
+  -1.75130753     -195.741237      38.1734565     -3.26332266     10301
+   6.40012284      720.989443     -139.129269      12.2486999     01301
+   1.27109345     0.743554961     0.743139310E-01  3.18869908     00401
+   2499.68930     -92.0884393      300.960890      5321.22947     30020
+  -24933.5577      1656.32226     -3115.41289     -57451.6252     21020
+   73661.4307     -7942.31533      9882.57243      191450.910     12020
+  -59184.9250      9591.30797     -8838.09084     -188552.036     03020
+  -153.998922     -28195.2434      5464.23299     -290.242072     20120
+   1103.92870      197369.539     -37773.2044      2170.71865     11120
+  -1613.20094     -291108.369      54629.3971     -3496.90704     02120
+   775.584340      138.679038      96.0710844      2130.83120     10220
+  -3940.62199     -489.398391     -384.097380     -10885.0526     01220
+ -0.294033474     -1413.02750      264.755228    -0.557828849     00320
+   136.908065      12637.7063     -2459.05241      240.570548     30011
+  -1189.00726     -115052.551      22210.8941     -2230.01537     21011
+   3074.10115      310484.814     -59292.1644      6282.87278     12011
+  -2245.00467     -230632.952      43325.6304     -5153.99079     03011
+  -1905.33134     -170.893713     -168.479422     -3624.81709     20111
+   12735.6104      676.510596      1202.37578      26046.1290     11111
+  -19041.3456     -89.1798936     -1996.87135     -43631.5482     02111
+   49.6705799      6260.46871     -1218.72438      92.3424359     10211
+  -177.736415     -22749.9325      4381.96993     -340.054304     01211
+  -57.1634358     -26.8276872     -3.97845276     -142.039230     00311
+   955.320788     -197.644076      122.452961      1629.28796     30002
+  -8645.71138      1838.09648     -1140.13038     -15786.8327     21002
+   24022.7123     -5306.89373      3290.49342      47910.1278     12002
+  -19860.1945      4633.69317     -2864.62253     -44514.6215     03002
+  -41.0518476     -2186.45130      426.114423     -68.7276992     20102
+   244.190268      13439.4172     -2601.50144      436.382641     11102
+  -328.503492     -18478.6624      3543.14182     -639.758333     02102
+   118.919180      25.8939262      6.86989890      205.981939     10202
+  -404.064248     -69.2253994     -26.3853981     -745.324679     01202
+  -1.26449657     -114.704160      22.3668870     -2.26605583     00302
+   455.464686      98107.3190     -18964.7244      853.218781     20030
+  -3197.09543     -682046.122      130223.471     -6246.78311     11030
+   4428.96802      998321.180     -186937.682      9597.92772     02030
+  -5526.58958     -579.618546     -717.130857     -15173.1140     10130
+   27890.3720      1516.19387      2940.47656      77117.8729     01130
+   4.12740847      16022.0791     -3013.04037      7.64253749     00230
+   9846.83071      160.286896      986.066874      18773.2629     20021
+  -65566.5962      1354.63778     -6982.87458     -134372.683     11021
+   97426.3918     -6713.28524      11450.7709      223931.713     02021
+  -456.872352     -66175.1137      12853.5558     -848.384005     10121
+   1601.78891      238078.392     -45760.3183      3063.93531     01121
+   939.888074      347.481305      74.9163500      2324.91803     00221
+   291.291280      23217.1250     -4516.92215      491.395891     20012
+  -1672.25515     -141679.134      27370.4460     -3018.96270     11012
+   2145.08264      193215.095     -36959.2643      4231.12527     02012
+  -2498.26487     -348.210426     -176.637168     -4332.69216     10112
+   8422.08921      801.803137      657.778824      15569.9687     01112
+   36.1334242      3694.59848     -719.338793      64.6877707     00212
+   1253.94055     -239.430299      150.769632      2004.15183     20003
+  -7573.08007      1487.60128     -937.185348     -12941.0765     11003
+   10531.1436     -2156.83421      1356.43726      19652.8353     02003
+  -38.7031132     -1815.97136      353.365535     -61.7810020     10103
+   114.627679      5618.04358     -1086.75763      195.570480     01103
+   51.7940111      13.8809432      2.15620301      83.1013911     00203
+   14564.2549      511.990989      1974.52368      40035.0880     10040
+  -73363.6783      943.163905     -8305.08081     -203174.862     01040
+  -22.8085727     -88027.5206      16535.0876     -41.2193050     00140
+   1362.71596      231613.917     -44879.3389      2529.02565     10031
+  -4667.45713     -827371.336      158681.295     -8926.39148     01031
+  -6733.37771     -1886.39702     -600.492319     -16647.5823     00131
+   12959.2913      812.675184      1078.63618      22515.2213     10022
+  -43542.1228     -835.654472     -3950.38443     -80648.1551     01022
+  -335.014584     -39308.1721      7638.29187     -600.384561     00122
+   276.145231      19334.5383     -3758.95614      445.849699     10013
+  -788.763634     -59372.6331      11471.8453     -1366.71593     01013
+  -1092.59778     -202.863258     -60.5394739     -1753.76896     00113
+   831.520392     -146.935767      94.1466614      1252.09492     10004
+  -2518.45211      457.879729     -293.345341     -4046.44792     01004
+  -13.7319298     -575.917403      111.835290     -20.8987165     00104
+   44.4270733      188823.509     -35350.8788      78.3118677     00050
+   17812.3888      3504.86326      1749.96338      44166.2642     00041
+   1008.09985      138438.013     -26843.5381      1811.48774     00032
+   5691.22754      599.924140      391.062452      9145.39260     00023
+   98.5289265      6149.62744     -1194.22453      152.056469     00014
+   223.021664     -36.5318350      23.8422661      317.711927     00005
+  -337.509421      81.6690258     -49.2617602     -659.137367     60000
+   6169.95253     -1520.50640      918.686058      12722.8287     51000
+  -44127.0838      11112.0226     -6723.79442     -97050.4358     42000
+   155261.663     -40106.9530      24296.3619      368769.310     33000
+  -276171.572      73467.5756     -44534.7771     -718591.526     24000
+   226512.842     -62138.0595      37666.3267      652354.848     15000
+  -63524.4817      17751.8330     -10755.0866     -195042.521     06000
+   24.9420003      1358.26113     -264.765068      45.6728748     50100
+  -379.438571     -20851.0155      4040.85803     -731.664091     41100
+   2146.01352      117772.368     -22661.5093      4408.71191     32100
+  -5520.61754     -295846.695      56432.3573     -12262.3287     23100
+   6266.38364      312285.994     -58992.1443      15305.8228     14100
+  -2416.99690     -100973.290      19009.6203     -6557.31355     05100
+  -163.939003     -24.2249119     -13.7418705     -332.988638     40200
+   2155.48125      264.587658      190.851498      4648.92093     31200
+  -9824.71852     -900.537539     -934.098157     -22900.4151     22200
+   17790.3436      962.687020      1850.03300      45981.6308     13200
+  -10135.4333     -157.642729     -1165.76371     -30190.6185     04200
+   6.40165855      562.077852     -109.803026      12.0768168     30300
+  -66.1662168     -5746.38383      1114.03232     -130.513661     21300
+   207.666368      17516.7162     -3362.84788      437.347336     12300
+  -189.624810     -14570.2465      2761.35172     -441.147684     03300
+  -14.7395288     -6.55587229    -0.857932819     -33.2781508     20400
+   119.166950      47.7810308      6.57698941      279.214578     11400
+  -221.208276     -73.6488157     -13.0490725     -552.769264     02400
+  0.141193922      28.3486333     -5.52133125     0.294871034     10500
+ -0.739550573     -137.736836      26.6468572     -1.54068404     01500
+  0.663821717E-02-0.292282081E-01-0.685243335E-02 0.183880324E-01 00600
+  -177.500317     -14384.0536      2797.13749     -323.756192     50010
+   2629.21922      219668.159     -42462.0795      5050.98425     41010
+  -14365.4126     -1233948.64      236785.803     -29408.7283     32010
+   35297.0981      3082641.66     -586317.046      78106.0835     23010
+  -37652.5447     -3237914.43      609927.433     -91328.3919     14010
+   13418.8024      1042654.03     -195970.897      35486.4684     05010
+   3417.82552      265.682233      326.932669      6954.03929     40110
+  -44669.9428     -2355.30012     -4491.15050     -96501.2091     31110
+   202298.949      4353.99422      21710.5147      472200.968     22110
+  -363804.541      5829.43736     -42385.8582     -941044.256     13110
+   205878.079     -11124.0556      26291.6694      612541.416     04110
+  -180.585787     -17803.9616      3472.76578     -339.956144     30210
+   1841.57644      180347.032     -34907.8878      3627.10234     21210
+  -5680.25088     -543841.772      104233.947     -11954.0142     12210
+   5070.27597      446228.396     -84424.4034      11790.2958     03210
+   634.404830      232.972915      43.6445380      1432.50677     20310
+  -5063.06871     -1649.13534     -335.212421     -11879.4713     11310
+   9245.09527      2397.56327      655.769878      23173.1833     02310
+  -7.36643811     -1579.27929      307.466031     -15.1897919     10410
+   37.9141084      7445.84304     -1438.32955      78.2244836     01410
+ -0.257965911E-01  1.92995391     0.479028702    -0.639159835E-01 00510
+  -2584.00456      582.551712     -355.323904     -4740.40665     50001
+   39298.5107     -9036.87305      5519.51951      76098.9622     41001
+  -224600.782      52936.3245     -32361.0810     -464126.096     32001
+   592594.575     -144034.914      88066.9824      1325237.15     23001
+  -703642.501      177668.973     -108541.863     -1733311.25     14001
+   289523.871     -76442.1109      46607.3011      801909.021     05001
+   171.366300      8177.07333     -1592.63584      301.918300     40101
+  -2071.51631     -100610.315      19490.2615     -3842.85050     31101
+   8730.42538      428499.538     -82456.1605      17258.8152     22101
+  -14884.6921     -725274.088      138390.777     -31845.7525     13101
+   8408.11416      389530.782     -73556.8676      19837.2672     04101
+  -842.787534     -162.725736     -56.8544714     -1582.16058     30201
+   8303.79449      1352.53440      609.876245      16510.5316     21201
+  -25249.0913     -3193.88880     -2054.58631     -54194.3776     12201
+   22893.2540      1900.20407      2111.22207      54674.1791     03201
+   27.0316737      1998.31058     -390.287858      49.3222225     20301
+  -184.425555     -13722.0709      2661.65813     -350.649939     11301
+   287.116975      21308.6214     -4096.26285      580.917280     02301
+  -37.3112347     -21.0015636    -0.897914468     -76.9285178     10401
+   151.317332      74.7531764      4.11494043      318.964868     01401
+  0.202769495      30.2331068     -5.88796213     0.436694982     00501
+  -17587.1377     -156.280046     -1884.81597     -35854.0189     40020
+   229212.728     -3975.34694      25765.7717      495962.115     31020
+  -1034637.43      51479.8793     -123746.842     -2417778.11     22020
+   1853650.43     -163572.127      239511.816      4796859.79     13020
+  -1045080.43      132322.680     -147041.474     -3105205.67     04020
+   1658.24845      186672.374     -36346.4127      3114.25570     30120
+  -16691.7704     -1877327.25      362723.241     -32803.7435     21120
+   50561.8464      5611939.39     -1073680.74      106216.375     12120
+  -44018.5085     -4551427.75      859622.058     -102140.440     03120
+  -10104.4784     -2974.37562     -796.944491     -22827.6414     20220
+   79874.1254      20246.6876      6140.24499      187607.419     11220
+  -144005.115     -26894.7501     -11912.7141     -361645.823     02220
+   149.968417      34500.6823     -6705.98983      305.836375     10320
+  -762.417317     -159327.429      30717.8616     -1558.73880     01320
+  -7.99340888     -51.1898738     -13.5083168     -22.2192265     00420
+  -1225.99117     -86741.7389      16863.7524     -2160.92218     40011
+   14427.9285      1061738.37     -205276.247      26801.3511     31011
+  -58757.6319     -4496739.61      863460.139     -116445.222     22011
+   95770.9980      7567322.12     -1440589.01      205629.240     13011
+  -50939.7547     -4042813.45      761583.751     -120549.058     04011
+   17603.6062      2123.05127      1407.44247      33106.6478     30111
+  -172427.593     -15684.1371     -14823.3285     -343526.127     21111
+   520888.003      28695.3100      48957.6963      1120469.36     12111
+  -468862.927     -5697.23284     -49220.0813     -1122179.05     03111
+  -765.513173     -63520.1008      12389.6989     -1396.02291     20211
+   5149.75287      432299.671     -83736.7084      9796.91407     11211
+  -7873.99255     -663909.955      127439.186     -15965.7466     02211
+   1613.86758      771.319684      58.8609056      3324.30489     10311
+  -6467.46023     -2670.49190     -255.272830     -13645.6536     01311
+  -10.6714338     -1706.82838      332.400292     -22.6869511     00411
+  -8307.77721      1751.33298     -1080.93561     -14393.9191     40002
+   100990.725     -21739.2343      13431.2298      184597.138     31002
+  -432658.952      95679.0308     -59129.2996     -843999.823     22002
+   760933.671     -174270.406      107609.515      1608307.31     13002
+  -451904.883      108307.418     -66724.3293     -1055406.75     04002
+   472.030506      19997.6838     -3890.26712      798.986266     30102
+  -4258.79397     -184894.469      35790.4938     -7592.89212     21102
+   11907.3432      527206.935     -101424.652      22640.8153     12102
+  -10100.0135     -449577.721      85806.4019     -20816.8043     03102
+  -1632.83012     -381.837757     -86.9907352     -2859.46239     20202
+   10744.1931      2140.58088      646.815838      19866.7672     11202
+  -16389.3533     -2593.02815     -1132.79865     -32626.5353     02202
+   37.8906387      2403.65549     -469.030805      66.4572105     10302
+  -128.688324     -8328.19426      1615.23824     -234.816534     01302
+  -23.3447879     -15.7808640     0.140422724     -44.7517896     00402
+  -4957.48714     -648572.771      126041.796     -9281.46512     30030
+   49184.7374      6486980.90     -1251025.26      96346.0648     21030
+  -145838.861     -19256914.0      3677539.94     -305373.704     12030
+   123094.577      15461814.2     -2915181.63      284307.477     03030
+   70730.0907      15889.5293      6266.52605      159935.913     20130
+  -555417.326     -101691.484     -48498.5080     -1305679.49     11130
+   991909.304      113523.998      93702.8764      2493446.31     02130
+  -1494.13719     -371188.363      71989.0634     -3015.30705     10230
+   7534.78239      1689981.50     -325102.948      15261.0842     01230
+   207.674911      703.111076      198.286347      574.274576     00330
+  -90773.0493     -4492.34824     -8358.72815     -171070.144     30021
+   886718.132      16975.4486      87186.7405      1769950.20     21021
+  -2669629.67      46230.1854     -284618.902     -5752745.84     12021
+   2392888.08     -145146.640      282113.066      5736310.79     03021
+   7059.90249      668296.112     -130144.078      12873.1625     20121
+  -46842.7664     -4516507.68      873447.231     -89171.2400     11121
+   70282.7632      6874077.44     -1317368.03      142803.885     02121
+  -25815.2650     -10295.8733     -1242.87709     -53177.1348     10221
+   102585.336      34445.8746      5254.12594      216649.602     01221
+   219.095183      37683.0862     -7327.76600      461.013378     00321
+  -3393.41553     -212500.640      41289.2662     -5765.02534     30012
+   29804.4054      1954505.69     -377830.150      53417.3031     21012
+  -80536.9470     -5541292.88      1064409.08     -154240.057     12012
+   65347.7036      4696733.73     -894837.631      135932.040     03012
+   34178.1500      5434.18255      2267.56660      59950.6026     20112
+  -223591.100     -28040.1053     -16365.2776     -414276.519     11112
+   338802.033      28959.3181      27809.6770      676214.021     02112
+  -1077.54145     -76679.7699      14946.3835     -1890.75087     10212
+   3606.93612      263412.585     -51029.5073      6595.02830     01212
+   1015.29084      592.484282      8.20075288      1941.20820     00312
+  -14365.6218      2839.70410     -1774.74828     -23610.6460     30003
+   130965.288     -26455.5293      16544.7788      226928.950     21003
+  -374059.983      77769.8317     -48617.0587     -691609.278     12003
+   328902.263     -71074.5328      44348.6893      659518.154     03003
+   652.161938      24823.5317     -4821.84148      1060.18439     20103
+  -3910.69703     -153385.617      29658.9208     -6698.78207     11103
+   5448.34179      219536.196     -42209.7638      9963.42354     02103
+  -1413.59529     -383.785034     -57.5508466     -2327.09606     10203
+   4670.86292      1087.45155      225.973269      8089.23473     01203
+   17.6346643      975.818447     -190.130005      29.6690161     00303
+  -183924.331     -28852.8070     -18045.7097     -416444.410     20040
+   1438434.46      163362.056      140473.189      3383978.86     11040
+  -2551665.74     -106415.122     -271135.085     -6415600.89     02040
+   7302.74474      1972821.46     -381642.768      14579.2423     10140
+  -36657.5315     -8898952.51      1707833.83     -73483.0430     01140
+  -2175.05662     -5311.84078     -1603.87269     -6007.61457     00240
+  -21209.0205     -2329895.12      452944.968     -38672.3331     20031
+   138561.452      15662602.7     -3023874.18      263933.892     11031
+  -203283.282     -23665607.2      4527816.53     -413925.411     02031
+   181392.769      58714.7591      10758.6544      373987.886     10131
+  -716976.732     -187263.224     -44887.2281     -1515652.86     01131
+  -2201.83137     -409031.792      79365.4214     -4592.66778     00231
+  -176644.880     -15134.5199     -13958.4913     -310447.445     20022
+   1152575.16      59732.9884      99111.0885      2139588.84     11022
+  -1740290.75     -20636.2200     -165383.383     -3480739.10     02022
+   9982.55610      809570.698     -157583.466      17539.2487     10122
+  -32941.7143     -2762573.40      534436.695     -60391.8490     01122
+  -16316.0991     -8129.29890     -346.099830     -31164.7061     00222
+  -4709.52647     -264255.328      51302.0600     -7702.93391     20013
+   27490.4291      1624244.44     -313848.496      47481.5267     11013
+  -37015.2808     -2311075.34      443941.033     -68441.8066     02013
+   29659.9168      5760.88724      1610.88607      48887.7088     10113
+  -97443.0097     -15300.9514     -6022.19164     -169062.287     01113
+  -503.807057     -31248.0631      6083.20505     -848.357650     00213
+  -14097.2967      2618.55236     -1658.22785     -22058.4120     20004
+   85748.3259     -16284.0107      10315.0712      141335.343     11004
+  -122535.595      23985.9656     -15178.2043     -215444.364     02004
+   452.285970      15632.2122     -3031.17822      706.372115     10104
+  -1354.33952     -48464.4070      9358.41128     -2229.12072     01104
+  -461.310351     -141.747667     -13.5328724     -718.613115     00204
+  -14031.7529     -4153001.37      801208.549     -27675.6400     10050
+   70308.6512      18633564.6     -3567214.63      139236.158     01050
+   10488.1364      21073.1351      6790.07897      28974.1546     00150
+  -473330.646     -118811.500     -33206.7342     -977502.799     10041
+   1865936.73      350707.714      137683.006      3948436.37     01041
+   10861.8563      2190696.50     -423975.896      22472.9245     00141
+  -30137.8060     -2832205.08      550458.433     -53056.4741     10032
+   97865.6010      9616345.95     -1857581.69      180024.697     01032
+   115107.461      48086.7498      3876.94812      219934.456     00132
+  -153677.710     -18238.9718     -10371.0668     -253716.333     10023
+   503633.306      41103.2065      37777.1894      875263.447     01023
+   4689.87602      331115.470     -64385.3192      7913.81400     00123
+  -3280.03181     -166726.115      32333.5776     -5163.55590     10014
+   9560.12486      514135.395     -99277.1707      15904.0890     01014
+   9705.05790      2207.54137      421.666012      15129.2855     00114
+  -7446.63559      1301.66374     -835.773381     -11125.7182     10005
+   22687.8400     -4055.00951      2603.63779      35670.5595     01005
+   126.039234      3992.79874     -772.708985      189.244304     00105
+  -19153.6536     -34549.9585     -11759.5285     -52952.1358     00060
+  -21085.8334     -4643214.05      896106.937     -43260.9298     00051
+  -301430.771     -102577.628     -13781.5750     -576762.648     00042
+  -14232.3527     -1162531.02      225761.270     -24091.7874     00033
+  -50422.1309     -7541.88723     -2879.34175     -78698.1384     00024
+  -917.782159     -42671.8753      8265.09481     -1390.91123     00015
+  -1654.74395      272.439207     -177.483318     -2366.21348     00006
+ ------------------------------------------------------------------------------
diff --git a/DATFILES/hms_recon_coeff.dat b/DATFILES/hms_recon_coeff.dat
new file mode 100644
index 00000000..3743bbc0
--- /dev/null
+++ b/DATFILES/hms_recon_coeff.dat
@@ -0,0 +1,170 @@
+! recostruction matrix elements for HMS, tune HMS-100
+! <theta y phi delta | nmpq>;(x**n xp**m y**p yp**q)
+! as of 02/20/97, no z offset included: this statement is obsolete
+! created: 06/28/98
+! zeroth order matrix elements from fitting:
+! <theta|> -4.7276368293E-03 rad
+! <y|> -1.1606458055E-04 m
+! <phi|>  4.8280702357E-05 rad 
+! <p|> -3.8725980576E-03 %
+! <theta y phi delta | nmpq>;(x**n xp**m y**p yp**q)
+ ---------------------------------------------------------------------
+   .342704157      .183629749E-01 -.742670280E-02  .256021141     1000
+  -3.02138749     -.152502758      .472422058E-01  .130192976     0100
+  -.673199668E-02 -.407567405      .258501913      .278565265E-02 0010
+   .110287597     -.483378951     -2.16704420      .407874298E-01 0001
+  -.495779826     -.548491564E-01  .147936777E-01 -.318166729     2000
+   4.49999138      .451213193     -.151686093      3.07552684     1100
+   .796294361      1.48286554     -.303847305     -.297352223E-01 1010
+   .261524802     -20.7938893      5.00402934     -.249121889     1001
+  -1.65128983     -.995337651      .536837816      2.14776190     0200
+  -6.47649939      .226936328     -.123499047     -.266124530     0110
+  -3.98529962     -6.32858639      1.39991277      4.27708696     0101
+   .113653600E-01  .690088486E-01 -.437114986E-01 -.438953228E-01 0020
+   .881941403      .227473684     -.628899349E-01  .475605891     0011
+  -3.71740449      3.93769576      .113368630     -3.53478948     0002
+   1.95723299     -.820253354E-01  .103519807      .936834319     3000
+  -31.4466915      2.57527314     -2.51407447     -13.5405899     2100
+  -5.89608158     -3.50686592      .471876566     -.312542194E-01 2010
+   40.5129114      58.0458860     -12.5399800     -2.74488175     2001
+   156.932838     -23.8014414      21.1502247      51.8797642     1200
+   57.3250219      40.7718723     -7.13532706      .284008412     1110
+  -298.395506     -639.340672      173.523125      10.6819836     1101
+   1.88702326      .266847247      .271167866      .954315611     1020
+  -24.4326614     -33.6584609     -.114525239      .434687181     1011
+   180.539265      53.7698885      3.76822635      31.9077575     1002
+  -279.667300      64.3177661     -60.6190378     -20.4989850     0300
+  -64.0800162     -86.2289723      11.5806188      3.95564331     0210
+  -247.924962      1524.67217     -483.832639     -46.7762650     0201
+  -21.7150970     -13.4646889      .401043380     -7.06883817     0120
+   211.296709      323.699221     -6.72775908      25.6924121     0111
+  -1440.32950      361.536621     -384.751537     -467.898102     0102
+  -.656643228      3.62511407     -1.27960041     -.358205667     0030
+  -1.58376006      67.9025208     -22.9733471     -3.15593520     0021
+   23.7224929     -987.049261      560.285176      34.1790370     0012
+  -180.294278      5983.27702     -3518.42552     -71.5085362     0003
+  -4.16665084      1.49723155     -.759630854     -2.30278775     4000
+   69.1944845     -46.6812620      21.8666725      58.0248309     3100
+   18.5878217      3.69400020      .602106657E-01 -1.46212838     3010
+  -227.551196     -96.3179597      .489353421      20.4063547     3001
+  -243.511203      535.564222     -239.722086     -491.562374     2200
+  -230.021793     -40.7163893      .940804015      47.2957535     2110
+   3150.68103      1424.96519      38.5622615     -521.870646     2101
+  -10.2926426     -3.56149925     -1.10754304     -1.00472512     2020
+   138.770921      263.397128     -15.7671082     -26.1090659     2011
+  -211.394983     -1895.91500      234.605250      406.369321     2002
+  -832.967425     -2704.20708      1207.70554      1718.29721     1300
+   429.578554     -234.967423     -20.3231936     -432.372956     1210
+  -11612.7737     -2668.84972     -1176.05843      4021.85608     1201
+   130.736123      70.7440580      5.42914965      16.7434624     1120
+  -1905.84788     -3551.03419      224.098878      343.660595     1111
+   363.670026      16804.9474     -2673.42755     -4586.96491     1102
+   6.91955519     -9.98074257      7.57861652      4.98155457     1030
+  -114.693315      63.5563817     -65.8809200     -36.5101930     1021
+   710.699660      4980.54374     -780.431756      60.2646297     1012
+  -7520.04385     -13187.0100      2486.26739      536.066295     1003
+   4347.54210      5161.66425     -2427.09769     -1950.10403     0400
+   1156.75126      1725.44332      188.803395      1323.39948     0310
+   12047.3853     -8815.37699      3407.72589     -11081.6594     0301
+  -26.9308548      60.3544886     -47.8411214     -67.2731587     0220
+   826.904198      4520.84740      916.341424     -974.052221     0211
+   19983.2818      7167.34390     -4225.20780      9358.46286     0202
+  -26.0105902     -188.661888      54.6866678     -37.4367181     0130
+   648.226508      2521.63446     -1052.88888      292.436840     0121
+  -8498.59600     -31139.3846      8203.03704     -697.205971     0112
+   63967.4235      128236.246     -24237.5465     -2336.48364     0103
+  -1.07911254      1.22231630     -.173675833      3.83526317     0040
+   9.94134973      258.488500     -10.9579494     -84.9391998     0031
+   158.508425     -2684.84975     -3.07844063      726.975013     0022
+  -3017.64724      14872.1349     -469.458295     -1667.46714     0013
+   466.801936     -55258.4859      4661.52259      3912.11649     0004
+   1.88180503     -2.54978699      1.02249535      4.96781903     5000
+   27.9678707      85.1165188     -25.6500831     -214.635508     4100
+  -19.6018738     -1.90234997     -2.26475906      3.07907961     4010
+   338.908065     -3.13670480      84.7364876     -48.5819865     4001
+  -1595.43911     -986.185572      116.663362      3438.51266     3200
+   256.718721     -2.53553430      86.9081338     -71.7570318     3110
+  -5619.82737      2554.66160     -3220.55423      1952.97191     3101
+   5.63505956      5.65523837     -.178636671     -9.82929708     3020
+   28.4611788     -535.882022      112.200518      63.7792928     3011
+  -3335.14896      6481.34708     -841.916671     -2407.64911     3002
+   17748.8967      4446.27557      1781.86526     -27888.4078     2300
+  -365.812295      713.968459     -1184.61359      175.230779     2210
+   26149.2365     -61279.3626      44610.2113     -20776.5089     2201
+   82.8634399     -82.7911036      40.7995535      223.223395     2120
+  -4711.16007      7972.91446     -3042.34279     -1765.82660     2111
+   111837.314     -122751.891      25531.4588      55520.9916     2102
+  -13.8546171     -44.6122707     -1.49148927      7.53241271     2030
+   379.629516      2219.19103     -283.396915     -8.69875712     2021
+  -2940.77125     -39662.7132      6848.07035      332.501630     2012
+  -4833.05018      291262.775     -40868.2995     -930.899000     2003
+  -75870.6114     -3035.26190     -19402.1263      118850.529     1400
+  -1090.33337     -5565.51679      8155.50571      3660.70792     1310
+  -76601.8398      456263.377     -281440.652      79440.7749     1301
+  -2721.78279     -512.627944     -452.280825     -1934.55934     1220
+   83864.4298      5816.23957      23306.1137      11961.6529     1211
+  -1306713.82      400125.281     -216284.553     -418149.697     1202
+   100.956187      1309.56623     -226.290462     -173.118732     1130
+  -4032.82257     -56824.1834      10616.2930      1607.73072     1121
+   79840.4758      782713.236     -150889.930     -14254.2451     1112
+  -330377.607     -4233718.14      646182.662      39788.7678     1103
+   6.06681234      7.12938618     -.220192683     -1.11240314     1040
+  -243.665570     -948.255482      153.244584      165.982247     1031
+   7181.11150      25876.5416     -2553.92502     -3998.95843     1022
+  -75005.8412     -104271.766     -23488.8683      29493.1698     1013
+   124433.465     -149264.761      219376.542     -13196.6766     1004
+   113262.801     -18667.6651      53113.3093     -209797.800     0500
+  -11632.6603      7242.92619     -21110.0334     -18679.7717     0410
+   301044.558     -1035121.76      655646.504     -71841.5676     0401
+   8371.11263      2221.54910      1543.28892      6295.96049     0320
+  -258028.488     -135832.589     -66162.4672     -36062.5709     0311
+   4218622.48      128274.356      663799.998      1118597.09     0302
+  -167.926507     -3321.19532      237.754153      1077.44822     0230
+   15453.6273      205593.650     -24454.8426     -11675.9844     0221
+  -438724.451     -3267312.69      463392.237      52657.7588     0212
+   2249544.29      17936516.3     -2298746.48     -118752.747     0203
+  -25.5889867     -61.6539042      41.8282483     -107.686882     0140
+   1866.01089     -1606.56535     -3207.84127      946.869731     0131
+  -71480.9824     -31234.8373      79600.1247      25102.1443     0122
+   814034.645      434180.428     -606101.312     -259877.198     0113
+  -2102030.39     -1584569.00      1583206.11      303094.278     0104
+  -3.59866781     -19.7084031     -18.4827350     -1.36754912     0050
+   50.9893561      384.737475      1103.07001      164.395576     0041
+   1986.13677      18001.7932     -34498.4820      90.2668576     0032
+  -30037.4064     -584192.598      674006.856      1100.41524     0023
+   20801.9238      6212983.14     -6436686.94     -17333.4694     0014
+   408508.663     -23722308.6      22707746.7      30963.1531     0005
+   0.0            0.000000000E+00 0.000000000E+00 0.768177700     00001
+  0.0             0.000000000E+00 0.000000000E+00 -1.24824954     10001
+  0.0             0.000000000E+00 0.000000000E+00  7.18980365     01001
+  0.0             0.000000000E+00 0.000000000E+00 -1.79480024     00002
+   0.0            0.000000000E+00 0.000000000E+00  4.30979026     20001
+   0.0            0.000000000E+00 0.000000000E+00 -47.5141035     11001
+   0.0            0.000000000E+00 0.000000000E+00  127.404997     02001
+   0.0            0.000000000E+00 0.000000000E+00  1.52132362     00201
+   0.0            0.000000000E+00 0.000000000E+00 -44.8420242     00111
+   0.0            0.000000000E+00 0.000000000E+00  13.9035869     10002
+   0.0            0.000000000E+00 0.000000000E+00 -75.1770025     01002
+   0.0            0.000000000E+00 0.000000000E+00  332.945301     00021
+  0.000000000E+00  412.398418     -118.551680     0.000000000E+00 00012
+   0.0            0.000000000E+00 0.000000000E+00  15.5951865     00003
+  0.0             0.000000000E+00 0.000000000E+00 -15.7177358     30001
+  0.0             0.000000000E+00 0.000000000E+00  249.924995     21001
+  0.0             0.000000000E+00 0.000000000E+00 -1205.61003     12001
+  0.0             0.000000000E+00 0.000000000E+00  1650.70638     03001
+  0.0             0.000000000E+00 0.000000000E+00 -8.63945412     10201
+  0.0             0.000000000E+00 0.000000000E+00  51.7345340     01201
+  0.0             0.000000000E+00 0.000000000E+00  246.328770     10111
+  0.0             0.000000000E+00 0.000000000E+00 -1468.88025     01111
+  0.0             0.000000000E+00 0.000000000E+00 -77.6962058     20002
+  0.0             0.000000000E+00 0.000000000E+00  808.267218     11002
+  0.0             0.000000000E+00 0.000000000E+00 -1887.27393     02002
+  0.0             0.000000000E+00 0.000000000E+00 -13.1721627     00202
+  0.0             0.000000000E+00 0.000000000E+00 -1758.72381     10021
+  0.0             0.000000000E+00 0.000000000E+00  10443.6142     01021
+  0.0             0.000000000E+00 0.000000000E+00  377.176889     00112
+  0.0             0.000000000E+00 0.000000000E+00 -174.332974     10003
+  0.0             0.000000000E+00 0.000000000E+00  893.518077     01003
+  0.0             0.000000000E+00 0.000000000E+00 -2708.57078     00022
+  0.0             0.000000000E+00 0.000000000E+00 -149.156349     00004
+ ---------------------------------------------------------------------
diff --git a/DBASE/general.param b/DBASE/general.param
index 4132af98..b41241af 100644
--- a/DBASE/general.param
+++ b/DBASE/general.param
@@ -1,5 +1,7 @@
 #real raddeg
 raddeg=3.14159265/180
+#real cminch
+cminch=2.54
 
 ; General Hall-C parameter files
 #include "PARAM/GEN/genflags.param"
@@ -14,14 +16,14 @@ raddeg=3.14159265/180
 #include "PARAM/HMS/GEN/hmsflags.param"
 #include "PARAM/HMS/GEN/htracking.param"
 
-; HMS detector specific paramter files  
+; HMS detector specific paramter files
 #include "PARAM/HMS/AERO/haero.param"
 #include "PARAM/HMS/CAL/hcal.pos"
 #include "PARAM/HMS/CAL/hcal.param"
 #include "PARAM/HMS/CER/hcer.param"
-#include "PARAM/HMS/DC/hdc_offsets.param"
-#include "PARAM/HMS/DC/hdc.pos"
 #include "PARAM/HMS/DC/hdc.param"
+#include "PARAM/HMS/DC/hdc.pos"
+#include "PARAM/HMS/DC/hdc_tracking.param"
 #include "PARAM/HMS/DC/hdriftmap.param"
 #include "PARAM/HMS/HODO/hhodo.pos"
 #include "PARAM/HMS/HODO/hhodo.param"
@@ -34,6 +36,13 @@ raddeg=3.14159265/180
 #include "PARAM/SHMS/GEN/ptracking.param"
 
 ; SHMS detector specific paramter files
-#include "PARAM/SHMS/DC/pdc.pos"
+#include "PARAM/SHMS/AERO/paero.param"
+#include "PARAM/SHMS/CAL/pcal.param"
+#include "PARAM/SHMS/HGCER/phgcer.param"
+#include "PARAM/SHMS/NGCER/pngcer.param"
 #include "PARAM/SHMS/DC/pdc.param"
+#include "PARAM/SHMS/DC/pdc.pos"
+#include "PARAM/SHMS/DC/pdc_tracking.param"
 #include "PARAM/SHMS/DC/pdriftmap.param"
+#include "PARAM/SHMS/HODO/phodo.pos"
+#include "PARAM/SHMS/HODO/phodo.param"
diff --git a/DBASE/standard.database b/DBASE/standard.database
index 4fd1440e..c894b7b3 100644
--- a/DBASE/standard.database
+++ b/DBASE/standard.database
@@ -1,5 +1,3 @@
 0-99999
 g_ctp_parm_filename ="DBASE/general.param"
-g_decode_map_filename ="MAPS/HMS/hdc.map"
-g_decode_map_filename ="MAPS/SHMS/pdc.map"
 g_ctp_kinematics_filename ="DBASE/standard.kinematics"
diff --git a/DBASE/standard.kinematics b/DBASE/standard.kinematics
index 332dde9d..defaf2c4 100644
--- a/DBASE/standard.kinematics
+++ b/DBASE/standard.kinematics
@@ -1,9 +1,9 @@
 1-99999
-gpbeam=999
-gtarg_num = 999
-htheta_lab = 999
-stheta_lab = 999
-hpcentral = 999
-spcentral = 999
+gpbeam=6.
+gtarg_num = 1
+htheta_lab = 15.
+ptheta_lab = 15.
+hpcentral = 2.
+ppcentral = 2.
 hpartmass = 0.00051099
-spartmass = 0.00051099
+ppartmass = 0.00051099
diff --git a/DEF-files/HMS/CAL/hcalana.def b/DEF-files/HMS/CAL/hcalana.def
new file mode 100644
index 00000000..b3f449ac
--- /dev/null
+++ b/DEF-files/HMS/CAL/hcalana.def
@@ -0,0 +1,59 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+block H.cal.*
+
+TH1F hcal_hA_pos_occu 'HMS hA+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.1pr.posAdcCounter 13 0.5 13.5
+TH1F hcal_hA_neg_occu 'HMS hA- ADC Occupancy; Block Number; Number of ADC Hits' H.cal.1pr.negAdcCounter 13 0.5 13.5
+TH1F hcal_hB_pos_occu 'HMS hB+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.2ta.posAdcCounter 13 0.5 13.5
+TH1F hcal_hB_neg_occu 'HMS hB- ADC Occupancy; Block Number; Number of ADC Hits' H.cal.2ta.negAdcCounter 13 0.5 13.5
+TH1F hcal_hC_pos_occu 'HMS hC+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.3ta.posAdcCounter 13 0.5 13.5
+TH1F hcal_hD_pos_occu 'HMS hD+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.4ta.posAdcCounter 13 0.5 13.5
+
+TH2F hcal_hA_pos_rawped_vs_blk 'HMS hA+ Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPedRaw 13 0.5 13.5 400 0 4000
+TH2F hcal_hA_neg_rawped_vs_blk 'HMS hA- Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPedRaw 13 0.5 13.5 400 0 4000
+TH2F hcal_hB_pos_rawped_vs_blk 'HMS hB+ Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPedRaw 13 0.5 13.5 400 0 4000
+TH2F hcal_hB_neg_rawped_vs_blk 'HMS hB- Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPedRaw 13 0.5 13.5 400 0 4000
+TH2F hcal_hC_pos_rawped_vs_blk 'HMS hC+ Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPedRaw 13 0.5 13.5 400 0 4000
+TH2F hcal_hD_pos_rawped_vs_blk 'HMS hD+ Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPedRaw 13 0.5 13.5 400 0 4000
+
+TH2F hcal_hA_pos_rawpint_vs_blk 'HMS hA+ Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseIntRaw 13 0.5 13.5 4000 0 40000
+TH2F hcal_hA_neg_rawpint_vs_blk 'HMS hA- Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseIntRaw 13 0.5 13.5 4000 0 40000
+TH2F hcal_hB_pos_rawpint_vs_blk 'HMS hB+ Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseIntRaw 13 0.5 13.5 4000 0 40000
+TH2F hcal_hB_neg_rawpint_vs_blk 'HMS hB- Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseIntRaw 13 0.5 13.5 4000 0 40000
+TH2F hcal_hC_pos_rawpint_vs_blk 'HMS hC+ Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseIntRaw 13 0.5 13.5 4000 0 40000
+TH2F hcal_hD_pos_rawpint_vs_blk 'HMS hD+ Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseIntRaw 13 0.5 13.5 4000 0 40000
+
+TH2F hcal_hA_pos_rawpamp_vs_blk 'HMS hA+ Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseAmpRaw 13 0.5 13.5 410 0 4100
+TH2F hcal_hA_neg_rawpamp_vs_blk 'HMS hA- Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseAmpRaw 13 0.5 13.5 410 0 4100
+TH2F hcal_hB_pos_rawpamp_vs_blk 'HMS hB+ Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseAmpRaw 13 0.5 13.5 410 0 4100
+TH2F hcal_hB_neg_rawpamp_vs_blk 'HMS hB- Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseAmpRaw 13 0.5 13.5 410 0 4100
+TH2F hcal_hC_pos_rawpamp_vs_blk 'HMS hC+ Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseAmpRaw 13 0.5 13.5 410 0 4100
+TH2F hcal_hD_pos_rawpamp_vs_blk 'HMS hD+ Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseAmpRaw 13 0.5 13.5 410 0 4100
+
+TH2F hcal_hA_pos_rawptime_vs_blk 'HMS hA+ Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseTimeRaw 13 0.5 13.5 4000 0 40000
+TH2F hcal_hA_neg_rawptime_vs_blk 'HMS hA- Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseTimeRaw 13 0.5 13.5 4000 0 40000
+TH2F hcal_hB_pos_rawptime_vs_blk 'HMS hB+ Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseTimeRaw 13 0.5 13.5 4000 0 40000
+TH2F hcal_hB_neg_rawptime_vs_blk 'HMS hB- Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseTimeRaw 13 0.5 13.5 4000 0 40000
+TH2F hcal_hC_pos_rawptime_vs_blk 'HMS hC+ Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseTimeRaw 13 0.5 13.5 4000 0 40000
+TH2F hcal_hD_pos_rawptime_vs_blk 'HMS hD+ Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseTimeRaw 13 0.5 13.5 4000 0 40000
+
+TH2F hcal_hA_pos_pped_vs_blk 'HMS hA+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPed 13 0.5 13.5 400 0 4000
+TH2F hcal_hA_neg_pped_vs_blk 'HMS hA- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPed 13 0.5 13.5 400 0 4000
+TH2F hcal_hB_pos_pped_vs_blk 'HMS hB+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPed 13 0.5 13.5 400 0 4000
+TH2F hcal_hB_neg_pped_vs_blk 'HMS hB- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPed 13 0.5 13.5 400 0 4000
+TH2F hcal_hC_pos_pped_vs_blk 'HMS hC+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPed 13 0.5 13.5 400 0 4000
+TH2F hcal_hD_pos_pped_vs_blk 'HMS hD+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPed 13 0.5 13.5 400 0 4000
+
+TH2F hcal_hA_pos_pi_vs_blk 'HMS hA+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hA_neg_pi_vs_blk 'HMS hA- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hB_pos_pi_vs_blk 'HMS hB+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hB_neg_pi_vs_blk 'HMS hB- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hC_pos_pi_vs_blk 'HMS hC+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hD_pos_pi_vs_blk 'HMS hD+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000
+
+TH2F hcal_hA_pos_pamp_vs_blk 'HMS hA+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseAmp 13 0.5 13.5 410 0 4100
+TH2F hcal_hA_neg_pamp_vs_blk 'HMS hA- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseAmp 13 0.5 13.5 410 0 4100
+TH2F hcal_hB_pos_pamp_vs_blk 'HMS hB+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseAmp 13 0.5 13.5 410 0 4100
+TH2F hcal_hB_neg_pamp_vs_blk 'HMS hB- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseAmp 13 0.5 13.5 410 0 4100
+TH2F hcal_hC_pos_pamp_vs_blk 'HMS hC+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseAmp 13 0.5 13.5 410 0 4100
+TH2F hcal_hD_pos_pamp_vs_blk 'HMS hD+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseAmp 13 0.5 13.5 410 0 4100
diff --git a/DEF-files/HMS/CAL/hcalana_cuts.def b/DEF-files/HMS/CAL/hcalana_cuts.def
new file mode 100644
index 00000000..3af34a5e
--- /dev/null
+++ b/DEF-files/HMS/CAL/hcalana_cuts.def
@@ -0,0 +1,13 @@
+Block: RawDecode
+
+Pedestal_event 0
+RawDecode_master 1
+
+Block: Decode
+Decode_master 1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CourseReconstruct 0
diff --git a/DEF-files/HMS/CER/hcerana.def b/DEF-files/HMS/CER/hcerana.def
new file mode 100644
index 00000000..644b2234
--- /dev/null
+++ b/DEF-files/HMS/CER/hcerana.def
@@ -0,0 +1,15 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+block H.cer.*
+block T.hms.*
+
+TH1F hcer_occu 'HMS Cherenkov ADC Occupancy; PMT Number; Number of ADC Hits' H.cer.adcCounter 2 0.5 2.5
+
+TH2F hcer_rawped 'HMS Cherenkov Raw Pulse Pedestal; PMT Number; Raw Pulse Pedestal / 10 ADC Units' H.cer.adcCounter H.cer.adcPedRaw 2 0.5 2.5 400 0 4000
+TH2F hcer_rawpint 'HMS Cherenkov Raw Pulse Integral; PMT Number; Raw Pulse Integral / 10 ADC Units' H.cer.adcCounter H.cer.adcPulseIntRaw 2 0.5 2.5 4000 0 40000
+TH2F hcer_rawpamp 'HMS Cherenkov Raw Pulse Amplitude; PMT Number; Raw Pulse Amplitude / 10 ADC Units' H.cer.adcCounter H.cer.adcPulseAmpRaw 2 0.5 2.5 410 0 4100
+TH2F hcer_rawptime 'HMS Cherenkov Raw Pulse Time; PMT Number; Raw Pulse Time / 10 ADC Units' H.cer.adcCounter H.cer.adcPulseTimeRaw 2 0.5 2.5 400 0 4000
+
+TH2F hcer_ped 'HMS Cherenkov Pulse Pedestal; PMT Number; Pulse Pedestal / 10 ADC Units' H.cer.adcCounter H.cer.adcPed 2 0.5 2.5 400 0 4000
+TH2F hcer_pint 'HMS Cherenkov Pulse Integral; PMT Number; Pulse Pedestal / 10 ADC Units' H.cer.adcCounter H.cer.adcPulseInt 2 0.5 2.5 4000 0 40000
+TH2F hcer_pamp 'HMS Cherenkov Pulse Amplitude; PMT Number; Pulse Pedestal / 10 ADC Units' H.cer.adcCounter H.cer.adcPulseAmp 2 0.5 2.5 410 0 4100
\ No newline at end of file
diff --git a/DEF-files/HMS/CER/hcerana_cuts.def b/DEF-files/HMS/CER/hcerana_cuts.def
new file mode 100644
index 00000000..3af34a5e
--- /dev/null
+++ b/DEF-files/HMS/CER/hcerana_cuts.def
@@ -0,0 +1,13 @@
+Block: RawDecode
+
+Pedestal_event 0
+RawDecode_master 1
+
+Block: Decode
+Decode_master 1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CourseReconstruct 0
diff --git a/DEF-files/HMS/DC/hdcana.def b/DEF-files/HMS/DC/hdcana.def
index 3d3045e5..80e2415f 100644
--- a/DEF-files/HMS/DC/hdcana.def
+++ b/DEF-files/HMS/DC/hdcana.def
@@ -1,7 +1,21 @@
 # See $ANALYZER/examples/output_example.def for examples
 #
 block H.dc.*
-#block H.scin.*
+block T.hms.*
+
+TH1F hdc_ref1 'HDC Reference Time 1; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF1_tdcTime 15000 0 15000 
+TH1F hdc_ref2 'HDC Reference Time 2; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF2_tdcTime 15000 0 15000
+TH1F hdc_ref3 'HDC Reference Time 3; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF3_tdcTime 15000 0 15000
+TH1F hdc_ref4 'HDC Reference Time 4; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF4_tdcTime 15000 0 15000
+
+TH1F hdc_refdiff_1m2 'HDC Reference time 1 minus 2; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF1_tdcTime-T.hms.hDCREF2_tdcTime 2000 -1000 1000
+TH1F hdc_refdiff_1m3 'HDC Reference time 1 minus 3; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF1_tdcTime-T.hms.hDCREF3_tdcTime 2000 -1000 1000
+TH1F hdc_refdiff_1m4 'HDC Reference time 1 minus 4; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF1_tdcTime-T.hms.hDCREF4_tdcTime 2000 -1000 1000
+
+TH1F hdc_refdiff_2m3 'HDC Reference time 2 minus 3; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF2_tdcTime-T.hms.hDCREF3_tdcTime 2000 -1000 1000
+TH1F hdc_refdiff_2m4 'HDC Reference time 2 minus 4; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF2_tdcTime-T.hms.hDCREF4_tdcTime 2000 -1000 1000
+
+TH1F hdc_refdiff_3m4 'HDC Reference time 3 minus 4; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF3_tdcTime-T.hms.hDCREF4_tdcTime 2000 -1000 1000
 
 TH1F hdc1x1_wm 'HDC 1X1 Wiremap' H.dc.1x1.wirenum 113 0.5 113.5
 TH1F hdc1y1_wm 'HDC 1Y1 Wiremap' H.dc.1y1.wirenum  52 0.5  52.5
@@ -17,19 +31,19 @@ TH1F hdc2v1_wm 'HDC 2V1 Wiremap' H.dc.2v1.wirenum 107 0.5 107.5
 TH1F hdc2y2_wm 'HDC 2Y2 Wiremap' H.dc.2y2.wirenum  52 0.5  52.5
 TH1F hdc2x2_wm 'HDC 2X2 Wiremap' H.dc.2x2.wirenum 113 0.5 113.5
 
-TH2F hdc1x1_wire_num_vs_raw_tdc 'HDC 1X1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1x1.wirenum H.dc.1x1.rawtdc 113 0.5 113.5 5000 0 50000
-TH2F hdc1y1_wire_num_vs_raw_tdc 'HDC 1Y1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1y1.wirenum H.dc.1y1.rawtdc 52  0.5  52.5 5000 0 50000
-TH2F hdc1u1_wire_num_vs_raw_tdc 'HDC 1U1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1u1.wirenum H.dc.1u1.rawtdc 107 0.5 107.5 5000 0 50000
-TH2F hdc1v1_wire_num_vs_raw_tdc 'HDC 1V1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1v1.wirenum H.dc.1v1.rawtdc 107 0.5 107.5 5000 0 50000
-TH2F hdc1y2_wire_num_vs_raw_tdc 'HDC 1Y2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1y2.wirenum H.dc.1y2.rawtdc 52  0.5  52.5 5000 0 50000
-TH2F hdc1x2_wire_num_vs_raw_tdc 'HDC 1X2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1x2.wirenum H.dc.1x2.rawtdc 113 0.5 113.5 5000 0 50000
-
-TH2F hdc2x1_wire_num_vs_raw_tdc 'HDC 2X1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2x1.wirenum H.dc.2x1.rawtdc 113 0.5 113.5 5000 0 50000
-TH2F hdc2y1_wire_num_vs_raw_tdc 'HDC 2Y1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2y1.wirenum H.dc.2y1.rawtdc 52  0.5  52.5 5000 0 50000
-TH2F hdc2u1_wire_num_vs_raw_tdc 'HDC 2U1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2u1.wirenum H.dc.2u1.rawtdc 107 0.5 107.5 5000 0 50000
-TH2F hdc2v1_wire_num_vs_raw_tdc 'HDC 2V1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2v1.wirenum H.dc.2v1.rawtdc 107 0.5 107.5 5000 0 50000
-TH2F hdc2y2_wire_num_vs_raw_tdc 'HDC 2Y2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2y2.wirenum H.dc.2y2.rawtdc 52  0.5  52.5 5000 0 50000
-TH2F hdc2x2_wire_num_vs_raw_tdc 'HDC 2X2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2x2.wirenum H.dc.2x2.rawtdc 113 0.5 113.5 5000 0 50000
+TH2F hdc1x1_wire_num_vs_raw_tdc 'HDC 1X1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1x1.wirenum H.dc.1x1.rawtdc 113 0.5 113.5 10000 -50000 50000
+TH2F hdc1y1_wire_num_vs_raw_tdc 'HDC 1Y1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1y1.wirenum H.dc.1y1.rawtdc 52  0.5  52.5 10000 -50000 50000
+TH2F hdc1u1_wire_num_vs_raw_tdc 'HDC 1U1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1u1.wirenum H.dc.1u1.rawtdc 107 0.5 107.5 10000 -50000 50000
+TH2F hdc1v1_wire_num_vs_raw_tdc 'HDC 1V1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1v1.wirenum H.dc.1v1.rawtdc 107 0.5 107.5 10000 -50000 50000
+TH2F hdc1y2_wire_num_vs_raw_tdc 'HDC 1Y2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1y2.wirenum H.dc.1y2.rawtdc 52  0.5  52.5 10000 -50000 50000
+TH2F hdc1x2_wire_num_vs_raw_tdc 'HDC 1X2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1x2.wirenum H.dc.1x2.rawtdc 113 0.5 113.5 10000 -50000 50000
+
+TH2F hdc2x1_wire_num_vs_raw_tdc 'HDC 2X1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2x1.wirenum H.dc.2x1.rawtdc 113 0.5 113.5 10000 -50000 50000
+TH2F hdc2y1_wire_num_vs_raw_tdc 'HDC 2Y1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2y1.wirenum H.dc.2y1.rawtdc 52  0.5  52.5 10000 -50000 50000
+TH2F hdc2u1_wire_num_vs_raw_tdc 'HDC 2U1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2u1.wirenum H.dc.2u1.rawtdc 107 0.5 107.5 10000 -50000 50000
+TH2F hdc2v1_wire_num_vs_raw_tdc 'HDC 2V1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2v1.wirenum H.dc.2v1.rawtdc 107 0.5 107.5 10000 -50000 50000
+TH2F hdc2y2_wire_num_vs_raw_tdc 'HDC 2Y2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2y2.wirenum H.dc.2y2.rawtdc 52  0.5  52.5 10000 -50000 50000
+TH2F hdc2x2_wire_num_vs_raw_tdc 'HDC 2X2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2x2.wirenum H.dc.2x2.rawtdc 113 0.5 113.5 10000 -50000 50000
 
 TH2F hdc1x1_wire_num_vs_tdc_time 'HDC 1X1 Wiremap; Wire Number; TDC Time (ns)' H.dc.1x1.wirenum H.dc.1x1.time 113 0.5 113.5 6000 -1000 5000
 TH2F hdc1y1_wire_num_vs_tdc_time 'HDC 1Y1 Wiremap; Wire Number; TDC Time (ns)' H.dc.1y1.wirenum H.dc.1y1.time 52  0.5  52.5 6000 -1000 5000
diff --git a/DEF-files/HMS/DC/hdcana_cuts.def b/DEF-files/HMS/DC/hdcana_cuts.def
index 5add84a3..3af34a5e 100644
--- a/DEF-files/HMS/DC/hdcana_cuts.def
+++ b/DEF-files/HMS/DC/hdcana_cuts.def
@@ -11,4 +11,3 @@ CoarseTracking_master 1
 
 Block: CoarseReconstruct
 CourseReconstruct 0
-
diff --git a/DEF-files/HMS/EPICS/epics.def b/DEF-files/HMS/EPICS/epics.def
new file mode 100644
index 00000000..4389a675
--- /dev/null
+++ b/DEF-files/HMS/EPICS/epics.def
@@ -0,0 +1,299 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+begin epics
+C1068_QDAC01                    40908                           # Pockels Cell POS HV           
+C1068_QDAC07                    32800                           # IA Cell Setpoint  Hall A DAC 07 A0
+C1068_QDAC08                    32800                           # IA Cell Setpoint  Hall A DAC 08 A1
+C1068_QDAC09                    32800                           # IA Cell Setpoint  Hall A DAC 09 A2
+C1068_QDAC10                    32800                           # IA Cell Setpoint  Hall A DAC 10 A3
+C1068_QDAC11                    33411                           # IA Cell Setpoint  Hall C DAC 11 A0
+C1068_QDAC12                    33411                           # IA Cell Setpoint  Hall C DAC 12 A1
+C1068_QDAC13                    33411                           # IA Cell Setpoint  Hall C DAC 13 A2
+C1068_QDAC14                    33411                           # IA Cell Setpoint  Hall C DAC 14 A3
+CFI60DLP                        15.1522                         # "dirty flowrate" at ESR (warm return) g/s
+CFI6711C                        15.0215                         # 4k flow, g/s                  
+CFI6731C                        0                               # 15k Flow g/s                  
+COLPOS1                         0                               # Collimator Block 1            
+COLPOS2                         0                               # Collimator Block 2            
+COLPOS3                         0                               # Collimator Block 3            
+COLPOS4                         0                               # Collimator Block 4            
+COLPOS5                         0                               # Collimator Block 5            
+COLPOS6                         0                               # Collimator Block 6            
+COLPOS7                         0                               # Collimator Block 7            
+CPI671SC                        3.14437                         # 4K Supply pressure at ESR atm 
+CPI672                          1.22453                         # 5K return pressure at ESR atm 
+CPI673                          1.39524                         # 15K Supply pressure at ESR atm
+CPI9541                         1.08368                         # 20K return pressure at ESR atm
+CTD6614                         14.59                           # Hall A 15K supply temp K      
+CTD671SC                        4.11                            # 4K Supply temp at ESR K       
+CTD672                          4.5                             # 5K return temp at ESR K       
+CTD673                          220.43                          # 15K Supply temp at ESR K      
+CTD9541                         264.79                          # 20K return temp at ESR K      
+HALLC:p				6390.9                          # Tiefenback energy                     
+EHCFR_ENERGY                    8.519                           # -                             
+EHCFR_LIPRC                     disabled                        # Master Focus Location:  1=G0, 0=Pivot
+EHCFR_LIXWidth                  1                               # -                             
+EHCFR_LIYWidth                  1                               # -                             
+FB_A:FB_On                      Off                             # 
+FB_A:status:mbbi2.B7            1                               # 
+FB_A:use_RF                     RF Off                          # 
+FB_C:CORR:C1_value.B            0                               # -                             
+FB_C:CORR:C2_value.B            0                               # -                             
+FB_C:CORR:C3_value.B            0                               # -                             
+FB_C:CORR:C4_value.B            0                               # -                             
+FB_C:FB_On                      Off                             # 
+FB_C:status:mbbi2.B7            1                               # 
+FB_C:use_RF                     RF Off                          # 
+HELCLOCKd                       Free Clock                      # Helicity Clock Read           
+HELCLOCKs                       Free Clock                      # Helicity Clock Set            
+HELDELAYd                       No Delay                        # Helicity Delay Read           
+HELDELAYs                       No Delay                        # Helicity Delay Set            
+HELFREQ                         29.5596                         # Helicity Frequency            
+HELPATTERNd                     Quartet                         # Helicity Pattern Read         
+HELPATTERNs                     Quartet                         # Helicity Pattern Set          
+HELTSETTLEd                     500                             # Helicity Settle Read          
+HELTSTABLEd                     33330                           # Helicity Stable Read          
+HWienAngle                      0                               # Horizontal Wien Angle         
+IBC1H04CRCUR2                   0                               # Hall A MPS BCM Current uA     
+IBC3H00CRCUR4                   0                               # Hall C MPS BCM Current uA     
+IFY0I06I                        not inserted                    # PolCup position: FC1 (is/is not) inserted
+IFY0I06R                        retracted                       # PolCup position: FC1 (is/is not) retracted
+IFY0L03I                        not inserted                    # PolCup position: FC2 (is/is not) inserted
+IFY0L03R                        retracted                       # PolCup position: FC2 (is/is not) retracted
+IFY1I07I                        not inserted                    # PolCup position: PolCup (is/is not) inserted
+IFY1I07R                        retracted                       # PolCup position: PolCup (is/is not) retracted
+IGL1I00AI17                     2.98413                         # Dummy Helicity Pockels Cell Voltage V
+IGL1I00AI22                     0                               # G0 X PZT Voltage V            
+IGL1I00AI23                     0                               # G0 Y PZT Voltage V            
+IGL1I00AI24                     0                               # IA Voltage V                  
+IGL1I00AI25                     0                               # Hall A X PZT Voltage V        
+IGL1I00AI26                     0                               # Hall A Y PZT Voltage  V       
+IGL1I00AI27                     0                               # Hall A IA Voltage  V          
+IGL1I00AI7                      3.44322                         # Gun 2 PITA Voltage Positive V 
+IGL1I00AI8                      3.15507                         # Gun 2 PITA Voltage Negative V 
+IGL1I00DAC2                     0                               # Hall B Control Level          
+IGL1I00DAC3                     0                               # Hall B Seed Level             
+IGL1I00DAC5                     0                               # Horizontal Wien Electrode Voltage
+IGL1I00DAC6                     0                               # Vertical Wien Electrode Voltage
+IGL1I00DI24_24M                 IN                              # Beam Half-wave plate Read(off=out) () --
+IGL1I00DIOFLRD                  13119                           # Carlini insertable waveplate state (1
+IGL1I00DIOHWTB.B2               0                               # Carlini insertable waveplate state (0=in,1=out)
+IGL1I00OD16_16                  IN                              # Beam Half-wave plate Set(off=out)
+IGL1I00OD16_4                   POSITIVE                        # Vertical Wien HV Polarity     
+IGL1I00OD16_8                   ON                              # Pockels Cell ON/OFF           
+IGL1I00OD16_9                   POSITIVE                        # Horizontal Wien HV Polarity   
+IGL1I00PStrans                  0                               # Injector transmission         
+IGLdac2:G2Ch3Pos                0                               # Gun2: PC (PITA) POS           
+IGLdac2:G2Ch4Neg                0                               # Gun2: PC (PITA) NEG           
+pgunFreqDiv:A:frequency	        500	 			# Hall A Laser Frequency:  0: 500 MHz, 1: 250 MHz
+pgunFreqDiv:C:frequency        	250	       			# Hall C Laser Frequency:  0: 500 MHz, 1: 250 MHz
+IHA3H07AIR                      72.8365                         # monitor                       
+IHA3H07BIR                      83.6352                         # monitor                       
+IOCSE14:PassSel;r               Auto Select                     # Auto Select                   
+IOCSE14:SEEGainMod;r            Auto Gain                       # Auto Gain                     
+IOCSE14:SEEProcMod;r            SEE Norm Ops                    # SEE Norm Ops                  
+IOCSE17:PassSel;r               Auto Select                     # Auto Select                   
+IOCSE17:SEEGainMod;r            Auto Gain                       # Auto Gain                     
+IOCSE17:SEEProcMod;r            SEE Norm Ops                    # SEE Norm Ops                  
+IOCSE18:PassSel;r               Auto Select                     # Auto Select                   
+IOCSE18:SEEGainMod;r            Auto Gain                       # Auto Gain                     
+IOCSE18:SEEProcMod;r            SEE Norm Ops                    # SEE Norm Ops                  
+IOCSE20:PassSel;r               Auto Select                     # Auto Select                   
+IOCSE20:SEEGainMod;r            Auto Gain                       # Auto Gain                     
+IOCSE20:SEEProcMod;r            SEE Norm Ops                    # SEE Norm Ops                  
+IPM2C24A.IENG                   0.121083                        # Hall B Beam Current (2C24A)   
+IPM3C00.XPOS                    0                               # This should be added,           stripline bpm x position ,  BPM POSITION
+IPM3C00.YPOS                    0                               # This should be added,           stripline bpm x position
+IPM3C01.XPOS                    0                               # 
+IPM3C01.YPOS                    0                               # 
+IPM3C02.XPOS                    0                               # 
+IPM3C02.YPOS                    0                               # 
+IPM3C03.XPOS                    0                               # 
+IPM3C03.YPOS                    0                               # 
+IPM3C04.XPOS                    0                               # 
+IPM3C04.YPOS                    0                               # 
+IPM3C05.XPOS                    0                               # 
+IPM3C05.YPOS                    0                               # 
+IPM3C06.XPOS                    0                               # 
+IPM3C06.YPOS                    0                               # 
+IPM3C07.XPOS                    0                               # 
+IPM3C07.YPOS                    0                               # 
+IPM3C07A.XPOS                   0                               # 
+IPM3C07A.YPOS                   0                               # 
+IPM3C08.XPOS                    0                               # 
+IPM3C08.YPOS                    0                               # 
+IPM3C10.XPOS                    0                               # 
+IPM3C10.YPOS                    0                               # 
+IPM3C11.XPOS                    0                               # 
+IPM3C11.YPOS                    0                               # 
+IPM3C12.XPOS                    0                               # 
+IPM3C12.YPOS                    0                               # 
+IPM3C14.XPOS                    0                               # 
+IPM3C14.YPOS                    0                               # 
+IPM3C16.XPOS                    0                               # 
+IPM3C16.YPOS                    0                               # 
+IPM3C17.XIFG                    3000                            # stripline bpm x position auto-gain, BPM Position Auto-Gain
+IPM3C17.XPOS                    0                               # 
+IPM3C17.XSOF                    0.223                           # stripline bpm x position offset, BPM Position OffSet
+IPM3C17.YIFG                    3000                            # stripline bpm y position auto-gain
+IPM3C17.YPOS                    0                               # 
+IPM3C17.YSOF                    -0.356                          # stripline bpm y position offset
+IPM3C18.XIFG                    3000                            # 
+IPM3C18.XPOS                    0                               # 
+IPM3C18.XSOF                    -0.049                          # 
+IPM3C18.YIFG                    3000                            # 
+IPM3C18.YPOS                    0                               # 
+IPM3C18.YSOF                    -0.225                          # 
+IPM3C19.XIFG                    3000                            # 
+IPM3C19.XPOS                    0                               # 
+IPM3C19.XSOF                    0.003                           # 
+IPM3C19.YIFG                    3000                            # 
+IPM3C19.YPOS                    0                               # 
+IPM3C19.YSOF                    0.015                           # 
+IPM3C20.XIFG                    3000                            # 
+IPM3C20.XPOS                    0                               # 
+IPM3C20.XSOF                    0.11                            # 
+IPM3C20.YIFG                    3000                            # 
+IPM3C20.YPOS                    0                               # 
+IPM3C20.YSOF                    -0.52                           # 
+IPM3C21.XIFG                    3000                            # 
+IPM3C21.XPOS                    0                               # 
+IPM3C21.XSOF                    0.04                            # 
+IPM3C21.YIFG                    3000                            # 
+IPM3C21.YPOS                    0                               # 
+IPM3C21.YSOF                    -0.56                           # 
+IPM3H02.XIFG                    3000                            # 
+IPM3H02.XPOS                    0                               # 
+IPM3H02.XSOF                    0                               # 
+IPM3H02.YIFG                    3000                            # 
+IPM3H02.YPOS                    0                               # 
+IPM3H02.YSOF                    0                               # 
+IPM3H04.XIFG                    3000                            # 
+IPM3H04.XPOS                    0                               # 
+IPM3H04.XSOF                    0                               # 
+IPM3H04.YIFG                    3000                            # 
+IPM3H04.YPOS                    0                               # 
+IPM3H04.YSOF                    0                               # 
+IPM3H07A.XIFG                   3000                            # 
+IPM3H07A.XPOF                   -9999                           # BPM XXXX  OffSet (looks like offset but don't know)
+IPM3H07A.XPOS                   0                               # 
+IPM3H07A.XRAW                   0                               # BPM RAW                       
+IPM3H07A.XSOF                   0.4                             # 
+IPM3H07A.YIFG                   3000                            # 
+IPM3H07A.YPOF                   -9999                           # 
+IPM3H07A.YPOS                   0                               # 
+IPM3H07A.YRAW                   0                               # 
+IPM3H07A.YSOF                   0.2                             # 
+IPM3H07B.XIFG                   3000                            # 
+IPM3H07B.XPOF                   -9999                           # 
+IPM3H07B.XPOS                   0                               # 
+IPM3H07B.XRAW                   0                               # 
+IPM3H07B.XSOF                   0.2                             # 
+IPM3H07B.YIFG                   3000                            # 
+IPM3H07B.YPOF                   -9999                           # 
+IPM3H07B.YPOS                   0                               # 
+IPM3H07B.YRAW                   0                               # 
+IPM3H07B.YSOF                   0.2                             # 
+IPM3H07C.XIFG                   3000                            # 
+IPM3H07C.XPOF                   -9999                           # 
+IPM3H07C.XPOS                   0                               # 
+IPM3H07C.XRAW                   0                               # 
+IPM3H07C.XSOF                   0.6                             # 
+IPM3H07C.YIFG                   3000                            # 
+IPM3H07C.YPOF                   -9999                           # 
+IPM3H07C.YPOS                   0                               # 
+IPM3H07C.YRAW                   0                               # 
+IPM3H07C.YSOF                   0                               # 
+IPM3H08.XPOF                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew, Big BPM target down stream,  
+IPM3H08.XPOS                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew,  
+IPM3H08.XRAW                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew,  
+IPM3H08.XSOF                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew,   
+IPM3H08.YPOF                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew, Big BPM target down stream,  
+IPM3H08.YPOS                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew,  
+IPM3H08.YRAW                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew,  
+IPM3H08.YSOF                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew,  
+IPM3H09.XIFG                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew, 
+IPM3H09.XPOF                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew, Big BPM target down stream, 
+IPM3H09.XPOS                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew,  
+IPM3H09.XRAW                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew,  
+IPM3H09.XSOF                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew,  
+IPM3H09.YIFG                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew,  
+IPM3H09.YPOF                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew, Big BPM target down stream,  
+IPM3H09.YPOS                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew,  
+IPM3H09.YRAW                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew,  
+IPM3H09.YSOF                    new Big BPMs at downstream               # offline in the Transports , Halls BPM Overwiew,  
+IPM3P01.XPOS                    *** not connected               # Hall-C Compton Control, offline in the Transports , Halls BPM Overwiew,  Compton
+IPM3P01.YPOS                    *** not connected               # Hall-C Compton Control, offline in the Transports , Halls BPM Overwiew,  Compton
+IPM3P02A.XIFG                   3000                            # 
+IPM3P02A.XPOS                   0                               # Hall-C Compton Control,       
+IPM3P02A.XSOF                   -0.48                           # 
+IPM3P02A.YIFG                   3000                            # 
+IPM3P02A.YPOS                   0                               # Hall-C Compton Control,       
+IPM3P02A.YSOF                   -0.4                            # 
+IPM3P02B.XIFG                   3000                            # 
+IPM3P02B.XPOS                   0                               # Hall-C Compton Control,       
+IPM3P02B.XSOF                   0                               # 
+IPM3P02B.YIFG                   3000                            # 
+IPM3P02B.YPOS                   0                               # Hall-C Compton Control,       
+IPM3P02B.YSOF                   0.07                            # 
+IPM3P03.XIFG                   *** not connected               # offline in the Transports , Halls BPM Overwiew, 
+IPM3P03.XPOS                   *** not connected               # Hall-C Compton Control, offline in the Transports , Halls BPM Overwiew,  Compton
+IPM3P03.XSOF                   *** not connected               # offline in the Transports , Halls BPM Overwiew,  Compton
+IPM3P03.YIFG                   *** not connected               # offline in the Transports , Halls BPM Overwiew,  Compton
+IPM3P03.YPOS                   *** not connected               # Hall-C Compton Control, offline in the Transports , Halls BPM Overwiew,  Compton
+IPM3P03.YSOF                   *** not connected               # offline in the Transports , Halls BPM Overwiew, Compton
+ISL0I04DT                       In                              # Master Slit Setting           
+MFG1I04A.BDL                    978                             # First Solenoid BDL (G-cm)     
+MFG1I04B.BDL                    -977.988                        # Second Solenoid BDL (G-cm)    
+MWF0I02.BDL                     -7.66356e-06                    # Horizontal Wien BDL (G-cm)    
+MWF1I04.BDL                     9.37619e-06                     # Vertical Wien BDL (G-cm)      
+OXSS_MGFD                       0                               # Persistent Field (T)          
+OXSS_RDF                        0                               # Leads Field                   
+Phi_FG                          0.000516931                     # Solenoids Angle (Phi_FG)      
+R00PGSET                        0.7                             # Prebuncher Setting            
+SMRPOSA                         -1.03809                        # Hall A Slit Position (Hall A Chopper Slit Readback) --
+SMRPOSB                         8                               # Hall B Chopper Slit Position Readback
+SMRPOSC                         8                               # Hall C Chopper Slit Position Readback
+TARGPOS                         0                               # Target position X             
+VWienAngle                      0                               # Vertical Wien Angle           
+WienAngle                       0                               # Wien Filter Angle Setting  degrees
+cdipc_xpos                      5e-05                           # Pockels Cell X Stage          
+cdipc_ypos                      0.0762                          # Pockels Cell Y Stage          
+hac_bcm_average                 0.0608161                       # Hall A BCM Current uA         
+halla_photocurrent              0                               # Hall A photocurrent uA        
+halla_transmission              0                               # Hall A Independent Transmission %
+hallb_transmission              0                               # Hall B Independent Transmission %
+hallc_photocurrent              0                               # Hall C photocurrent  uA       
+hel_even_1                      0                               # MHE0L01V Even Setpoint        
+hel_even_2                      0                               # MHE0L02H Even Setpoint        
+hel_even_3                      0                               # MHE0L03V Even Setpoint        
+hel_even_4                      0                               # MHE0L04H Even Setpoint        
+hel_mag_status.D                -1                              # Hel State Asymmetry           
+hel_odd_1                       0                               # MHE0L01V Even Setpoint        
+hel_odd_2                       0                               # MHE0L02H Even Setpoint        
+hel_odd_3                       0                               # MHE0L03V Even Setpoint        
+hel_odd_4                       0                               # MHE0L04H Even Setpoint        
+ibcm1                           0.00964451                      # Hall C Beam Current (monitor # 1): careful, this is also in target epics
+ibcm17                          -5.58226                        # Hall C Beam Current (monitor # 3): careful, this is also in target epics
+ibcm2                           0.000827091                     # Hall C Beam Current (monitor # 2): careful, this is also in target epics
+itov1out                        0.021978                        # A1 Slit Current               
+itov2out                        0.175824                        # A2 Slit Current               
+itov3out                        0                               # Master Slit Current           
+itov4out                        0                               # INJ Faraday cup (PCup, FC1, FC2, Dump) Current
+itov5out                        0                               # A3 Slit Current               
+itov7out                        0.029304                        # A4 Slit Current               
+iunser                          2477.15                         # Hall C Beam Current (unser)   
+laser_a_wavelength              0                               # Hall A laser wavelength nm    
+laser_b_wavelength              0                               # Hall B laser wavelength nm    
+laser_c_wavelength              0                               # Hall C laser wavelength nm    
+psub_aa_pos                     280.021                         # Hall A Laser Attenuator (Hall A Laser Attenuator Setting) --
+psub_ab_pos                     190.797                         # Hall B Laser Attenuator Setting
+psub_ac_pos                     120.01                          # Hall C Laser Attenuator Setting
+psub_cx_pos                     10500                           # Wafer X Stage         (X laser position on cathode) --
+psub_cy_pos                     11500                           # Wafer Y Stage         (Y laser position on cathode) --
+psub_pl_pos                     0.168                           # Rotating waveplate (Rotatable Half Wave Plate Setting) --
+qe_halla                        0.4498                          # Hall A Quantum Efficiency %   
+qe_hallb                        0.423                           # Hall B Quantum Efficiency %   
+qe_hallc                        0.4578                          # Hall C Quantum Efficiency %   
+scaler_calc1                    0.0711763                       # Hall B Beam Current (Faraday Cup) nA	
+end epics
diff --git a/DEF-files/HMS/GEN/hstackana.def b/DEF-files/HMS/GEN/hstackana.def
new file mode 100644
index 00000000..582d5fdc
--- /dev/null
+++ b/DEF-files/HMS/GEN/hstackana.def
@@ -0,0 +1,189 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+#block *
+block T.hms.*
+block H.dc.*
+block H.tr.*
+block H.hod.*
+block H.cer.*
+block H.cal.*
+#block H.gtr.*
+
+# Drift Chambers
+TH1F hdc_ref1 'HMS DC Reference Time Slot 5 Channel 111; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF1_tdcTime 3000 12000 15000 
+TH1F hdc_ref2 'HMS DC Reference Time Slot 8 Channel 127; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF2_tdcTime 3000 12000 15000
+TH1F hdc_ref3 'HMS DC Reference Time Slot 10 Channel 127; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF3_tdcTime 3000 12000 15000
+TH1F hdc_ref4 'HMS DC Reference Time Slot 17 Channel 127; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF4_tdcTime 3000 12000 15000
+
+TH1F hdc1x1_wirenum 'HMS DC 1X1 Wiremap; Wire Number; Number of Entries' H.dc.1x1.wirenum 113 0.5 113.5
+TH1F hdc1y1_wirenum 'HMS DC 1Y1 Wiremap; Wire Number; Number of Entries' H.dc.1y1.wirenum  52 0.5  52.5
+TH1F hdc1u1_wirenum 'HMS DC 1U1 Wiremap; Wire Number; Number of Entries' H.dc.1u1.wirenum 107 0.5 107.5
+TH1F hdc1v1_wirenum 'HMS DC 1V1 Wiremap; Wire Number; Number of Entries' H.dc.1v1.wirenum 107 0.5 107.5
+TH1F hdc1y2_wirenum 'HMS DC 1Y2 Wiremap; Wire Number; Number of Entries' H.dc.1y2.wirenum  52 0.5  52.5
+TH1F hdc1x2_wirenum 'HMS DC 1X2 Wiremap; Wire Number; Number of Entries' H.dc.1x2.wirenum 113 0.5 113.5
+
+TH1F hdc2x1_wirenum 'HMS DC 2X1 Wiremap; Wire Number; Number of Entries' H.dc.2x1.wirenum 113 0.5 113.5
+TH1F hdc2y1_wirenum 'HMS DC 2Y1 Wiremap; Wire Number; Number of Entries' H.dc.2y1.wirenum  52 0.5  52.5
+TH1F hdc2u1_wirenum 'HMS DC 2U1 Wiremap; Wire Number; Number of Entries' H.dc.2u1.wirenum 107 0.5 107.5
+TH1F hdc2v1_wirenum 'HMS DC 2V1 Wiremap; Wire Number; Number of Entries' H.dc.2v1.wirenum 107 0.5 107.5
+TH1F hdc2y2_wirenum 'HMS DC 2Y2 Wiremap; Wire Number; Number of Entries' H.dc.2y2.wirenum  52 0.5  52.5
+TH1F hdc2x2_wirenum 'HMS DC 2X2 Wiremap; Wire Number; Number of Entries' H.dc.2x2.wirenum 113 0.5 113.5
+
+TH2F hdc1x1_wirenum_vs_tdc 'HMS DC 1X1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1x1.wirenum H.dc.1x1.time 113 0.5 113.5 2000 -500 1500
+TH2F hdc1y1_wirenum_vs_tdc 'HMS DC 1Y1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1y1.wirenum H.dc.1y1.time 52  0.5  52.5 2000 -500 1500
+TH2F hdc1u1_wirenum_vs_tdc 'HMS DC 1U1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1u1.wirenum H.dc.1u1.time 107 0.5 107.5 2000 -500 1500
+TH2F hdc1v1_wirenum_vs_tdc 'HMS DC 1V1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1v1.wirenum H.dc.1v1.time 107 0.5 107.5 2000 -500 1500
+TH2F hdc1y2_wirenum_vs_tdc 'HMS DC 1Y2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1y2.wirenum H.dc.1y2.time 52  0.5  52.5 2000 -500 1500
+TH2F hdc1x2_wirenum_vs_tdc 'HMS DC 1X2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1x2.wirenum H.dc.1x2.time 113 0.5 113.5 2000 -500 1500
+
+TH2F hdc2x1_wirenum_vs_tdc 'HMS DC 2X1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2x1.wirenum H.dc.2x1.time 113 0.5 113.5 2000 -500 1500
+TH2F hdc2y1_wirenum_vs_tdc 'HMS DC 2Y1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2y1.wirenum H.dc.2y1.time 52  0.5  52.5 2000 -500 1500
+TH2F hdc2u1_wirenum_vs_tdc 'HMS DC 2U1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2u1.wirenum H.dc.2u1.time 107 0.5 107.5 2000 -500 1500
+TH2F hdc2v1_wirenum_vs_tdc 'HMS DC 2V1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2v1.wirenum H.dc.2v1.time 107 0.5 107.5 2000 -500 1500
+TH2F hdc2y2_wirenum_vs_tdc 'HMS DC 2Y2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2y2.wirenum H.dc.2y2.time 52  0.5  52.5 2000 -500 1500
+TH2F hdc2x2_wirenum_vs_tdc 'HMS DC 2X2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2x2.wirenum H.dc.2x2.time 113 0.5 113.5 2000 -500 1500
+
+TH2F hdc1x1_wirenum_vs_resid 'HMS DC 1X1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1x1.wirenum H.dc.residual[0] 113 0.5 113.5 200 -1.0 1.0
+TH2F hdc1y1_wirenum_vs_resid 'HMS DC 1Y1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1y1.wirenum H.dc.residual[1] 52  0.5  52.5 200 -1.0 1.0
+TH2F hdc1u1_wirenum_vs_resid 'HMS DC 1U1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1u1.wirenum H.dc.residual[2] 107 0.5 107.5 200 -1.0 1.0
+TH2F hdc1v1_wirenum_vs_resid 'HMS DC 1V1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1v1.wirenum H.dc.residual[3] 107 0.5 107.5 200 -1.0 1.0
+TH2F hdc1y2_wirenum_vs_resid 'HMS DC 1Y2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1y2.wirenum H.dc.residual[4] 52  0.5  52.5 200 -1.0 1.0
+TH2F hdc1x2_wirenum_vs_resid 'HMS DC 1X2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1x2.wirenum H.dc.residual[5] 113 0.5 113.5 200 -1.0 1.0
+
+TH2F hdc2x1_wirenum_vs_resid 'HMS DC 2X1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2x1.wirenum H.dc.residual[6] 113 0.5 113.5 200 -1.0 1.0
+TH2F hdc2y1_wirenum_vs_resid 'HMS DC 2Y1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2y1.wirenum H.dc.residual[7] 52  0.5  52.5 200 -1.0 1.0
+TH2F hdc2u1_wirenum_vs_resid 'HMS DC 2U1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2u1.wirenum H.dc.residual[8] 107 0.5 107.5 200 -1.0 1.0
+TH2F hdc2v1_wirenum_vs_resid 'HMS DC 2V1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2v1.wirenum H.dc.residual[9] 107 0.5 107.5 200 -1.0 1.0
+TH2F hdc2y2_wirenum_vs_resid 'HMS DC 2Y2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2y2.wirenum H.dc.residual[10] 52  0.5  52.5 200 -1.0 1.0
+TH2F hdc2x2_wirenum_vs_resid 'HMS DC 2X2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2x2.wirenum H.dc.residual[11] 113 0.5 113.5 200 -1.0 1.0
+
+TH2F hdc_xfp_vs_yxp 'HMS DC Xfp vs Yxp; Yfp (cm) / 1 cm; Xfp (cm) / 1 cm' H.dc.y H.dc.x 100 -50 50 100 -50 50
+TH2F hdc_xfpp_vs_yxpp 'HMS DC Xfpp vs Yxpp; Yfpp; Xfpp' H.dc.yp H.dc.xp 100 -1 1 100 -1 1
+
+# Hodoscopes (Positive/Left) 
+TH1F hhodo_1x_pos_adc_occu 'HMS Hodoscope 1X+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.1x.posAdcCounter 16 0.5 16.5
+TH1F hhodo_1y_pos_adc_occu 'HMS Hodoscope 1Y+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.1y.posAdcCounter 10 0.5 10.5 
+TH1F hhodo_2x_pos_adc_occu 'HMS Hodoscope 2X+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.2x.posAdcCounter 16 0.5 16.5
+TH1F hhodo_2y_pos_adc_occu 'HMS Hodoscope 2Y+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.2y.posAdcCounter 10 0.5 10.5
+TH1F hhodo_1x_pos_tdc_occu 'HMS Hodoscope 1X+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.1x.posTdcCounter 16 0.5 16.5
+TH1F hhodo_1y_pos_tdc_occu 'HMS Hodoscope 1Y+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.1y.posTdcCounter 10 0.5 10.5 
+TH1F hhodo_2x_pos_tdc_occu 'HMS Hodoscope 2X+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.2x.posTdcCounter 16 0.5 16.5
+TH1F hhodo_2y_pos_tdc_occu 'HMS Hodoscope 2Y+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.2y.posTdcCounter 10 0.5 10.5
+TH2F hhodo_1x_pos_ped_vs_pad 'HMS Hodoscope 1X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1x.posAdcCounter  H.hod.1x.posAdcPed 16 0.5 16.5 1000 0 1000
+TH2F hhodo_1y_pos_ped_vs_pad 'HMS Hodoscope 1Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1y.posAdcCounter  H.hod.1y.posAdcPed 10 0.5 10.5 1000 0 1000
+TH2F hhodo_2x_pos_ped_vs_pad 'HMS Hodoscope 2X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2x.posAdcCounter  H.hod.2x.posAdcPed 16 0.5 16.5 1000 0 1000
+TH2F hhodo_2y_pos_ped_vs_pad 'HMS Hodoscope 2Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2y.posAdcCounter  H.hod.2y.posAdcPed 10 0.5 10.5 1000 0 1000
+TH2F hhodo_1x_pos_pi_vs_pad 'HMS Hodoscope 1X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1x.GoodPaddle  H.hod.1x.GoodPosAdcPulseInt 16 0.5 16.5 4000 0 40000
+TH2F hhodo_1y_pos_pi_vs_pad 'HMS Hodoscope 1Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1y.GoodPaddle  H.hod.1y.GoodPosAdcPulseInt 10 0.5 10.5 4000 0 40000
+TH2F hhodo_2x_pos_pi_vs_pad 'HMS Hodoscope 2X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2x.GoodPaddle  H.hod.2x.GoodPosAdcPulseInt 16 0.5 16.5 4000 0 40000
+TH2F hhodo_2y_pos_pi_vs_pad 'HMS Hodoscope 2Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2y.GoodPaddle  H.hod.2y.GoodPosAdcPulseInt 10 0.5 10.5 4000 0 40000
+TH2F hhodo_1x_pos_pamp_vs_pad 'HMS Hodoscope 1X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1x.GoodPaddle  H.hod.1x.GoodPosAdcPulseAmp 16 0.5 16.5 4100 0 4100
+TH2F hhodo_1y_pos_pamp_vs_pad 'HMS Hodoscope 1Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1y.GoodPaddle  H.hod.1y.GoodPosAdcPulseAmp 10 0.5 10.5 4100 0 4100
+TH2F hhodo_2x_pos_pamp_vs_pad 'HMS Hodoscope 2X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2x.GoodPaddle  H.hod.2x.GoodPosAdcPulseAmp 16 0.5 16.5 4100 0 4100
+TH2F hhodo_2y_pos_pamp_vs_pad 'HMS Hodoscope 2Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2y.GoodPaddle  H.hod.2y.GoodPosAdcPulseAmp 10 0.5 10.5 4100 0 4100
+TH2F hhodo_1x_pos_tdc_time_vs_pad 'HMS Hodoscope 1X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1x.GoodPaddle  H.hod.1x.GoodPosTdcChan 16 0.5 16.5 3500 -500 3000
+TH2F hhodo_1y_pos_tdc_time_vs_pad 'HMS Hodoscope 1Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1y.GoodPaddle  H.hod.1y.GoodPosTdcChan 10 0.5 10.5 3500 -500 3000
+TH2F hhodo_2x_pos_tdc_time_vs_pad 'HMS Hodoscope 2X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2x.GoodPaddle  H.hod.2x.GoodPosTdcChan 16 0.5 16.5 3500 -500 3000
+TH2F hhodo_2y_pos_tdc_time_vs_pad 'HMS Hodoscope 2Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2y.GoodPaddle  H.hod.2y.GoodPosTdcChan 10 0.5 10.5 3500 -500 3000
+
+# Hodoscopes (Negative/Right)
+TH1F hhodo_1x_neg_adc_occu 'HMS Hodoscope 1X- ADC Occupancy; Paddle Number; Number of Hits' H.hod.1x.negAdcCounter 16 0.5 16.5
+TH1F hhodo_1y_neg_adc_occu 'HMS Hodoscope 1Y- ADC Occupancy; Paddle Number; Number of Hits' H.hod.1y.negAdcCounter 10 0.5 10.5 
+TH1F hhodo_2x_neg_adc_occu 'HMS Hodoscope 2X- ADC Occupancy; Paddle Number; Number of Hits' H.hod.2x.negAdcCounter 16 0.5 16.5
+TH1F hhodo_2y_neg_adc_occu 'HMS Hodoscope 2Y- ADC Occupancy; Paddle Number; Number of Hits' H.hod.2y.negAdcCounter 10 0.5 10.5
+TH1F hhodo_1x_neg_tdc_occu 'HMS Hodoscope 1X- TDC Occupancy; Paddle Number; Number of Hits' H.hod.1x.negTdcCounter 16 0.5 16.5
+TH1F hhodo_1y_neg_tdc_occu 'HMS Hodoscope 1Y- TDC Occupancy; Paddle Number; Number of Hits' H.hod.1y.negTdcCounter 10 0.5 10.5 
+TH1F hhodo_2x_neg_tdc_occu 'HMS Hodoscope 2X- TDC Occupancy; Paddle Number; Number of Hits' H.hod.2x.negTdcCounter 16 0.5 16.5
+TH1F hhodo_2y_neg_tdc_occu 'HMS Hodoscope 2Y- TDC Occupancy; Paddle Number; Number of Hits' H.hod.2y.negTdcCounter 10 0.5 10.5
+TH2F hhodo_1x_neg_ped_vs_pad 'HMS Hodoscope 1X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1x.negAdcCounter  H.hod.1x.negAdcPed 16 0.5 16.5 1000 0 1000
+TH2F hhodo_1y_neg_ped_vs_pad 'HMS Hodoscope 1Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1y.negAdcCounter  H.hod.1y.negAdcPed 10 0.5 10.5 1000 0 1000
+TH2F hhodo_2x_neg_ped_vs_pad 'HMS Hodoscope 2X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2x.negAdcCounter  H.hod.2x.negAdcPed 16 0.5 16.5 1000 0 1000
+TH2F hhodo_2y_neg_ped_vs_pad 'HMS Hodoscope 2Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2y.negAdcCounter  H.hod.2y.negAdcPed 10 0.5 10.5 1000 0 1000
+TH2F hhodo_1x_neg_pi_vs_pad 'HMS Hodoscope 1X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1x.GoodPaddle  H.hod.1x.GoodNegAdcPulseInt 16 0.5 16.5 4000 0 40000
+TH2F hhodo_1y_neg_pi_vs_pad 'HMS Hodoscope 1Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1y.GoodPaddle  H.hod.1y.GoodNegAdcPulseInt 10 0.5 10.5 4000 0 40000
+TH2F hhodo_2x_neg_pi_vs_pad 'HMS Hodoscope 2X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2x.GoodPaddle  H.hod.2x.GoodNegAdcPulseInt 16 0.5 16.5 4000 0 40000
+TH2F hhodo_2y_neg_pi_vs_pad 'HMS Hodoscope 2Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2y.GoodPaddle  H.hod.2y.GoodNegAdcPulseInt 10 0.5 10.5 4000 0 40000
+TH2F hhodo_1x_neg_pamp_vs_pad 'HMS Hodoscope 1X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1x.GoodPaddle  H.hod.1x.GoodNegAdcPulseAmp 16 0.5 16.5 4100 0 4100
+TH2F hhodo_1y_neg_pamp_vs_pad 'HMS Hodoscope 1Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1y.GoodPaddle  H.hod.1y.GoodNegAdcPulseAmp 10 0.5 10.5 4100 0 4100
+TH2F hhodo_2x_neg_pamp_vs_pad 'HMS Hodoscope 2X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2x.GoodPaddle  H.hod.2x.GoodNegAdcPulseAmp 16 0.5 16.5 4100 0 4100
+TH2F hhodo_2y_neg_pamp_vs_pad 'HMS Hodoscope 2Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2y.GoodPaddle  H.hod.2y.GoodNegAdcPulseAmp 10 0.5 10.5 4100 0 4100
+TH2F hhodo_1x_neg_tdc_time_vs_pad 'HMS Hodoscope 1X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1x.GoodPaddle  H.hod.1x.GoodNegTdcChan 16 0.5 16.5 3500 -500 3000
+TH2F hhodo_1y_neg_tdc_time_vs_pad 'HMS Hodoscope 1Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1y.GoodPaddle  H.hod.1y.GoodNegTdcChan 10 0.5 10.5 3500 -500 3000
+TH2F hhodo_2x_neg_tdc_time_vs_pad 'HMS Hodoscope 2X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2x.GoodPaddle  H.hod.2x.GoodNegTdcChan 16 0.5 16.5 3500 -500 3000
+TH2F hhodo_2y_neg_tdc_time_vs_pad 'HMS Hodoscope 2Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2y.GoodPaddle  H.hod.2y.GoodNegTdcChan 10 0.5 10.5 3500 -500 3000
+
+# Cherenkov
+TH1F hgcer_occu 'HMS Cherenkov ADC Occupancy; PMT Number; Number of ADC Hits' H.cer.adcCounter 2 0.5 2.5
+TH2F hgcer_ped_vs_cntr 'HMS Cherenkov Pulse Pedestal; PMT Number; Pulse Pedestal / 1 ADC Units' H.cer.adcCounter H.cer.adcPed 2 0.5 2.5 1000 0 1000
+TH2F hgcer_pi_vs_cntr 'HMS Cherenkov Pulse Integral; PMT Number; Pulse Pedestal / 10 ADC Units' H.cer.adcCounter H.cer.adcPulseInt 2 0.5 2.5 4000 0 40000
+TH2F hgcer_pamp_vs_cntr 'HMS Cherenkov Pulse Amplitude; PMT Number; Pulse Pedestal / 1 ADC Units' H.cer.adcCounter H.cer.adcPulseAmp 2 0.5 2.5 4100 0 4100
+
+# Pre-Shower
+TH1F hcal_hA_pos_occu 'HMS hA+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.1pr.posAdcCounter 13 0.5 13.5
+TH2F hcal_hA_pos_ped_blk 'HMS hA+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPed 13 0.5 13.5 1000 0 1000
+TH2F hcal_hA_pos_pi_blk 'HMS hA+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hA_pos_pamp_blk 'HMS hA+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseAmp 13 0.5 13.5 4100 0 4100
+
+TH1F hcal_hA_neg_occu 'HMS hA- ADC Occupancy; Block Number; Number of ADC Hits' H.cal.1pr.negAdcCounter 13 0.5 13.5
+TH2F hcal_hA_neg_ped_blk 'HMS hA- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPed 13 0.5 13.5 1000 0 1000
+TH2F hcal_hA_neg_pi_blk 'HMS hA- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hA_neg_pamp_blk 'HMS hA- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseAmp 13 0.5 13.5 4100 0 4100
+
+TH1F hcal_hB_pos_occu 'HMS hB+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.2ta.posAdcCounter 13 0.5 13.5
+TH2F hcal_hB_pos_ped_blk 'HMS hB+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPed 13 0.5 13.5 1000 0 1000
+TH2F hcal_hB_pos_pi_blk 'HMS hB+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hB_pos_pamp_blk 'HMS hB+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseAmp 13 0.5 13.5 4100 0 4100
+
+TH1F hcal_hB_neg_occu 'HMS hB- ADC Occupancy; Block Number; Number of ADC Hits' H.cal.2ta.negAdcCounter 13 0.5 13.5
+TH2F hcal_hB_neg_ped_blk 'HMS hB- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPed 13 0.5 13.5 1000 0 1000
+TH2F hcal_hB_neg_pi_blk 'HMS hB- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hB_neg_pamp_blk 'HMS hB- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseAmp 13 0.5 13.5 4100 0 4100
+
+# Shower
+TH1F hcal_hC_occu 'HMS hC+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.3ta.posAdcCounter 13 0.5 13.5
+TH2F hcal_hC_ped_blk 'HMS hC+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPed 13 0.5 13.5 1000 0 1000
+TH2F hcal_hC_pi_blk 'HMS hC+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hC_pamp_blk 'HMS hC+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseAmp 13 0.5 13.5 4100 0 4100
+
+TH1F hcal_hD_occu 'HMS hD+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.4ta.posAdcCounter 13 0.5 13.5
+TH2F hcal_hD_ped_blk 'HMS hD+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPed 13 0.5 13.5 1000 0 1000
+TH2F hcal_hD_pi_blk 'HMS hD+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hD_pamp_blk 'HMS hD+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseAmp 13 0.5 13.5 4100 0 4100
+
+# Trigger Apparatus
+TH1F htrig_hCERsum_pped 'HMS Cherenkov Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hCERSUM_adcPed 1000 0 1000
+TH1F htrig_hCERsum_pint 'HMS Cherenkov Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hCERSUM_adcPulseInt 4000 0 40000
+TH1F htrig_hCERsum_pamp 'HMS Cherenkov Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hCERSUM_adcPulseAmp 4100 0 4100
+TH1F htrig_hCERsum_tdc_time 'HMS Cherenkov Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hCERSUM_tdcTime 4000 0 4000
+
+TH1F htrig_hAsum_pped 'HMS hA Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hASUM_adcPed 1000 0 1000
+TH1F htrig_hAsum_pint 'HMS hA Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hASUM_adcPulseInt 4000 0 40000
+TH1F htrig_hAsum_pamp 'HMS hA Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hASUM_adcPulseAmp 4100 0 4100
+TH1F htrig_hAsum_tdc_time 'HMS hA Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hASUM_tdcTime 4000 0 4000
+
+TH1F htrig_hBsum_pped 'HMS hB Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hBSUM_adcPed 1000 0 1000
+TH1F htrig_hBsum_pint 'HMS hB Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hBSUM_adcPulseInt 4000 0 40000
+TH1F htrig_hBsum_pamp 'HMS hB Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hBSUM_adcPulseAmp 4100 0 4100
+TH1F htrig_hBsum_tdc_time 'HMS hB Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hBSUM_tdcTime 4000 0 4000
+
+TH1F htrig_hCsum_pped 'HMS hC Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hCSUM_adcPed 1000 0 1000
+TH1F htrig_hCsum_pint 'HMS hC Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hCSUM_adcPulseInt 4000 0 40000
+TH1F htrig_hCsum_pamp 'HMS hC Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hCSUM_adcPulseAmp 4100 0 4100
+TH1F htrig_hCsum_tdc_time 'HMS hC Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hCSUM_tdcTime 4000 0 4000
+
+TH1F htrig_hDsum_pped 'HMS hD Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hDSUM_adcPed 1000 0 1000
+TH1F htrig_hDsum_pint 'HMS hD Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hDSUM_adcPulseInt 4000 0 40000
+TH1F htrig_hDsum_pamp 'HMS hD Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hDSUM_adcPulseAmp 4100 0 4100
+TH1F htrig_hDsum_tdc_time 'HMS hD Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hDSUM_tdcTime 4000 0 4000
+
+TH1F htrig_hpreShwr_adc_pped 'HMS Pre-Shower Sum Pulse Pedestal; Pulse Pedestal (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hPSHWR_adcPed 1000 0 1000
+TH1F htrig_hpreShwr_adc_pint 'HMS Pre-Shower Sum Pulse Integral; Pulse Integral (ADC Units); Number of Entries / 10 ADC Units;' T.hms.hPSHWR_adcPulseInt 4000 0 40000
+TH1F htrig_hpreShwr_adc_pamp 'HMS Pre-Shower Sum Pulse Amplitude; Pulse Amplitude (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hPSHWR_adcPulseAmp 4100 0 4100
+
+TH1F htrig_hshwr_adc_pped 'HMS Shower Pulse Pedestal; Pulse Pedestal (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hSHWR_adcPed 1000 0 1000
+TH1F htrig_hshwr_adc_pint 'HMS Shower Pulse Integral; Pulse Integral (ADC Units); Number of Entries / 10 ADC Units;' T.hms.hSHWR_adcPulseInt 4000 0 40000
+TH1F htrig_hshwr_adc_pamp 'HMS Shower Pulse Amplitude; Pulse Amplitude (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hSHWR_adcPulseAmp 4100 0 4100
+
+TH1F htrig_hpreShwrLow_tdc 'HMS Pre-Shower Low TDC Time; TDC Time (TDC Units); Number of Entries / 1 TDC Units;' T.hms.hPSHWRLO_tdcTime 4000 0 4000
+TH1F htrig_hpreShwrHigh_tdc 'HMS Pre-Shower High TDC Time; TDC Time (TDC Units); Number of Entries / 1 TDC Units;' T.hms.hPSHWRHI_tdcTime 4000 0 4000
+TH1F htrig_hshwr_tdc 'HMS Shower TDC Time; TDC Time (TDC Units); Number of Entries / 1 TDC Units;' T.hms.hSHWR_tdcTime 4000 0 4000
diff --git a/DEF-files/HMS/GEN/hstackana_cuts.def b/DEF-files/HMS/GEN/hstackana_cuts.def
new file mode 100644
index 00000000..3af34a5e
--- /dev/null
+++ b/DEF-files/HMS/GEN/hstackana_cuts.def
@@ -0,0 +1,13 @@
+Block: RawDecode
+
+Pedestal_event 0
+RawDecode_master 1
+
+Block: Decode
+Decode_master 1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CourseReconstruct 0
diff --git a/DEF-files/HMS/GEN/hstackana_report.def b/DEF-files/HMS/GEN/hstackana_report.def
new file mode 100644
index 00000000..4c8cbc0f
--- /dev/null
+++ b/DEF-files/HMS/GEN/hstackana_report.def
@@ -0,0 +1,196 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+#block *
+block T.hms.*
+block H.dc.*
+block H.tr.*
+block H.hod.*
+block H.cer.*
+block H.cal.*
+block H.gtr.*
+
+# Drift Chambers
+TH1F hdc_ref1 'HMS DC Reference Time Slot 5 Channel 111; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF1_tdcTime 3000 12000 15000 
+TH1F hdc_ref2 'HMS DC Reference Time Slot 8 Channel 127; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF2_tdcTime 3000 12000 15000
+TH1F hdc_ref3 'HMS DC Reference Time Slot 10 Channel 127; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF3_tdcTime 3000 12000 15000
+TH1F hdc_ref4 'HMS DC Reference Time Slot 17 Channel 127; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF4_tdcTime 3000 12000 15000
+
+TH1F hdc1x1_wirenum 'HMS DC 1X1 Wiremap; Wire Number; Number of Entries' H.dc.1x1.wirenum 113 0.5 113.5
+TH1F hdc1y1_wirenum 'HMS DC 1Y1 Wiremap; Wire Number; Number of Entries' H.dc.1y1.wirenum  52 0.5  52.5
+TH1F hdc1u1_wirenum 'HMS DC 1U1 Wiremap; Wire Number; Number of Entries' H.dc.1u1.wirenum 107 0.5 107.5
+TH1F hdc1v1_wirenum 'HMS DC 1V1 Wiremap; Wire Number; Number of Entries' H.dc.1v1.wirenum 107 0.5 107.5
+TH1F hdc1y2_wirenum 'HMS DC 1Y2 Wiremap; Wire Number; Number of Entries' H.dc.1y2.wirenum  52 0.5  52.5
+TH1F hdc1x2_wirenum 'HMS DC 1X2 Wiremap; Wire Number; Number of Entries' H.dc.1x2.wirenum 113 0.5 113.5
+
+TH1F hdc2x1_wirenum 'HMS DC 2X1 Wiremap; Wire Number; Number of Entries' H.dc.2x1.wirenum 113 0.5 113.5
+TH1F hdc2y1_wirenum 'HMS DC 2Y1 Wiremap; Wire Number; Number of Entries' H.dc.2y1.wirenum  52 0.5  52.5
+TH1F hdc2u1_wirenum 'HMS DC 2U1 Wiremap; Wire Number; Number of Entries' H.dc.2u1.wirenum 107 0.5 107.5
+TH1F hdc2v1_wirenum 'HMS DC 2V1 Wiremap; Wire Number; Number of Entries' H.dc.2v1.wirenum 107 0.5 107.5
+TH1F hdc2y2_wirenum 'HMS DC 2Y2 Wiremap; Wire Number; Number of Entries' H.dc.2y2.wirenum  52 0.5  52.5
+TH1F hdc2x2_wirenum 'HMS DC 2X2 Wiremap; Wire Number; Number of Entries' H.dc.2x2.wirenum 113 0.5 113.5
+
+TH2F hdc1x1_wirenum_vs_tdc 'HMS DC 1X1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1x1.wirenum H.dc.1x1.time 113 0.5 113.5 2000 -500 1500
+TH2F hdc1y1_wirenum_vs_tdc 'HMS DC 1Y1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1y1.wirenum H.dc.1y1.time 52  0.5  52.5 2000 -500 1500
+TH2F hdc1u1_wirenum_vs_tdc 'HMS DC 1U1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1u1.wirenum H.dc.1u1.time 107 0.5 107.5 2000 -500 1500
+TH2F hdc1v1_wirenum_vs_tdc 'HMS DC 1V1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1v1.wirenum H.dc.1v1.time 107 0.5 107.5 2000 -500 1500
+TH2F hdc1y2_wirenum_vs_tdc 'HMS DC 1Y2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1y2.wirenum H.dc.1y2.time 52  0.5  52.5 2000 -500 1500
+TH2F hdc1x2_wirenum_vs_tdc 'HMS DC 1X2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1x2.wirenum H.dc.1x2.time 113 0.5 113.5 2000 -500 1500
+
+TH2F hdc2x1_wirenum_vs_tdc 'HMS DC 2X1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2x1.wirenum H.dc.2x1.time 113 0.5 113.5 2000 -500 1500
+TH2F hdc2y1_wirenum_vs_tdc 'HMS DC 2Y1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2y1.wirenum H.dc.2y1.time 52  0.5  52.5 2000 -500 1500
+TH2F hdc2u1_wirenum_vs_tdc 'HMS DC 2U1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2u1.wirenum H.dc.2u1.time 107 0.5 107.5 2000 -500 1500
+TH2F hdc2v1_wirenum_vs_tdc 'HMS DC 2V1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2v1.wirenum H.dc.2v1.time 107 0.5 107.5 2000 -500 1500
+TH2F hdc2y2_wirenum_vs_tdc 'HMS DC 2Y2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2y2.wirenum H.dc.2y2.time 52  0.5  52.5 2000 -500 1500
+TH2F hdc2x2_wirenum_vs_tdc 'HMS DC 2X2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2x2.wirenum H.dc.2x2.time 113 0.5 113.5 2000 -500 1500
+
+TH2F hdc1x1_wirenum_vs_resid 'HMS DC 1X1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1x1.wirenum H.dc.residual[0] 113 0.5 113.5 200 -1.0 1.0
+TH2F hdc1y1_wirenum_vs_resid 'HMS DC 1Y1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1y1.wirenum H.dc.residual[1] 52  0.5  52.5 200 -1.0 1.0
+TH2F hdc1u1_wirenum_vs_resid 'HMS DC 1U1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1u1.wirenum H.dc.residual[2] 107 0.5 107.5 200 -1.0 1.0
+TH2F hdc1v1_wirenum_vs_resid 'HMS DC 1V1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1v1.wirenum H.dc.residual[3] 107 0.5 107.5 200 -1.0 1.0
+TH2F hdc1y2_wirenum_vs_resid 'HMS DC 1Y2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1y2.wirenum H.dc.residual[4] 52  0.5  52.5 200 -1.0 1.0
+TH2F hdc1x2_wirenum_vs_resid 'HMS DC 1X2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1x2.wirenum H.dc.residual[5] 113 0.5 113.5 200 -1.0 1.0
+
+TH2F hdc2x1_wirenum_vs_resid 'HMS DC 2X1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2x1.wirenum H.dc.residual[6] 113 0.5 113.5 200 -1.0 1.0
+TH2F hdc2y1_wirenum_vs_resid 'HMS DC 2Y1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2y1.wirenum H.dc.residual[7] 52  0.5  52.5 200 -1.0 1.0
+TH2F hdc2u1_wirenum_vs_resid 'HMS DC 2U1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2u1.wirenum H.dc.residual[8] 107 0.5 107.5 200 -1.0 1.0
+TH2F hdc2v1_wirenum_vs_resid 'HMS DC 2V1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2v1.wirenum H.dc.residual[9] 107 0.5 107.5 200 -1.0 1.0
+TH2F hdc2y2_wirenum_vs_resid 'HMS DC 2Y2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2y2.wirenum H.dc.residual[10] 52  0.5  52.5 200 -1.0 1.0
+TH2F hdc2x2_wirenum_vs_resid 'HMS DC 2X2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2x2.wirenum H.dc.residual[11] 113 0.5 113.5 200 -1.0 1.0
+
+TH2F hdc_xfp_vs_yxp 'HMS DC Xfp vs Yxp; Yfp (cm) / 1 cm; Xfp (cm) / 1 cm' H.dc.y H.dc.x 100 -50 50 100 -50 50
+TH2F hdc_xfpp_vs_yxpp 'HMS DC Xfpp vs Yxpp; Yfpp; Xfpp' H.dc.yp H.dc.xp 100 -1 1 100 -1 1
+
+# Hodoscopes (Positive/Left) 
+TH1F hhodo_1x_pos_adc_occu 'HMS Hodoscope 1X+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.1x.posAdcCounter 16 0.5 16.5
+TH1F hhodo_1y_pos_adc_occu 'HMS Hodoscope 1Y+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.1y.posAdcCounter 10 0.5 10.5 
+TH1F hhodo_2x_pos_adc_occu 'HMS Hodoscope 2X+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.2x.posAdcCounter 16 0.5 16.5
+TH1F hhodo_2y_pos_adc_occu 'HMS Hodoscope 2Y+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.2y.posAdcCounter 10 0.5 10.5
+TH1F hhodo_1x_pos_tdc_occu 'HMS Hodoscope 1X+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.1x.posTdcCounter 16 0.5 16.5
+TH1F hhodo_1y_pos_tdc_occu 'HMS Hodoscope 1Y+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.1y.posTdcCounter 10 0.5 10.5 
+TH1F hhodo_2x_pos_tdc_occu 'HMS Hodoscope 2X+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.2x.posTdcCounter 16 0.5 16.5
+TH1F hhodo_2y_pos_tdc_occu 'HMS Hodoscope 2Y+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.2y.posTdcCounter 10 0.5 10.5
+TH2F hhodo_1x_pos_ped_vs_pad 'HMS Hodoscope 1X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1x.posAdcCounter  H.hod.1x.posAdcPed 16 0.5 16.5 1000 0 1000
+TH2F hhodo_1y_pos_ped_vs_pad 'HMS Hodoscope 1Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1y.posAdcCounter  H.hod.1y.posAdcPed 10 0.5 10.5 1000 0 1000
+TH2F hhodo_2x_pos_ped_vs_pad 'HMS Hodoscope 2X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2x.posAdcCounter  H.hod.2x.posAdcPed 16 0.5 16.5 1000 0 1000
+TH2F hhodo_2y_pos_ped_vs_pad 'HMS Hodoscope 2Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2y.posAdcCounter  H.hod.2y.posAdcPed 10 0.5 10.5 1000 0 1000
+TH2F hhodo_1x_pos_pi_vs_pad 'HMS Hodoscope 1X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1x.GoodPaddle  H.hod.1x.GoodPosAdcPulseInt 16 0.5 16.5 4000 0 40000
+TH2F hhodo_1y_pos_pi_vs_pad 'HMS Hodoscope 1Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1y.GoodPaddle  H.hod.1y.GoodPosAdcPulseInt 10 0.5 10.5 4000 0 40000
+TH2F hhodo_2x_pos_pi_vs_pad 'HMS Hodoscope 2X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2x.GoodPaddle  H.hod.2x.GoodPosAdcPulseInt 16 0.5 16.5 4000 0 40000
+TH2F hhodo_2y_pos_pi_vs_pad 'HMS Hodoscope 2Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2y.GoodPaddle  H.hod.2y.GoodPosAdcPulseInt 10 0.5 10.5 4000 0 40000
+TH2F hhodo_1x_pos_pamp_vs_pad 'HMS Hodoscope 1X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1x.GoodPaddle  H.hod.1x.GoodPosAdcPulseAmp 16 0.5 16.5 4100 0 4100
+TH2F hhodo_1y_pos_pamp_vs_pad 'HMS Hodoscope 1Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1y.GoodPaddle  H.hod.1y.GoodPosAdcPulseAmp 10 0.5 10.5 4100 0 4100
+TH2F hhodo_2x_pos_pamp_vs_pad 'HMS Hodoscope 2X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2x.GoodPaddle  H.hod.2x.GoodPosAdcPulseAmp 16 0.5 16.5 4100 0 4100
+TH2F hhodo_2y_pos_pamp_vs_pad 'HMS Hodoscope 2Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2y.GoodPaddle  H.hod.2y.GoodPosAdcPulseAmp 10 0.5 10.5 4100 0 4100
+TH2F hhodo_1x_pos_tdc_time_vs_pad 'HMS Hodoscope 1X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1x.GoodPaddle  H.hod.1x.GoodPosTdcChan 16 0.5 16.5 3500 -500 3000
+TH2F hhodo_1y_pos_tdc_time_vs_pad 'HMS Hodoscope 1Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1y.GoodPaddle  H.hod.1y.GoodPosTdcChan 10 0.5 10.5 3500 -500 3000
+TH2F hhodo_2x_pos_tdc_time_vs_pad 'HMS Hodoscope 2X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2x.GoodPaddle  H.hod.2x.GoodPosTdcChan 16 0.5 16.5 3500 -500 3000
+TH2F hhodo_2y_pos_tdc_time_vs_pad 'HMS Hodoscope 2Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2y.GoodPaddle  H.hod.2y.GoodPosTdcChan 10 0.5 10.5 3500 -500 3000
+
+# Hodoscopes (Negative/Right)
+TH1F hhodo_1x_neg_adc_occu 'HMS Hodoscope 1X- ADC Occupancy; Paddle Number; Number of Hits' H.hod.1x.negAdcCounter 16 0.5 16.5
+TH1F hhodo_1y_neg_adc_occu 'HMS Hodoscope 1Y- ADC Occupancy; Paddle Number; Number of Hits' H.hod.1y.negAdcCounter 10 0.5 10.5 
+TH1F hhodo_2x_neg_adc_occu 'HMS Hodoscope 2X- ADC Occupancy; Paddle Number; Number of Hits' H.hod.2x.negAdcCounter 16 0.5 16.5
+TH1F hhodo_2y_neg_adc_occu 'HMS Hodoscope 2Y- ADC Occupancy; Paddle Number; Number of Hits' H.hod.2y.negAdcCounter 10 0.5 10.5
+TH1F hhodo_1x_neg_tdc_occu 'HMS Hodoscope 1X- TDC Occupancy; Paddle Number; Number of Hits' H.hod.1x.negTdcCounter 16 0.5 16.5
+TH1F hhodo_1y_neg_tdc_occu 'HMS Hodoscope 1Y- TDC Occupancy; Paddle Number; Number of Hits' H.hod.1y.negTdcCounter 10 0.5 10.5 
+TH1F hhodo_2x_neg_tdc_occu 'HMS Hodoscope 2X- TDC Occupancy; Paddle Number; Number of Hits' H.hod.2x.negTdcCounter 16 0.5 16.5
+TH1F hhodo_2y_neg_tdc_occu 'HMS Hodoscope 2Y- TDC Occupancy; Paddle Number; Number of Hits' H.hod.2y.negTdcCounter 10 0.5 10.5
+TH2F hhodo_1x_neg_ped_vs_pad 'HMS Hodoscope 1X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1x.negAdcCounter  H.hod.1x.negAdcPed 16 0.5 16.5 1000 0 1000
+TH2F hhodo_1y_neg_ped_vs_pad 'HMS Hodoscope 1Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1y.negAdcCounter  H.hod.1y.negAdcPed 10 0.5 10.5 1000 0 1000
+TH2F hhodo_2x_neg_ped_vs_pad 'HMS Hodoscope 2X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2x.negAdcCounter  H.hod.2x.negAdcPed 16 0.5 16.5 1000 0 1000
+TH2F hhodo_2y_neg_ped_vs_pad 'HMS Hodoscope 2Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2y.negAdcCounter  H.hod.2y.negAdcPed 10 0.5 10.5 1000 0 1000
+TH2F hhodo_1x_neg_pi_vs_pad 'HMS Hodoscope 1X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1x.GoodPaddle  H.hod.1x.GoodNegAdcPulseInt 16 0.5 16.5 4000 0 40000
+TH2F hhodo_1y_neg_pi_vs_pad 'HMS Hodoscope 1Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1y.GoodPaddle  H.hod.1y.GoodNegAdcPulseInt 10 0.5 10.5 4000 0 40000
+TH2F hhodo_2x_neg_pi_vs_pad 'HMS Hodoscope 2X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2x.GoodPaddle  H.hod.2x.GoodNegAdcPulseInt 16 0.5 16.5 4000 0 40000
+TH2F hhodo_2y_neg_pi_vs_pad 'HMS Hodoscope 2Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2y.GoodPaddle  H.hod.2y.GoodNegAdcPulseInt 10 0.5 10.5 4000 0 40000
+TH2F hhodo_1x_neg_pamp_vs_pad 'HMS Hodoscope 1X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1x.GoodPaddle  H.hod.1x.GoodNegAdcPulseAmp 16 0.5 16.5 4100 0 4100
+TH2F hhodo_1y_neg_pamp_vs_pad 'HMS Hodoscope 1Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1y.GoodPaddle  H.hod.1y.GoodNegAdcPulseAmp 10 0.5 10.5 4100 0 4100
+TH2F hhodo_2x_neg_pamp_vs_pad 'HMS Hodoscope 2X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2x.GoodPaddle  H.hod.2x.GoodNegAdcPulseAmp 16 0.5 16.5 4100 0 4100
+TH2F hhodo_2y_neg_pamp_vs_pad 'HMS Hodoscope 2Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2y.GoodPaddle  H.hod.2y.GoodNegAdcPulseAmp 10 0.5 10.5 4100 0 4100
+TH2F hhodo_1x_neg_tdc_time_vs_pad 'HMS Hodoscope 1X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1x.GoodPaddle  H.hod.1x.GoodNegTdcChan 16 0.5 16.5 3500 -500 3000
+TH2F hhodo_1y_neg_tdc_time_vs_pad 'HMS Hodoscope 1Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1y.GoodPaddle  H.hod.1y.GoodNegTdcChan 10 0.5 10.5 3500 -500 3000
+TH2F hhodo_2x_neg_tdc_time_vs_pad 'HMS Hodoscope 2X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2x.GoodPaddle  H.hod.2x.GoodNegTdcChan 16 0.5 16.5 3500 -500 3000
+TH2F hhodo_2y_neg_tdc_time_vs_pad 'HMS Hodoscope 2Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2y.GoodPaddle  H.hod.2y.GoodNegTdcChan 10 0.5 10.5 3500 -500 3000
+
+# Cherenkov
+TH1F hgcer_occu 'HMS Cherenkov ADC Occupancy; PMT Number; Number of ADC Hits' H.cer.adcCounter 2 0.5 2.5
+TH2F hgcer_ped_vs_cntr 'HMS Cherenkov Pulse Pedestal; PMT Number; Pulse Pedestal / 1 ADC Units' H.cer.adcCounter H.cer.adcPed 2 0.5 2.5 1000 0 1000
+TH2F hgcer_pi_vs_cntr 'HMS Cherenkov Pulse Integral; PMT Number; Pulse Pedestal / 10 ADC Units' H.cer.adcCounter H.cer.adcPulseInt 2 0.5 2.5 4000 0 40000
+TH2F hgcer_pamp_vs_cntr 'HMS Cherenkov Pulse Amplitude; PMT Number; Pulse Pedestal / 1 ADC Units' H.cer.adcCounter H.cer.adcPulseAmp 2 0.5 2.5 4100 0 4100
+
+#
+TH1F hgcer_pmt1_adc  'HMS Cherenkov PMT 1 ; ADC (chan) ; Counts' H.cer.adc_p[0] 1000 0. 100000. H.cer.adc_hit[0]==1
+TH1F hgcer_pmt2_adc  'HMS Cherenkov PMT 2 ; ADC (chan) ; Counts' H.cer.adc_p[1] 1000 0. 100000. H.cer.adc_hit[1]==1
+TH1F hgcer_pmt1_nphe 'HMS Cherenkov PMT 1 ; N_Phe ; Counts' H.cer.npe[0] 500 0. 100. H.cer.adc_hit[0]==1
+TH1F hgcer_pmt2_nphe 'HMS Cherenkov PMT 2 ; N_Phe ; Counts' H.cer.npe[1] 500 0. 100. H.cer.adc_hit[1]==1
+
+
+# Pre-Shower
+TH1F hcal_hA_pos_occu 'HMS hA+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.1pr.posAdcCounter 13 0.5 13.5
+TH2F hcal_hA_pos_ped_blk 'HMS hA+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPed 13 0.5 13.5 1000 0 1000
+TH2F hcal_hA_pos_pi_blk 'HMS hA+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hA_pos_pamp_blk 'HMS hA+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseAmp 13 0.5 13.5 4100 0 4100
+
+TH1F hcal_hA_neg_occu 'HMS hA- ADC Occupancy; Block Number; Number of ADC Hits' H.cal.1pr.negAdcCounter 13 0.5 13.5
+TH2F hcal_hA_neg_ped_blk 'HMS hA- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPed 13 0.5 13.5 1000 0 1000
+TH2F hcal_hA_neg_pi_blk 'HMS hA- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hA_neg_pamp_blk 'HMS hA- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseAmp 13 0.5 13.5 4100 0 4100
+
+TH1F hcal_hB_pos_occu 'HMS hB+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.2ta.posAdcCounter 13 0.5 13.5
+TH2F hcal_hB_pos_ped_blk 'HMS hB+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPed 13 0.5 13.5 1000 0 1000
+TH2F hcal_hB_pos_pi_blk 'HMS hB+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hB_pos_pamp_blk 'HMS hB+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseAmp 13 0.5 13.5 4100 0 4100
+
+TH1F hcal_hB_neg_occu 'HMS hB- ADC Occupancy; Block Number; Number of ADC Hits' H.cal.2ta.negAdcCounter 13 0.5 13.5
+TH2F hcal_hB_neg_ped_blk 'HMS hB- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPed 13 0.5 13.5 1000 0 1000
+TH2F hcal_hB_neg_pi_blk 'HMS hB- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hB_neg_pamp_blk 'HMS hB- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseAmp 13 0.5 13.5 4100 0 4100
+
+# Shower
+TH1F hcal_hC_occu 'HMS hC+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.3ta.posAdcCounter 13 0.5 13.5
+TH2F hcal_hC_ped_blk 'HMS hC+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPed 13 0.5 13.5 1000 0 1000
+TH2F hcal_hC_pi_blk 'HMS hC+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hC_pamp_blk 'HMS hC+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseAmp 13 0.5 13.5 4100 0 4100
+
+TH1F hcal_hD_occu 'HMS hD+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.4ta.posAdcCounter 13 0.5 13.5
+TH2F hcal_hD_ped_blk 'HMS hD+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPed 13 0.5 13.5 1000 0 1000
+TH2F hcal_hD_pi_blk 'HMS hD+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F hcal_hD_pamp_blk 'HMS hD+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseAmp 13 0.5 13.5 4100 0 4100
+
+# Trigger Apparatus
+TH1F htrig_hCERsum_pped 'HMS Cherenkov Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hCERSUM_adcPed 1000 0 1000
+TH1F htrig_hCERsum_pint 'HMS Cherenkov Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hCERSUM_adcPulseInt 4000 0 40000
+TH1F htrig_hCERsum_pamp 'HMS Cherenkov Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hCERSUM_adcPulseAmp 4100 0 4100
+TH1F htrig_hCERsum_tdc_time 'HMS Cherenkov Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hCERSUM_tdcTime 4000 0 4000
+
+TH1F htrig_hAsum_pped 'HMS hA Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hASUM_adcPed 1000 0 1000
+TH1F htrig_hAsum_pint 'HMS hA Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hASUM_adcPulseInt 4000 0 40000
+TH1F htrig_hAsum_pamp 'HMS hA Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hASUM_adcPulseAmp 4100 0 4100
+TH1F htrig_hAsum_tdc_time 'HMS hA Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hASUM_tdcTime 4000 0 4000
+
+TH1F htrig_hBsum_pped 'HMS hB Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hBSUM_adcPed 1000 0 1000
+TH1F htrig_hBsum_pint 'HMS hB Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hBSUM_adcPulseInt 4000 0 40000
+TH1F htrig_hBsum_pamp 'HMS hB Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hBSUM_adcPulseAmp 4100 0 4100
+TH1F htrig_hBsum_tdc_time 'HMS hB Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hBSUM_tdcTime 4000 0 4000
+
+TH1F htrig_hCsum_pped 'HMS hC Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hCSUM_adcPed 1000 0 1000
+TH1F htrig_hCsum_pint 'HMS hC Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hCSUM_adcPulseInt 4000 0 40000
+TH1F htrig_hCsum_pamp 'HMS hC Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hCSUM_adcPulseAmp 4100 0 4100
+TH1F htrig_hCsum_tdc_time 'HMS hC Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hCSUM_tdcTime 4000 0 4000
+
+TH1F htrig_hDsum_pped 'HMS hD Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hDSUM_adcPed 1000 0 1000
+TH1F htrig_hDsum_pint 'HMS hD Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hDSUM_adcPulseInt 4000 0 40000
+TH1F htrig_hDsum_pamp 'HMS hD Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hDSUM_adcPulseAmp 4100 0 4100
+TH1F htrig_hDsum_tdc_time 'HMS hD Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hDSUM_tdcTime 4000 0 4000
+
+TH1F htrig_hpreShwr_adc_pped 'HMS Pre-Shower Sum Pulse Pedestal; Pulse Pedestal (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hPSHWR_adcPed 1000 0 1000
+TH1F htrig_hpreShwr_adc_pint 'HMS Pre-Shower Sum Pulse Integral; Pulse Integral (ADC Units); Number of Entries / 10 ADC Units;' T.hms.hPSHWR_adcPulseInt 4000 0 40000
+TH1F htrig_hpreShwr_adc_pamp 'HMS Pre-Shower Sum Pulse Amplitude; Pulse Amplitude (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hPSHWR_adcPulseAmp 4100 0 4100
+
+TH1F htrig_hshwr_adc_pped 'HMS Shower Pulse Pedestal; Pulse Pedestal (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hSHWR_adcPed 1000 0 1000
+TH1F htrig_hshwr_adc_pint 'HMS Shower Pulse Integral; Pulse Integral (ADC Units); Number of Entries / 10 ADC Units;' T.hms.hSHWR_adcPulseInt 4000 0 40000
+TH1F htrig_hshwr_adc_pamp 'HMS Shower Pulse Amplitude; Pulse Amplitude (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hSHWR_adcPulseAmp 4100 0 4100
+
+TH1F htrig_hpreShwrLow_tdc 'HMS Pre-Shower Low TDC Time; TDC Time (TDC Units); Number of Entries / 1 TDC Units;' T.hms.hPSHWRLO_tdcTime 4000 0 4000
+TH1F htrig_hpreShwrHigh_tdc 'HMS Pre-Shower High TDC Time; TDC Time (TDC Units); Number of Entries / 1 TDC Units;' T.hms.hPSHWRHI_tdcTime 4000 0 4000
+TH1F htrig_hshwr_tdc 'HMS Shower TDC Time; TDC Time (TDC Units); Number of Entries / 1 TDC Units;' T.hms.hSHWR_tdcTime 4000 0 4000
diff --git a/DEF-files/HMS/GEN/hstackana_report_cuts.def b/DEF-files/HMS/GEN/hstackana_report_cuts.def
new file mode 100644
index 00000000..535972d6
--- /dev/null
+++ b/DEF-files/HMS/GEN/hstackana_report_cuts.def
@@ -0,0 +1,191 @@
+# Demo cuts for hodtest
+#
+
+Block: RawDecode
+
+Pedestal_event    g.evtyp==4
+scalar_event      g.evtyp==0
+HMS_event         g.evtyp==1
+SHMS_event         g.evtyp==1
+coin_event        g.evtyp==3
+misc_event        g.evtyp>=5
+hmscoin_event     g.evtyp==1||g.evtyp==3
+shmscoin_event     g.evtyp==2||g.evtyp==3
+all_event         g.evtyp==1||g.evtyp==2||g.evtyp==3
+RawDecode_master  1
+
+Block: Decode
+Decode_master     HMS_event
+
+Block: CoarseTracking
+CoarseTracking_master HMS_event
+
+all_trigs             g.evtyp==1 || g.evtyp==2 || g.evtyp==3
+hms_shms_trig          g.evtyp==1 || g.evtyp==2
+hms_coin_trig         g.evtyp==1 || g.evtyp==3
+
+cer_pmt1_good        H.cer.adc_hit[0]==1
+cer_pmt2_good        H.cer.adc_hit[1]==1
+
+
+hmsDC1Planes_large  (H.dc.1x1.nhit+H.dc.1y1.nhit+H.dc.1u1.nhit+H.dc.1v1.nhit+H.dc.1x2.nhit+H.dc.1y2.nhit) >20
+hmsDC2Planes_large  (H.dc.2x1.nhit+H.dc.2y1.nhit+H.dc.2u1.nhit+H.dc.2v1.nhit+H.dc.2x2.nhit+H.dc.2y2.nhit) >20
+
+hmsDC1_1hit_x1                H.dc.1x1.nhit == 1
+hmsDC1_1hit_y1                H.dc.1y1.nhit == 1
+hmsDC1_1hit_u1                H.dc.1u1.nhit == 1
+hmsDC1_1hit_v1                H.dc.1v1.nhit == 1
+hmsDC1_1hit_y2                H.dc.1y2.nhit == 1
+hmsDC1_1hit_x2                H.dc.1x2.nhit == 1
+
+hmsDC2_1hit_x1                H.dc.2x1.nhit == 1
+hmsDC2_1hit_y1                H.dc.2y1.nhit == 1
+hmsDC2_1hit_u1                H.dc.2u1.nhit == 1
+hmsDC2_1hit_v1                H.dc.2v1.nhit == 1
+hmsDC2_1hit_y2                H.dc.2y2.nhit == 1
+hmsDC2_1hit_x2                H.dc.2x2.nhit == 1
+
+h1hit1                H.dc.1x1.nhit >= 1
+h1hit2                H.dc.1y1.nhit >= 1
+h1hit3                H.dc.1u1.nhit >= 1
+h1hit4                H.dc.1v1.nhit >= 1
+h1hit5                H.dc.1y2.nhit >= 1
+h1hit6                H.dc.1x2.nhit >= 1
+
+h2hit1                H.dc.2x1.nhit >= 1
+h2hit2                H.dc.2y1.nhit >= 1
+h2hit3                H.dc.2u1.nhit >= 1
+h2hit4                H.dc.2v1.nhit >= 1
+h2hit5                H.dc.2y2.nhit >= 1
+h2hit6                H.dc.2x2.nhit >= 1
+
+hmsDC1Planes6hits   (H.dc.1x1.nhit+H.dc.1y1.nhit+H.dc.1u1.nhit+H.dc.1v1.nhit+H.dc.1x2.nhit+H.dc.1y2.nhit) ==6
+hmsDC2Planes6hits   (H.dc.2x1.nhit+H.dc.2y1.nhit+H.dc.2u1.nhit+H.dc.2v1.nhit+H.dc.2x2.nhit+H.dc.2y2.nhit )==6
+hmsDC1_5hits_x1     hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2
+hmsDC1_6hits_x1     h1hit1&&hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2
+hmsDC1_5hits_y1     hmsDC1_1hit_x1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2
+hmsDC1_6hits_y1     h1hit2&&hmsDC1_1hit_x1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2
+hmsDC1_5hits_u1     hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2
+hmsDC1_6hits_u1     h1hit3&&hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2
+hmsDC1_5hits_v1     hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2 
+hmsDC1_6hits_v1     h1hit4&&hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2
+hmsDC1_5hits_x2     hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_y2
+hmsDC1_6hits_x2     h1hit6&&hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_y2
+hmsDC1_5hits_y2     hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2
+hmsDC1_6hits_y2     h1hit5&&hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2
+
+hmsDC2_5hits_x1     hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2
+hmsDC2_6hits_x1     h2hit1&&hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2
+hmsDC2_5hits_y1     hmsDC2_1hit_x1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2
+hmsDC2_6hits_y1     h2hit2&&hmsDC2_1hit_x1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2
+hmsDC2_5hits_u1     hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2
+hmsDC2_6hits_u1     h2hit3&&hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2
+hmsDC2_5hits_v1     hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2 
+hmsDC2_6hits_v1     h2hit4&&hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2
+hmsDC2_5hits_x2     hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_y2
+hmsDC2_6hits_x2     h2hit6&&hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_y2
+hmsDC2_5hits_y2     hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2
+hmsDC2_6hits_y2     h2hit5&&hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2
+
+
+
+
+hms1HitsLt            H.dc.Ch1.nhit <= H.dc.Ch1.maxhits && g.evtyp==1
+hms2HitsLt            H.dc.Ch2.nhit <= H.dc.Ch2.maxhits && g.evtyp==1
+hmsHitsLt             H.dc.Ch1.nhit <= H.dc.Ch1.maxhits && H.dc.Ch2.nhit <= H.dc.Ch2.maxhits && g.evtyp==1
+hmsDC1PlanesGT        (h1hit1 + h1hit2 + h1hit3 + h1hit4 + h1hit5 + h1hit6 )>=5
+hmsDC2PlanesGT        (h2hit1 + h2hit2 + h2hit3 + h2hit4 + h2hit5 + h2hit6 )>=5
+hmsPlanesGT           hmsDC1PlanesGT && hmsDC2PlanesGT
+hmsHitsPlanes         (H.dc.Ch1.nhit <= H.dc.Ch1.maxhits) && (H.dc.Ch2.nhit <= H.dc.Ch2.maxhits) && hmsPlanesGT
+hSpacePoints          H.dc.Ch1.spacepoints >= 1 && H.dc.Ch2.spacepoints >=1
+hSpacePointsStub      H.dc.stubtest==1 && H.dc.Ch1.spacepoints >=1 && H.dc.Ch2.spacepoints >=1
+hFoundTrack           H.dc.ntrack>0 
+hStubLT               H.dc.stubtest==1
+f1HSpacePoints        hms1HitsLt && hmsDC1PlanesGT && H.dc.Ch1.spacepoints==0 && g.evtyp==1
+f2HSpacePoints        hms2HitsLt && hmsDC2PlanesGT && H.dc.Ch2.spacepoints==0 && g.evtyp==1
+hTest1                hmsHitsPlanes && (!hSpacePoints)
+hTest2                hSpacePoints && (!hStubLT)
+
+
+
+
+
+
+Block: CoarseReconstruct
+CoarseReconstruct_master HMS_event
+
+Block: Tracking
+Tracking_master  HMS_event
+
+Block: Reconstruct
+Reconstruct_master HMS_event
+
+HMSScinGood           H.hod.goodscinhit == 1
+
+HMSScinShould         HMSScinGood && H.cal.etotnorm > 0.7 && H.cer.npesum > 2.0
+HMSScinShoulde        HMSScinGood && H.cer.npesum > 2.0
+HMSScinShouldh        H.hod.goodscinhit == 1 && g.evtyp == 1
+
+HMSScinDid            HMSScinShould && H.dc.ntrack > 0
+HMSScinDide           HMSScinShoulde && H.dc.ntrack > 0
+HMSScinDidh           HMSScinShouldh && H.dc.ntrack > 0
+
+
+
+goodHDC1x1            H.dc.1x1.nhit > 0 && H.dc.1x1.nhit < 3
+goodHDC1y1            H.dc.1y1.nhit > 0 && H.dc.1y1.nhit < 3
+goodHDC1u1            H.dc.1u1.nhit > 0 && H.dc.1u1.nhit < 3
+goodHDC1v1            H.dc.1v1.nhit > 0 && H.dc.1v1.nhit < 3
+goodHDC1y2            H.dc.1y2.nhit > 0 && H.dc.1y2.nhit < 3
+goodHDC1x2            H.dc.1x2.nhit > 0 && H.dc.1x2.nhit < 3
+
+goodHDC2x1            H.dc.2x1.nhit > 0 && H.dc.2x1.nhit < 3
+goodHDC2y1            H.dc.2y1.nhit > 0 && H.dc.2y1.nhit < 3
+goodHDC2u1            H.dc.2u1.nhit > 0 && H.dc.2u1.nhit < 3
+goodHDC2v1            H.dc.2v1.nhit > 0 && H.dc.2v1.nhit < 3
+goodHDC2y2            H.dc.2y2.nhit > 0 && H.dc.2y2.nhit < 3
+goodHDC2x2            H.dc.2x2.nhit > 0 && H.dc.2x2.nhit < 3
+
+goodHDC1              goodHDC1x1  && goodHDC1y1 && goodHDC1u1 && goodHDC1v1 && goodHDC1y2 && goodHDC1x2 
+goodHDC2              goodHDC2x1  && goodHDC2y1 && goodHDC2u1 && goodHDC2v1 && goodHDC2y2 && goodHDC2x2 
+bothGood              goodHDC1 && goodHDC2
+
+realhdc1x1            goodHDC1x1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0)
+realhdc1y1            goodHDC1y1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0)
+realhdc1u1            goodHDC1u1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0)
+realhdc1v1            goodHDC1v1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0)
+realhdc1y2            goodHDC1y2 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0)
+realhdc2x2            goodHDC1x2 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0)
+realhdc2x1            goodHDC2x1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0)
+realhdc2y1            goodHDC2y1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0)
+realhdc2u1            goodHDC2u1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0)
+realhdc2v1            goodHDC2v1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0)
+realhdc2y2            goodHDC2y2 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0)
+realhdc2x2            goodHDC2x2 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0)
+
+hFound1Track          H.dc.ntrack == 1
+hFound2Track          H.dc.ntrack == 2
+hFound3Track          H.dc.ntrack == 3
+hFound4Track          H.dc.ntrack == 4
+
+hCleanTrack           H.gtr.index > -1
+1hCleanTrack          H.gtr.index == 0
+2hCleanTrack          H.gtr.index == 1
+3hCleanTrack          H.gtr.index == 2
+4hCleanTrack          H.gtr.index == 3
+
+anyhs1x               H.hod.1x.nhits > 0
+anyhs1y               H.hod.1y.nhits > 0
+anyhs2x               H.hod.2x.nhits > 0
+anyhs2y               H.hod.2y.nhits > 0
+
+goodhs1x              H.hod.1x.nhits > 0 && H.hod.1x.nhits < 3
+goodhs1y              H.hod.1y.nhits > 0 && H.hod.1y.nhits < 3
+goodhs1               goodhs1x && goodhs1y
+goodhs2x              H.hod.2x.nhits > 0 && H.hod.2x.nhits < 3
+goodhs2y              H.hod.2y.nhits > 0 && H.hod.2y.nhits < 3
+goodhs2               goodhs2x && goodhs2y
+goodhs1s2             goodhs1 && goodhs2
+
+Block: Physics
+Physics_master HMS_event
diff --git a/DEF-files/HMS/HODO/hhodoana.def b/DEF-files/HMS/HODO/hhodoana.def
new file mode 100644
index 00000000..f6b7a485
--- /dev/null
+++ b/DEF-files/HMS/HODO/hhodoana.def
@@ -0,0 +1,134 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+block H.hod.*
+block T.hms.*
+
+TH1F hhodo_1x_multi 'HMS 1X Multiplicity; Number of Hits; Counts' H.hod.1x.nhits 16 0.5 16.5
+TH1F hhodo_1y_multi 'HMS 1Y Multiplicity; Number of Hits; Counts' H.hod.1y.nhits 10 0.5 10.5
+TH1F hhodo_2x_multi 'HMS 2X Multiplicity; Number of Hits; Counts' H.hod.2x.nhits 16 0.5 16.5
+TH1F hhodo_2y_multi 'HMS 2Y Multiplicity; Number of Hits; Counts' H.hod.2y.nhits 10 0.5 10.5
+
+TH1F hhodo_1x_pos_adc_occu 'HMS 1X+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.1x.posAdcCounter 16 0.5 16.5
+TH1F hhodo_1y_pos_adc_occu 'HMS 1Y+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.1y.posAdcCounter 10 0.5 10.5 
+TH1F hhodo_2x_pos_adc_occu 'HMS 2X+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.2x.posAdcCounter 16 0.5 16.5
+TH1F hhodo_2y_pos_adc_occu 'HMS 2Y+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.2y.posAdcCounter 10 0.5 10.5
+
+TH1F hhodo_1x_neg_adc_occu 'HMS 1X- ADC Occupancy; Paddle Number; Number of Hits' H.hod.1x.negAdcCounter 16 0.5 16.5
+TH1F hhodo_1y_neg_adc_occu 'HMS 1Y- ADC Occupancy; Paddle Number; Number of Hits' H.hod.1y.negAdcCounter 10 0.5 10.5 
+TH1F hhodo_2x_neg_adc_occu 'HMS 2X- ADC Occupancy; Paddle Number; Number of Hits' H.hod.2x.negAdcCounter 16 0.5 16.5
+TH1F hhodo_2y_neg_adc_occu 'HMS 2Y- ADC Occupancy; Paddle Number; Number of Hits' H.hod.2y.negAdcCounter 10 0.5 10.5
+
+TH1F hhodo_1x_pos_tdc_occu 'HMS 1X+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.1x.posTdcCounter 16 0.5 16.5
+TH1F hhodo_1y_pos_tdc_occu 'HMS 1Y+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.1y.posTdcCounter 10 0.5 10.5 
+TH1F hhodo_2x_pos_tdc_occu 'HMS 2X+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.2x.posTdcCounter 16 0.5 16.5
+TH1F hhodo_2y_pos_tdc_occu 'HMS 2Y+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.2y.posTdcCounter 10 0.5 10.5
+
+TH1F hhodo_1x_neg_tdc_occu 'HMS 1X- TDC Occupancy; Paddle Number; Number of Hits' H.hod.1x.negTdcCounter 16 0.5 16.5
+TH1F hhodo_1y_neg_tdc_occu 'HMS 1Y- TDC Occupancy; Paddle Number; Number of Hits' H.hod.1y.negTdcCounter 10 0.5 10.5 
+TH1F hhodo_2x_neg_tdc_occu 'HMS 2X- TDC Occupancy; Paddle Number; Number of Hits' H.hod.2x.negTdcCounter 16 0.5 16.5
+TH1F hhodo_2y_neg_tdc_occu 'HMS 2Y- TDC Occupancy; Paddle Number; Number of Hits' H.hod.2y.negTdcCounter 10 0.5 10.5
+
+TH2F hhodo_1x_pos_rawped_vs_pad 'HMS 1X+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.1x.posAdcCounter  H.hod.1x.posAdcPedRaw 16 0.5 16.5 400 0 4000
+TH2F hhodo_1y_pos_rawped_vs_pad 'HMS 1Y+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.1y.posAdcCounter  H.hod.1y.posAdcPedRaw 10 0.5 10.5 400 0 4000
+TH2F hhodo_2x_pos_rawped_vs_pad 'HMS 2X+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.2x.posAdcCounter  H.hod.2x.posAdcPedRaw 16 0.5 16.5 400 0 4000
+TH2F hhodo_2y_pos_rawped_vs_pad 'HMS 2Y+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.2y.posAdcCounter  H.hod.2y.posAdcPedRaw 10 0.5 10.5 400 0 4000
+
+TH2F hhodo_1x_neg_rawped_vs_pad 'HMS 1X- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.1x.negAdcCounter  H.hod.1x.negAdcPedRaw 16 0.5 16.5 400 0 4000
+TH2F hhodo_1y_neg_rawped_vs_pad 'HMS 1Y- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.1y.negAdcCounter  H.hod.1y.negAdcPedRaw 10 0.5 10.5 400 0 4000
+TH2F hhodo_2x_neg_rawped_vs_pad 'HMS 2X- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.2x.negAdcCounter  H.hod.2x.negAdcPedRaw 16 0.5 16.5 400 0 4000
+TH2F hhodo_2y_neg_rawped_vs_pad 'HMS 2Y- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.2y.negAdcCounter  H.hod.2y.negAdcPedRaw 10 0.5 10.5 400 0 4000
+
+
+TH2F hhodo_1x_pos_rawpi_vs_pad 'HMS 1X+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.1x.posAdcCounter  H.hod.1x.posAdcPulseIntRaw 16 0.5 16.5 2000 0 20000
+TH2F hhodo_1y_pos_rawpi_vs_pad 'HMS 1Y+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.1y.posAdcCounter  H.hod.1y.posAdcPulseIntRaw 10 0.5 10.5 2000 0 20000
+TH2F hhodo_2x_pos_rawpi_vs_pad 'HMS 2X+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.2x.posAdcCounter  H.hod.2x.posAdcPulseIntRaw 16 0.5 16.5 2000 0 20000
+TH2F hhodo_2y_pos_rawpi_vs_pad 'HMS 2Y+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.2y.posAdcCounter  H.hod.2y.posAdcPulseIntRaw 10 0.5 10.5 2000 0 20000
+
+TH2F hhodo_1x_neg_rawpi_vs_pad 'HMS 1X- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.1x.negAdcCounter  H.hod.1x.negAdcPulseIntRaw 16 0.5 16.5 2000 0 20000
+TH2F hhodo_1y_neg_rawpi_vs_pad 'HMS 1Y- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.1y.negAdcCounter  H.hod.1y.negAdcPulseIntRaw 10 0.5 10.5 2000 0 20000
+TH2F hhodo_2x_neg_rawpi_vs_pad 'HMS 2X- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.2x.negAdcCounter  H.hod.2x.negAdcPulseIntRaw 16 0.5 16.5 2000 0 20000
+TH2F hhodo_2y_neg_rawpi_vs_pad 'HMS 2Y- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.2y.negAdcCounter  H.hod.2y.negAdcPulseIntRaw 10 0.5 10.5 2000 0 20000
+
+TH2F hhodo_1x_pos_rawpamp_vs_pad 'HMS 1X+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.1x.posAdcCounter  H.hod.1x.posAdcPulseAmpRaw 16 0.5 16.5 410 0 4100
+TH2F hhodo_1y_pos_rawpamp_vs_pad 'HMS 1Y+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.1y.posAdcCounter  H.hod.1y.posAdcPulseAmpRaw 10 0.5 10.5 410 0 4100
+TH2F hhodo_2x_pos_rawpamp_vs_pad 'HMS 2X+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.2x.posAdcCounter  H.hod.2x.posAdcPulseAmpRaw 16 0.5 16.5 410 0 4100
+TH2F hhodo_2y_pos_rawpamp_vs_pad 'HMS 2Y+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.2y.posAdcCounter  H.hod.2y.posAdcPulseAmpRaw 10 0.5 10.5 410 0 4100
+
+TH2F hhodo_1x_neg_rawpamp_vs_pad 'HMS 1X- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.1x.negAdcCounter  H.hod.1x.negAdcPulseAmpRaw 16 0.5 16.5 410 0 4100
+TH2F hhodo_1y_neg_rawpamp_vs_pad 'HMS 1Y- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.1y.negAdcCounter  H.hod.1y.negAdcPulseAmpRaw 10 0.5 10.5 410 0 4100
+TH2F hhodo_2x_neg_rawpamp_vs_pad 'HMS 2X- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.2x.negAdcCounter  H.hod.2x.negAdcPulseAmpRaw 16 0.5 16.5 410 0 4100
+TH2F hhodo_2y_neg_rawpamp_vs_pad 'HMS 2Y- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.2y.negAdcCounter  H.hod.2y.negAdcPulseAmpRaw 10 0.5 10.5 410 0 4100
+
+TH2F hhodo_1x_pos_rawptime_vs_pad 'HMS 1X+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.1x.posAdcCounter  H.hod.1x.posAdcPulseTimeRaw 16 0.5 16.5 410 0 4100
+TH2F hhodo_1y_pos_rawptime_vs_pad 'HMS 1Y+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.1y.posAdcCounter  H.hod.1y.posAdcPulseTimeRaw 10 0.5 10.5 410 0 4100
+TH2F hhodo_2x_pos_rawptime_vs_pad 'HMS 2X+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.2x.posAdcCounter  H.hod.2x.posAdcPulseTimeRaw 16 0.5 16.5 410 0 4100
+TH2F hhodo_2y_pos_rawptime_vs_pad 'HMS 2Y+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.2y.posAdcCounter  H.hod.2y.posAdcPulseTimeRaw 10 0.5 10.5 410 0 4100
+
+TH2F hhodo_1x_neg_rawptime_vs_pad 'HMS 1X- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.1x.negAdcCounter  H.hod.1x.negAdcPulseTimeRaw 16 0.5 16.5 410 0 4100
+TH2F hhodo_1y_neg_rawptime_vs_pad 'HMS 1Y- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.1y.negAdcCounter  H.hod.1y.negAdcPulseTimeRaw 10 0.5 10.5 410 0 4100
+TH2F hhodo_2x_neg_rawptime_vs_pad 'HMS 2X- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.2x.negAdcCounter  H.hod.2x.negAdcPulseTimeRaw 16 0.5 16.5 410 0 4100
+TH2F hhodo_2y_neg_rawptime_vs_pad 'HMS 2Y- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.2y.negAdcCounter  H.hod.2y.negAdcPulseTimeRaw 10 0.5 10.5 410 0 4100
+
+TH2F hhodo_1x_pos_raw_tdc_time_vs_pad 'HMS 1X+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.1x.posTdcCounter  H.hod.1x.posTdcTimeRaw 16 0.5 16.5 800 0 8000
+TH2F hhodo_1y_pos_raw_tdc_time_vs_pad 'HMS 1Y+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.1y.posTdcCounter  H.hod.1y.posTdcTimeRaw 10 0.5 10.5 800 0 8000
+TH2F hhodo_2x_pos_raw_tdc_time_vs_pad 'HMS 2X+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.2x.posTdcCounter  H.hod.2x.posTdcTimeRaw 16 0.5 16.5 800 0 8000
+TH2F hhodo_2y_pos_raw_tdc_time_vs_pad 'HMS 2Y+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.2y.posTdcCounter  H.hod.2y.posTdcTimeRaw 10 0.5 10.5 800 0 8000
+
+TH2F hhodo_1x_neg_raw_tdc_time_vs_pad 'HMS 1X- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.1x.negTdcCounter  H.hod.1x.negTdcTimeRaw 16 0.5 16.5 800 0 8000
+TH2F hhodo_1y_neg_raw_tdc_time_vs_pad 'HMS 1Y- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.1y.negTdcCounter  H.hod.1y.negTdcTimeRaw 10 0.5 10.5 800 0 8000
+TH2F hhodo_2x_neg_raw_tdc_time_vs_pad 'HMS 2X- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.2x.negTdcCounter  H.hod.2x.negTdcTimeRaw 16 0.5 16.5 800 0 8000
+TH2F hhodo_2y_neg_raw_tdc_time_vs_pad 'HMS 2Y- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.2y.negTdcCounter  H.hod.2y.negTdcTimeRaw 10 0.5 10.5 800 0 8000
+
+
+TH2F hhodo_1x_pos_pi_vs_pad 'HMS 1X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1x.posAdcCounter  H.hod.1x.posAdcPulseInt 16 0.5 16.5 4000 0 40000
+TH2F hhodo_1y_pos_pi_vs_pad 'HMS 1Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1y.posAdcCounter  H.hod.1y.posAdcPulseInt 10 0.5 10.5 4000 0 40000
+TH2F hhodo_2x_pos_pi_vs_pad 'HMS 2X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2x.posAdcCounter  H.hod.2x.posAdcPulseInt 16 0.5 16.5 4000 0 40000
+TH2F hhodo_2y_pos_pi_vs_pad 'HMS 2Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2y.posAdcCounter  H.hod.2y.posAdcPulseInt 10 0.5 10.5 4000 0 40000
+
+TH2F hhodo_1x_neg_pi_vs_pad 'HMS 1X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1x.negAdcCounter  H.hod.1x.negAdcPulseInt 16 0.5 16.5 4000 0 40000
+TH2F hhodo_1y_neg_pi_vs_pad 'HMS 1Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1y.negAdcCounter  H.hod.1y.negAdcPulseInt 10 0.5 10.5 4000 0 40000
+TH2F hhodo_2x_neg_pi_vs_pad 'HMS 2X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2x.negAdcCounter  H.hod.2x.negAdcPulseInt 16 0.5 16.5 4000 0 40000
+TH2F hhodo_2y_neg_pi_vs_pad 'HMS 2Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2y.negAdcCounter  H.hod.2y.negAdcPulseInt 10 0.5 10.5 4000 0 40000
+
+
+TH2F hhodo_1x_pos_ped_vs_pad 'HMS 1X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.1x.posAdcCounter  H.hod.1x.posAdcPed 16 0.5 16.5 100 0 1000
+TH2F hhodo_1y_pos_ped_vs_pad 'HMS 1Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.1y.posAdcCounter  H.hod.1y.posAdcPed 10 0.5 10.5 100 0 1000
+TH2F hhodo_2x_pos_ped_vs_pad 'HMS 2X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.2x.posAdcCounter  H.hod.2x.posAdcPed 16 0.5 16.5 100 0 1000
+TH2F hhodo_2y_pos_ped_vs_pad 'HMS 2Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.2y.posAdcCounter  H.hod.2y.posAdcPed 10 0.5 10.5 100 0 1000
+
+TH2F hhodo_1x_neg_ped_vs_pad 'HMS 1X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.1x.negAdcCounter  H.hod.1x.negAdcPed 16 0.5 16.5 100 0 1000
+TH2F hhodo_1y_neg_ped_vs_pad 'HMS 1Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.1y.negAdcCounter  H.hod.1y.negAdcPed 10 0.5 10.5 100 0 1000
+TH2F hhodo_2x_neg_ped_vs_pad 'HMS 2X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.2x.negAdcCounter  H.hod.2x.negAdcPed 16 0.5 16.5 100 0 1000
+TH2F hhodo_2y_neg_ped_vs_pad 'HMS 2Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.2y.negAdcCounter  H.hod.2y.negAdcPed 10 0.5 10.5 100 0 1000
+
+
+TH2F hhodo_1x_pos_pamp_vs_pad 'HMS 1X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.1x.posAdcCounter  H.hod.1x.posAdcPulseAmp 16 0.5 16.5 410 0 4100
+TH2F hhodo_1y_pos_pamp_vs_pad 'HMS 1Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.1y.posAdcCounter  H.hod.1y.posAdcPulseAmp 10 0.5 10.5 410 0 4100
+TH2F hhodo_2x_pos_pamp_vs_pad 'HMS 2X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.2x.posAdcCounter  H.hod.2x.posAdcPulseAmp 16 0.5 16.5 410 0 4100
+TH2F hhodo_2y_pos_pamp_vs_pad 'HMS 2Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.2y.posAdcCounter  H.hod.2y.posAdcPulseAmp 10 0.5 10.5 410 0 4100
+
+TH2F hhodo_1x_neg_pamp_vs_pad 'HMS 1X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.1x.negAdcCounter  H.hod.1x.negAdcPulseAmp 16 0.5 16.5 410 0 4100
+TH2F hhodo_1y_neg_pamp_vs_pad 'HMS 1Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.1y.negAdcCounter  H.hod.1y.negAdcPulseAmp 10 0.5 10.5 410 0 4100
+TH2F hhodo_2x_neg_pamp_vs_pad 'HMS 2X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.2x.negAdcCounter  H.hod.2x.negAdcPulseAmp 16 0.5 16.5 410 0 4100
+TH2F hhodo_2y_neg_pamp_vs_pad 'HMS 2Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.2y.negAdcCounter  H.hod.2y.negAdcPulseAmp 10 0.5 10.5 410 0 4100
+
+TH2F hhodo_1x_pos_tdc_time_vs_pad 'HMS 1X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.1x.posTdcCounter  H.hod.1x.posTdcTime 16 0.5 16.5 200 -2000 0
+TH2F hhodo_1y_pos_tdc_time_vs_pad 'HMS 1Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.1y.posTdcCounter  H.hod.1y.posTdcTime 10 0.5 10.5 200 -2000 0
+TH2F hhodo_2x_pos_tdc_time_vs_pad 'HMS 2X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.2x.posTdcCounter  H.hod.2x.posTdcTime 16 0.5 16.5 200 -2000 0
+TH2F hhodo_2y_pos_tdc_time_vs_pad 'HMS 2Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.2y.posTdcCounter  H.hod.2y.posTdcTime 10 0.5 10.5 200 -2000 0
+
+TH2F hhodo_1x_neg_tdc_time_vs_pad 'HMS 1X- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.1x.negTdcCounter  H.hod.1x.negTdcTime 16 0.5 16.5 200 -2000 0
+TH2F hhodo_1y_neg_tdc_time_vs_pad 'HMS 1Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.1y.negTdcCounter  H.hod.1y.negTdcTime 10 0.5 10.5 200 -2000 0
+TH2F hhodo_2x_neg_tdc_time_vs_pad 'HMS 2X- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.2x.negTdcCounter  H.hod.2x.negTdcTime 16 0.5 16.5 200 -2000 0
+TH2F hhodo_2y_neg_tdc_time_vs_pad 'HMS 2Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.2y.negTdcCounter  H.hod.2y.negTdcTime 10 0.5 10.5 200 -2000 0
+
+TH1F hbetanottrack 'HMS beta (no track)' H.hod.betanotrack 100 -1.2 1.2
+TH1F hstarttime ' HMS starttime' H.hod.starttime 500 0 50 
+TH1F hfptime   ' HMS Focal plane time (all hits) ' H.hod.fpHitsTime  500 0 50 
+TH1F hhodo_1x_fptime 'HMS 1X ; Focal plane time (ns); Counts' H.hod.1x.fptime 500 0 50
+TH1F hhodo_1y_fptime 'HMS 1Y ; Focal plane time (ns); Counts' H.hod.1y.fptime 500 0 50
+TH1F hhodo_2x_fptime 'HMS 2X ; Focal plane time (ns); Counts' H.hod.2x.fptime 500 0 50
+TH1F hhodo_2y_fptime 'HMS 2Y ; Focal plane time (ns); Counts' H.hod.2y.fptime 500 0 50
+
+
+
diff --git a/DEF-files/HMS/HODO/hhodoana_cuts.def b/DEF-files/HMS/HODO/hhodoana_cuts.def
new file mode 100644
index 00000000..3af34a5e
--- /dev/null
+++ b/DEF-files/HMS/HODO/hhodoana_cuts.def
@@ -0,0 +1,13 @@
+Block: RawDecode
+
+Pedestal_event 0
+RawDecode_master 1
+
+Block: Decode
+Decode_master 1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CourseReconstruct 0
diff --git a/DEF-files/HMS/RASTER/hms_raster_simple.def b/DEF-files/HMS/RASTER/hms_raster_simple.def
new file mode 100644
index 00000000..40b70735
--- /dev/null
+++ b/DEF-files/HMS/RASTER/hms_raster_simple.def
@@ -0,0 +1,20 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+block T.hms.*
+# Assume FADC range is set to 1V and the integration is 25 channels
+# Offset in the FADC is about 0.122V or 500 channels.
+formula FRXA_V T.hms.hFRXA_adcPulseIntRaw*(1./4096.)/25.
+formula FRXB_V T.hms.hFRXB_adcPulseIntRaw*(1./4096.)/25.
+formula FRYA_V T.hms.hFRYA_adcPulseIntRaw*(1./4096.)/25.
+formula FRYB_V T.hms.hFRYB_adcPulseIntRaw*(1./4096.)/25.
+TH1F hFRXA 'HMS FRXA; FRXA RAW ADC (chan); Counts' T.hms.hFRXA_adcPulseIntRaw 1000 0 100000
+TH1F hFRXA_V 'HMS FRXA; FRXA RAW ADC (Volts); Counts' FRXA_V 1000 0 1.0
+TH1F hFRXB 'HMS FRXB; FRXB RAW ADC (chan); Counts' T.hms.hFRXB_adcPulseIntRaw 1000 0 100000
+TH1F hFRXB_V 'HMS FRXB; FRXB RAW ADC (Volts); Counts' FRXB_V 1000 0 1.0
+TH1F hFRYA 'HMS FRYA; FRYA RAW ADC (chan); Counts' T.hms.hFRYA_adcPulseIntRaw 1000 0 100000
+TH1F hFRYA_V 'HMS FRYA; FRYA RAW ADC (Volts); Counts' FRYA_V 1000 0 1.0
+TH1F hFRYB 'HMS FRYB; FRYB RAW ADC (chan); Counts' T.hms.hFRYB_adcPulseIntRaw 1000 0 100000
+TH1F hFRYB_V 'HMS FRYB; FRYB RAW ADC (Volts); Counts' FRYB_V 1000 0 1.0
+TH2F hFRA_XvsY 'HMSFRA_XvsY ; FRXA RAW ADC (Volts); FRYA RAW ADC (Volts)' FRXA_V FRYA_V 1000 0 1.0 1000 0 1.0
+TH2F hFRB_XvsY 'HMSFRB_XvsY ; FRXB RAW ADC (Volts); FRYB RAW ADC (Volts)' FRXB_V FRYB_V 1000 0 1.0 1000 0 1.0
+
diff --git a/DEF-files/HMS/RASTER/hms_raster_simple_cuts.def b/DEF-files/HMS/RASTER/hms_raster_simple_cuts.def
new file mode 100644
index 00000000..3af34a5e
--- /dev/null
+++ b/DEF-files/HMS/RASTER/hms_raster_simple_cuts.def
@@ -0,0 +1,13 @@
+Block: RawDecode
+
+Pedestal_event 0
+RawDecode_master 1
+
+Block: Decode
+Decode_master 1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CourseReconstruct 0
diff --git a/DEF-files/HMS/TRIG/htrigana.def b/DEF-files/HMS/TRIG/htrigana.def
new file mode 100644
index 00000000..0ee87d78
--- /dev/null
+++ b/DEF-files/HMS/TRIG/htrigana.def
@@ -0,0 +1,115 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+block T.hms.*
+
+TH1F htrig_h1x_tdc 'HMS h1X TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.h1X_tdcTimeRaw 1500 0 1500
+TH1F htrig_h1y_tdc 'HMS h1Y TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.h1Y_tdcTimeRaw 1500 0 1500
+TH1F htrig_h2x_tdc 'HMS h2X TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.h2X_tdcTimeRaw 1500 0 1500
+TH1F htrig_h2y_tdc 'HMS h2Y TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.h2Y_tdcTimeRaw 1500 0 1500
+
+TH1F htrig_h1T_tdc 'HMS h1X/h1Y Coincidence TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.h1T_tdcTimeRaw 1500 0 1500
+TH1F htrig_h2T_tdc 'HMS h2X/h2Y Coincidence TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.h2T_tdcTimeRaw 1500 0 1500
+
+TH1F htrig_hT1_tdc 'HMS h1X/h1Y/h2X/h2Y Coincidence TDC Time (Slot 2); Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hT1_tdcTimeRaw 1500 0 1500
+TH1F htrig_hT2_tdc 'HMS h1X/h1Y/h2X/h2Y Coincidence TDC Time (Slot 20); Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hT2_tdcTimeRaw 1500 0 1500
+
+TH1F htrig_hdc_ref1 'HMS HDC Reference Time 1; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hDCREF1_tdcTimeRaw 15000 0 15000
+TH1F htrig_hdc_ref2 'HMS HDC Reference Time 2; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hDCREF2_tdcTimeRaw 15000 0 15000
+TH1F htrig_hdc_ref3 'HMS HDC Reference Time 3; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hDCREF3_tdcTimeRaw 15000 0 15000
+TH1F htrig_hdc_ref4 'HMS HDC Reference Time 4; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hDCREF4_tdcTimeRaw 15000 0 15000
+
+TH1F htrig_hasum_adc_rawpped 'HMS hAsum Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hASUM_adcPedRaw 500 0 5000
+TH1F htrig_hasum_adc_rawpi 'HMS hAsum Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hASUM_adcPulseIntRaw 4000 0 40000
+TH1F htrig_hasum_adc_rawpamp 'HMS hAsum Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hASUM_adcPulseAmpRaw 410 0 4100
+TH1F htrig_hasum_adc_rawptime 'HMS hAsum Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hASUM_adcPulseTimeRaw 2000 0 20000
+TH1F htrig_hasum_rawtdc 'HMS hAsum Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hASUM_tdcTimeRaw 4000 0 40000
+
+TH1F htrig_hasum_adc_pped 'HMS hAsum Pulse Pedestal;  Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hASUM_adcPed 500 0 5000
+TH1F htrig_hasum_adc_pi 'HMS hAsum Pulse Integral;  Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hASUM_adcPulseInt 4000 0 40000
+TH1F htrig_hasum_adc_pamp 'HMS hAsum Pulse Amplitude;  Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hASUM_adcPulseAmp 410 0 4100
+TH1F htrig_hasum_tdc 'HMS hAsum TDC Time;  TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hASUM_tdcTime 4000 0 40000
+
+TH1F htrig_hbsum_adc_rawpped 'HMS hBsum Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hBSUM_adcPedRaw 500 0 5000
+TH1F htrig_hbsum_adc_rawpi 'HMS hBsum Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hBSUM_adcPulseIntRaw 4000 0 40000
+TH1F htrig_hbsum_adc_rawpamp 'HMS hBsum Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hBSUM_adcPulseAmpRaw 410 0 4100
+TH1F htrig_hbsum_adc_rawptime 'HMS hBsum Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hBSUM_adcPulseTimeRaw 2000 0 20000
+TH1F htrig_hbsum_rawtdc 'HMS hBsum Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hBSUM_tdcTimeRaw 4000 0 40000
+
+TH1F htrig_hbsum_adc_pped 'HMS hBsum Pulse Pedestal;  Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hBSUM_adcPed 500 0 5000
+TH1F htrig_hbsum_adc_pi 'HMS hBsum Pulse Integral;  Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hBSUM_adcPulseInt 4000 0 40000
+TH1F htrig_hbsum_adc_pamp 'HMS hBsum Pulse Amplitude;  Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hBSUM_adcPulseAmp 410 0 4100
+TH1F htrig_hbsum_tdc 'HMS hBsum TDC Time;  TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hBSUM_tdcTime 4000 0 40000
+
+TH1F htrig_hcsum_adc_rawpped 'HMS hCsum Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hCSUM_adcPedRaw 500 0 5000
+TH1F htrig_hcsum_adc_rawpi 'HMS hCsum Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hCSUM_adcPulseIntRaw 4000 0 40000
+TH1F htrig_hcsum_adc_rawpamp 'HMS hCsum Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hCSUM_adcPulseAmpRaw 410 0 4100
+TH1F htrig_hcsum_adc_rawptime 'HMS hCsum Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hCSUM_adcPulseTimeRaw 2000 0 20000
+TH1F htrig_hcsum_rawtdc 'HMS hCsum Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hCSUM_tdcTimeRaw 4000 0 40000
+
+TH1F htrig_hcsum_adc_pped 'HMS hCsum Pulse Pedestal;  Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hCSUM_adcPed 500 0 5000
+TH1F htrig_hcsum_adc_pi 'HMS hCsum Pulse Integral;  Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hCSUM_adcPulseInt 4000 0 40000
+TH1F htrig_hcsum_adc_pamp 'HMS hCsum Pulse Amplitude;  Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hCSUM_adcPulseAmp 410 0 4100
+TH1F htrig_hcsum_tdc 'HMS hCsum TDC Time;  TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hCSUM_tdcTime 4000 0 40000
+
+TH1F htrig_hdsum_adc_rawpped 'HMS hDsum Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hDSUM_adcPedRaw 500 0 5000
+TH1F htrig_hdsum_adc_rawpi 'HMS hDsum Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hDSUM_adcPulseIntRaw 4000 0 40000
+TH1F htrig_hdsum_adc_rawpamp 'HMS hDsum Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hDSUM_adcPulseAmpRaw 410 0 4100
+TH1F htrig_hdsum_adc_rawptime 'HMS hDsum Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hDSUM_adcPulseTimeRaw 2000 0 20000
+TH1F htrig_hdsum_rawtdc 'HMS hDsum Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hDSUM_tdcTimeRaw 4000 0 40000
+
+TH1F htrig_hdsum_adc_pped 'HMS hDsum Pulse Pedestal;  Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hDSUM_adcPed 500 0 5000
+TH1F htrig_hdsum_adc_pi 'HMS hDsum Pulse Integral;  Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hDSUM_adcPulseInt 4000 0 40000
+TH1F htrig_hdsum_adc_pamp 'HMS hDsum Pulse Amplitude;  Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hDSUM_adcPulseAmp 410 0 4100
+TH1F htrig_hdsum_tdc 'HMS hDsum TDC Time;  TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hDSUM_tdcTime 4000 0 40000
+
+TH1F htrig_hpreShwr_adc_rawpped 'HMS Pre-Shower Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hPSHWR_adcPedRaw 500 0 5000
+TH1F htrig_hpreShwr_adc_rawpi 'HMS Pre-Shower Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hPSHWR_adcPulseIntRaw 4000 0 40000
+TH1F htrig_hpreShwr_adc_rawpamp 'HMS Pre-Shower Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hPSHWR_adcPulseAmpRaw 410 0 4100
+TH1F htrig_hpreShwr_adc_rawptime 'HMS Pre-Shower Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hPSHWR_adcPulseTimeRaw 2000 0 20000
+TH1F htrig_hpreShwr_rawtdc 'HMS Pre-Shower Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hPSHWR_tdcTimeRaw 4000 0 40000
+
+TH1F htrig_hpreShwr_adc_pped 'HMS Pre-Shower Pulse Pedestal;  Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hPSHWR_adcPed 500 0 5000
+TH1F htrig_hpreShwr_adc_pi 'HMS Pre-Shower Pulse Integral;  Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hPSHWR_adcPulseInt 4000 0 40000
+TH1F htrig_hpreShwr_adc_pamp 'HMS Pre-Shower Pulse Amplitude;  Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hPSHWR_adcPulseAmp 410 0 4100
+TH1F htrig_hpreShwr_tdc 'HMS Pre-Shower TDC Time;  TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hPSHWR_tdcTime 4000 0 40000
+
+TH1F htrig_hpreShwrLow_tdc 'HMS hpreShwrLow TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hPSHWRLO_tdcTimeRaw 4000 0 40000
+TH1F htrig_hpreShwrHigh_tdc 'HMS hpreShwrHigh TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hPSHWRHI_tdcTimeRaw 4000 0 40000
+
+TH1F htrig_hshwr_adc_rawpped 'HMS Shower Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hSHWR_adcPedRaw 500 0 5000
+TH1F htrig_hshwr_adc_rawpi 'HMS Shower Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hSHWR_adcPulseIntRaw 4000 0 40000
+TH1F htrig_hshwr_adc_rawpamp 'HMS Shower Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hSHWR_adcPulseAmpRaw 410 0 4100
+TH1F htrig_hshwr_adc_rawptime 'HMS Shower Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hSHWR_adcPulseTimeRaw 2000 0 20000
+TH1F htrig_hshwr_rawtdc 'HMS Shower Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hSHWR_tdcTimeRaw 4000 0 40000
+
+TH1F htrig_hshwr_adc_pped 'HMS Shower Pulse Pedestal;  Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hSHWR_adcPed 500 0 5000
+TH1F htrig_hshwr_adc_pi 'HMS Shower Pulse Integral;  Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hSHWR_adcPulseInt 4000 0 40000
+TH1F htrig_hshwr_adc_pamp 'HMS Shower Pulse Amplitude;  Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hSHWR_adcPulseAmp 410 0 4100
+TH1F htrig_hshwr_tdc 'HMS Shower TDC Time;  TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hSHWR_tdcTime 4000 0 40000
+
+TH1F htrig_hcersum_adc_rawpped 'HMS Cherenkov Sum Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hCERSUM_adcPedRaw 500 0 5000
+TH1F htrig_hcersum_adc_rawpi 'HMS Cherenkov Sum Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hCERSUM_adcPulseIntRaw 4000 0 40000
+TH1F htrig_hcersum_adc_rawpamp 'HMS Cherenkov Sum Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hCERSUM_adcPulseAmpRaw 410 0 4100
+TH1F htrig_hcersum_adc_rawptime 'HMS Cherenkov Sum Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hCERSUM_adcPulseTimeRaw 2000 0 20000
+TH1F htrig_hcersum_rawtdc 'HMS Cherenkov Sum Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hCERSUM_tdcTimeRaw 4000 0 40000
+
+TH1F htrig_hcersum_adc_pped 'HMS Cherenkov Sum Pulse Pedestal;  Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hCERSUM_adcPed 500 0 5000
+TH1F htrig_hcersum_adc_pi 'HMS Cherenkov Sum Pulse Integral;  Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hCERSUM_adcPulseInt 4000 0 40000
+TH1F htrig_hcersum_adc_pamp 'HMS Cherenkov Sum Pulse Amplitude;  Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hCERSUM_adcPulseAmp 410 0 4100
+TH1F htrig_hcersum_tdc 'HMS Cherenkov Sum TDC Time;  TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hCERSUM_tdcTime 4000 0 40000
+
+TH1F htrig_haersum_adc_rawpped 'HMS Aerogel Sum Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hAERSUM_adcPedRaw 500 0 5000
+TH1F htrig_haersum_adc_rawpi 'HMS Aerogel Sum Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hAERSUM_adcPulseIntRaw 4000 0 40000
+TH1F htrig_haersum_adc_rawpamp 'HMS Aerogel Sum Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hAERSUM_adcPulseAmpRaw 410 0 4100
+TH1F htrig_haersum_adc_rawptime 'HMS Aerogel Sum Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hAERSUM_adcPulseTimeRaw 2000 0 20000
+TH1F htrig_haersum_rawtdc 'HMS Aerogel Sum Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hAERSUM_tdcTimeRaw 4000 0 40000
+
+TH1F htrig_haersum_adc_pped 'HMS Aerogel Sum Pulse Pedestal;  Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hAERSUM_adcPed 500 0 5000
+TH1F htrig_haersum_adc_pi 'HMS Aerogel Sum Pulse Integral;  Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hAERSUM_adcPulseInt 4000 0 40000
+TH1F htrig_haersum_adc_pamp 'HMS Aerogel Sum Pulse Amplitude;  Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hAERSUM_adcPulseAmp 410 0 4100
+TH1F htrig_haersum_tdc 'HMS Aerogel Sum TDC Time;  TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hAERSUM_tdcTime 4000 0 40000
+
+
+
+
+
diff --git a/DEF-files/HMS/TRIG/htrigana_cuts.def b/DEF-files/HMS/TRIG/htrigana_cuts.def
new file mode 100644
index 00000000..3af34a5e
--- /dev/null
+++ b/DEF-files/HMS/TRIG/htrigana_cuts.def
@@ -0,0 +1,13 @@
+Block: RawDecode
+
+Pedestal_event 0
+RawDecode_master 1
+
+Block: Decode
+Decode_master 1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CourseReconstruct 0
diff --git a/DEF-files/SHMS/AERO/paeroana.def b/DEF-files/SHMS/AERO/paeroana.def
new file mode 100644
index 00000000..9cff8d08
--- /dev/null
+++ b/DEF-files/SHMS/AERO/paeroana.def
@@ -0,0 +1,25 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+block P.aero.*
+block T.shms.*
+
+TH1F paero_neg_occu 'SHMS Aero- Occupancy; Counter Number; Number of Entries' P.aero.negAdcCounter 7 0.5 7.5
+TH1F paero_pos_occu 'SHMS Aero+ Occupancy; Counter Number; Number of Entries' P.aero.posAdcCounter 7 0.5 7.5
+
+TH2F paero_neg_rawped_vs_cntr 'SHMS Aero- Raw Pulse Pedestal vs. Counter Number; Counter Number; Raw Pulse Pedestal / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPedRaw 7 0.5 7.5 1000 0 10000
+TH2F paero_neg_rawpi_vs_cntr 'SHMS Aero- Raw Pulse Integral vs. Counter Number; Counter Number; Raw Pulse Integral / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseIntRaw 7 0.5 7.5 4000 0 40000
+TH2F paero_neg_rawamp_vs_cntr 'SHMS Aero- Raw Pulse Amplitude vs. Counter Number; Counter Number; Raw Pulse Amplitude / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseAmpRaw 7 0.5 7.5 410 0 4100
+TH2F paero_neg_rawptime_vs_cntr 'SHMS Aero- Raw Pulse Time vs. Counter Number; Counter Number;  Raw Pulse Time / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseTimeRaw 7 0.5 7.5 1000 0 10000
+
+TH2F paero_pos_rawped_vs_cntr 'SHMS Aero+ Raw Pulse Pedestal vs. Counter Number; Counter Number; Raw Pulse Pedestal / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPedRaw 7 0.5 7.5 1000 0 10000
+TH2F paero_pos_rawpi_vs_cntr 'SHMS Aero+ Raw Pulse Integral vs. Counter Number; Counter Number; Raw Pulse Integral / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPulseIntRaw 7 0.5 7.5 4000 0 40000
+TH2F paero_pos_rawamp_vs_cntr 'SHMS Aero+ Raw Pulse Amplitude vs. Counter Number; Counter Number; Raw Pulse Amplitude / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPulseAmpRaw 7 0.5 7.5 410 0 4100
+TH2F paero_pos_rawptime_vs_cntr 'SHMS Aero+ Raw Pulse Time vs. Counter Number; Counter Number;  Raw Pulse Time / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseTimeRaw 7 0.5 7.5 1000 0 10000
+
+TH2F paero_neg_ped_vs_cntr 'SHMS Aero- Pulse Pedestal vs. Counter Number; Counter Number;  Pulse Pedestal / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPed 7 0.5 7.5 1000 0 10000
+TH2F paero_neg_pi_vs_cntr 'SHMS Aero- Pulse Integral vs. Counter Number; Counter Number;  Pulse Integral / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseInt 7 0.5 7.5 4000 0 40000
+TH2F paero_neg_amp_vs_cntr 'SHMS Aero- Pulse Amplitude vs. Counter Number; Counter Number;  Pulse Amplitude / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseAmp 7 0.5 7.5 410 0 4100
+
+TH2F paero_pos_ped_vs_cntr 'SHMS Aero+ Pulse Pedestal vs. Counter Number; Counter Number;  Pulse Pedestal / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPed 7 0.5 7.5 1000 0 10000
+TH2F paero_pos_pi_vs_cntr 'SHMS Aero+ Pulse Integral vs. Counter Number; Counter Number;  Pulse Integral / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPulseInt 7 0.5 7.5 4000 0 40000
+TH2F paero_pos_amp_vs_cntr 'SHMS Aero+ Pulse Amplitude vs. Counter Number; Counter Number;  Pulse Amplitude / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPulseAmp 7 0.5 7.5 410 0 4100
diff --git a/DEF-files/SHMS/AERO/paeroana_cuts.def b/DEF-files/SHMS/AERO/paeroana_cuts.def
new file mode 100644
index 00000000..5add84a3
--- /dev/null
+++ b/DEF-files/SHMS/AERO/paeroana_cuts.def
@@ -0,0 +1,14 @@
+Block: RawDecode
+
+Pedestal_event 0
+RawDecode_master 1
+
+Block: Decode
+Decode_master 1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CourseReconstruct 0
+
diff --git a/DEF-files/SHMS/CAL/pcalana.def b/DEF-files/SHMS/CAL/pcalana.def
new file mode 100644
index 00000000..b2d2fb78
--- /dev/null
+++ b/DEF-files/SHMS/CAL/pcalana.def
@@ -0,0 +1,34 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+block P.cal.*
+
+TH1F pcal_prshwr_neg_occu 'SHMS Preshower- Occupancy; Block Number; Number of Entries' P.cal.pr.negAdcCounter 14 0.5 14.5
+TH1F pcal_prshwr_pos_occu 'SHMS Preshower+ Occupancy; Block Number; Number of Entries' P.cal.pr.posAdcCounter 14 0.5 14.5
+TH1F pcal_shwr_occu 'SHMS Shower Occupancy; Block Number; Number of Entries' P.cal.fly.adcCounter 224 0.5 224.5
+
+TH2F pcal_prshwr_neg_rawped_blk 'SHMS Preshower- Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPedRaw 14 0.5 14.5 400 0 4000
+TH2F pcal_prshwr_neg_rawpi_blk 'SHMS Preshower- Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseIntRaw 14 0.5 14.5 4000 0 40000
+TH2F pcal_prshwr_neg_rawamp_blk 'SHMS Preshower- Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseAmpRaw 14 0.5 14.5 410 0 4100 
+TH2F pcal_prshwr_neg_rawptime_blk 'SHMS Preshower- Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseTimeRaw 14 0.5 14.5 4000 0 40000
+
+TH2F pcal_prshwr_pos_rawped_blk 'SHMS Preshower+ Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPedRaw 14 0.5 14.5 400 0 4000
+TH2F pcal_prshwr_pos_rawpi_blk 'SHMS Preshower+ Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseIntRaw 14 0.5 14.5 4000 0 40000
+TH2F pcal_prshwr_pos_rawamp_blk 'SHMS Preshower+ Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseAmpRaw 14 0.5 14.5 410 0 4100 
+TH2F pcal_prshwr_pos_rawptime_blk 'SHMS Preshower+ Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseTimeRaw 14 0.5 14.5 4000 0 40000
+
+TH2F pcal_pshwr_neg_ped_blk 'SHMS Preshower- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPed 14 0.5 14.5 400 0 4000
+TH2F pcal_prshwr_neg_pi_blk 'SHMS Preshower- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseInt 14 0.5 14.5 4000 0 40000
+TH2F pcal_prshwr_neg_amp_blk 'SHMS Preshower- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseAmp 14 0.5 14.5 410 0 4100 
+
+TH2F pcal_prshwr_pos_ped_blk 'SHMS Preshower+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPed 14 0.5 14.5 400 0 4000
+TH2F pcal_prshwr_pos_pi_blk 'SHMS Preshower+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseInt 14 0.5 14.5 4000 0 40000
+TH2F pcal_prshwr_pos_amp_blk 'SHMS Preshower+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseAmp 14 0.5 14.5 410 0 4100
+
+TH2F pcal_shwr_rawped_blk 'SHMS Shower Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPedRaw 224 0.5 224.5 400 0 4000
+TH2F pcal_shwr_rawpi_blk 'SHMS Shower Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPulseIntRaw 224 0.5 224.5 4000 0 40000
+TH2F pcal_shwr_rawamp_blk 'SHMS Shower Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPulseAmpRaw 224 0.5 224.5 410 0 4100 
+TH2F pcal_shwr_rawptime_blk 'SHMS Shower Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPulseTimeRaw 224 0.5 224.5 4000 0 40000
+
+TH2F pcal_shwr_ped_blk 'SHMS Shower Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPed 224 0.5 224.5 400 0 4000
+TH2F pcal_shwr_pi_blk 'SHMS Shower Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPulseInt 224 0.5 224.5 4000 0 40000
+TH2F pcal_shwr_amp_blk 'SHMS Shower Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPulseAmp 224 0.5 224.5 410 0 4100 
\ No newline at end of file
diff --git a/DEF-files/SHMS/CAL/pcalana_cuts.def b/DEF-files/SHMS/CAL/pcalana_cuts.def
new file mode 100644
index 00000000..3af34a5e
--- /dev/null
+++ b/DEF-files/SHMS/CAL/pcalana_cuts.def
@@ -0,0 +1,13 @@
+Block: RawDecode
+
+Pedestal_event 0
+RawDecode_master 1
+
+Block: Decode
+Decode_master 1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CourseReconstruct 0
diff --git a/DEF-files/SHMS/DC/pdcana.def b/DEF-files/SHMS/DC/pdcana.def
index e08edbfb..8488e1b4 100644
--- a/DEF-files/SHMS/DC/pdcana.def
+++ b/DEF-files/SHMS/DC/pdcana.def
@@ -2,62 +2,78 @@
 #
 block P.dc.*
 
-TH1F pdc1u1_wm 'PDC 1U1 Wiremap' P.dc.1u1.wirenum 107 0.5 107.5
-TH1F pdc1u2_wm 'PDC 1U2 Wiremap' P.dc.1u2.wirenum 107 0.5 107.5
-TH1F pdc1x1_wm 'PDC 1X1 Wiremap' P.dc.1x1.wirenum  79 0.5  79.5
-TH1F pdc1x2_wm 'PDC 1X2 Wiremap' P.dc.1x2.wirenum  79 0.5  79.5
-TH1F pdc1v1_wm 'PDC 1V1 Wiremap' P.dc.1v1.wirenum 107 0.5 107.5
-TH1F pdc1v2_wm 'PDC 1V2 Wiremap' P.dc.1v2.wirenum 107 0.5 107.5
-
-TH1F pdc2v2_wm 'PDC 2V2 Wiremap' P.dc.2v2.wirenum 107 0.5 107.5
-TH1F pdc2v1_wm 'PDC 2V1 Wiremap' P.dc.2v1.wirenum 107 0.5 107.5
-TH1F pdc2x2_wm 'PDC 2X2 Wiremap' P.dc.2x2.wirenum  79 0.5  79.5
-TH1F pdc2x1_wm 'PDC 2X1 Wiremap' P.dc.2x1.wirenum  79 0.5  79.5
-TH1F pdc2u2_wm 'PDC 2U2 Wiremap' P.dc.2u2.wirenum 107 0.5 107.5
-TH1F pdc2u2_wm 'PDC 2U1 Wiremap' P.dc.2u1.wirenum 107 0.5 107.5
-
-TH2F pdc1u1_wire_num_vs_raw_tdc 'PDC 1U1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1u1.wirenum P.dc.1u1.rawtdc 107 0.5 107.5 5000 0 50000
-TH2F pdc1u2_wire_num_vs_raw_tdc 'PDC 1U2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1u2.wirenum P.dc.1u2.rawtdc 107 0.5 107.5 5000 0 50000
-TH2F pdc1x1_wire_num_vs_raw_tdc 'PDC 1X1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1x1.wirenum P.dc.1x1.rawtdc  79 0.5  79.5 5000 0 50000
-TH2F pdc1x2_wire_num_vs_raw_tdc 'PDC 1X2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1x2.wirenum P.dc.1x2.rawtdc  79 0.5  79.5 5000 0 50000
-TH2F pdc1v1_wire_num_vs_raw_tdc 'PDC 1V1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1v1.wirenum P.dc.1v1.rawtdc 107 0.5 107.5 5000 0 50000
-TH2F pdc1v2_wire_num_vs_raw_tdc 'PDC 1V2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1v2.wirenum P.dc.1v2.rawtdc 107 0.5 107.5 5000 0 50000
-
-TH2F pdc2v2_wire_num_vs_raw_tdc 'PDC 2V2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2v2.wirenum P.dc.2v2.rawtdc 107 0.5 107.5 5000 0 50000
-TH2F pdc2v1_wire_num_vs_raw_tdc 'PDC 2V1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2v1.wirenum P.dc.2v1.rawtdc 107 0.5 107.5 5000 0 50000
-TH2F pdc2x2_wire_num_vs_raw_tdc 'PDC 2X2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2x2.wirenum P.dc.2x2.rawtdc  79 0.5  79.5 5000 0 50000
-TH2F pdc2x1_wire_num_vs_raw_tdc 'PDC 2X1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2x1.wirenum P.dc.2x1.rawtdc  79 0.5  79.5 5000 0 50000
-TH2F pdc2u2_wire_num_vs_raw_tdc 'PDC 2U2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2u2.wirenum P.dc.2u2.rawtdc 107 0.5 107.5 5000 0 50000
-TH2F pdc2u1_wire_num_vs_raw_tdc 'PDC 2U1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2u1.wirenum P.dc.2u1.rawtdc 107 0.5 107.5 5000 0 50000
-
-TH2F pdc1u1_wire_num_vs_tdc_time 'PDC 1U1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.1u1.wirenum P.dc.1u1.time 107 0.5 107.5 6000 -1000 5000
-TH2F pdc1u2_wire_num_vs_tdc_time 'PDC 1U2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.1u2.wirenum P.dc.1u2.time 107 0.5 107.5 6000 -1000 5000
-TH2F pdc1x1_wire_num_vs_tdc_time 'PDC 1X1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.1x1.wirenum P.dc.1x1.time  79 0.5  79.5 6000 -1000 5000
-TH2F pdc1x2_wire_num_vs_tdc_time 'PDC 1X2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.1x2.wirenum P.dc.1x2.time  79 0.5  79.5 6000 -1000 5000
-TH2F pdc1v1_wire_num_vs_tdc_time 'PDC 1V1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.1v1.wirenum P.dc.1v1.time 107 0.5 107.5 6000 -1000 5000
-TH2F pdc1v2_wire_num_vs_tdc_time 'PDC 1V2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.1v2.wirenum P.dc.1v2.time 107 0.5 107.5 6000 -1000 5000
-
-TH2F pdc2v2_wire_num_vs_tdc_time 'PDC 2V2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.2v2.wirenum P.dc.2v2.time 107 0.5 107.5 6000 -1000 5000
-TH2F pdc2v1_wire_num_vs_tdc_time 'PDC 2V1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.2v1.wirenum P.dc.2v1.time 107 0.5 107.5 6000 -1000 5000
-TH2F pdc2x2_wire_num_vs_tdc_time 'PDC 2X2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.2x2.wirenum P.dc.2x2.time  79 0.5  79.5 6000 -1000 5000
-TH2F pdc2x1_wire_num_vs_tdc_time 'PDC 2X1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.2x1.wirenum P.dc.2x1.time  79 0.5  79.5 6000 -1000 5000
-TH2F pdc2u2_wire_num_vs_tdc_time 'PDC 2U2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.2u2.wirenum P.dc.2u2.time 107 0.5 107.5 6000 -1000 5000
-TH2F pdc2u1_wire_num_vs_tdc_time 'PDC 2U1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.2u1.wirenum P.dc.2u1.time 107 0.5 107.5 6000 -1000 5000
-
-TH2F pdc1u1_wire_num_vs_ddist 'PDC 1U1 Wiremap vs. Raw TDC; Wire Number; Drift Distance (cm)' P.dc.1u1.wirenum P.dc.1u1.dist 107 0.5 107.5 300 -0.1 0.6
-TH2F pdc1u2_wire_num_vs_ddist 'PDC 1U2 Wiremap vs. Raw TDC; Wire Number; Drift Distance (cm)' P.dc.1u2.wirenum P.dc.1u2.dist 107 0.5 107.5 300 -0.1 0.6
-TH2F pdc1x1_wire_num_vs_ddist 'PDC 1X1 Wiremap vs. Raw TDC; Wire Number; Drift Distance (cm)' P.dc.1x1.wirenum P.dc.1x1.dist  79 0.5  79.5 300 -0.1 0.6
-TH2F pdc1x2_wire_num_vs_ddist 'PDC 1X2 Wiremap vs. Raw TDC; Wire Number; Drift Distance (cm)' P.dc.1x2.wirenum P.dc.1x2.dist  79 0.5  79.5 300 -0.1 0.6
-TH2F pdc1v1_wire_num_vs_ddist 'PDC 1V1 Wiremap vs. Raw TDC; Wire Number; Drift Distance (cm)' P.dc.1v1.wirenum P.dc.1v1.dist 107 0.5 107.5 300 -0.1 0.6
-TH2F pdc1v2_wire_num_vs_ddist 'PDC 1V2 Wiremap vs. Raw TDC; Wire Number; Drift Distance (cm)' P.dc.1v2.wirenum P.dc.1v2.dist 107 0.5 107.5 300 -0.1 0.6
-
-TH2F pdc2u2_wire_num_vs_ddist 'PDC 2U2 Wiremap vs. Raw TDC; Wire Number; Drift Distance (cm)' P.dc.2u2.wirenum P.dc.2u2.dist 107 0.5 107.5 300 -0.1 0.6
-TH2F pdc2u1_wire_num_vs_ddist 'PDC 2U1 Wiremap vs. Raw TDC; Wire Number; Drift Distance (cm)' P.dc.2u1.wirenum P.dc.2u1.dist 107 0.5 107.5 300 -0.1 0.6
-TH2F pdc2x2_wire_num_vs_ddist 'PDC 2X2 Wiremap vs. Raw TDC; Wire Number; Drift Distance (cm)' P.dc.2x2.wirenum P.dc.2x2.dist  79 0.5  79.5 300 -0.1 0.6
-TH2F pdc2x1_wire_num_vs_ddist 'PDC 2X1 Wiremap vs. Raw TDC; Wire Number; Drift Distance (cm)' P.dc.2x1.wirenum P.dc.2x1.dist  79 0.5  79.5 300 -0.1 0.6
-TH2F pdc2v2_wire_num_vs_ddist 'PDC 2V2 Wiremap vs. Raw TDC; Wire Number; Drift Distance (cm)' P.dc.2v2.wirenum P.dc.2v2.dist 107 0.5 107.5 300 -0.1 0.6
-TH2F pdc2v1_wire_num_vs_ddist 'PDC 2V1 Wiremap vs. Raw TDC; Wire Number; Drift Distance (cm)' P.dc.2v1.wirenum P.dc.2v1.dist 107 0.5 107.5 300 -0.1 0.6
+TH1F pdc1u1_wirenum 'SHMS DC 1U1 Wiremap; Wire Number; Number of Entries' P.dc.1u1.wirenum 107 0.5 107.5
+TH1F pdc1u2_wirenum 'SHMS DC 1U2 Wiremap; Wire Number; Number of Entries' P.dc.1u2.wirenum 107 0.5 107.5
+TH1F pdc1x1_wirenum 'SHMS DC 1X1 Wiremap; Wire Number; Number of Entries' P.dc.1x1.wirenum  79 0.5  79.5
+TH1F pdc1x2_wirenum 'SHMS DC 1X2 Wiremap; Wire Number; Number of Entries' P.dc.1x2.wirenum  79 0.5  79.5
+TH1F pdc1v1_wirenum 'SHMS DC 1V1 Wiremap; Wire Number; Number of Entries' P.dc.1v1.wirenum 107 0.5 107.5
+TH1F pdc1v2_wirenum 'SHMS DC 1V2 Wiremap; Wire Number; Number of Entries' P.dc.1v2.wirenum 107 0.5 107.5
 
+TH1F pdc2v2_wirenum 'SHMS DC 2V2 Wiremap; Wire Number; Number of Entries' P.dc.2v2.wirenum 107 0.5 107.5
+TH1F pdc2v1_wirenum 'SHMS DC 2V1 Wiremap; Wire Number; Number of Entries' P.dc.2v1.wirenum 107 0.5 107.5
+TH1F pdc2x2_wirenum 'SHMS DC 2X2 Wiremap; Wire Number; Number of Entries' P.dc.2x2.wirenum  79 0.5  79.5
+TH1F pdc2x1_wirenum 'SHMS DC 2X1 Wiremap; Wire Number; Number of Entries' P.dc.2x1.wirenum  79 0.5  79.5
+TH1F pdc2u2_wirenum 'SHMS DC 2U2 Wiremap; Wire Number; Number of Entries' P.dc.2u2.wirenum 107 0.5 107.5
+TH1F pdc2u1_wirenum 'SHMS DC 2U1 Wiremap; Wire Number; Number of Entries' P.dc.2u1.wirenum 107 0.5 107.5
+
+TH2F pdc1u1_wirenum_vs_raw_tdc 'PDC 1U1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1u1.wirenum P.dc.1u1.rawtdc 107 0.5 107.5 5000 -25000 25000
+TH2F pdc1u2_wirenum_vs_raw_tdc 'PDC 1U2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1u2.wirenum P.dc.1u2.rawtdc 107 0.5 107.5 5000 -25000 25000
+TH2F pdc1x1_wirenum_vs_raw_tdc 'PDC 1X1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1x1.wirenum P.dc.1x1.rawtdc  79 0.5  79.5 5000 -25000 25000
+TH2F pdc1x2_wirenum_vs_raw_tdc 'PDC 1X2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1x2.wirenum P.dc.1x2.rawtdc  79 0.5  79.5 5000 -25000 25000
+TH2F pdc1v1_wirenum_vs_raw_tdc 'PDC 1V1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1v1.wirenum P.dc.1v1.rawtdc 107 0.5 107.5 5000 -25000 25000
+TH2F pdc1v2_wirenum_vs_raw_tdc 'PDC 1V2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1v2.wirenum P.dc.1v2.rawtdc 107 0.5 107.5 5000 -25000 25000
+
+TH2F pdc2v2_wirenum_vs_raw_tdc 'PDC 2V2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2v2.wirenum P.dc.2v2.rawtdc 107 0.5 107.5 5000 -25000 25000
+TH2F pdc2v1_wirenum_vs_raw_tdc 'PDC 2V1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2v1.wirenum P.dc.2v1.rawtdc 107 0.5 107.5 5000 -25000 25000
+TH2F pdc2x2_wirenum_vs_raw_tdc 'PDC 2X2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2x2.wirenum P.dc.2x2.rawtdc  79 0.5  79.5 5000 -25000 25000
+TH2F pdc2x1_wirenum_vs_raw_tdc 'PDC 2X1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2x1.wirenum P.dc.2x1.rawtdc  79 0.5  79.5 5000 -25000 25000
+TH2F pdc2u2_wirenum_vs_raw_tdc 'PDC 2U2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2u2.wirenum P.dc.2u2.rawtdc 107 0.5 107.5 5000 -25000 25000
+TH2F pdc2u1_wirenum_vs_raw_tdc 'PDC 2U1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2u1.wirenum P.dc.2u1.rawtdc 107 0.5 107.5 5000 -25000 25000
+
+TH2F pdc1u1_wirenum_vs_tdc 'SHMS DC 1U1 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.1u1.wirenum P.dc.1u1.time 107 0.5 107.5 500 0 500
+TH2F pdc1u2_wirenum_vs_tdc 'SHMS DC 1U2 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.1u2.wirenum P.dc.1u2.time 107 0.5 107.5 500 0 500
+TH2F pdc1x1_wirenum_vs_tdc 'SHMS DC 1X1 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.1x1.wirenum P.dc.1x1.time  79 0.5  79.5 500 0 500
+TH2F pdc1x2_wirenum_vs_tdc 'SHMS DC 1X2 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.1x2.wirenum P.dc.1x2.time  79 0.5  79.5 500 0 500
+TH2F pdc1v1_wirenum_vs_tdc 'SHMS DC 1V1 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.1v1.wirenum P.dc.1v1.time 107 0.5 107.5 500 0 500
+TH2F pdc1v2_wirenum_vs_tdc 'SHMS DC 1V2 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.1v2.wirenum P.dc.1v2.time 107 0.5 107.5 500 0 500
+
+TH2F pdc2v2_wirenum_vs_tdc 'SHMS DC 2V2 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.2v2.wirenum P.dc.2v2.time 107 0.5 107.5 500 0 500
+TH2F pdc2v1_wirenum_vs_tdc 'SHMS DC 2V1 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.2v1.wirenum P.dc.2v1.time 107 0.5 107.5 500 0 500
+TH2F pdc2x2_wirenum_vs_tdc 'SHMS DC 2X2 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.2x2.wirenum P.dc.2x2.time  79 0.5  79.5 500 0 500
+TH2F pdc2x1_wirenum_vs_tdc 'SHMS DC 2X1 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.2x1.wirenum P.dc.2x1.time  79 0.5  79.5 500 0 500
+TH2F pdc2u2_wirenum_vs_tdc 'SHMS DC 2U2 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.2u2.wirenum P.dc.2u2.time 107 0.5 107.5 500 0 500
+TH2F pdc2u1_wirenum_vs_tdc 'SHMS DC 2U1 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.2u1.wirenum P.dc.2u1.time 107 0.5 107.5 500 0 500
+
+TH2F pdc1u1_wirenum_vs_ddist 'PDC 1U1 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.1u1.wirenum P.dc.1u1.dist 107 0.5 107.5 300 -0.1 0.6
+TH2F pdc1u2_wirenum_vs_ddist 'PDC 1U2 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.1u2.wirenum P.dc.1u2.dist 107 0.5 107.5 300 -0.1 0.6
+TH2F pdc1x1_wirenum_vs_ddist 'PDC 1X1 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.1x1.wirenum P.dc.1x1.dist  79 0.5  79.5 300 -0.1 0.6
+TH2F pdc1x2_wirenum_vs_ddist 'PDC 1X2 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.1x2.wirenum P.dc.1x2.dist  79 0.5  79.5 300 -0.1 0.6
+TH2F pdc1v1_wirenum_vs_ddist 'PDC 1V1 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.1v1.wirenum P.dc.1v1.dist 107 0.5 107.5 300 -0.1 0.6
+TH2F pdc1v2_wirenum_vs_ddist 'PDC 1V2 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.1v2.wirenum P.dc.1v2.dist 107 0.5 107.5 300 -0.1 0.6
+
+TH2F pdc2u2_wirenum_vs_ddist 'PDC 2U2 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.2u2.wirenum P.dc.2u2.dist 107 0.5 107.5 300 -0.1 0.6
+TH2F pdc2u1_wirenum_vs_ddist 'PDC 2U1 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.2u1.wirenum P.dc.2u1.dist 107 0.5 107.5 300 -0.1 0.6
+TH2F pdc2x2_wirenum_vs_ddist 'PDC 2X2 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.2x2.wirenum P.dc.2x2.dist  79 0.5  79.5 300 -0.1 0.6
+TH2F pdc2x1_wirenum_vs_ddist 'PDC 2X1 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.2x1.wirenum P.dc.2x1.dist  79 0.5  79.5 300 -0.1 0.6
+TH2F pdc2v2_wirenum_vs_ddist 'PDC 2V2 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.2v2.wirenum P.dc.2v2.dist 107 0.5 107.5 300 -0.1 0.6
+TH2F pdc2v1_wirenum_vs_ddist 'PDC 2V1 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.2v1.wirenum P.dc.2v1.dist 107 0.5 107.5 300 -0.1 0.6
+
+TH2F pdc1u1_wirenum_vs_resid 'SHMS 1U1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1u1.wirenum P.dc.residual[0] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc1u2_wirenum_vs_resid 'SHMS 1U2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1u2.wirenum P.dc.residual[1] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc1x1_wirenum_vs_resid 'SHMS 1X1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1x1.wirenum P.dc.residual[2] 79 0.5  79.5 200 -1.0 1.0
+TH2F pdc1x2_wirenum_vs_resid 'SHMS 1X2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1x2.wirenum P.dc.residual[3] 79 0.5  79.5 200 -1.0 1.0
+TH2F pdc1v1_wirenum_vs_resid 'SHMS 1V1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1v1.wirenum P.dc.residual[4] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc1v2_wirenum_vs_resid 'SHMS 1V2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1v2.wirenum P.dc.residual[5] 107 0.5 107.5 200 -1.0 1.0
+
+TH2F pdc2v2_wirenum_vs_resid 'SHMS 2V2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2v2.wirenum P.dc.residual[6] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc2v1_wirenum_vs_resid 'SHMS 2V1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2v1.wirenum P.dc.residual[7] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc2x2_wirenum_vs_resid 'SHMS 2X2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2x2.wirenum P.dc.residual[8] 79 0.5  79.5 200 -1.0 1.0
+TH2F pdc2x1_wirenum_vs_resid 'SHMS 2X1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2x1.wirenum P.dc.residual[9] 79 0.5  79.5 200 -1.0 1.0
+TH2F pdc2u2_wirenum_vs_resid 'SHMS 2U2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2u2.wirenum P.dc.residual[10] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc2u1_wirenum_vs_resid 'SHMS 2U1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2u1.wirenum P.dc.residual[11] 107 0.5 107.5 200 -1.0 1.0
+
+TH2F pdc_xfp_vs_yxp 'SHMS DC Xfp vs Yxp; Yfp (cm) / 1 mm; Xfp (cm) / 1 mm' P.dc.y P.dc.x 1000 -50 50 1000 -50 50
+TH2F pdc_xfpp_vs_yxpp 'SHMS DC Xfpp vs Yxpp; Yfpp; Xfpp' P.dc.yp P.dc.xp 100 -1 1 100 -1 1
 
 
 
diff --git a/DEF-files/SHMS/GEN/pstackana.def b/DEF-files/SHMS/GEN/pstackana.def
new file mode 100644
index 00000000..c330a2c2
--- /dev/null
+++ b/DEF-files/SHMS/GEN/pstackana.def
@@ -0,0 +1,183 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+block T.shms.*
+block P.ngcer.*
+block P.dc.*
+block P.tr.*
+block P.hod.*
+block P.hgcer.*
+block P.aero.*
+block P.cal.*
+#block P.gtr.*
+
+# Noble Gas Cherenkov
+TH1F pngcer_occu 'SHMS Noble Gas Cherenkov Occupancy; Counter Number; Number of Entries' P.ngcer.adcCounter 4 0.5 4.5
+TH2F pngcer_ped_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Pedestal vs. Counter Number; Counter Number;  Pulse Pedestal / 1 ADC Unit' P.ngcer.adcCounter P.ngcer.adcPed 4 0.5 4.5 1000 0 1000
+TH2F pngcer_pi_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Integral vs. Counter Number; Counter Number;  Pulse Integral / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPulseInt 4 0.5 4.5 4000 0 40000
+TH2F pngcer_amp_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Amplitude vs. Counter Number; Counter Number;  Pulse Amplitude / 1 ADC Unit' P.ngcer.adcCounter P.ngcer.adcPulseAmp 4 0.5 4.5 4100 0 4100
+
+# Drift Chambers
+TH1F pdc_ref1  'SHMS DC Reference Time Slot 6 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF1_tdcTime  200 12000 14000
+TH1F pdc_ref2  'SHMS DC Reference Time Slot 7 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF2_tdcTime  200 12000 14000
+TH1F pdc_ref3  'SHMS DC Reference Time Slot 8 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF3_tdcTime  200 12000 14000
+TH1F pdc_ref4  'SHMS DC Reference Time Slot 9 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF4_tdcTime  200 12000 14000
+TH1F pdc_ref5  'SHMS DC Reference Time Slot 10 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF5_tdcTime  200 12000 14000
+TH1F pdc_ref6  'SHMS DC Reference Time Slot 11 Channel 47; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF6_tdcTime  200 12000 14000
+TH1F pdc_ref7  'SHMS DC Reference Time Slot 12 Channel 47; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF7_tdcTime  200 12000 14000
+TH1F pdc_ref8  'SHMS DC Reference Time Slot 13 Channel 47; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF8_tdcTime  200 12000 14000
+TH1F pdc_ref9  'SHMS DC Reference Time Slot 14 Channel 15; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF9_tdcTime  200 12000 14000
+TH1F pdc_ref10 'SHMS DC Reference Time Slot 15 Channel 47; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF10_tdcTime 200 12000 14000
+
+TH1F pdc1u1_wirenum 'SHMS DC 1U1 Wiremap; Wire Number; Number of Entries' P.dc.1u1.wirenum 107 0.5 107.5
+TH1F pdc1u2_wirenum 'SHMS DC 1U2 Wiremap; Wire Number; Number of Entries' P.dc.1u2.wirenum 107 0.5 107.5
+TH1F pdc1x1_wirenum 'SHMS DC 1X1 Wiremap; Wire Number; Number of Entries' P.dc.1x1.wirenum  79 0.5  79.5
+TH1F pdc1x2_wirenum 'SHMS DC 1X2 Wiremap; Wire Number; Number of Entries' P.dc.1x2.wirenum  79 0.5  79.5
+TH1F pdc1v1_wirenum 'SHMS DC 1V1 Wiremap; Wire Number; Number of Entries' P.dc.1v1.wirenum 107 0.5 107.5
+TH1F pdc1v2_wirenum 'SHMS DC 1V2 Wiremap; Wire Number; Number of Entries' P.dc.1v2.wirenum 107 0.5 107.5
+
+TH1F pdc2v2_wirenum 'SHMS DC 2V2 Wiremap; Wire Number; Number of Entries' P.dc.2v2.wirenum 107 0.5 107.5
+TH1F pdc2v1_wirenum 'SHMS DC 2V1 Wiremap; Wire Number; Number of Entries' P.dc.2v1.wirenum 107 0.5 107.5
+TH1F pdc2x2_wirenum 'SHMS DC 2X2 Wiremap; Wire Number; Number of Entries' P.dc.2x2.wirenum  79 0.5  79.5
+TH1F pdc2x1_wirenum 'SHMS DC 2X1 Wiremap; Wire Number; Number of Entries' P.dc.2x1.wirenum  79 0.5  79.5
+TH1F pdc2u2_wirenum 'SHMS DC 2U2 Wiremap; Wire Number; Number of Entries' P.dc.2u2.wirenum 107 0.5 107.5
+TH1F pdc2u1_wirenum 'SHMS DC 2U1 Wiremap; Wire Number; Number of Entries' P.dc.2u1.wirenum 107 0.5 107.5
+
+TH2F pdc1u1_wirenum_vs_tdc 'SHMS DC 1U1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1u1.wirenum P.dc.1u1.time 107 0.5 107.5 600 -100 500
+TH2F pdc1u2_wirenum_vs_tdc 'SHMS DC 1U2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1u2.wirenum P.dc.1u2.time 107 0.5 107.5 600 -100 500
+TH2F pdc1x1_wirenum_vs_tdc 'SHMS DC 1X1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1x1.wirenum P.dc.1x1.time  79 0.5  79.5 600 -100 500
+TH2F pdc1x2_wirenum_vs_tdc 'SHMS DC 1X2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1x2.wirenum P.dc.1x2.time  79 0.5  79.5 600 -100 500
+TH2F pdc1v1_wirenum_vs_tdc 'SHMS DC 1V1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1v1.wirenum P.dc.1v1.time 107 0.5 107.5 600 -100 500
+TH2F pdc1v2_wirenum_vs_tdc 'SHMS DC 1V2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1v2.wirenum P.dc.1v2.time 107 0.5 107.5 600 -100 500
+
+TH2F pdc2v2_wirenum_vs_tdc 'SHMS DC 2V2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2v2.wirenum P.dc.2v2.time 107 0.5 107.5 600 -100 500
+TH2F pdc2v1_wirenum_vs_tdc 'SHMS DC 2V1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2v1.wirenum P.dc.2v1.time 107 0.5 107.5 600 -100 500
+TH2F pdc2x2_wirenum_vs_tdc 'SHMS DC 2X2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2x2.wirenum P.dc.2x2.time  79 0.5  79.5 600 -100 500
+TH2F pdc2x1_wirenum_vs_tdc 'SHMS DC 2X1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2x1.wirenum P.dc.2x1.time  79 0.5  79.5 600 -100 500
+TH2F pdc2u2_wirenum_vs_tdc 'SHMS DC 2U2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2u2.wirenum P.dc.2u2.time 107 0.5 107.5 600 -100 500
+TH2F pdc2u1_wirenum_vs_tdc 'SHMS DC 2U1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2u1.wirenum P.dc.2u1.time 107 0.5 107.5 600 -100 500
+
+TH2F pdc1u1_wirenum_vs_resid 'SHMS 1U1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1u1.wirenum P.dc.residual[0] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc1u2_wirenum_vs_resid 'SHMS 1U2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1u2.wirenum P.dc.residual[1] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc1x1_wirenum_vs_resid 'SHMS 1X1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1x1.wirenum P.dc.residual[2] 79 0.5  79.5 200 -1.0 1.0
+TH2F pdc1x2_wirenum_vs_resid 'SHMS 1X2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1x2.wirenum P.dc.residual[3] 79 0.5  79.5 200 -1.0 1.0
+TH2F pdc1v1_wirenum_vs_resid 'SHMS 1V1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1v1.wirenum P.dc.residual[4] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc1v2_wirenum_vs_resid 'SHMS 1V2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1v2.wirenum P.dc.residual[5] 107 0.5 107.5 200 -1.0 1.0
+
+TH2F pdc2v2_wirenum_vs_resid 'SHMS 2V2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2v2.wirenum P.dc.residual[6] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc2v1_wirenum_vs_resid 'SHMS 2V1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2v1.wirenum P.dc.residual[7] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc2x2_wirenum_vs_resid 'SHMS 2X2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2x2.wirenum P.dc.residual[8] 79 0.5  79.5 200 -1.0 1.0
+TH2F pdc2x1_wirenum_vs_resid 'SHMS 2X1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2x1.wirenum P.dc.residual[9] 79 0.5  79.5 200 -1.0 1.0
+TH2F pdc2u2_wirenum_vs_resid 'SHMS 2U2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2u2.wirenum P.dc.residual[10] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc2u1_wirenum_vs_resid 'SHMS 2U1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2u1.wirenum P.dc.residual[11] 107 0.5 107.5 200 -1.0 1.0
+
+TH2F pdc_xfp_vs_yxp 'SHMS DC Xfp vs Yxp; Yfp (cm) / 1 cm; Xfp (cm) / 1 cm' P.dc.y P.dc.x 100 -50 50 100 -50 50
+TH2F pdc_xfpp_vs_yxpp 'SHMS DC Xfpp vs Yxpp; Yfpp; Xfpp' P.dc.yp P.dc.xp 100 -1 1 100 -1 1
+
+# Hodoscopes (Positive/Left) 
+TH1F phodo_1x_pos_adc_occu 'SHMS Hodoscope 1X+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.1x.posAdcCounter 13 0.5 13.5
+TH1F phodo_1y_pos_adc_occu 'SHMS Hodoscope 1Y+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.1y.posAdcCounter 13 0.5 13.5 
+TH1F phodo_2x_pos_adc_occu 'SHMS Hodoscope 2X+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.2x.posAdcCounter 14 0.5 14.5
+TH1F phodo_2y_pos_adc_occu 'SHMS Hodoscope 2Y+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.2y.posAdcCounter 21 0.5 21.5
+TH1F phodo_1x_pos_tdc_occu 'SHMS Hodoscope 1X+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.1x.posTdcCounter 13 0.5 13.5
+TH1F phodo_1y_pos_tdc_occu 'SHMS Hodoscope 1Y+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.1y.posTdcCounter 13 0.5 13.5 
+TH1F phodo_2x_pos_tdc_occu 'SHMS Hodoscope 2X+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.2x.posTdcCounter 14 0.5 14.5
+TH1F phodo_2y_pos_tdc_occu 'SHMS Hodoscope 2Y+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.2y.posTdcCounter 21 0.5 21.5
+TH2F phodo_1x_pos_ped_vs_pad 'SHMS Hodoscope 1X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1x.posAdcCounter  P.hod.1x.posAdcPed 13 0.5 13.5 1000 0 1000
+TH2F phodo_1y_pos_ped_vs_pad 'SHMS Hodoscope 1Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1y.posAdcCounter  P.hod.1y.posAdcPed 13 0.5 13.5 1000 0 1000
+TH2F phodo_2x_pos_ped_vs_pad 'SHMS Hodoscope 2X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2x.posAdcCounter  P.hod.2x.posAdcPed 14 0.5 14.5 1000 0 1000
+TH2F phodo_2y_pos_ped_vs_pad 'SHMS Hodoscope 2Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2y.posAdcCounter  P.hod.2y.posAdcPed 21 0.5 21.5 1000 0 1000
+TH2F phodo_1x_pos_pi_vs_pad 'SHMS Hodoscope 1X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1x.GoodPaddle  P.hod.1x.GoodPosAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F phodo_1y_pos_pi_vs_pad 'SHMS Hodoscope 1Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1y.GoodPaddle  P.hod.1y.GoodPosAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F phodo_2x_pos_pi_vs_pad 'SHMS Hodoscope 2X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2x.GoodPaddle  P.hod.2x.GoodPosAdcPulseInt 14 0.5 14.5 4000 0 40000
+TH2F phodo_2y_pos_pi_vs_pad 'SHMS Hodoscope 2Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2y.GoodPaddle  P.hod.2y.GoodPosAdcPulseInt 21 0.5 21.5 4000 0 40000
+TH2F phodo_1x_pos_pamp_vs_pad 'SHMS Hodoscope 1X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1x.GoodPaddle  P.hod.1x.GoodPosAdcPulseAmp 13 0.5 13.5 4100 0 4100
+TH2F phodo_1y_pos_pamp_vs_pad 'SHMS Hodoscope 1Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1y.GoodPaddle  P.hod.1y.GoodPosAdcPulseAmp 13 0.5 13.5 4100 0 4100
+TH2F phodo_2x_pos_pamp_vs_pad 'SHMS Hodoscope 2X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2x.GoodPaddle  P.hod.2x.GoodPosAdcPulseAmp 14 0.5 14.5 4100 0 4100
+TH2F phodo_2y_pos_pamp_vs_pad 'SHMS Hodoscope 2Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2y.GoodPaddle  P.hod.2y.GoodPosAdcPulseAmp 21 0.5 21.5 4100 0 4100
+TH2F phodo_1x_pos_tdc_time_vs_pad 'SHMS Hodoscope 1X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1x.GoodPaddle  P.hod.1x.GoodPosTdcChan 13 0.5 13.5 3500 -500 3000
+TH2F phodo_1y_pos_tdc_time_vs_pad 'SHMS Hodoscope 1Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1y.GoodPaddle  P.hod.1y.GoodPosTdcChan 13 0.5 13.5 3500 -500 3000
+TH2F phodo_2x_pos_tdc_time_vs_pad 'SHMS Hodoscope 2X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2x.GoodPaddle  P.hod.2x.GoodPosTdcChan 14 0.5 14.5 3500 -500 3000
+TH2F phodo_2y_pos_tdc_time_vs_pad 'SHMS Hodoscope 2Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2y.GoodPaddle  P.hod.2y.GoodPosTdcChan 21 0.5 21.5 3500 -500 3000
+
+# Hodoscopes (Negative/Right)
+TH1F phodo_1x_neg_adc_occu 'SHMS Hodoscope 1X- ADC Occupancy; Paddle Number; Number of Hits' P.hod.1x.negAdcCounter 13 0.5 13.5
+TH1F phodo_1y_neg_adc_occu 'SHMS Hodoscope 1Y- ADC Occupancy; Paddle Number; Number of Hits' P.hod.1y.negAdcCounter 13 0.5 13.5 
+TH1F phodo_2x_neg_adc_occu 'SHMS Hodoscope 2X- ADC Occupancy; Paddle Number; Number of Hits' P.hod.2x.negAdcCounter 14 0.5 14.5
+TH1F phodo_2y_neg_adc_occu 'SHMS Hodoscope 2Y- ADC Occupancy; Paddle Number; Number of Hits' P.hod.2y.negAdcCounter 21 0.5 21.5
+TH1F phodo_1x_neg_tdc_occu 'SHMS Hodoscope 1X- TDC Occupancy; Paddle Number; Number of Hits' P.hod.1x.negTdcCounter 13 0.5 13.5
+TH1F phodo_1y_neg_tdc_occu 'SHMS Hodoscope 1Y- TDC Occupancy; Paddle Number; Number of Hits' P.hod.1y.negTdcCounter 13 0.5 13.5 
+TH1F phodo_2x_neg_tdc_occu 'SHMS Hodoscope 2X- TDC Occupancy; Paddle Number; Number of Hits' P.hod.2x.negTdcCounter 14 0.5 14.5
+TH1F phodo_2y_neg_tdc_occu 'SHMS Hodoscope 2Y- TDC Occupancy; Paddle Number; Number of Hits' P.hod.2y.negTdcCounter 21 0.5 21.5
+TH2F phodo_1x_neg_ped_vs_pad 'SHMS Hodoscope 1X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1x.negAdcCounter  P.hod.1x.negAdcPed 13 0.5 13.5 1000 0 1000
+TH2F phodo_1y_neg_ped_vs_pad 'SHMS Hodoscope 1Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1y.negAdcCounter  P.hod.1y.negAdcPed 13 0.5 13.5 1000 0 1000
+TH2F phodo_2x_neg_ped_vs_pad 'SHMS Hodoscope 2X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2x.negAdcCounter  P.hod.2x.negAdcPed 14 0.5 14.5 1000 0 1000
+TH2F phodo_2y_neg_ped_vs_pad 'SHMS Hodoscope 2Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2y.negAdcCounter  P.hod.2y.negAdcPed 21 0.5 21.5 1000 0 1000
+TH2F phodo_1x_neg_pi_vs_pad 'SHMS Hodoscope 1X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1x.GoodPaddle  P.hod.1x.GoodNegAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F phodo_1y_neg_pi_vs_pad 'SHMS Hodoscope 1Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1y.GoodPaddle  P.hod.1y.GoodNegAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F phodo_2x_neg_pi_vs_pad 'SHMS Hodoscope 2X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2x.GoodPaddle  P.hod.2x.GoodNegAdcPulseInt 14 0.5 14.5 4000 0 40000
+TH2F phodo_2y_neg_pi_vs_pad 'SHMS Hodoscope 2Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2y.GoodPaddle  P.hod.2y.GoodNegAdcPulseInt 21 0.5 21.5 4000 0 40000
+TH2F phodo_1x_neg_pamp_vs_pad 'SHMS Hodoscope 1X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1x.GoodPaddle  P.hod.1x.GoodNegAdcPulseAmp 13 0.5 13.5 4100 0 4100
+TH2F phodo_1y_neg_pamp_vs_pad 'SHMS Hodoscope 1Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1y.GoodPaddle  P.hod.1y.GoodNegAdcPulseAmp 13 0.5 13.5 4100 0 4100
+TH2F phodo_2x_neg_pamp_vs_pad 'SHMS Hodoscope 2X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2x.GoodPaddle  P.hod.2x.GoodNegAdcPulseAmp 14 0.5 14.5 4100 0 4100
+TH2F phodo_2y_neg_pamp_vs_pad 'SHMS Hodoscope 2Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2y.GoodPaddle  P.hod.2y.GoodNegAdcPulseAmp 21 0.5 21.5 4100 0 4100
+TH2F phodo_1x_neg_tdc_time_vs_pad 'SHMS Hodoscope 1X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1x.GoodPaddle  P.hod.1x.GoodNegTdcChan 13 0.5 13.5 3500 -500 3000
+TH2F phodo_1y_neg_tdc_time_vs_pad 'SHMS Hodoscope 1Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1y.GoodPaddle  P.hod.1y.GoodNegTdcChan 13 0.5 13.5 3500 -500 3000
+TH2F phodo_2x_neg_tdc_time_vs_pad 'SHMS Hodoscope 2X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2x.GoodPaddle  P.hod.2x.GoodNegTdcChan 14 0.5 14.5 3500 -500 3000
+TH2F phodo_2y_neg_tdc_time_vs_pad 'SHMS Hodoscope 2Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2y.GoodPaddle  P.hod.2y.GoodNegTdcChan 21 0.5 21.5 3500 -500 3000
+
+# Heavy Gas Cherenkov
+TH1F phgcer_occu 'SHMS Heavy Gas Cherenkov Occupancy; Counter Number; Number of Entries' P.hgcer.adcCounter 4 0.5 4.5
+TH2F phgcer_ped_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Pedestal vs. Counter Number; Counter Number;  Pulse Pedestal / 1 ADC Unit' P.hgcer.adcCounter P.hgcer.adcPed 4 0.5 4.5 1000 0 10000
+TH2F phgcer_pi_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Integral vs. Counter Number; Counter Number;  Pulse Integral / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseInt 4 0.5 4.5 4000 0 40000
+TH2F phgcer_amp_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Amplitude vs. Counter Number; Counter Number;  Pulse Amplitude / 1 ADC Unit' P.hgcer.adcCounter P.hgcer.adcPulseAmp 4 0.5 4.5 4100 0 4100
+
+# Aerogel
+TH1F paero_pos_occu 'SHMS Aero+ Occupancy; Counter Number; Number of Entries' P.aero.posAdcCounter 7 0.5 7.5
+TH2F paero_pos_ped_vs_cntr 'SHMS Aero+ Pulse Pedestal vs. Counter Number; Counter Number;  Pulse Pedestal / 1 ADC Unit' P.aero.posAdcCounter P.aero.posAdcPed 7 0.5 7.5 1000 0 1000
+TH2F paero_pos_pi_vs_cntr 'SHMS Aero+ Pulse Integral vs. Counter Number; Counter Number;  Pulse Integral / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPulseInt 7 0.5 7.5 4000 0 40000
+TH2F paero_pos_amp_vs_cntr 'SHMS Aero+ Pulse Amplitude vs. Counter Number; Counter Number;  Pulse Amplitude / 1 ADC Unit' P.aero.posAdcCounter P.aero.posAdcPulseAmp 7 0.5 7.5 4100 0 4100
+TH1F paero_neg_occu 'SHMS Aero- Occupancy; Counter Number; Number of Entries' P.aero.negAdcCounter 7 0.5 7.5
+TH2F paero_neg_ped_vs_cntr 'SHMS Aero- Pulse Pedestal vs. Counter Number; Counter Number;  Pulse Pedestal / 1 ADC Unit' P.aero.negAdcCounter P.aero.negAdcPed 7 0.5 7.5 1000 0 1000
+TH2F paero_neg_pi_vs_cntr 'SHMS Aero- Pulse Integral vs. Counter Number; Counter Number;  Pulse Integral / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseInt 7 0.5 7.5 4000 0 40000
+TH2F paero_neg_amp_vs_cntr 'SHMS Aero- Pulse Amplitude vs. Counter Number; Counter Number;  Pulse Amplitude / 1 ADC Unit' P.aero.negAdcCounter P.aero.negAdcPulseAmp 7 0.5 7.5 4100 0 4100
+
+# Pre-Shower Calorimeter
+TH1F pcal_prshwr_pos_occu 'SHMS Preshower+ Occupancy; Block Number; Number of Entries' P.cal.pr.posAdcCounter 14 0.5 14.5
+TH2F pcal_prshwr_pos_ped_blk 'SHMS Preshower+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Unit' P.cal.pr.posAdcCounter P.cal.pr.posAdcPed 14 0.5 14.5 1000 0 1000
+TH2F pcal_prshwr_pos_pi_blk 'SHMS Preshower+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseInt 14 0.5 14.5 4000 0 40000
+TH2F pcal_prshwr_pos_amp_blk 'SHMS Preshower+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Unit' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseAmp 14 0.5 14.5 4100 0 4100
+TH1F pcal_prshwr_neg_occu 'SHMS Preshower- Occupancy; Block Number; Number of Entries' P.cal.pr.negAdcCounter 14 0.5 14.5
+TH2F pcal_prshwr_neg_ped_blk 'SHMS Preshower- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Unit' P.cal.pr.negAdcCounter P.cal.pr.negAdcPed 14 0.5 14.5 1000 0 1000
+TH2F pcal_prshwr_neg_pi_blk 'SHMS Preshower- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseInt 14 0.5 14.5 4000 0 40000
+TH2F pcal_prshwr_neg_amp_blk 'SHMS Preshower- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Unit' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseAmp 14 0.5 14.5 4100 0 4100 
+
+# Shower Calorimeter
+TH1F pcal_shwr_occu 'SHMS Shower Occupancy; Block Number; Number of Entries' P.cal.fly.adcCounter 224 0.5 224.5
+TH2F pcal_shwr_ped_blk 'SHMS Shower Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Unit' P.cal.fly.adcCounter P.cal.fly.adcPed 224 0.5 224.5 1000 0 1000
+TH2F pcal_shwr_pi_blk 'SHMS Shower Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPulseInt 224 0.5 224.5 4000 0 40000
+TH2F pcal_shwr_amp_blk 'SHMS Shower Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Unit' P.cal.fly.adcCounter P.cal.fly.adcPulseAmp 224 0.5 224.5 4100 0 4100 
+
+# Trigger Apparatus
+TH1F ptrig_pngc_sum_pped 'SHMS Noble Gas Sum FADC Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Units' T.shms.pNGCSUM_adcPed 2000 0 2000
+TH1F ptrig_pngc_sum_pint 'SHMS Noble Gas Sum FADC Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.shms.pNGCSUM_adcPulseInt 4000 0 40000
+TH1F ptrig_pngc_sum_pamp 'SHMS Noble Gas Sum FADC Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Units' T.shms.pNGCSUM_adcPulseAmp 4100 0 4100
+TH1F ptrig_pngc_sum_ptime 'SHMS Noble Gas Sum FADC Pulse Time; Pulse Time; Number of Entries / 10 ADC Units' T.shms.pNGCSUM_adcPulseTimeRaw 1000 0 10000
+TH1F ptrig_pngc_sum_tdc 'SHMS Noble Gas Sum TDC Time; TDC Time; Number of Entries / 10 TDC Units' T.shms.pNGCSUM_tdcTime 700 -3500 3500
+
+TH1F ptrig_phgc_sum_pped 'SHMS Heavy Gas Sum FADC Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Units' T.shms.pHGCSUM_adcPed 2000 0 2000
+TH1F ptrig_phgc_sum_pint 'SHMS Heavy Gas Sum FADC Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.shms.pHGCSUM_adcPulseInt 4000 0 40000
+TH1F ptrig_phgc_sum_pamp 'SHMS Heavy Gas Sum FADC Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Units' T.shms.pHGCSUM_adcPulseAmp 4100 0 4100
+TH1F ptrig_phgc_sum_ptime 'SHMS Heavy Gas Sum FADC Pulse Time; Pulse Time; Number of Entries / 10 ADC Units' T.shms.pHGCSUM_adcPulseTimeRaw 1000 0 10000
+TH1F ptrig_phgc_sum_tdc 'SHMS Heavy Gas Sum TDC Time; TDC Time; Number of Entries / 10 TDC Units' T.shms.pHGCSUM_tdcTime 700 -3500 3500
+
+TH1F ptrig_p1x_tdc 'SHMS p1x TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p1X_tdcTime 350 0 3500
+TH1F ptrig_p1y_tdc 'SHMS p1y TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p1Y_tdcTime 350 0 3500
+TH1F ptrig_p2x_tdc 'SHMS p2x TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p2X_tdcTime 350 0 3500
+TH1F ptrig_p2y_tdc 'SHMS p2y TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p2Y_tdcTime 350 0 3500
+
+TH1F ptrig_p1T_tdc 'SHMS p1x/p1y Coincidence TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p1T_tdcTime 350 0 3500
+TH1F ptrig_p2T_tdc 'SHMS p2x/p2y Coincidence TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p2T_tdcTime 350 0 3500
+
+TH1F ptrig_pT1_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Time (Slot 20, Channel 15); Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pT1_tdcTime 350 0 3500
+TH1F ptrig_pT2_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Time (Slot 19, Channel 31); Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pT2_tdcTime 350 0 3500
+TH1F ptrig_pT3_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Time (Slot 19, Channel 38); Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pT3_tdcTime 350 0 3500
diff --git a/DEF-files/SHMS/GEN/pstackana_cuts.def b/DEF-files/SHMS/GEN/pstackana_cuts.def
new file mode 100644
index 00000000..3af34a5e
--- /dev/null
+++ b/DEF-files/SHMS/GEN/pstackana_cuts.def
@@ -0,0 +1,13 @@
+Block: RawDecode
+
+Pedestal_event 0
+RawDecode_master 1
+
+Block: Decode
+Decode_master 1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CourseReconstruct 0
diff --git a/DEF-files/SHMS/GEN/pstackana_report.def b/DEF-files/SHMS/GEN/pstackana_report.def
new file mode 100644
index 00000000..6d9be51d
--- /dev/null
+++ b/DEF-files/SHMS/GEN/pstackana_report.def
@@ -0,0 +1,183 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+block T.shms.*
+block P.ngcer.*
+block P.dc.*
+block P.tr.*
+block P.hod.*
+block P.hgcer.*
+block P.aero.*
+block P.cal.*
+block P.gtr.*
+
+# Noble Gas Cherenkov
+TH1F pngcer_occu 'SHMS Noble Gas Cherenkov Occupancy; Counter Number; Number of Entries' P.ngcer.adcCounter 4 0.5 4.5
+TH2F pngcer_ped_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Pedestal vs. Counter Number; Counter Number;  Pulse Pedestal / 1 ADC Unit' P.ngcer.adcCounter P.ngcer.adcPed 4 0.5 4.5 1000 0 1000
+TH2F pngcer_pi_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Integral vs. Counter Number; Counter Number;  Pulse Integral / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPulseInt 4 0.5 4.5 4000 0 40000
+TH2F pngcer_amp_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Amplitude vs. Counter Number; Counter Number;  Pulse Amplitude / 1 ADC Unit' P.ngcer.adcCounter P.ngcer.adcPulseAmp 4 0.5 4.5 4100 0 4100
+
+# Drift Chambers
+TH1F pdc_ref1  'SHMS DC Reference Time Slot 6 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF1_tdcTime  200 12000 14000
+TH1F pdc_ref2  'SHMS DC Reference Time Slot 7 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF2_tdcTime  200 12000 14000
+TH1F pdc_ref3  'SHMS DC Reference Time Slot 8 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF3_tdcTime  200 12000 14000
+TH1F pdc_ref4  'SHMS DC Reference Time Slot 9 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF4_tdcTime  200 12000 14000
+TH1F pdc_ref5  'SHMS DC Reference Time Slot 10 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF5_tdcTime  200 12000 14000
+TH1F pdc_ref6  'SHMS DC Reference Time Slot 11 Channel 47; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF6_tdcTime  200 12000 14000
+TH1F pdc_ref7  'SHMS DC Reference Time Slot 12 Channel 47; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF7_tdcTime  200 12000 14000
+TH1F pdc_ref8  'SHMS DC Reference Time Slot 13 Channel 47; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF8_tdcTime  200 12000 14000
+TH1F pdc_ref9  'SHMS DC Reference Time Slot 14 Channel 15; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF9_tdcTime  200 12000 14000
+TH1F pdc_ref10 'SHMS DC Reference Time Slot 15 Channel 47; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks;' T.shms.pDCREF10_tdcTime 200 12000 14000
+
+TH1F pdc1u1_wirenum 'SHMS DC 1U1 Wiremap; Wire Number; Number of Entries' P.dc.1u1.wirenum 107 0.5 107.5
+TH1F pdc1u2_wirenum 'SHMS DC 1U2 Wiremap; Wire Number; Number of Entries' P.dc.1u2.wirenum 107 0.5 107.5
+TH1F pdc1x1_wirenum 'SHMS DC 1X1 Wiremap; Wire Number; Number of Entries' P.dc.1x1.wirenum  79 0.5  79.5
+TH1F pdc1x2_wirenum 'SHMS DC 1X2 Wiremap; Wire Number; Number of Entries' P.dc.1x2.wirenum  79 0.5  79.5
+TH1F pdc1v1_wirenum 'SHMS DC 1V1 Wiremap; Wire Number; Number of Entries' P.dc.1v1.wirenum 107 0.5 107.5
+TH1F pdc1v2_wirenum 'SHMS DC 1V2 Wiremap; Wire Number; Number of Entries' P.dc.1v2.wirenum 107 0.5 107.5
+
+TH1F pdc2v2_wirenum 'SHMS DC 2V2 Wiremap; Wire Number; Number of Entries' P.dc.2v2.wirenum 107 0.5 107.5
+TH1F pdc2v1_wirenum 'SHMS DC 2V1 Wiremap; Wire Number; Number of Entries' P.dc.2v1.wirenum 107 0.5 107.5
+TH1F pdc2x2_wirenum 'SHMS DC 2X2 Wiremap; Wire Number; Number of Entries' P.dc.2x2.wirenum  79 0.5  79.5
+TH1F pdc2x1_wirenum 'SHMS DC 2X1 Wiremap; Wire Number; Number of Entries' P.dc.2x1.wirenum  79 0.5  79.5
+TH1F pdc2u2_wirenum 'SHMS DC 2U2 Wiremap; Wire Number; Number of Entries' P.dc.2u2.wirenum 107 0.5 107.5
+TH1F pdc2u1_wirenum 'SHMS DC 2U1 Wiremap; Wire Number; Number of Entries' P.dc.2u1.wirenum 107 0.5 107.5
+
+TH2F pdc1u1_wirenum_vs_tdc 'SHMS DC 1U1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1u1.wirenum P.dc.1u1.time 107 0.5 107.5 500 0 500
+TH2F pdc1u2_wirenum_vs_tdc 'SHMS DC 1U2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1u2.wirenum P.dc.1u2.time 107 0.5 107.5 500 0 500
+TH2F pdc1x1_wirenum_vs_tdc 'SHMS DC 1X1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1x1.wirenum P.dc.1x1.time  79 0.5  79.5 500 0 500
+TH2F pdc1x2_wirenum_vs_tdc 'SHMS DC 1X2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1x2.wirenum P.dc.1x2.time  79 0.5  79.5 500 0 500
+TH2F pdc1v1_wirenum_vs_tdc 'SHMS DC 1V1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1v1.wirenum P.dc.1v1.time 107 0.5 107.5 500 0 500
+TH2F pdc1v2_wirenum_vs_tdc 'SHMS DC 1V2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1v2.wirenum P.dc.1v2.time 107 0.5 107.5 500 0 500
+
+TH2F pdc2v2_wirenum_vs_tdc 'SHMS DC 2V2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2v2.wirenum P.dc.2v2.time 107 0.5 107.5 500 0 500
+TH2F pdc2v1_wirenum_vs_tdc 'SHMS DC 2V1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2v1.wirenum P.dc.2v1.time 107 0.5 107.5 500 0 500
+TH2F pdc2x2_wirenum_vs_tdc 'SHMS DC 2X2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2x2.wirenum P.dc.2x2.time  79 0.5  79.5 500 0 500
+TH2F pdc2x1_wirenum_vs_tdc 'SHMS DC 2X1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2x1.wirenum P.dc.2x1.time  79 0.5  79.5 500 0 500
+TH2F pdc2u2_wirenum_vs_tdc 'SHMS DC 2U2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2u2.wirenum P.dc.2u2.time 107 0.5 107.5 500 0 500
+TH2F pdc2u1_wirenum_vs_tdc 'SHMS DC 2U1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2u1.wirenum P.dc.2u1.time 107 0.5 107.5 500 0 500
+
+TH2F pdc1u1_wirenum_vs_resid 'SHMS 1U1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1u1.wirenum P.dc.residual[0] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc1u2_wirenum_vs_resid 'SHMS 1U2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1u2.wirenum P.dc.residual[1] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc1x1_wirenum_vs_resid 'SHMS 1X1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1x1.wirenum P.dc.residual[2] 79 0.5  79.5 200 -1.0 1.0
+TH2F pdc1x2_wirenum_vs_resid 'SHMS 1X2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1x2.wirenum P.dc.residual[3] 79 0.5  79.5 200 -1.0 1.0
+TH2F pdc1v1_wirenum_vs_resid 'SHMS 1V1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1v1.wirenum P.dc.residual[4] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc1v2_wirenum_vs_resid 'SHMS 1V2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1v2.wirenum P.dc.residual[5] 107 0.5 107.5 200 -1.0 1.0
+
+TH2F pdc2v2_wirenum_vs_resid 'SHMS 2V2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2v2.wirenum P.dc.residual[6] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc2v1_wirenum_vs_resid 'SHMS 2V1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2v1.wirenum P.dc.residual[7] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc2x2_wirenum_vs_resid 'SHMS 2X2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2x2.wirenum P.dc.residual[8] 79 0.5  79.5 200 -1.0 1.0
+TH2F pdc2x1_wirenum_vs_resid 'SHMS 2X1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2x1.wirenum P.dc.residual[9] 79 0.5  79.5 200 -1.0 1.0
+TH2F pdc2u2_wirenum_vs_resid 'SHMS 2U2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2u2.wirenum P.dc.residual[10] 107 0.5 107.5 200 -1.0 1.0
+TH2F pdc2u1_wirenum_vs_resid 'SHMS 2U1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2u1.wirenum P.dc.residual[11] 107 0.5 107.5 200 -1.0 1.0
+
+TH2F pdc_xfp_vs_yxp 'SHMS DC Xfp vs Yxp; Yfp (cm) / 1 cm; Xfp (cm) / 1 cm' P.dc.y P.dc.x 100 -50 50 100 -50 50
+TH2F pdc_xfpp_vs_yxpp 'SHMS DC Xfpp vs Yxpp; Yfpp; Xfpp' P.dc.yp P.dc.xp 100 -1 1 100 -1 1
+
+# Hodoscopes (Positive/Left) 
+TH1F phodo_1x_pos_adc_occu 'SHMS Hodoscope 1X+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.1x.posAdcCounter 13 0.5 13.5
+TH1F phodo_1y_pos_adc_occu 'SHMS Hodoscope 1Y+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.1y.posAdcCounter 13 0.5 13.5 
+TH1F phodo_2x_pos_adc_occu 'SHMS Hodoscope 2X+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.2x.posAdcCounter 14 0.5 14.5
+TH1F phodo_2y_pos_adc_occu 'SHMS Hodoscope 2Y+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.2y.posAdcCounter 21 0.5 21.5
+TH1F phodo_1x_pos_tdc_occu 'SHMS Hodoscope 1X+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.1x.posTdcCounter 13 0.5 13.5
+TH1F phodo_1y_pos_tdc_occu 'SHMS Hodoscope 1Y+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.1y.posTdcCounter 13 0.5 13.5 
+TH1F phodo_2x_pos_tdc_occu 'SHMS Hodoscope 2X+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.2x.posTdcCounter 14 0.5 14.5
+TH1F phodo_2y_pos_tdc_occu 'SHMS Hodoscope 2Y+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.2y.posTdcCounter 21 0.5 21.5
+TH2F phodo_1x_pos_ped_vs_pad 'SHMS Hodoscope 1X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1x.posAdcCounter  P.hod.1x.posAdcPed 13 0.5 13.5 1000 0 1000
+TH2F phodo_1y_pos_ped_vs_pad 'SHMS Hodoscope 1Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1y.posAdcCounter  P.hod.1y.posAdcPed 13 0.5 13.5 1000 0 1000
+TH2F phodo_2x_pos_ped_vs_pad 'SHMS Hodoscope 2X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2x.posAdcCounter  P.hod.2x.posAdcPed 14 0.5 14.5 1000 0 1000
+TH2F phodo_2y_pos_ped_vs_pad 'SHMS Hodoscope 2Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2y.posAdcCounter  P.hod.2y.posAdcPed 21 0.5 21.5 1000 0 1000
+TH2F phodo_1x_pos_pi_vs_pad 'SHMS Hodoscope 1X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1x.GoodPaddle  P.hod.1x.GoodPosAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F phodo_1y_pos_pi_vs_pad 'SHMS Hodoscope 1Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1y.GoodPaddle  P.hod.1y.GoodPosAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F phodo_2x_pos_pi_vs_pad 'SHMS Hodoscope 2X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2x.GoodPaddle  P.hod.2x.GoodPosAdcPulseInt 14 0.5 14.5 4000 0 40000
+TH2F phodo_2y_pos_pi_vs_pad 'SHMS Hodoscope 2Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2y.GoodPaddle  P.hod.2y.GoodPosAdcPulseInt 21 0.5 21.5 4000 0 40000
+TH2F phodo_1x_pos_pamp_vs_pad 'SHMS Hodoscope 1X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1x.GoodPaddle  P.hod.1x.GoodPosAdcPulseAmp 13 0.5 13.5 4100 0 4100
+TH2F phodo_1y_pos_pamp_vs_pad 'SHMS Hodoscope 1Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1y.GoodPaddle  P.hod.1y.GoodPosAdcPulseAmp 13 0.5 13.5 4100 0 4100
+TH2F phodo_2x_pos_pamp_vs_pad 'SHMS Hodoscope 2X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2x.GoodPaddle  P.hod.2x.GoodPosAdcPulseAmp 14 0.5 14.5 4100 0 4100
+TH2F phodo_2y_pos_pamp_vs_pad 'SHMS Hodoscope 2Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2y.GoodPaddle  P.hod.2y.GoodPosAdcPulseAmp 21 0.5 21.5 4100 0 4100
+TH2F phodo_1x_pos_tdc_time_vs_pad 'SHMS Hodoscope 1X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1x.GoodPaddle  P.hod.1x.GoodPosTdcChan 13 0.5 13.5 3500 -500 3000
+TH2F phodo_1y_pos_tdc_time_vs_pad 'SHMS Hodoscope 1Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1y.GoodPaddle  P.hod.1y.GoodPosTdcChan 13 0.5 13.5 3500 -500 3000
+TH2F phodo_2x_pos_tdc_time_vs_pad 'SHMS Hodoscope 2X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2x.GoodPaddle  P.hod.2x.GoodPosTdcChan 14 0.5 14.5 3500 -500 3000
+TH2F phodo_2y_pos_tdc_time_vs_pad 'SHMS Hodoscope 2Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2y.GoodPaddle  P.hod.2y.GoodPosTdcChan 21 0.5 21.5 3500 -500 3000
+
+# Hodoscopes (Negative/Right)
+TH1F phodo_1x_neg_adc_occu 'SHMS Hodoscope 1X- ADC Occupancy; Paddle Number; Number of Hits' P.hod.1x.negAdcCounter 13 0.5 13.5
+TH1F phodo_1y_neg_adc_occu 'SHMS Hodoscope 1Y- ADC Occupancy; Paddle Number; Number of Hits' P.hod.1y.negAdcCounter 13 0.5 13.5 
+TH1F phodo_2x_neg_adc_occu 'SHMS Hodoscope 2X- ADC Occupancy; Paddle Number; Number of Hits' P.hod.2x.negAdcCounter 14 0.5 14.5
+TH1F phodo_2y_neg_adc_occu 'SHMS Hodoscope 2Y- ADC Occupancy; Paddle Number; Number of Hits' P.hod.2y.negAdcCounter 21 0.5 21.5
+TH1F phodo_1x_neg_tdc_occu 'SHMS Hodoscope 1X- TDC Occupancy; Paddle Number; Number of Hits' P.hod.1x.negTdcCounter 13 0.5 13.5
+TH1F phodo_1y_neg_tdc_occu 'SHMS Hodoscope 1Y- TDC Occupancy; Paddle Number; Number of Hits' P.hod.1y.negTdcCounter 13 0.5 13.5 
+TH1F phodo_2x_neg_tdc_occu 'SHMS Hodoscope 2X- TDC Occupancy; Paddle Number; Number of Hits' P.hod.2x.negTdcCounter 14 0.5 14.5
+TH1F phodo_2y_neg_tdc_occu 'SHMS Hodoscope 2Y- TDC Occupancy; Paddle Number; Number of Hits' P.hod.2y.negTdcCounter 21 0.5 21.5
+TH2F phodo_1x_neg_ped_vs_pad 'SHMS Hodoscope 1X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1x.negAdcCounter  P.hod.1x.negAdcPed 13 0.5 13.5 1000 0 1000
+TH2F phodo_1y_neg_ped_vs_pad 'SHMS Hodoscope 1Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1y.negAdcCounter  P.hod.1y.negAdcPed 13 0.5 13.5 1000 0 1000
+TH2F phodo_2x_neg_ped_vs_pad 'SHMS Hodoscope 2X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2x.negAdcCounter  P.hod.2x.negAdcPed 14 0.5 14.5 1000 0 1000
+TH2F phodo_2y_neg_ped_vs_pad 'SHMS Hodoscope 2Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2y.negAdcCounter  P.hod.2y.negAdcPed 21 0.5 21.5 1000 0 1000
+TH2F phodo_1x_neg_pi_vs_pad 'SHMS Hodoscope 1X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1x.GoodPaddle  P.hod.1x.GoodNegAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F phodo_1y_neg_pi_vs_pad 'SHMS Hodoscope 1Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1y.GoodPaddle  P.hod.1y.GoodNegAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F phodo_2x_neg_pi_vs_pad 'SHMS Hodoscope 2X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2x.GoodPaddle  P.hod.2x.GoodNegAdcPulseInt 14 0.5 14.5 4000 0 40000
+TH2F phodo_2y_neg_pi_vs_pad 'SHMS Hodoscope 2Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2y.GoodPaddle  P.hod.2y.GoodNegAdcPulseInt 21 0.5 21.5 4000 0 40000
+TH2F phodo_1x_neg_pamp_vs_pad 'SHMS Hodoscope 1X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1x.GoodPaddle  P.hod.1x.GoodNegAdcPulseAmp 13 0.5 13.5 4100 0 4100
+TH2F phodo_1y_neg_pamp_vs_pad 'SHMS Hodoscope 1Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1y.GoodPaddle  P.hod.1y.GoodNegAdcPulseAmp 13 0.5 13.5 4100 0 4100
+TH2F phodo_2x_neg_pamp_vs_pad 'SHMS Hodoscope 2X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2x.GoodPaddle  P.hod.2x.GoodNegAdcPulseAmp 14 0.5 14.5 4100 0 4100
+TH2F phodo_2y_neg_pamp_vs_pad 'SHMS Hodoscope 2Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2y.GoodPaddle  P.hod.2y.GoodNegAdcPulseAmp 21 0.5 21.5 4100 0 4100
+TH2F phodo_1x_neg_tdc_time_vs_pad 'SHMS Hodoscope 1X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1x.GoodPaddle  P.hod.1x.GoodNegTdcChan 13 0.5 13.5 3500 -500 3000
+TH2F phodo_1y_neg_tdc_time_vs_pad 'SHMS Hodoscope 1Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1y.GoodPaddle  P.hod.1y.GoodNegTdcChan 13 0.5 13.5 3500 -500 3000
+TH2F phodo_2x_neg_tdc_time_vs_pad 'SHMS Hodoscope 2X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2x.GoodPaddle  P.hod.2x.GoodNegTdcChan 14 0.5 14.5 3500 -500 3000
+TH2F phodo_2y_neg_tdc_time_vs_pad 'SHMS Hodoscope 2Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2y.GoodPaddle  P.hod.2y.GoodNegTdcChan 21 0.5 21.5 3500 -500 3000
+
+# Heavy Gas Cherenkov
+TH1F phgcer_occu 'SHMS Heavy Gas Cherenkov Occupancy; Counter Number; Number of Entries' P.hgcer.adcCounter 4 0.5 4.5
+TH2F phgcer_ped_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Pedestal vs. Counter Number; Counter Number;  Pulse Pedestal / 1 ADC Unit' P.hgcer.adcCounter P.hgcer.adcPed 4 0.5 4.5 1000 0 10000
+TH2F phgcer_pi_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Integral vs. Counter Number; Counter Number;  Pulse Integral / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseInt 4 0.5 4.5 4000 0 40000
+TH2F phgcer_amp_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Amplitude vs. Counter Number; Counter Number;  Pulse Amplitude / 1 ADC Unit' P.hgcer.adcCounter P.hgcer.adcPulseAmp 4 0.5 4.5 4100 0 4100
+
+# Aerogel
+TH1F paero_pos_occu 'SHMS Aero+ Occupancy; Counter Number; Number of Entries' P.aero.posAdcCounter 7 0.5 7.5
+TH2F paero_pos_ped_vs_cntr 'SHMS Aero+ Pulse Pedestal vs. Counter Number; Counter Number;  Pulse Pedestal / 1 ADC Unit' P.aero.posAdcCounter P.aero.posAdcPed 7 0.5 7.5 1000 0 1000
+TH2F paero_pos_pi_vs_cntr 'SHMS Aero+ Pulse Integral vs. Counter Number; Counter Number;  Pulse Integral / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPulseInt 7 0.5 7.5 4000 0 40000
+TH2F paero_pos_amp_vs_cntr 'SHMS Aero+ Pulse Amplitude vs. Counter Number; Counter Number;  Pulse Amplitude / 1 ADC Unit' P.aero.posAdcCounter P.aero.posAdcPulseAmp 7 0.5 7.5 4100 0 4100
+TH1F paero_neg_occu 'SHMS Aero- Occupancy; Counter Number; Number of Entries' P.aero.negAdcCounter 7 0.5 7.5
+TH2F paero_neg_ped_vs_cntr 'SHMS Aero- Pulse Pedestal vs. Counter Number; Counter Number;  Pulse Pedestal / 1 ADC Unit' P.aero.negAdcCounter P.aero.negAdcPed 7 0.5 7.5 1000 0 1000
+TH2F paero_neg_pi_vs_cntr 'SHMS Aero- Pulse Integral vs. Counter Number; Counter Number;  Pulse Integral / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseInt 7 0.5 7.5 4000 0 40000
+TH2F paero_neg_amp_vs_cntr 'SHMS Aero- Pulse Amplitude vs. Counter Number; Counter Number;  Pulse Amplitude / 1 ADC Unit' P.aero.negAdcCounter P.aero.negAdcPulseAmp 7 0.5 7.5 4100 0 4100
+
+# Pre-Shower Calorimeter
+TH1F pcal_prshwr_pos_occu 'SHMS Preshower+ Occupancy; Block Number; Number of Entries' P.cal.pr.posAdcCounter 14 0.5 14.5
+TH2F pcal_prshwr_pos_ped_blk 'SHMS Preshower+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Unit' P.cal.pr.posAdcCounter P.cal.pr.posAdcPed 14 0.5 14.5 1000 0 1000
+TH2F pcal_prshwr_pos_pi_blk 'SHMS Preshower+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseInt 14 0.5 14.5 4000 0 40000
+TH2F pcal_prshwr_pos_amp_blk 'SHMS Preshower+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Unit' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseAmp 14 0.5 14.5 4100 0 4100
+TH1F pcal_prshwr_neg_occu 'SHMS Preshower- Occupancy; Block Number; Number of Entries' P.cal.pr.negAdcCounter 14 0.5 14.5
+TH2F pcal_prshwr_neg_ped_blk 'SHMS Preshower- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Unit' P.cal.pr.negAdcCounter P.cal.pr.negAdcPed 14 0.5 14.5 1000 0 1000
+TH2F pcal_prshwr_neg_pi_blk 'SHMS Preshower- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseInt 14 0.5 14.5 4000 0 40000
+TH2F pcal_prshwr_neg_amp_blk 'SHMS Preshower- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Unit' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseAmp 14 0.5 14.5 4100 0 4100 
+
+# Shower Calorimeter
+TH1F pcal_shwr_occu 'SHMS Shower Occupancy; Block Number; Number of Entries' P.cal.fly.adcCounter 224 0.5 224.5
+TH2F pcal_shwr_ped_blk 'SHMS Shower Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Unit' P.cal.fly.adcCounter P.cal.fly.adcPed 224 0.5 224.5 1000 0 1000
+TH2F pcal_shwr_pi_blk 'SHMS Shower Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPulseInt 224 0.5 224.5 4000 0 40000
+TH2F pcal_shwr_amp_blk 'SHMS Shower Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Unit' P.cal.fly.adcCounter P.cal.fly.adcPulseAmp 224 0.5 224.5 4100 0 4100 
+
+# Trigger Apparatus
+TH1F ptrig_pngc_sum_pped 'SHMS Noble Gas Sum FADC Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Units' T.shms.pNGCSUM_adcPed 2000 0 2000
+TH1F ptrig_pngc_sum_pint 'SHMS Noble Gas Sum FADC Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.shms.pNGCSUM_adcPulseInt 4000 0 40000
+TH1F ptrig_pngc_sum_pamp 'SHMS Noble Gas Sum FADC Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Units' T.shms.pNGCSUM_adcPulseAmp 4100 0 4100
+TH1F ptrig_pngc_sum_ptime 'SHMS Noble Gas Sum FADC Pulse Time; Pulse Time; Number of Entries / 10 ADC Units' T.shms.pNGCSUM_adcPulseTimeRaw 1000 0 10000
+TH1F ptrig_pngc_sum_tdc 'SHMS Noble Gas Sum TDC Time; TDC Time; Number of Entries / 10 TDC Units' T.shms.pNGCSUM_tdcTime 700 -3500 3500
+
+TH1F ptrig_phgc_sum_pped 'SHMS Heavy Gas Sum FADC Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Units' T.shms.pHGCSUM_adcPed 2000 0 2000
+TH1F ptrig_phgc_sum_pint 'SHMS Heavy Gas Sum FADC Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.shms.pHGCSUM_adcPulseInt 4000 0 40000
+TH1F ptrig_phgc_sum_pamp 'SHMS Heavy Gas Sum FADC Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Units' T.shms.pHGCSUM_adcPulseAmp 4100 0 4100
+TH1F ptrig_phgc_sum_ptime 'SHMS Heavy Gas Sum FADC Pulse Time; Pulse Time; Number of Entries / 10 ADC Units' T.shms.pHGCSUM_adcPulseTimeRaw 1000 0 10000
+TH1F ptrig_phgc_sum_tdc 'SHMS Heavy Gas Sum TDC Time; TDC Time; Number of Entries / 10 TDC Units' T.shms.pHGCSUM_tdcTime 700 -3500 3500
+
+TH1F ptrig_p1x_tdc 'SHMS p1x TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p1X_tdcTime 350 0 3500
+TH1F ptrig_p1y_tdc 'SHMS p1y TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p1Y_tdcTime 350 0 3500
+TH1F ptrig_p2x_tdc 'SHMS p2x TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p2X_tdcTime 350 0 3500
+TH1F ptrig_p2y_tdc 'SHMS p2y TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p2Y_tdcTime 350 0 3500
+
+TH1F ptrig_p1T_tdc 'SHMS p1x/p1y Coincidence TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p1T_tdcTime 350 0 3500
+TH1F ptrig_p2T_tdc 'SHMS p2x/p2y Coincidence TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p2T_tdcTime 350 0 3500
+
+TH1F ptrig_pT1_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Time (Slot 20, Channel 15); Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pT1_tdcTime 350 0 3500
+TH1F ptrig_pT2_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Time (Slot 19, Channel 31); Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pT2_tdcTime 350 0 3500
+TH1F ptrig_pT3_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Time (Slot 19, Channel 38); Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pT3_tdcTime 350 0 3500
\ No newline at end of file
diff --git a/DEF-files/SHMS/GEN/pstackana_report_cuts.def b/DEF-files/SHMS/GEN/pstackana_report_cuts.def
new file mode 100644
index 00000000..d012b948
--- /dev/null
+++ b/DEF-files/SHMS/GEN/pstackana_report_cuts.def
@@ -0,0 +1,189 @@
+# Demo cuts for hodtest
+#
+
+Block: RawDecode
+
+Pedestal_event    g.evtyp==4
+scalar_event      g.evtyp==0
+HMS_event         g.evtyp==1
+SHMS_event         g.evtyp==1
+coin_event        g.evtyp==3
+misc_event        g.evtyp>=5
+hmscoin_event     g.evtyp==1||g.evtyp==3
+shmscoin_event     g.evtyp==2||g.evtyp==3
+all_event         g.evtyp==1||g.evtyp==2||g.evtyp==3
+RawDecode_master  1
+
+Block: Decode
+Decode_master     HMS_event
+
+Block: CoarseTracking
+CoarseTracking_master HMS_event
+
+all_trigs             g.evtyp==1 || g.evtyp==2 || g.evtyp==3
+hms_shms_trig          g.evtyp==1 || g.evtyp==2
+hms_coin_trig         g.evtyp==1 || g.evtyp==3
+
+
+shmsDC1Planes_large  (P.dc.1x1.nhit+P.dc.1u2.nhit+P.dc.1u1.nhit+P.dc.1v1.nhit+P.dc.1x2.nhit+P.dc.1v2.nhit) >20
+shmsDC2Planes_large  (P.dc.2x1.nhit+P.dc.2u2.nhit+P.dc.2u1.nhit+P.dc.2v1.nhit+P.dc.2x2.nhit+P.dc.2v2.nhit) >20
+
+shmsDC1_1hit_x1                P.dc.1x1.nhit == 1
+shmsDC1_1hit_u1                P.dc.1u1.nhit == 1
+shmsDC1_1hit_u2                P.dc.1u2.nhit == 1
+shmsDC1_1hit_v1                P.dc.1v1.nhit == 1
+shmsDC1_1hit_v2                P.dc.1v2.nhit == 1
+shmsDC1_1hit_x2                P.dc.1x2.nhit == 1
+
+shmsDC2_1hit_x1                P.dc.2x1.nhit == 1
+shmsDC2_1hit_u1                P.dc.2u1.nhit == 1
+shmsDC2_1hit_u2                P.dc.2u2.nhit == 1
+shmsDC2_1hit_v1                P.dc.2v1.nhit == 1
+shmsDC2_1hit_v2                P.dc.2v2.nhit == 1
+shmsDC2_1hit_x2                P.dc.2x2.nhit == 1
+
+h1hit1                P.dc.1x1.nhit >= 1
+h1hit2                P.dc.1u1.nhit >= 1
+h1hit3                P.dc.1u2.nhit >= 1
+h1hit4                P.dc.1v1.nhit >= 1
+h1hit5                P.dc.1v2.nhit >= 1
+h1hit6                P.dc.1x2.nhit >= 1
+
+h2hit1                P.dc.2x1.nhit >= 1
+h2hit2                P.dc.2u1.nhit >= 1
+h2hit3                P.dc.2u2.nhit >= 1
+h2hit4                P.dc.2v1.nhit >= 1
+h2hit5                P.dc.2v2.nhit >= 1
+h2hit6                P.dc.2x2.nhit >= 1
+
+shmsDC1Planes6hits shmsDC1_1hit_x1&&shmsDC1_1hit_u1&&shmsDC1_1hit_u2&&shmsDC1_1hit_x2&&shmsDC1_1hit_v1&&shmsDC1_1hit_v2
+shmsDC2Planes6hits shmsDC2_1hit_x1&&shmsDC2_1hit_u1&&shmsDC2_1hit_u2&&shmsDC2_1hit_x2&&shmsDC2_1hit_v1&&shmsDC2_1hit_v2
+shmsDC1_5hits_x1     shmsDC1_1hit_u1&&shmsDC1_1hit_u2&&shmsDC1_1hit_x2&&shmsDC1_1hit_v1&&shmsDC1_1hit_v2
+shmsDC1_6hits_x1     h1hit1&&shmsDC1_1hit_u1&&shmsDC1_1hit_u2&&shmsDC1_1hit_x2&&shmsDC1_1hit_v1&&shmsDC1_1hit_v2
+shmsDC1_5hits_u1     shmsDC1_1hit_x1&&shmsDC1_1hit_u2&&shmsDC1_1hit_x2&&shmsDC1_1hit_v1&&shmsDC1_1hit_v2
+shmsDC1_6hits_u1     h1hit2&&shmsDC1_1hit_x1&&shmsDC1_1hit_u2&&shmsDC1_1hit_x2&&shmsDC1_1hit_v1&&shmsDC1_1hit_v2
+shmsDC1_5hits_u2     shmsDC1_1hit_x1&&shmsDC1_1hit_u1&&shmsDC1_1hit_x2&&shmsDC1_1hit_v1&&shmsDC1_1hit_v2
+shmsDC1_6hits_u2     h1hit3&&shmsDC1_1hit_x1&&shmsDC1_1hit_u1&&shmsDC1_1hit_x2&&shmsDC1_1hit_v1&&shmsDC1_1hit_v2
+shmsDC1_5hits_v1     shmsDC1_1hit_x1&&shmsDC1_1hit_u1&&shmsDC1_1hit_x2&&shmsDC1_1hit_u2&&shmsDC1_1hit_v2
+shmsDC1_6hits_v1     h1hit4&&shmsDC1_1hit_x1&&shmsDC1_1hit_u1&&shmsDC1_1hit_x2&&shmsDC1_1hit_u2&&shmsDC1_1hit_v2
+shmsDC1_5hits_v2     shmsDC1_1hit_x1&&shmsDC1_1hit_u1&&shmsDC1_1hit_x2&&shmsDC1_1hit_u2&&shmsDC1_1hit_v1
+shmsDC1_6hits_v2     h1hit5&&shmsDC1_1hit_x1&&shmsDC1_1hit_u1&&shmsDC1_1hit_x2&&shmsDC1_1hit_u2&&shmsDC1_1hit_v1
+shmsDC1_5hits_x2     shmsDC1_1hit_x1&&shmsDC1_1hit_u1&&shmsDC1_1hit_v1&&shmsDC1_1hit_u2&&shmsDC1_1hit_v2
+shmsDC1_6hits_x2     h1hit6&&shmsDC1_1hit_x1&&shmsDC1_1hit_u1&&shmsDC1_1hit_v1&&shmsDC1_1hit_u2&&shmsDC1_1hit_v2
+
+shmsDC2_5hits_x1     shmsDC2_1hit_u1&&shmsDC2_1hit_u2&&shmsDC2_1hit_x2&&shmsDC2_1hit_v1&&shmsDC2_1hit_v2
+shmsDC2_6hits_x1     h2hit1&&shmsDC2_1hit_u1&&shmsDC2_1hit_u2&&shmsDC2_1hit_x2&&shmsDC2_1hit_v1&&shmsDC2_1hit_v2
+shmsDC2_5hits_u1     shmsDC2_1hit_x1&&shmsDC2_1hit_u2&&shmsDC2_1hit_x2&&shmsDC2_1hit_v1&&shmsDC2_1hit_v2
+shmsDC2_6hits_u1     h2hit2&&shmsDC2_1hit_x1&&shmsDC2_1hit_u2&&shmsDC2_1hit_x2&&shmsDC2_1hit_v1&&shmsDC2_1hit_v2
+shmsDC2_5hits_u2     shmsDC2_1hit_x1&&shmsDC2_1hit_u1&&shmsDC2_1hit_x2&&shmsDC2_1hit_v1&&shmsDC2_1hit_v2
+shmsDC2_6hits_u2     h2hit3&&shmsDC2_1hit_x1&&shmsDC2_1hit_u1&&shmsDC2_1hit_x2&&shmsDC2_1hit_v1&&shmsDC2_1hit_v2
+shmsDC2_5hits_v1     shmsDC2_1hit_x1&&shmsDC2_1hit_u1&&shmsDC2_1hit_x2&&shmsDC2_1hit_u2&&shmsDC2_1hit_v2
+shmsDC2_6hits_v1     h2hit4&&shmsDC2_1hit_x1&&shmsDC2_1hit_u1&&shmsDC2_1hit_x2&&shmsDC2_1hit_u2&&shmsDC2_1hit_v2
+shmsDC2_5hits_v2     shmsDC2_1hit_x1&&shmsDC2_1hit_u1&&shmsDC2_1hit_x2&&shmsDC2_1hit_u2&&shmsDC2_1hit_v1
+shmsDC2_6hits_v2     h2hit5&&shmsDC2_1hit_x1&&shmsDC2_1hit_u1&&shmsDC2_1hit_x2&&shmsDC2_1hit_u2&&shmsDC2_1hit_v1
+shmsDC2_5hits_x2     shmsDC2_1hit_x1&&shmsDC2_1hit_u1&&shmsDC2_1hit_v1&&shmsDC2_1hit_u2&&shmsDC2_1hit_v2
+shmsDC2_6hits_x2     h2hit6&&shmsDC2_1hit_x1&&shmsDC2_1hit_u1&&shmsDC2_1hit_v1&&shmsDC2_1hit_u2&&shmsDC2_1hit_v2
+
+
+
+
+
+shms1HitsLt            P.dc.Ch1.nhit <= P.dc.Ch1.maxhits && g.evtyp==1
+shms2HitsLt            P.dc.Ch2.nhit <= P.dc.Ch2.maxhits && g.evtyp==1
+shmsHitsLt             P.dc.Ch1.nhit <= P.dc.Ch1.maxhits && P.dc.Ch2.nhit <= P.dc.Ch2.maxhits && g.evtyp==1
+shmsDC1PlanesGT        (h1hit1 + h1hit2 + h1hit3 + h1hit4 + h1hit5 + h1hit6 )>=5
+shmsDC2PlanesGT        (h2hit1 + h2hit2 + h2hit3 + h2hit4 + h2hit5 + h2hit6 )>=5
+shmsPlanesGT           shmsDC1PlanesGT && shmsDC2PlanesGT
+shmsHitsPlanes         (P.dc.Ch1.nhit <= P.dc.Ch1.maxhits) && (P.dc.Ch2.nhit <= P.dc.Ch2.maxhits) && shmsPlanesGT
+hSpacePoints          P.dc.Ch1.spacepoints >= 1 && P.dc.Ch2.spacepoints >=1
+hSpacePointsStub      P.dc.stubtest==1 && P.dc.Ch1.spacepoints >=1 && P.dc.Ch2.spacepoints >=1
+hFoundTrack           P.dc.ntrack>0 
+hStubLT               P.dc.stubtest==1
+f1HSpacePoints        shms1HitsLt && shmsDC1PlanesGT && P.dc.Ch1.spacepoints==0 && g.evtyp==1
+f2HSpacePoints        shms2HitsLt && shmsDC2PlanesGT && P.dc.Ch2.spacepoints==0 && g.evtyp==1
+hTest1                shmsHitsPlanes && (!hSpacePoints)
+hTest2                hSpacePoints && (!hStubLT)
+
+
+
+
+
+
+Block: CoarseReconstruct
+CoarseReconstruct_master shms_event
+
+Block: Tracking
+Tracking_master  shms_event
+
+Block: Reconstruct
+Reconstruct_master shms_event
+
+shmsScinGood           P.hod.goodscinhit == 1
+
+shmsScinShould         shmsScinGood && P.cal.etotnorm > 0.7 && P.hgcer.npesum > 2.0
+shmsScinShoulde        shmsScinGood && P.hgcer.npesum > 2.0
+shmsScinShouldh        P.hod.goodscinhit == 1 && g.evtyp == 1
+
+shmsScinDid            shmsScinShould && P.dc.ntrack > 0
+shmsScinDide           shmsScinShoulde && P.dc.ntrack > 0
+shmsScinDidh           shmsScinShouldh && P.dc.ntrack > 0
+
+
+
+goodHDC1x1            P.dc.1x1.nhit > 0 && P.dc.1x1.nhit < 3
+goodHDC1u2            P.dc.1u2.nhit > 0 && P.dc.1u2.nhit < 3
+goodHDC1u1            P.dc.1u1.nhit > 0 && P.dc.1u1.nhit < 3
+goodHDC1v1            P.dc.1v1.nhit > 0 && P.dc.1v1.nhit < 3
+goodHDC1v2            P.dc.1v2.nhit > 0 && P.dc.1v2.nhit < 3
+goodHDC1x2            P.dc.1x2.nhit > 0 && P.dc.1x2.nhit < 3
+
+goodHDC2x1            P.dc.2x1.nhit > 0 && P.dc.2x1.nhit < 3
+goodHDC2u2            P.dc.2u2.nhit > 0 && P.dc.2u2.nhit < 3
+goodHDC2u1            P.dc.2u1.nhit > 0 && P.dc.2u1.nhit < 3
+goodHDC2v1            P.dc.2v1.nhit > 0 && P.dc.2v1.nhit < 3
+goodHDC2v2            P.dc.2v2.nhit > 0 && P.dc.2v2.nhit < 3
+goodHDC2x2            P.dc.2x2.nhit > 0 && P.dc.2x2.nhit < 3
+
+goodHDC1              goodHDC1x1  && goodHDC1u2 && goodHDC1u1 && goodHDC1v1 && goodHDC1v2 && goodHDC1x2 
+goodHDC2              goodHDC2x1  && goodHDC2u2 && goodHDC2u1 && goodHDC2v1 && goodHDC2v2 && goodHDC2x2 
+bothGood              goodHDC1 && goodHDC2
+
+realhdc1x1            goodHDC1x1 && ((P.dc.Ch1.spacepoints+P.dc.Ch2.spacepoints)>0)
+realhdc1u2            goodHDC1u2 && ((P.dc.Ch1.spacepoints+P.dc.Ch2.spacepoints)>0)
+realhdc1u1            goodHDC1u1 && ((P.dc.Ch1.spacepoints+P.dc.Ch2.spacepoints)>0)
+realhdc1v1            goodHDC1v1 && ((P.dc.Ch1.spacepoints+P.dc.Ch2.spacepoints)>0)
+realhdc1v2            goodHDC1v2 && ((P.dc.Ch1.spacepoints+P.dc.Ch2.spacepoints)>0)
+realhdc2x2            goodHDC1x2 && ((P.dc.Ch1.spacepoints+P.dc.Ch2.spacepoints)>0)
+realhdc2x1            goodHDC2x1 && ((P.dc.Ch1.spacepoints+P.dc.Ch2.spacepoints)>0)
+realhdc2u2            goodHDC2u2 && ((P.dc.Ch1.spacepoints+P.dc.Ch2.spacepoints)>0)
+realhdc2u1            goodHDC2u1 && ((P.dc.Ch1.spacepoints+P.dc.Ch2.spacepoints)>0)
+realhdc2v1            goodHDC2v1 && ((P.dc.Ch1.spacepoints+P.dc.Ch2.spacepoints)>0)
+realhdc2v2            goodHDC2v2 && ((P.dc.Ch1.spacepoints+P.dc.Ch2.spacepoints)>0)
+realhdc2x2            goodHDC2x2 && ((P.dc.Ch1.spacepoints+P.dc.Ch2.spacepoints)>0)
+
+hFound1Track          P.dc.ntrack == 1
+hFound2Track          P.dc.ntrack == 2
+hFound3Track          P.dc.ntrack == 3
+hFound4Track          P.dc.ntrack == 4
+
+hCleanTrack           P.gtr.index > -1
+1hCleanTrack          P.gtr.index == 0
+2hCleanTrack          P.gtr.index == 1
+3hCleanTrack          P.gtr.index == 2
+4hCleanTrack          P.gtr.index == 3
+
+anyhs1x               P.hod.1x.nhits > 0
+anyhs1y               P.hod.1y.nhits > 0
+anyhs2x               P.hod.2x.nhits > 0
+anyhs2y               P.hod.2y.nhits > 0
+
+goodhs1x              P.hod.1x.nhits > 0 && P.hod.1x.nhits < 3
+goodhs1y              P.hod.1y.nhits > 0 && P.hod.1y.nhits < 3
+goodhs1               goodhs1x && goodhs1y
+goodhs2x              P.hod.2x.nhits > 0 && P.hod.2x.nhits < 3
+goodhs2y              P.hod.2y.nhits > 0 && P.hod.2y.nhits < 3
+goodhs2               goodhs2x && goodhs2y
+goodhs1s2             goodhs1 && goodhs2
+
+Block: Physics
+Physics_master shms_event
diff --git a/DEF-files/SHMS/HGCER/phgcerana.def b/DEF-files/SHMS/HGCER/phgcerana.def
new file mode 100644
index 00000000..f5ce4416
--- /dev/null
+++ b/DEF-files/SHMS/HGCER/phgcerana.def
@@ -0,0 +1,25 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+block P.hgcer.*
+block T.shms.*
+
+TH1F phgcer_occu 'SHMS Heavy Gas Cherenkov Occupancy; Counter Number; Number of Entries' P.hgcer.adcCounter 4 0.5 4.5
+TH1F phgcer_occu 'SHMS Heavy Gas Cherenkov Occupancy; Counter Number; Number of Entries' P.hgcer.adcCounter 4 0.5 4.5
+
+TH2F phgcer_rawped_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Pedestal vs. Counter Number; Counter Number; Raw Pulse Pedestal / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPedRaw 4 0.5 4.5 1000 0 10000
+TH2F phgcer_rawpi_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Integral vs. Counter Number; Counter Number; Raw Pulse Integral / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseIntRaw 4 0.5 4.5 4000 0 40000
+TH2F phgcer_rawamp_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Amplitude vs. Counter Number; Counter Number; Raw Pulse Amplitude / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseAmpRaw 4 0.5 4.5 410 0 4100
+TH2F phgcer_rawptime_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Time vs. Counter Number; Counter Number;  Raw Pulse Time / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseTimeRaw 4 0.5 4.5 1000 0 10000
+
+TH2F phgcer_rawped_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Pedestal vs. Counter Number; Counter Number; Raw Pulse Pedestal / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPedRaw 4 0.5 4.5 1000 0 10000
+TH2F phgcer_rawpi_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Integral vs. Counter Number; Counter Number; Raw Pulse Integral / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseIntRaw 4 0.5 4.5 4000 0 40000
+TH2F phgcer_rawamp_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Amplitude vs. Counter Number; Counter Number; Raw Pulse Amplitude / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseAmpRaw 4 0.5 4.5 410 0 4100
+TH2F phgcer_rawptime_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Time vs. Counter Number; Counter Number;  Raw Pulse Time / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseTimeRaw 4 0.5 4.5 1000 0 10000
+
+TH2F phgcer_ped_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Pedestal vs. Counter Number; Counter Number;  Pulse Pedestal / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPed 4 0.5 4.5 1000 0 10000
+TH2F phgcer_pi_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Integral vs. Counter Number; Counter Number;  Pulse Integral / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseInt 4 0.5 4.5 4000 0 40000
+TH2F phgcer_amp_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Amplitude vs. Counter Number; Counter Number;  Pulse Amplitude / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseAmp 4 0.5 4.5 410 0 4100
+
+TH2F phgcer_ped_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Pedestal vs. Counter Number; Counter Number;  Pulse Pedestal / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPed 4 0.5 4.5 1000 0 10000
+TH2F phgcer_pi_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Integral vs. Counter Number; Counter Number;  Pulse Integral / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseInt 4 0.5 4.5 4000 0 40000
+TH2F phgcer_amp_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Amplitude vs. Counter Number; Counter Number;  Pulse Amplitude / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseAmp 4 0.5 4.5 410 0 4100
diff --git a/DEF-files/SHMS/HGCER/phgcerana_cuts.def b/DEF-files/SHMS/HGCER/phgcerana_cuts.def
new file mode 100644
index 00000000..5add84a3
--- /dev/null
+++ b/DEF-files/SHMS/HGCER/phgcerana_cuts.def
@@ -0,0 +1,14 @@
+Block: RawDecode
+
+Pedestal_event 0
+RawDecode_master 1
+
+Block: Decode
+Decode_master 1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CourseReconstruct 0
+
diff --git a/DEF-files/SHMS/HODO/phodoana.def b/DEF-files/SHMS/HODO/phodoana.def
new file mode 100644
index 00000000..78dd5219
--- /dev/null
+++ b/DEF-files/SHMS/HODO/phodoana.def
@@ -0,0 +1,119 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+block P.hod.*
+block T.shms.*
+
+TH1F phodo_1x_multi 'SHMS 1X Multiplicity; Number of Hits; Counts' P.hod.1x.nhits 13 0.5 13.5
+TH1F phodo_1y_multi 'SHMS 1Y Multiplicity; Number of Hits; Counts' P.hod.1y.nhits 13 0.5 13.5
+TH1F phodo_2x_multi 'SHMS 2X Multiplicity; Number of Hits; Counts' P.hod.2x.nhits 14 0.5 14.5
+TH1F phodo_2y_multi 'SHMS 2Y Multiplicity; Number of Hits; Counts' P.hod.2y.nhits 21 0.5 21.5
+
+TH1F phodo_1x_pos_adc_occu 'SHMS 1X+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.1x.posAdcCounter 13 0.5 13.5
+TH1F phodo_1y_pos_adc_occu 'SHMS 1Y+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.1y.posAdcCounter 13 0.5 13.5 
+TH1F phodo_2x_pos_adc_occu 'SHMS 2X+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.2x.posAdcCounter 14 0.5 14.5
+TH1F phodo_2y_pos_adc_occu 'SHMS 2Y+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.2y.posAdcCounter 21 0.5 21.5
+
+TH1F phodo_1x_neg_adc_occu 'SHMS 1X- ADC Occupancy; Paddle Number; Number of Hits' P.hod.1x.negAdcCounter 13 0.5 13.5
+TH1F phodo_1y_neg_adc_occu 'SHMS 1Y- ADC Occupancy; Paddle Number; Number of Hits' P.hod.1y.negAdcCounter 13 0.5 13.5 
+TH1F phodo_2x_neg_adc_occu 'SHMS 2X- ADC Occupancy; Paddle Number; Number of Hits' P.hod.2x.negAdcCounter 14 0.5 14.5
+TH1F phodo_2y_neg_adc_occu 'SHMS 2Y- ADC Occupancy; Paddle Number; Number of Hits' P.hod.2y.negAdcCounter 21 0.5 21.5
+
+TH1F phodo_1x_pos_tdc_occu 'SHMS 1X+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.1x.posTdcCounter 13 0.5 13.5
+TH1F phodo_1y_pos_tdc_occu 'SHMS 1Y+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.1y.posTdcCounter 13 0.5 13.5 
+TH1F phodo_2x_pos_tdc_occu 'SHMS 2X+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.2x.posTdcCounter 14 0.5 14.5
+TH1F phodo_2y_pos_tdc_occu 'SHMS 2Y+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.2y.posTdcCounter 21 0.5 21.5
+
+TH1F phodo_1x_neg_tdc_occu 'SHMS 1X- TDC Occupancy; Paddle Number; Number of Hits' P.hod.1x.negTdcCounter 13 0.5 13.5
+TH1F phodo_1y_neg_tdc_occu 'SHMS 1Y- TDC Occupancy; Paddle Number; Number of Hits' P.hod.1y.negTdcCounter 13 0.5 13.5 
+TH1F phodo_2x_neg_tdc_occu 'SHMS 2X- TDC Occupancy; Paddle Number; Number of Hits' P.hod.2x.negTdcCounter 14 0.5 14.5
+TH1F phodo_2y_neg_tdc_occu 'SHMS 2Y- TDC Occupancy; Paddle Number; Number of Hits' P.hod.2y.negTdcCounter 21 0.5 21.5
+
+TH2F phodo_1x_pos_rawped_vs_pad 'SHMS 1X+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.1x.posAdcCounter  P.hod.1x.posAdcPedRaw 13 0.5 13.5 400 0 4000
+TH2F phodo_1y_pos_rawped_vs_pad 'SHMS 1Y+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.1y.posAdcCounter  P.hod.1y.posAdcPedRaw 13 0.5 13.5 400 0 4000
+TH2F phodo_2x_pos_rawped_vs_pad 'SHMS 2X+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.2x.posAdcCounter  P.hod.2x.posAdcPedRaw 14 0.5 14.5 400 0 4000
+TH2F phodo_2y_pos_rawped_vs_pad 'SHMS 2Y+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.2y.posAdcCounter  P.hod.2y.posAdcPedRaw 21 0.5 21.5 400 0 4000
+
+TH2F phodo_1x_neg_rawped_vs_pad 'SHMS 1X- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.1x.negAdcCounter  P.hod.1x.negAdcPedRaw 13 0.5 13.5 400 0 4000
+TH2F phodo_1y_neg_rawped_vs_pad 'SHMS 1Y- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.1y.negAdcCounter  P.hod.1y.negAdcPedRaw 13 0.5 13.5 400 0 4000
+TH2F phodo_2x_neg_rawped_vs_pad 'SHMS 2X- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.2x.negAdcCounter  P.hod.2x.negAdcPedRaw 14 0.5 14.5 400 0 4000
+TH2F phodo_2y_neg_rawped_vs_pad 'SHMS 2Y- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.2y.negAdcCounter  P.hod.2y.negAdcPedRaw 21 0.5 21.5 400 0 4000
+
+TH2F phodo_1x_pos_rawpi_vs_pad 'SHMS 1X+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.1x.posAdcCounter  P.hod.1x.posAdcPulseIntRaw 13 0.5 13.5 4000 0 40000
+TH2F phodo_1y_pos_rawpi_vs_pad 'SHMS 1Y+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.1y.posAdcCounter  P.hod.1y.posAdcPulseIntRaw 13 0.5 13.5 4000 0 40000
+TH2F phodo_2x_pos_rawpi_vs_pad 'SHMS 2X+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.2x.posAdcCounter  P.hod.2x.posAdcPulseIntRaw 14 0.5 14.5 4000 0 40000
+TH2F phodo_2y_pos_rawpi_vs_pad 'SHMS 2Y+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.2y.posAdcCounter  P.hod.2y.posAdcPulseIntRaw 21 0.5 21.5 4000 0 40000
+
+TH2F phodo_1x_neg_rawpi_vs_pad 'SHMS 1X- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.1x.negAdcCounter  P.hod.1x.negAdcPulseIntRaw 13 0.5 13.5 4000 0 40000
+TH2F phodo_1y_neg_rawpi_vs_pad 'SHMS 1Y- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.1y.negAdcCounter  P.hod.1y.negAdcPulseIntRaw 13 0.5 13.5 4000 0 40000
+TH2F phodo_2x_neg_rawpi_vs_pad 'SHMS 2X- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.2x.negAdcCounter  P.hod.2x.negAdcPulseIntRaw 14 0.5 14.5 4000 0 40000
+TH2F phodo_2y_neg_rawpi_vs_pad 'SHMS 2Y- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.2y.negAdcCounter  P.hod.2y.negAdcPulseIntRaw 21 0.5 21.5 4000 0 40000
+
+TH2F phodo_1x_pos_rawpamp_vs_pad 'SHMS 1X+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.1x.posAdcCounter  P.hod.1x.posAdcPulseAmpRaw 13 0.5 13.5 410 0 4100
+TH2F phodo_1y_pos_rawpamp_vs_pad 'SHMS 1Y+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.1y.posAdcCounter  P.hod.1y.posAdcPulseAmpRaw 13 0.5 13.5 410 0 4100
+TH2F phodo_2x_pos_rawpamp_vs_pad 'SHMS 2X+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.2x.posAdcCounter  P.hod.2x.posAdcPulseAmpRaw 14 0.5 14.5 410 0 4100
+TH2F phodo_2y_pos_rawpamp_vs_pad 'SHMS 2Y+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.2y.posAdcCounter  P.hod.2y.posAdcPulseAmpRaw 21 0.5 21.5 410 0 4100
+
+TH2F phodo_1x_neg_rawpamp_vs_pad 'SHMS 1X- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.1x.negAdcCounter  P.hod.1x.negAdcPulseAmpRaw 13 0.5 13.5 410 0 4100
+TH2F phodo_1y_neg_rawpamp_vs_pad 'SHMS 1Y- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.1y.negAdcCounter  P.hod.1y.negAdcPulseAmpRaw 13 0.5 13.5 410 0 4100
+TH2F phodo_2x_neg_rawpamp_vs_pad 'SHMS 2X- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.2x.negAdcCounter  P.hod.2x.negAdcPulseAmpRaw 14 0.5 14.5 410 0 4100
+TH2F phodo_2y_neg_rawpamp_vs_pad 'SHMS 2Y- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.2y.negAdcCounter  P.hod.2y.negAdcPulseAmpRaw 21 0.5 21.5 410 0 4100
+
+TH2F phodo_1x_pos_rawptime_vs_pad 'SHMS 1X+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.1x.posAdcCounter  P.hod.1x.posAdcPulseTimeRaw 13 0.5 13.5 410 0 4100
+TH2F phodo_1y_pos_rawptime_vs_pad 'SHMS 1Y+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.1y.posAdcCounter  P.hod.1y.posAdcPulseTimeRaw 13 0.5 13.5 410 0 4100
+TH2F phodo_2x_pos_rawptime_vs_pad 'SHMS 2X+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.2x.posAdcCounter  P.hod.2x.posAdcPulseTimeRaw 14 0.5 14.5 410 0 4100
+TH2F phodo_2y_pos_rawptime_vs_pad 'SHMS 2Y+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.2y.posAdcCounter  P.hod.2y.posAdcPulseTimeRaw 21 0.5 21.5 410 0 4100
+
+TH2F phodo_1x_neg_rawptime_vs_pad 'SHMS 1X- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.1x.negAdcCounter  P.hod.1x.negAdcPulseTimeRaw 13 0.5 13.5 410 0 4100
+TH2F phodo_1y_neg_rawptime_vs_pad 'SHMS 1Y- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.1y.negAdcCounter  P.hod.1y.negAdcPulseTimeRaw 13 0.5 13.5 410 0 4100
+TH2F phodo_2x_neg_rawptime_vs_pad 'SHMS 2X- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.2x.negAdcCounter  P.hod.2x.negAdcPulseTimeRaw 14 0.5 14.5 410 0 4100
+TH2F phodo_2y_neg_rawptime_vs_pad 'SHMS 2Y- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.2y.negAdcCounter  P.hod.2y.negAdcPulseTimeRaw 21 0.5 21.5 410 0 4100
+
+TH2F phodo_1x_pos_raw_tdc_time_vs_pad 'SHMS 1X+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.1x.posTdcCounter  P.hod.1x.posTdcTimeRaw 13 0.5 13.5 200 0 2000
+TH2F phodo_1y_pos_raw_tdc_time_vs_pad 'SHMS 1Y+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.1y.posTdcCounter  P.hod.1y.posTdcTimeRaw 13 0.5 13.5 200 0 2000
+TH2F phodo_2x_pos_raw_tdc_time_vs_pad 'SHMS 2X+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.2x.posTdcCounter  P.hod.2x.posTdcTimeRaw 14 0.5 14.5 200 0 2000
+TH2F phodo_2y_pos_raw_tdc_time_vs_pad 'SHMS 2Y+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.2y.posTdcCounter  P.hod.2y.posTdcTimeRaw 21 0.5 21.5 200 0 2000
+
+TH2F phodo_1x_neg_raw_tdc_time_vs_pad 'SHMS 1X- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.1x.negTdcCounter  P.hod.1x.negTdcTimeRaw 13 0.5 13.5 200 0 2000
+TH2F phodo_1y_neg_raw_tdc_time_vs_pad 'SHMS 1Y- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.1y.negTdcCounter  P.hod.1y.negTdcTimeRaw 13 0.5 13.5 200 0 2000
+TH2F phodo_2x_neg_raw_tdc_time_vs_pad 'SHMS 2X- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.2x.negTdcCounter  P.hod.2x.negTdcTimeRaw 14 0.5 14.5 200 0 2000
+TH2F phodo_2y_neg_raw_tdc_time_vs_pad 'SHMS 2Y- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.2y.negTdcCounter  P.hod.2y.negTdcTimeRaw 21 0.5 21.5 200 0 2000
+
+TH2F phodo_1x_pos_ped_vs_pad 'SHMS 1X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.1x.posAdcCounter  P.hod.1x.posAdcPed 13 0.5 13.5 400 0 4000
+TH2F phodo_1y_pos_ped_vs_pad 'SHMS 1Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.1y.posAdcCounter  P.hod.1y.posAdcPed 13 0.5 13.5 400 0 4000
+TH2F phodo_2x_pos_ped_vs_pad 'SHMS 2X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.2x.posAdcCounter  P.hod.2x.posAdcPed 14 0.5 14.5 400 0 4000
+TH2F phodo_2y_pos_ped_vs_pad 'SHMS 2Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.2y.posAdcCounter  P.hod.2y.posAdcPed 21 0.5 21.5 400 0 4000
+
+TH2F phodo_1x_neg_ped_vs_pad 'SHMS 1X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.1x.negAdcCounter  P.hod.1x.negAdcPed 13 0.5 13.5 400 0 4000
+TH2F phodo_1y_neg_ped_vs_pad 'SHMS 1Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.1y.negAdcCounter  P.hod.1y.negAdcPed 13 0.5 13.5 400 0 4000
+TH2F phodo_2x_neg_ped_vs_pad 'SHMS 2X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.2x.negAdcCounter  P.hod.2x.negAdcPed 14 0.5 14.5 400 0 4000
+TH2F phodo_2y_neg_ped_vs_pad 'SHMS 2Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.2y.negAdcCounter  P.hod.2y.negAdcPed 21 0.5 21.5 400 0 4000
+
+TH2F phodo_1x_pos_pi_vs_pad 'SHMS 1X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1x.posAdcCounter  P.hod.1x.posAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F phodo_1y_pos_pi_vs_pad 'SHMS 1Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1y.posAdcCounter  P.hod.1y.posAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F phodo_2x_pos_pi_vs_pad 'SHMS 2X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2x.posAdcCounter  P.hod.2x.posAdcPulseInt 14 0.5 14.5 4000 0 40000
+TH2F phodo_2y_pos_pi_vs_pad 'SHMS 2Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2y.posAdcCounter  P.hod.2y.posAdcPulseInt 21 0.5 21.5 4000 0 40000
+
+TH2F phodo_1x_neg_pi_vs_pad 'SHMS 1X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1x.negAdcCounter  P.hod.1x.negAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F phodo_1y_neg_pi_vs_pad 'SHMS 1Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1y.negAdcCounter  P.hod.1y.negAdcPulseInt 13 0.5 13.5 4000 0 40000
+TH2F phodo_2x_neg_pi_vs_pad 'SHMS 2X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2x.negAdcCounter  P.hod.2x.negAdcPulseInt 14 0.5 14.5 4000 0 40000
+TH2F phodo_2y_neg_pi_vs_pad 'SHMS 2Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2y.negAdcCounter  P.hod.2y.negAdcPulseInt 21 0.5 21.5 4000 0 40000
+
+TH2F phodo_1x_pos_pamp_vs_pad 'SHMS 1X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.1x.posAdcCounter  P.hod.1x.posAdcPulseAmp 13 0.5 13.5 410 0 4100
+TH2F phodo_1y_pos_pamp_vs_pad 'SHMS 1Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.1y.posAdcCounter  P.hod.1y.posAdcPulseAmp 13 0.5 13.5 410 0 4100
+TH2F phodo_2x_pos_pamp_vs_pad 'SHMS 2X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.2x.posAdcCounter  P.hod.2x.posAdcPulseAmp 14 0.5 14.5 410 0 4100
+TH2F phodo_2y_pos_pamp_vs_pad 'SHMS 2Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.2y.posAdcCounter  P.hod.2y.posAdcPulseAmp 21 0.5 21.5 410 0 4100
+
+TH2F phodo_1x_neg_pamp_vs_pad 'SHMS 1X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.1x.negAdcCounter  P.hod.1x.negAdcPulseAmp 13 0.5 13.5 410 0 4100
+TH2F phodo_1y_neg_pamp_vs_pad 'SHMS 1Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.1y.negAdcCounter  P.hod.1y.negAdcPulseAmp 13 0.5 13.5 410 0 4100
+TH2F phodo_2x_neg_pamp_vs_pad 'SHMS 2X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.2x.negAdcCounter  P.hod.2x.negAdcPulseAmp 14 0.5 14.5 410 0 4100
+TH2F phodo_2y_neg_pamp_vs_pad 'SHMS 2Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.2y.negAdcCounter  P.hod.2y.negAdcPulseAmp 21 0.5 21.5 410 0 4100
+
+TH2F phodo_1x_pos_tdc_time_vs_pad 'SHMS 1X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.1x.posTdcCounter  P.hod.1x.posTdcTime 13 0.5 13.5 200 -2000 0
+TH2F phodo_1y_pos_tdc_time_vs_pad 'SHMS 1Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.1y.posTdcCounter  P.hod.1y.posTdcTime 13 0.5 13.5 200 -2000 0
+TH2F phodo_2x_pos_tdc_time_vs_pad 'SHMS 2X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.2x.posTdcCounter  P.hod.2x.posTdcTime 14 0.5 14.5 200 -2000 0
+TH2F phodo_2y_pos_tdc_time_vs_pad 'SHMS 2Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.2y.posTdcCounter  P.hod.2y.posTdcTime 21 0.5 21.5 200 -2000 0
+
+TH2F phodo_1x_neg_tdc_time_vs_pad 'SHMS 1X- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.1x.negTdcCounter  P.hod.1x.negTdcTime 13 0.5 13.5 200 -2000 0
+TH2F phodo_1y_neg_tdc_time_vs_pad 'SHMS 1Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.1y.negTdcCounter  P.hod.1y.negTdcTime 13 0.5 13.5 200 -2000 0
+TH2F phodo_2x_neg_tdc_time_vs_pad 'SHMS 2X- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.2x.negTdcCounter  P.hod.2x.negTdcTime 14 0.5 14.5 200 -2000 0
+TH2F phodo_2y_neg_tdc_time_vs_pad 'SHMS 2Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.2y.negTdcCounter  P.hod.2y.negTdcTime 21 0.5 21.5 200 -2000 0
\ No newline at end of file
diff --git a/DEF-files/SHMS/HODO/phodoana_cuts.def b/DEF-files/SHMS/HODO/phodoana_cuts.def
new file mode 100644
index 00000000..5add84a3
--- /dev/null
+++ b/DEF-files/SHMS/HODO/phodoana_cuts.def
@@ -0,0 +1,14 @@
+Block: RawDecode
+
+Pedestal_event 0
+RawDecode_master 1
+
+Block: Decode
+Decode_master 1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CourseReconstruct 0
+
diff --git a/DEF-files/SHMS/NGCER/pngcerana.def b/DEF-files/SHMS/NGCER/pngcerana.def
new file mode 100644
index 00000000..d069b91a
--- /dev/null
+++ b/DEF-files/SHMS/NGCER/pngcerana.def
@@ -0,0 +1,15 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+block P.ngcer.*
+block T.shms.*
+
+TH1F pngcer_occu 'SHMS Noble Gas Cherenkov Occupancy; Counter Number; Number of Entries' P.ngcer.adcCounter 4 0.5 4.5
+
+TH2F pngcer_rawped_vs_cntr 'SHMS Noble Gas Cherenkov Raw Pulse Pedestal vs. Counter Number; Counter Number; Raw Pulse Pedestal / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPedRaw 4 0.5 4.5 1000 0 10000
+TH2F pngcer_rawpi_vs_cntr 'SHMS Noble Gas Cherenkov Raw Pulse Integral vs. Counter Number; Counter Number; Raw Pulse Integral / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPulseIntRaw 4 0.5 4.5 4000 0 40000
+TH2F pngcer_rawamp_vs_cntr 'SHMS Noble Gas Cherenkov Raw Pulse Amplitude vs. Counter Number; Counter Number; Raw Pulse Amplitude / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPulseAmpRaw 4 0.5 4.5 410 0 4100
+TH2F pngcer_rawptime_vs_cntr 'SHMS Noble Gas Cherenkov Raw Pulse Time vs. Counter Number; Counter Number;  Raw Pulse Time / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPulseTimeRaw 4 0.5 4.5 1000 0 10000
+
+TH2F pngcer_ped_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Pedestal vs. Counter Number; Counter Number;  Pulse Pedestal / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPed 4 0.5 4.5 1000 0 10000
+TH2F pngcer_pi_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Integral vs. Counter Number; Counter Number;  Pulse Integral / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPulseInt 4 0.5 4.5 4000 0 40000
+TH2F pngcer_amp_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Amplitude vs. Counter Number; Counter Number;  Pulse Amplitude / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPulseAmp 4 0.5 4.5 410 0 4100
\ No newline at end of file
diff --git a/DEF-files/SHMS/NGCER/pngcerana_cuts.def b/DEF-files/SHMS/NGCER/pngcerana_cuts.def
new file mode 100644
index 00000000..5add84a3
--- /dev/null
+++ b/DEF-files/SHMS/NGCER/pngcerana_cuts.def
@@ -0,0 +1,14 @@
+Block: RawDecode
+
+Pedestal_event 0
+RawDecode_master 1
+
+Block: Decode
+Decode_master 1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CourseReconstruct 0
+
diff --git a/DEF-files/SHMS/RASTER/shms_raster_simple.def b/DEF-files/SHMS/RASTER/shms_raster_simple.def
new file mode 100644
index 00000000..c8d3aff7
--- /dev/null
+++ b/DEF-files/SHMS/RASTER/shms_raster_simple.def
@@ -0,0 +1,20 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+block T.shms.*
+# Assume FADC range is set to 1V and the integration is 25 channels
+# Offset in the FADC is about 0.122V or 500 channels.
+formula FRXA_V T.shms.pFRXA_adcPulseIntRaw*(1./4096.)/25.
+formula FRXB_V T.shms.pFRXB_adcPulseIntRaw*(1./4096.)/25.
+formula FRYA_V T.shms.pFRYA_adcPulseIntRaw*(1./4096.)/25.
+formula FRYB_V T.shms.pFRYB_adcPulseIntRaw*(1./4096.)/25.
+TH1F pFRXA 'SHMS FRXA; FRXA RAW ADC (chan); Counts' T.shms.pFRXA_adcPulseIntRaw 1000 0 100000
+TH1F pFRXA_V 'SHMS FRXA; FRXA RAW ADC (Volts); Counts' FRXA_V 1000 0 1.0
+TH1F pFRXB 'SHMS FRXB; FRXB RAW ADC (chan); Counts' T.shms.pFRXB_adcPulseIntRaw 1000 0 100000
+TH1F pFRXB_V 'SHMS FRXB; FRXB RAW ADC (Volts); Counts' FRXB_V 1000 0 1.0
+TH1F pFRYA 'SHMS FRYA; FRYA RAW ADC (chan); Counts' T.shms.pFRYA_adcPulseIntRaw 1000 0 100000
+TH1F pFRYA_V 'SHMS FRYA; FRYA RAW ADC (Volts); Counts' FRYA_V 1000 0 1.0
+TH1F pFRYB 'SHMS FRYB; FRYB RAW ADC (chan); Counts' T.shms.pFRYB_adcPulseIntRaw 1000 0 100000
+TH1F pFRYB_V 'SHMS FRYB; FRYB RAW ADC (Volts); Counts' FRYB_V 1000 0 1.0
+TH2F pFRA_XvsY 'HMSFRA_XvsY ; FRXA RAW ADC (Volts); FRYA RAW ADC (Volts)' FRXA_V FRYA_V 1000 0 1.0 1000 0 1.0
+TH2F pFRB_XvsY 'HMSFRB_XvsY ; FRXB RAW ADC (Volts); FRYB RAW ADC (Volts)' FRXB_V FRYB_V 1000 0 1.0 1000 0 1.0
+
diff --git a/DEF-files/SHMS/RASTER/shms_raster_simple_cuts.def b/DEF-files/SHMS/RASTER/shms_raster_simple_cuts.def
new file mode 100644
index 00000000..3af34a5e
--- /dev/null
+++ b/DEF-files/SHMS/RASTER/shms_raster_simple_cuts.def
@@ -0,0 +1,13 @@
+Block: RawDecode
+
+Pedestal_event 0
+RawDecode_master 1
+
+Block: Decode
+Decode_master 1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CourseReconstruct 0
diff --git a/DEF-files/SHMS/TRIG/ptrigana.def b/DEF-files/SHMS/TRIG/ptrigana.def
new file mode 100644
index 00000000..cfa66389
--- /dev/null
+++ b/DEF-files/SHMS/TRIG/ptrigana.def
@@ -0,0 +1,38 @@
+# See $ANALYZER/examples/output_example.def for examples
+#
+block T.shms.*
+
+TH1F ptrig_p1x_tdc 'SHMS p1x TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p1X_tdcTime 250 0 2500
+TH1F ptrig_p1y_tdc 'SHMS p1y TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p1Y_tdcTime 250 0 2500
+TH1F ptrig_p2x_tdc 'SHMS p2x TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p2X_tdcTime 250 0 2500
+TH1F ptrig_p2y_tdc 'SHMS p2y TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p2Y_tdcTime 250 0 2500
+
+TH1F ptrig_p1T_tdc 'SHMS p1x/p1y Coincidence TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p1T_tdcTime 250 0 2500
+TH1F ptrig_p2T_tdc 'SHMS p2x/p2y Coincidence TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p2T_tdcTime 250 0 2500
+
+TH1F ptrig_pT1_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Time (Slot 20, Channel 15); Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pT1_tdcTime 250 0 2500
+TH1F ptrig_pT2_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Time (Slot 19, Channel 31); Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pT2_tdcTime 250 0 2500
+TH1F ptrig_pT3_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Time (Slot 19, Channel 38); Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pT3_tdcTime 250 0 2500
+
+TH1F ptrig_hdc_ref1  'SHMS HDC Reference Time 1;  Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF1_tdcTime  1500 0 15000
+TH1F ptrig_hdc_ref2  'SHMS HDC Reference Time 2;  Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF2_tdcTime  1500 0 15000
+TH1F ptrig_hdc_ref3  'SHMS HDC Reference Time 3;  Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF3_tdcTime  1500 0 15000
+TH1F ptrig_hdc_ref4  'SHMS HDC Reference Time 4;  Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF4_tdcTime  1500 0 15000
+TH1F ptrig_hdc_ref5  'SHMS HDC Reference Time 5;  Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF5_tdcTime  1500 0 15000
+TH1F ptrig_hdc_ref6  'SHMS HDC Reference Time 6;  Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF6_tdcTime  1500 0 15000
+TH1F ptrig_hdc_ref7  'SHMS HDC Reference Time 7;  Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF7_tdcTime  1500 0 15000
+TH1F ptrig_hdc_ref8  'SHMS HDC Reference Time 8;  Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF8_tdcTime  1500 0 15000
+TH1F ptrig_hdc_ref9  'SHMS HDC Reference Time 9;  Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF9_tdcTime  1500 0 15000
+TH1F ptrig_hdc_ref10 'SHMS HDC Reference Time 10; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF10_tdcTime 1500 0 15000
+
+TH1F ptrig_pngc_sum_pped 'SHMS Noble Gas Sum FADC Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Units' T.shms.pNGCSUM_adcPed 2000 0 2000
+TH1F ptrig_pngc_sum_pint 'SHMS Noble Gas Sum FADC Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.shms.pNGCSUM_adcPulseInt 4000 0 40000
+TH1F ptrig_pngc_sum_pamp 'SHMS Noble Gas Sum FADC Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Units' T.shms.pNGCSUM_adcPulseAmp 4100 0 4100
+TH1F ptrig_pngc_sum_ptime 'SHMS Noble Gas Sum FADC Pulse Time; Pulse Time; Number of Entries / 10 ADC Units' T.shms.pNGCSUM_adcPulseTimeRaw 1000 0 10000
+TH1F ptrig_pngc_sum_tdc 'SHMS Noble Gas Sum TDC Time; TDC Time; Number of Entries / 10 TDC Units' T.shms.pNGCSUM_tdcTime 700 -3500 3500
+
+TH1F ptrig_phgc_sum_pped 'SHMS Heavy Gas Sum FADC Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Units' T.shms.pHGCSUM_adcPed 2000 0 2000
+TH1F ptrig_phgc_sum_pint 'SHMS Heavy Gas Sum FADC Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.shms.pHGCSUM_adcPulseInt 4000 0 40000
+TH1F ptrig_phgc_sum_pamp 'SHMS Heavy Gas Sum FADC Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Units' T.shms.pHGCSUM_adcPulseAmp 4100 0 4100
+TH1F ptrig_phgc_sum_ptime 'SHMS Heavy Gas Sum FADC Pulse Time; Pulse Time; Number of Entries / 10 ADC Units' T.shms.pHGCSUM_adcPulseTimeRaw 1000 0 10000
+TH1F ptrig_phgc_sum_tdc 'SHMS Heavy Gas Sum TDC Time; TDC Time; Number of Entries / 10 TDC Units' T.shms.pHGCSUM_tdcTime 700 -3500 3500
diff --git a/DEF-files/SHMS/TRIG/ptrigana_cuts.def b/DEF-files/SHMS/TRIG/ptrigana_cuts.def
new file mode 100644
index 00000000..3af34a5e
--- /dev/null
+++ b/DEF-files/SHMS/TRIG/ptrigana_cuts.def
@@ -0,0 +1,13 @@
+Block: RawDecode
+
+Pedestal_event 0
+RawDecode_master 1
+
+Block: Decode
+Decode_master 1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CourseReconstruct 0
diff --git a/MAPS/HMS/CRATE/db_crate1map.dat b/MAPS/HMS/CRATE/db_crate1map.dat
index 1716cb80..e7f21b55 100644
--- a/MAPS/HMS/CRATE/db_crate1map.dat
+++ b/MAPS/HMS/CRATE/db_crate1map.dat
@@ -16,4 +16,4 @@
   17     250     250
   18     250     250
   19     250     250
-  20     1190    1190
\ No newline at end of file
+  20     1190    1190
diff --git a/MAPS/HMS/DETEC/haero.map b/MAPS/HMS/DETEC/haero.map
index a3170886..9c877a40 100644
--- a/MAPS/HMS/DETEC/haero.map
+++ b/MAPS/HMS/DETEC/haero.map
@@ -24,4 +24,4 @@ SLOT=17
      4,      1,      5,      0!   hAER05+
      5,      1,      6,      0!   hAER06+
      6,      1,      7,      0!   hAER07+
-     7,      1,      8,      0!   hAER08+
\ No newline at end of file
+     7,      1,      8,      0!   hAER08+
diff --git a/MAPS/HMS/DETEC/hcal.map b/MAPS/HMS/DETEC/hcal.map
index 33d9b104..c79bed6a 100644
--- a/MAPS/HMS/DETEC/hcal.map
+++ b/MAPS/HMS/DETEC/hcal.map
@@ -36,7 +36,7 @@ SLOT=4
      8,      1,      12,     1!    hA12-
      9,      1,      13,     1!    hA13-
      10,     2,      1,      0!    hB01+
-     11,     2,      2,      0!    hB02+	
+     11,     2,      2,      0!    hB02+
      12,     2,      3,      0!    hB03+
      13,     2,      4,      0!    hB04+
      14,     2,      5,      0!    hB05+
@@ -78,7 +78,7 @@ SLOT=6
      14,     3,      11,     0!    hC11+
      15,     3,      12,     0!    hC12+
 SLOT=7
-! chan   plane    row      sig     
+! chan   plane    row      sig
      0,      3,      13,     0!    hC13+
      1,      4,      1,      0!    hD01+
      2,      4,      2,      0!    hD02+
@@ -92,4 +92,4 @@ SLOT=7
      10,     4,      10,     0!    hD10+
      11,     4,      11,     0!    hD11+
      12,     4,      12,     0!    hD12+
-     13,     4,      13,     0!    hD13+
\ No newline at end of file
+     13,     4,      13,     0!    hD13+
diff --git a/MAPS/HMS/DETEC/hcal_htrig.map b/MAPS/HMS/DETEC/hcal_htrig.map
new file mode 100644
index 00000000..3c34c7d2
--- /dev/null
+++ b/MAPS/HMS/DETEC/hcal_htrig.map
@@ -0,0 +1,145 @@
+! THMS_ID=10       ::  ADC,TDC
+! HCAL_ID=15       ::  ADC,TDC
+
+
+DETECTOR=10
+
+ROC=1
+
+SLOT=17
+   8,   1,   1,   0  ! hASUM
+   9,   1,   2,   0  ! hBSUM
+  10,   1,   3,   0  ! hCSUM
+  11,   1,   4,   0  ! hDSUM
+  12,   1,   5,   0  ! hPSHWR
+  13,   1,   6,   0  ! hSHWR
+  14,   1,   7,   0  ! hAERSUM
+  15,   1,   8,   0  ! hCERSUM
+
+SLOT=2
+   0,   2,   1,   1  ! h1X
+   1,   2,   2,   1  ! h1Y
+   2,   2,   3,   1  ! h2X
+   3,   2,   4,   1  ! h2Y
+   4,   2,   5,   1  ! h1T
+   5,   2,   6,   1  ! h2T
+   6,   2,   7,   1  ! hT1
+   7,   2,   8,   1  ! hASUM
+   8,   2,   9,   1  ! hBSUM
+   9,   2,  10,   1  ! hCSUM
+  10,   2,  11,   1  ! hDSUM
+  11,   2,  12,   1  ! hPSHWRLO
+  12,   2,  13,   1  ! hPSHWRHI
+  13,   2,  14,   1  ! hSHWR
+  14,   2,  15,   1  ! hAERSUM
+  15,   2,  16,   1  ! hCERSUM
+
+SLOT=20
+ 127,   2,  17,   1  ! hT2
+
+ROC=3
+
+SLOT=5
+ 111,   2,  18,   1  ! hDCREF1
+
+SLOT=8
+ 127,   2,  19,   1  ! hDCREF2
+
+SLOT=10
+ 127,   2,  20,   1  ! hDCREF3
+
+SLOT=17
+ 127,   2,  21,   1  ! hDCREF4
+
+
+DETECTOR=15
+
+ROC=1
+
+SLOT=3
+   0,   1,   1,   0  ! hA01+
+   1,   1,   2,   0  ! hA02+
+   2,   1,   3,   0  ! hA03+
+   3,   1,   4,   0  ! hA04+
+   4,   1,   5,   0  ! hA05+
+   5,   1,   6,   0  ! hA06+
+   6,   1,   7,   0  ! hA07+
+   7,   1,   8,   0  ! hA08+
+   8,   1,   9,   0  ! hA09+
+   9,   1,  10,   0  ! hA10+
+  10,   1,  11,   0  ! hA11+
+  11,   1,  12,   0  ! hA12+
+  12,   1,  13,   0  ! hA13+
+  13,   1,   1,   1  ! hA01-
+  14,   1,   2,   1  ! hA02-
+  15,   1,   3,   1  ! hA03-
+
+SLOT=4
+   0,   1,   4,   1  ! hA04-
+   1,   1,   5,   1  ! hA05-
+   2,   1,   6,   1  ! hA06-
+   3,   1,   7,   1  ! hA07-
+   4,   1,   8,   1  ! hA08-
+   5,   1,   9,   1  ! hA09-
+   6,   1,  10,   1  ! hA10-
+   7,   1,  11,   1  ! hA11-
+   8,   1,  12,   1  ! hA12-
+   9,   1,  13,   1  ! hA13-
+  10,   2,   1,   0  ! hB01+
+  11,   2,   2,   0  ! hB02+
+  12,   2,   3,   0  ! hB03+
+  13,   2,   4,   0  ! hB04+
+  14,   2,   5,   0  ! hB05+
+  15,   2,   6,   0  ! hB06+
+
+SLOT=5
+   0,   2,   7,   0  ! hB07+
+   1,   2,   8,   0  ! hB08+
+   2,   2,   9,   0  ! hB09+
+   3,   2,  10,   0  ! hB10+
+   4,   2,  11,   0  ! hB11+
+   5,   2,  12,   0  ! hB12+
+   6,   2,  13,   0  ! hB13+
+   7,   2,   1,   1  ! hB01-
+   8,   2,   2,   1  ! hB02-
+   9,   2,   3,   1  ! hB03-
+  10,   2,   4,   1  ! hB04-
+  11,   2,   5,   1  ! hB05-
+  12,   2,   6,   1  ! hB06-
+  13,   2,   7,   1  ! hB07-
+  14,   2,   8,   1  ! hB08-
+  15,   2,   9,   1  ! hB09-
+
+SLOT=6
+   0,   2,  10,   1  ! hB10-
+   1,   2,  11,   1  ! hB11-
+   2,   2,  12,   1  ! hB12-
+   3,   2,  13,   1  ! hB13-
+   4,   3,   1,   0  ! hC01+
+   5,   3,   2,   0  ! hC02+
+   6,   3,   3,   0  ! hC03+
+   7,   3,   4,   0  ! hC04+
+   8,   3,   5,   0  ! hC05+
+   9,   3,   6,   0  ! hC06+
+  10,   3,   7,   0  ! hC07+
+  11,   3,   8,   0  ! hC08+
+  12,   3,   9,   0  ! hC09+
+  13,   3,  10,   0  ! hC10+
+  14,   3,  11,   0  ! hC11+
+  15,   3,  12,   0  ! hC12+
+
+SLOT=7
+   0,   3,  13,   0  ! hC13+
+   1,   4,   1,   0  ! hD01+
+   2,   4,   2,   0  ! hD02+
+   3,   4,   3,   0  ! hD03+
+   4,   4,   4,   0  ! hD04+
+   5,   4,   5,   0  ! hD05+
+   6,   4,   6,   0  ! hD06+
+   7,   4,   7,   0  ! hD07+
+   8,   4,   8,   0  ! hD08+
+   9,   4,   9,   0  ! hD09+
+  10,   4,  10,   0  ! hD10+
+  11,   4,  11,   0  ! hD11+
+  12,   4,  12,   0  ! hD12+
+  13,   4,  13,   0  ! hD13+
diff --git a/MAPS/HMS/DETEC/hcer.map b/MAPS/HMS/DETEC/hcer.map
new file mode 100644
index 00000000..805bd365
--- /dev/null
+++ b/MAPS/HMS/DETEC/hcer.map
@@ -0,0 +1,12 @@
+!HMS:
+! HCER_ID= 14             (TDC),ADC
+
+ROC=1
+detector=14
+
+!F250 modules
+SLOT=7
+!  chan    plane   tube     sig
+    14,      1,      1,      0!    hCER01
+    15,      1,      2,      0!    hCER02
+
diff --git a/MAPS/HMS/DETEC/hcer_htrig.map b/MAPS/HMS/DETEC/hcer_htrig.map
new file mode 100644
index 00000000..f46b6ef6
--- /dev/null
+++ b/MAPS/HMS/DETEC/hcer_htrig.map
@@ -0,0 +1,61 @@
+! THMS_ID=10       ::  ADC,TDC
+! HCER_ID=14       ::  (TDC),ADC
+
+
+DETECTOR=10
+
+ROC=1
+
+SLOT=17
+   8,   1,   1,   0  ! hASUM
+   9,   1,   2,   0  ! hBSUM
+  10,   1,   3,   0  ! hCSUM
+  11,   1,   4,   0  ! hDSUM
+  12,   1,   5,   0  ! hPSHWR
+  13,   1,   6,   0  ! hSHWR
+  14,   1,   7,   0  ! hAERSUM
+  15,   1,   8,   0  ! hCERSUM
+
+SLOT=2
+   0,   2,   1,   1  ! h1X
+   1,   2,   2,   1  ! h1Y
+   2,   2,   3,   1  ! h2X
+   3,   2,   4,   1  ! h2Y
+   4,   2,   5,   1  ! h1T
+   5,   2,   6,   1  ! h2T
+   6,   2,   7,   1  ! hT1
+   7,   2,   8,   1  ! hASUM
+   8,   2,   9,   1  ! hBSUM
+   9,   2,  10,   1  ! hCSUM
+  10,   2,  11,   1  ! hDSUM
+  11,   2,  12,   1  ! hPSHWRLO
+  12,   2,  13,   1  ! hPSHWRHI
+  13,   2,  14,   1  ! hSHWR
+  14,   2,  15,   1  ! hAERSUM
+  15,   2,  16,   1  ! hCERSUM
+
+SLOT=20
+ 127,   2,  17,   1  ! hT2
+
+ROC=3
+
+SLOT=5
+ 111,   2,  18,   1  ! hDCREF1
+
+SLOT=8
+ 127,   2,  19,   1  ! hDCREF2
+
+SLOT=10
+ 127,   2,  20,   1  ! hDCREF3
+
+SLOT=17
+ 127,   2,  21,   1  ! hDCREF4
+
+
+DETECTOR=14
+
+ROC=1
+
+SLOT=7
+  14,   1,   1,   0  ! hCER01
+  15,   1,   2,   0  ! hCER02
diff --git a/MAPS/HMS/DETEC/hdc.map b/MAPS/HMS/DETEC/hdc.map
index 74b3017e..4311a238 100644
--- a/MAPS/HMS/DETEC/hdc.map
+++ b/MAPS/HMS/DETEC/hdc.map
@@ -1,1141 +1,1159 @@
-!HMS:
-! HDC_ID= 11               TDC
+! HDC_ID=11        ::  TDC
+
+
+DETECTOR=11  ! HMS chambers
 
 ROC=3
-detector=11 ! HMS chambers 
 
-! Caen 1190 VME Modules >> DC1
 SLOT=5
-! channel,plane,wire
-96,3,1 ! Plane U, wire 1
-97,3,2 ! Plane U, wire 2
-98,3,3 ! Plane U, wire 3
-99,3,4 ! Plane U, wire 4
-100,3,5 ! Plane U, wire 5
-101,3,6 ! Plane U, wire 6
-102,3,7 ! Plane U, wire 7
-103,3,8 ! Plane U, wire 8
-104,3,9 ! Plane U, wire 9
-105,3,10 ! Plane U, wire 10
-106,3,11 ! Plane U, wire 11
-107,3,12 ! Plane U, wire 12
-108,3,13 ! Plane U, wire 13
-109,3,14 ! Plane U, wire 14
-110,1,113 ! Plane X, wire 113 
-80,3,15 ! Plane U, wire 15
-81,3,16 ! Plane U, wire 16
-82,3,17 ! Plane U, wire 17
-83,3,18 ! Plane U, wire 18
-84,3,19 ! Plane U, wire 19
-85,3,20 ! Plane U, wire 20
-86,3,21 ! Plane U, wire 21
-87,3,22 ! Plane U, wire 22
-88,3,23 ! Plane U, wire 23
-89,3,24 ! Plane U, wire 24
-90,3,25 ! Plane U, wire 25
-91,3,26 ! Plane U, wire 26
-92,3,27 ! Plane U, wire 27
-93,3,28 ! Plane U, wire 28
-94,3,29 ! Plane U, wire 29
-64,3,30 ! Plane U, wire 30
-65,3,31 ! Plane U, wire 31
-66,3,32 ! Plane U, wire 32
-67,3,33 ! Plane U, wire 33
-68,3,34 ! Plane U, wire 34
-69,3,35 ! Plane U, wire 35
-70,3,36 ! Plane U, wire 36
-71,3,37 ! Plane U, wire 37
-72,3,38 ! Plane U, wire 38
-73,3,39 ! Plane U, wire 39
-74,3,40 ! Plane U, wire 40
-75,3,41 ! Plane U, wire 41
-76,3,42 ! Plane U, wire 42
-77,3,43 ! Plane U, wire 43
-78,3,44 ! Plane U, wire 44
-79,3,45 ! Plane U, wire 45
-48,3,46 ! Plane U, wire 46
-49,3,47 ! Plane U, wire 47
-50,3,48 ! Plane U, wire 48
-51,3,49 ! Plane U, wire 49
-52,3,50 ! Plane U, wire 50
-53,3,51 ! Plane U, wire 51
-54,3,52 ! Plane U, wire 52
-55,3,53 ! Plane U, wire 53
-56,3,54 ! Plane U, wire 54
-57,3,55 ! Plane U, wire 55
-58,3,56 ! Plane U, wire 56
-59,3,57 ! Plane U, wire 57
-60,3,58 ! Plane U, wire 58
-61,3,59 ! Plane U, wire 59
-62,3,60 ! Plane U, wire 60
-32,3,61 ! Plane U, wire 61
-33,3,62 ! Plane U, wire 62
-34,3,63 ! Plane U, wire 63
-35,3,64 ! Plane U, wire 64
-36,3,65 ! Plane U, wire 65
-37,3,66 ! Plane U, wire 66
-38,3,67 ! Plane U, wire 67
-39,3,68 ! Plane U, wire 68
-40,3,69 ! Plane U, wire 69
-41,3,70 ! Plane U, wire 70
-42,3,71 ! Plane U, wire 71
-43,3,72 ! Plane U, wire 72
-44,3,73 ! Plane U, wire 73
-45,3,74 ! Plane U, wire 74
-46,3,75 ! Plane U, wire 75
-47,3,76 ! Plane U, wire 76
-16,3,77 ! Plane U, wire 77
-17,3,78 ! Plane U, wire 78
-18,3,79 ! Plane U, wire 79
-19,3,80 ! Plane U, wire 80
-20,3,81 ! Plane U, wire 81
-21,3,82 ! Plane U, wire 82
-22,3,83 ! Plane U, wire 83
-23,3,84 ! Plane U, wire 84
-24,3,85 ! Plane U, wire 85
-25,3,86 ! Plane U, wire 86
-26,3,87 ! Plane U, wire 87
-27,3,88 ! Plane U, wire 88
-28,3,89 ! Plane U, wire 89
-29,3,90 ! Plane U, wire 90
-30,3,91 ! Plane U, wire 91
-0,3,92 ! Plane U, wire 92
-1,3,93 ! Plane U, wire 93
-2,3,94 ! Plane U, wire 94
-3,3,95 ! Plane U, wire 95
-4,3,96 ! Plane U, wire 96
-5,3,97 ! Plane U, wire 97
-6,3,98 ! Plane U, wire 98
-7,3,99 ! Plane U, wire 99
-8,3,100 ! Plane U, wire 100
-9,3,101 ! Plane U, wire 101
-10,3,102 ! Plane U, wire 102
-11,3,103 ! Plane U, wire 103
-12,3,104 ! Plane U, wire 104
-13,3,105 ! Plane U, wire 105
-14,3,106 ! Plane U, wire 106
-15,3,107 ! Plane U, wire 107
+REFINDEX=0
+ 111,1000,   0,   0
+  96,   3,   1  ! Plane U, wire 1
+  97,   3,   2  ! Plane U, wire 2
+  98,   3,   3  ! Plane U, wire 3
+  99,   3,   4  ! Plane U, wire 4
+ 100,   3,   5  ! Plane U, wire 5
+ 101,   3,   6  ! Plane U, wire 6
+ 102,   3,   7  ! Plane U, wire 7
+ 103,   3,   8  ! Plane U, wire 8
+ 104,   3,   9  ! Plane U, wire 9
+ 105,   3,  10  ! Plane U, wire 10
+ 106,   3,  11  ! Plane U, wire 11
+ 107,   3,  12  ! Plane U, wire 12
+ 108,   3,  13  ! Plane U, wire 13
+ 109,   3,  14  ! Plane U, wire 14
+ 110,   1, 113  ! Plane X, wire 113
+  80,   3,  15  ! Plane U, wire 15
+  81,   3,  16  ! Plane U, wire 16
+  82,   3,  17  ! Plane U, wire 17
+  83,   3,  18  ! Plane U, wire 18
+  84,   3,  19  ! Plane U, wire 19
+  85,   3,  20  ! Plane U, wire 20
+  86,   3,  21  ! Plane U, wire 21
+  87,   3,  22  ! Plane U, wire 22
+  88,   3,  23  ! Plane U, wire 23
+  89,   3,  24  ! Plane U, wire 24
+  90,   3,  25  ! Plane U, wire 25
+  91,   3,  26  ! Plane U, wire 26
+  92,   3,  27  ! Plane U, wire 27
+  93,   3,  28  ! Plane U, wire 28
+  94,   3,  29  ! Plane U, wire 29
+  64,   3,  30  ! Plane U, wire 30
+  65,   3,  31  ! Plane U, wire 31
+  66,   3,  32  ! Plane U, wire 32
+  67,   3,  33  ! Plane U, wire 33
+  68,   3,  34  ! Plane U, wire 34
+  69,   3,  35  ! Plane U, wire 35
+  70,   3,  36  ! Plane U, wire 36
+  71,   3,  37  ! Plane U, wire 37
+  72,   3,  38  ! Plane U, wire 38
+  73,   3,  39  ! Plane U, wire 39
+  74,   3,  40  ! Plane U, wire 40
+  75,   3,  41  ! Plane U, wire 41
+  76,   3,  42  ! Plane U, wire 42
+  77,   3,  43  ! Plane U, wire 43
+  78,   3,  44  ! Plane U, wire 44
+  79,   3,  45  ! Plane U, wire 45
+  48,   3,  46  ! Plane U, wire 46
+  49,   3,  47  ! Plane U, wire 47
+  50,   3,  48  ! Plane U, wire 48
+  51,   3,  49  ! Plane U, wire 49
+  52,   3,  50  ! Plane U, wire 50
+  53,   3,  51  ! Plane U, wire 51
+  54,   3,  52  ! Plane U, wire 52
+  55,   3,  53  ! Plane U, wire 53
+  56,   3,  54  ! Plane U, wire 54
+  57,   3,  55  ! Plane U, wire 55
+  58,   3,  56  ! Plane U, wire 56
+  59,   3,  57  ! Plane U, wire 57
+  60,   3,  58  ! Plane U, wire 58
+  61,   3,  59  ! Plane U, wire 59
+  62,   3,  60  ! Plane U, wire 60
+  32,   3,  61  ! Plane U, wire 61
+  33,   3,  62  ! Plane U, wire 62
+  34,   3,  63  ! Plane U, wire 63
+  35,   3,  64  ! Plane U, wire 64
+  36,   3,  65  ! Plane U, wire 65
+  37,   3,  66  ! Plane U, wire 66
+  38,   3,  67  ! Plane U, wire 67
+  39,   3,  68  ! Plane U, wire 68
+  40,   3,  69  ! Plane U, wire 69
+  41,   3,  70  ! Plane U, wire 70
+  42,   3,  71  ! Plane U, wire 71
+  43,   3,  72  ! Plane U, wire 72
+  44,   3,  73  ! Plane U, wire 73
+  45,   3,  74  ! Plane U, wire 74
+  46,   3,  75  ! Plane U, wire 75
+  47,   3,  76  ! Plane U, wire 76
+  16,   3,  77  ! Plane U, wire 77
+  17,   3,  78  ! Plane U, wire 78
+  18,   3,  79  ! Plane U, wire 79
+  19,   3,  80  ! Plane U, wire 80
+  20,   3,  81  ! Plane U, wire 81
+  21,   3,  82  ! Plane U, wire 82
+  22,   3,  83  ! Plane U, wire 83
+  23,   3,  84  ! Plane U, wire 84
+  24,   3,  85  ! Plane U, wire 85
+  25,   3,  86  ! Plane U, wire 86
+  26,   3,  87  ! Plane U, wire 87
+  27,   3,  88  ! Plane U, wire 88
+  28,   3,  89  ! Plane U, wire 89
+  29,   3,  90  ! Plane U, wire 90
+  30,   3,  91  ! Plane U, wire 91
+   0,   3,  92  ! Plane U, wire 92
+   1,   3,  93  ! Plane U, wire 93
+   2,   3,  94  ! Plane U, wire 94
+   3,   3,  95  ! Plane U, wire 95
+   4,   3,  96  ! Plane U, wire 96
+   5,   3,  97  ! Plane U, wire 97
+   6,   3,  98  ! Plane U, wire 98
+   7,   3,  99  ! Plane U, wire 99
+   8,   3, 100  ! Plane U, wire 100
+   9,   3, 101  ! Plane U, wire 101
+  10,   3, 102  ! Plane U, wire 102
+  11,   3, 103  ! Plane U, wire 103
+  12,   3, 104  ! Plane U, wire 104
+  13,   3, 105  ! Plane U, wire 105
+  14,   3, 106  ! Plane U, wire 106
+  15,   3, 107  ! Plane U, wire 107
+
 SLOT=7
-! channel,plane,wire
-96,4,1 ! Plane V, wire 1
-97,4,2 ! Plane V, wire 2
-98,4,3 ! Plane V, wire 3
-99,4,4 ! Plane V, wire 4
-100,4,5 ! Plane V, wire 5
-101,4,6 ! Plane V, wire 6
-102,4,7 ! Plane V, wire 7
-103,4,8 ! Plane V, wire 8
-104,4,9 ! Plane V, wire 9
-105,4,10 ! Plane V, wire 10
-106,4,11 ! Plane V, wire 11
-107,4,12 ! Plane V, wire 12
-108,4,13 ! Plane V, wire 13
-109,4,14 ! Plane V, wire 14
-110,6,113 ! Plane X', wire 113
-112,4,15 ! Plane V, wire 15
-113,4,16 ! Plane V, wire 16
-114,4,17 ! Plane V, wire 17
-115,4,18 ! Plane V, wire 18
-116,4,19 ! Plane V, wire 19
-117,4,20 ! Plane V, wire 20
-118,4,21 ! Plane V, wire 21
-119,4,22 ! Plane V, wire 22
-120,4,23 ! Plane V, wire 23
-121,4,24 ! Plane V, wire 24
-122,4,25 ! Plane V, wire 25
-123,4,26 ! Plane V, wire 26
-124,4,27 ! Plane V, wire 27
-125,4,28 ! Plane V, wire 28
-126,4,29 ! Plane V, wire 29
+REFINDEX=0
+  96,   4,   1  ! Plane V, wire 1
+  97,   4,   2  ! Plane V, wire 2
+  98,   4,   3  ! Plane V, wire 3
+  99,   4,   4  ! Plane V, wire 4
+ 100,   4,   5  ! Plane V, wire 5
+ 101,   4,   6  ! Plane V, wire 6
+ 102,   4,   7  ! Plane V, wire 7
+ 103,   4,   8  ! Plane V, wire 8
+ 104,   4,   9  ! Plane V, wire 9
+ 105,   4,  10  ! Plane V, wire 10
+ 106,   4,  11  ! Plane V, wire 11
+ 107,   4,  12  ! Plane V, wire 12
+ 108,   4,  13  ! Plane V, wire 13
+ 109,   4,  14  ! Plane V, wire 14
+ 110,   6, 113  ! Plane X', wire 113
+ 112,   4,  15  ! Plane V, wire 15
+ 113,   4,  16  ! Plane V, wire 16
+ 114,   4,  17  ! Plane V, wire 17
+ 115,   4,  18  ! Plane V, wire 18
+ 116,   4,  19  ! Plane V, wire 19
+ 117,   4,  20  ! Plane V, wire 20
+ 118,   4,  21  ! Plane V, wire 21
+ 119,   4,  22  ! Plane V, wire 22
+ 120,   4,  23  ! Plane V, wire 23
+ 121,   4,  24  ! Plane V, wire 24
+ 122,   4,  25  ! Plane V, wire 25
+ 123,   4,  26  ! Plane V, wire 26
+ 124,   4,  27  ! Plane V, wire 27
+ 125,   4,  28  ! Plane V, wire 28
+ 126,   4,  29  ! Plane V, wire 29
+
 SLOT=8
-! channel,plane,wire
-0,4,30 ! Plane V, wire 30
-1,4,31 ! Plane V, wire 31
-2,4,32 ! Plane V, wire 32
-3,4,33 ! Plane V, wire 33
-4,4,34 ! Plane V, wire 34
-5,4,35 ! Plane V, wire 35
-6,4,36 ! Plane V, wire 36
-7,4,37 ! Plane V, wire 37
-8,4,38 ! Plane V, wire 38
-9,4,39 ! Plane V, wire 39
-10,4,40 ! Plane V, wire 40
-11,4,41 ! Plane V, wire 41
-12,4,42 ! Plane V, wire 42
-13,4,43 ! Plane V, wire 43
-14,4,44 ! Plane V, wire 44
-15,4,45 ! Plane V, wire 45
-16,4,46 ! Plane V, wire 46
-17,4,47 ! Plane V, wire 47
-18,4,48 ! Plane V, wire 48
-19,4,49 ! Plane V, wire 49
-20,4,50 ! Plane V, wire 50
-21,4,51 ! Plane V, wire 51
-22,4,52 ! Plane V, wire 52
-23,4,53 ! Plane V, wire 53
-24,4,54 ! Plane V, wire 54
-25,4,55 ! Plane V, wire 55
-26,4,56 ! Plane V, wire 56
-27,4,57 ! Plane V, wire 57
-28,4,58 ! Plane V, wire 58
-29,4,59 ! Plane V, wire 59
-30,4,60 ! Plane V, wire 60
-32,4,61 ! Plane V, wire 61
-33,4,62 ! Plane V, wire 62
-34,4,63 ! Plane V, wire 63
-35,4,64 ! Plane V, wire 64
-36,4,65 ! Plane V, wire 65
-37,4,66 ! Plane V, wire 66
-38,4,67 ! Plane V, wire 67
-39,4,68 ! Plane V, wire 68
-40,4,69 ! Plane V, wire 69
-41,4,70 ! Plane V, wire 70
-42,4,71 ! Plane V, wire 71
-43,4,72 ! Plane V, wire 72
-44,4,73 ! Plane V, wire 73
-45,4,74 ! Plane V, wire 74
-46,4,75 ! Plane V, wire 75
-47,4,76 ! Plane V, wire 76
-48,4,77 ! Plane V, wire 77
-49,4,78 ! Plane V, wire 78
-50,4,79 ! Plane V, wire 79
-51,4,80 ! Plane V, wire 80
-52,4,81 ! Plane V, wire 81
-53,4,82 ! Plane V, wire 82
-54,4,83 ! Plane V, wire 83
-55,4,84 ! Plane V, wire 84
-56,4,85 ! Plane V, wire 85
-57,4,86 ! Plane V, wire 86
-58,4,87 ! Plane V, wire 87
-59,4,88 ! Plane V, wire 88
-60,4,89 ! Plane V, wire 89
-61,4,90 ! Plane V, wire 90
-62,4,91 ! Plane V, wire 91
+REFINDEX=0
+ 127,1000,   0,   1
+   0,   4,  30  ! Plane V, wire 30
+   1,   4,  31  ! Plane V, wire 31
+   2,   4,  32  ! Plane V, wire 32
+   3,   4,  33  ! Plane V, wire 33
+   4,   4,  34  ! Plane V, wire 34
+   5,   4,  35  ! Plane V, wire 35
+   6,   4,  36  ! Plane V, wire 36
+   7,   4,  37  ! Plane V, wire 37
+   8,   4,  38  ! Plane V, wire 38
+   9,   4,  39  ! Plane V, wire 39
+  10,   4,  40  ! Plane V, wire 40
+  11,   4,  41  ! Plane V, wire 41
+  12,   4,  42  ! Plane V, wire 42
+  13,   4,  43  ! Plane V, wire 43
+  14,   4,  44  ! Plane V, wire 44
+  15,   4,  45  ! Plane V, wire 45
+  16,   4,  46  ! Plane V, wire 46
+  17,   4,  47  ! Plane V, wire 47
+  18,   4,  48  ! Plane V, wire 48
+  19,   4,  49  ! Plane V, wire 49
+  20,   4,  50  ! Plane V, wire 50
+  21,   4,  51  ! Plane V, wire 51
+  22,   4,  52  ! Plane V, wire 52
+  23,   4,  53  ! Plane V, wire 53
+  24,   4,  54  ! Plane V, wire 54
+  25,   4,  55  ! Plane V, wire 55
+  26,   4,  56  ! Plane V, wire 56
+  27,   4,  57  ! Plane V, wire 57
+  28,   4,  58  ! Plane V, wire 58
+  29,   4,  59  ! Plane V, wire 59
+  30,   4,  60  ! Plane V, wire 60
+  32,   4,  61  ! Plane V, wire 61
+  33,   4,  62  ! Plane V, wire 62
+  34,   4,  63  ! Plane V, wire 63
+  35,   4,  64  ! Plane V, wire 64
+  36,   4,  65  ! Plane V, wire 65
+  37,   4,  66  ! Plane V, wire 66
+  38,   4,  67  ! Plane V, wire 67
+  39,   4,  68  ! Plane V, wire 68
+  40,   4,  69  ! Plane V, wire 69
+  41,   4,  70  ! Plane V, wire 70
+  42,   4,  71  ! Plane V, wire 71
+  43,   4,  72  ! Plane V, wire 72
+  44,   4,  73  ! Plane V, wire 73
+  45,   4,  74  ! Plane V, wire 74
+  46,   4,  75  ! Plane V, wire 75
+  47,   4,  76  ! Plane V, wire 76
+  48,   4,  77  ! Plane V, wire 77
+  49,   4,  78  ! Plane V, wire 78
+  50,   4,  79  ! Plane V, wire 79
+  51,   4,  80  ! Plane V, wire 80
+  52,   4,  81  ! Plane V, wire 81
+  53,   4,  82  ! Plane V, wire 82
+  54,   4,  83  ! Plane V, wire 83
+  55,   4,  84  ! Plane V, wire 84
+  56,   4,  85  ! Plane V, wire 85
+  57,   4,  86  ! Plane V, wire 86
+  58,   4,  87  ! Plane V, wire 87
+  59,   4,  88  ! Plane V, wire 88
+  60,   4,  89  ! Plane V, wire 89
+  61,   4,  90  ! Plane V, wire 90
+  62,   4,  91  ! Plane V, wire 91
+
 SLOT=4
-! channel,plane,wire
-96,4,92 ! Plane V, wire 92
-97,4,93 ! Plane V, wire 93
-98,4,94 ! Plane V, wire 94
-99,4,95 ! Plane V, wire 95
-100,4,96 ! Plane V, wire 96
-101,4,97 ! Plane V, wire 97
-102,4,98 ! Plane V, wire 98
-103,4,99 ! Plane V, wire 99
-104,4,100 ! Plane V, wire 100
-105,4,101 ! Plane V, wire 101
-106,4,102 ! Plane V, wire 102
-107,4,103 ! Plane V, wire 103
-108,4,104 ! Plane V, wire 104
-109,4,105 ! Plane V, wire 105
-110,4,106 ! Plane V, wire 106
-111,4,107 ! Plane V, wire 107
-80,1,1 ! Plane X, wire 1
-81,1,2 ! Plane X, wire 2
-82,1,3 ! Plane X, wire 3
-83,1,4 ! Plane X, wire 4
-84,1,5 ! Plane X, wire 5
-85,1,6 ! Plane X, wire 6
-86,1,7 ! Plane X, wire 7
-87,1,8 ! Plane X, wire 8
-88,1,9 ! Plane X, wire 9
-89,1,10 ! Plane X, wire 10
-90,1,11 ! Plane X, wire 11
-91,1,12 ! Plane X, wire 12
-92,1,13 ! Plane X, wire 13
-93,1,14 ! Plane X, wire 14
-94,1,15 ! Plane X, wire 15
-95,1,16 ! Plane X, wire 16
-64,1,17 ! Plane X, wire 17
-65,1,18 ! Plane X, wire 18
-66,1,19 ! Plane X, wire 19
-67,1,20 ! Plane X, wire 20
-68,1,21 ! Plane X, wire 21
-69,1,22 ! Plane X, wire 22
-70,1,23 ! Plane X, wire 23
-71,1,24 ! Plane X, wire 24
-72,1,25 ! Plane X, wire 25
-73,1,26 ! Plane X, wire 26
-74,1,27 ! Plane X, wire 27
-75,1,28 ! Plane X, wire 28
-76,1,29 ! Plane X, wire 29
-77,1,30 ! Plane X, wire 30
-78,1,31 ! Plane X, wire 31
-79,1,32 ! Plane X, wire 32
-48,1,33 ! Plane X, wire 33
-49,1,34 ! Plane X, wire 34
-50,1,35 ! Plane X, wire 35
-51,1,36 ! Plane X, wire 36
-52,1,37 ! Plane X, wire 37
-53,1,38 ! Plane X, wire 38
-54,1,39 ! Plane X, wire 39
-55,1,40 ! Plane X, wire 40
-56,1,41 ! Plane X, wire 41
-57,1,42 ! Plane X, wire 42
-58,1,43 ! Plane X, wire 43
-59,1,44 ! Plane X, wire 44
-60,1,45 ! Plane X, wire 45
-61,1,46 ! Plane X, wire 46
-62,1,47 ! Plane X, wire 47
-63,1,48 ! Plane X, wire 48
-32,1,49 ! Plane X, wire 49
-33,1,50 ! Plane X, wire 50
-34,1,51 ! Plane X, wire 51
-35,1,52 ! Plane X, wire 52
-36,1,53 ! Plane X, wire 53
-37,1,54 ! Plane X, wire 54
-38,1,55 ! Plane X, wire 55
-39,1,56 ! Plane X, wire 56
-40,1,57 ! Plane X, wire 57
-41,1,58 ! Plane X, wire 58
-42,1,59 ! Plane X, wire 59
-43,1,60 ! Plane X, wire 60
-44,1,61 ! Plane X, wire 61
-45,1,62 ! Plane X, wire 62
-46,1,63 ! Plane X, wire 63
-47,1,64 ! Plane X, wire 64
-16,1,65 ! Plane X, wire 65
-17,1,66 ! Plane X, wire 66
-18,1,67 ! Plane X, wire 67
-19,1,68 ! Plane X, wire 68
-20,1,69 ! Plane X, wire 69
-21,1,70 ! Plane X, wire 70
-22,1,71 ! Plane X, wire 71
-23,1,72 ! Plane X, wire 72
-24,1,73 ! Plane X, wire 73
-25,1,74 ! Plane X, wire 74
-26,1,75 ! Plane X, wire 75
-27,1,76 ! Plane X, wire 76
-28,1,77 ! Plane X, wire 77
-29,1,78 ! Plane X, wire 78
-30,1,79 ! Plane X, wire 79
-31,1,80 ! Plane X, wire 80
-0,1,81 ! Plane X, wire 81
-1,1,82 ! Plane X, wire 82
-2,1,83 ! Plane X, wire 83
-3,1,84 ! Plane X, wire 84
-4,1,85 ! Plane X, wire 85
-5,1,86 ! Plane X, wire 86
-6,1,87 ! Plane X, wire 87
-7,1,88 ! Plane X, wire 88
-8,1,89 ! Plane X, wire 89
-9,1,90 ! Plane X, wire 90
-10,1,91 ! Plane X, wire 91
-11,1,92 ! Plane X, wire 92
-12,1,93 ! Plane X, wire 93
-13,1,94 ! Plane X, wire 94
-14,1,95 ! Plane X, wire 95
-15,1,96 ! Plane X, wire 96
+REFINDEX=0
+  96,   4,  92  ! Plane V, wire 92
+  97,   4,  93  ! Plane V, wire 93
+  98,   4,  94  ! Plane V, wire 94
+  99,   4,  95  ! Plane V, wire 95
+ 100,   4,  96  ! Plane V, wire 96
+ 101,   4,  97  ! Plane V, wire 97
+ 102,   4,  98  ! Plane V, wire 98
+ 103,   4,  99  ! Plane V, wire 99
+ 104,   4, 100  ! Plane V, wire 100
+ 105,   4, 101  ! Plane V, wire 101
+ 106,   4, 102  ! Plane V, wire 102
+ 107,   4, 103  ! Plane V, wire 103
+ 108,   4, 104  ! Plane V, wire 104
+ 109,   4, 105  ! Plane V, wire 105
+ 110,   4, 106  ! Plane V, wire 106
+ 111,   4, 107  ! Plane V, wire 107
+  80,   1,   1  ! Plane X, wire 1
+  81,   1,   2  ! Plane X, wire 2
+  82,   1,   3  ! Plane X, wire 3
+  83,   1,   4  ! Plane X, wire 4
+  84,   1,   5  ! Plane X, wire 5
+  85,   1,   6  ! Plane X, wire 6
+  86,   1,   7  ! Plane X, wire 7
+  87,   1,   8  ! Plane X, wire 8
+  88,   1,   9  ! Plane X, wire 9
+  89,   1,  10  ! Plane X, wire 10
+  90,   1,  11  ! Plane X, wire 11
+  91,   1,  12  ! Plane X, wire 12
+  92,   1,  13  ! Plane X, wire 13
+  93,   1,  14  ! Plane X, wire 14
+  94,   1,  15  ! Plane X, wire 15
+  95,   1,  16  ! Plane X, wire 16
+  64,   1,  17  ! Plane X, wire 17
+  65,   1,  18  ! Plane X, wire 18
+  66,   1,  19  ! Plane X, wire 19
+  67,   1,  20  ! Plane X, wire 20
+  68,   1,  21  ! Plane X, wire 21
+  69,   1,  22  ! Plane X, wire 22
+  70,   1,  23  ! Plane X, wire 23
+  71,   1,  24  ! Plane X, wire 24
+  72,   1,  25  ! Plane X, wire 25
+  73,   1,  26  ! Plane X, wire 26
+  74,   1,  27  ! Plane X, wire 27
+  75,   1,  28  ! Plane X, wire 28
+  76,   1,  29  ! Plane X, wire 29
+  77,   1,  30  ! Plane X, wire 30
+  78,   1,  31  ! Plane X, wire 31
+  79,   1,  32  ! Plane X, wire 32
+  48,   1,  33  ! Plane X, wire 33
+  49,   1,  34  ! Plane X, wire 34
+  50,   1,  35  ! Plane X, wire 35
+  51,   1,  36  ! Plane X, wire 36
+  52,   1,  37  ! Plane X, wire 37
+  53,   1,  38  ! Plane X, wire 38
+  54,   1,  39  ! Plane X, wire 39
+  55,   1,  40  ! Plane X, wire 40
+  56,   1,  41  ! Plane X, wire 41
+  57,   1,  42  ! Plane X, wire 42
+  58,   1,  43  ! Plane X, wire 43
+  59,   1,  44  ! Plane X, wire 44
+  60,   1,  45  ! Plane X, wire 45
+  61,   1,  46  ! Plane X, wire 46
+  62,   1,  47  ! Plane X, wire 47
+  63,   1,  48  ! Plane X, wire 48
+  32,   1,  49  ! Plane X, wire 49
+  33,   1,  50  ! Plane X, wire 50
+  34,   1,  51  ! Plane X, wire 51
+  35,   1,  52  ! Plane X, wire 52
+  36,   1,  53  ! Plane X, wire 53
+  37,   1,  54  ! Plane X, wire 54
+  38,   1,  55  ! Plane X, wire 55
+  39,   1,  56  ! Plane X, wire 56
+  40,   1,  57  ! Plane X, wire 57
+  41,   1,  58  ! Plane X, wire 58
+  42,   1,  59  ! Plane X, wire 59
+  43,   1,  60  ! Plane X, wire 60
+  44,   1,  61  ! Plane X, wire 61
+  45,   1,  62  ! Plane X, wire 62
+  46,   1,  63  ! Plane X, wire 63
+  47,   1,  64  ! Plane X, wire 64
+  16,   1,  65  ! Plane X, wire 65
+  17,   1,  66  ! Plane X, wire 66
+  18,   1,  67  ! Plane X, wire 67
+  19,   1,  68  ! Plane X, wire 68
+  20,   1,  69  ! Plane X, wire 69
+  21,   1,  70  ! Plane X, wire 70
+  22,   1,  71  ! Plane X, wire 71
+  23,   1,  72  ! Plane X, wire 72
+  24,   1,  73  ! Plane X, wire 73
+  25,   1,  74  ! Plane X, wire 74
+  26,   1,  75  ! Plane X, wire 75
+  27,   1,  76  ! Plane X, wire 76
+  28,   1,  77  ! Plane X, wire 77
+  29,   1,  78  ! Plane X, wire 78
+  30,   1,  79  ! Plane X, wire 79
+  31,   1,  80  ! Plane X, wire 80
+   0,   1,  81  ! Plane X, wire 81
+   1,   1,  82  ! Plane X, wire 82
+   2,   1,  83  ! Plane X, wire 83
+   3,   1,  84  ! Plane X, wire 84
+   4,   1,  85  ! Plane X, wire 85
+   5,   1,  86  ! Plane X, wire 86
+   6,   1,  87  ! Plane X, wire 87
+   7,   1,  88  ! Plane X, wire 88
+   8,   1,  89  ! Plane X, wire 89
+   9,   1,  90  ! Plane X, wire 90
+  10,   1,  91  ! Plane X, wire 91
+  11,   1,  92  ! Plane X, wire 92
+  12,   1,  93  ! Plane X, wire 93
+  13,   1,  94  ! Plane X, wire 94
+  14,   1,  95  ! Plane X, wire 95
+  15,   1,  96  ! Plane X, wire 96
+
 SLOT=7
-! channel,plane,wire
-80,1,97 ! Plane X, wire 97
-81,1,98 ! Plane X, wire 98
-82,1,99 ! Plane X, wire 99
-83,1,100 ! Plane X, wire 100
-84,1,101 ! Plane X, wire 101
-85,1,102 ! Plane X, wire 102
-86,1,103 ! Plane X, wire 103
-87,1,104 ! Plane X, wire 104
-88,1,105 ! Plane X, wire 105
-89,1,106 ! Plane X, wire 106
-90,1,107 ! Plane X, wire 107
-91,1,108 ! Plane X, wire 108
-92,1,109 ! Plane X, wire 109
-93,1,110 ! Plane X, wire 110
-94,1,111 ! Plane X, wire 111
-95,1,112 ! Plane X, wire 112
+REFINDEX=0
+  80,   1,  97  ! Plane X, wire 97
+  81,   1,  98  ! Plane X, wire 98
+  82,   1,  99  ! Plane X, wire 99
+  83,   1, 100  ! Plane X, wire 100
+  84,   1, 101  ! Plane X, wire 101
+  85,   1, 102  ! Plane X, wire 102
+  86,   1, 103  ! Plane X, wire 103
+  87,   1, 104  ! Plane X, wire 104
+  88,   1, 105  ! Plane X, wire 105
+  89,   1, 106  ! Plane X, wire 106
+  90,   1, 107  ! Plane X, wire 107
+  91,   1, 108  ! Plane X, wire 108
+  92,   1, 109  ! Plane X, wire 109
+  93,   1, 110  ! Plane X, wire 110
+  94,   1, 111  ! Plane X, wire 111
+  95,   1, 112  ! Plane X, wire 112
+
 SLOT=4
-! channel,plane,wire
-112,6,1 ! Plane X', wire 1
-113,6,2 ! Plane X', wire 2
-114,6,3 ! Plane X', wire 3
-115,6,4 ! Plane X', wire 4
-116,6,5 ! Plane X', wire 5
-117,6,6 ! Plane X', wire 6
-118,6,7 ! Plane X', wire 7
-119,6,8 ! Plane X', wire 8
-120,6,9 ! Plane X', wire 9
-121,6,10 ! Plane X', wire 10
-122,6,11 ! Plane X', wire 11
-123,6,12 ! Plane X', wire 12
-124,6,13 ! Plane X', wire 13
-125,6,14 ! Plane X', wire 14
-126,6,15 ! Plane X', wire 15
-127,6,16 ! Plane X', wire 16
+REFINDEX=0
+ 112,   6,   1  ! Plane X', wire 1
+ 113,   6,   2  ! Plane X', wire 2
+ 114,   6,   3  ! Plane X', wire 3
+ 115,   6,   4  ! Plane X', wire 4
+ 116,   6,   5  ! Plane X', wire 5
+ 117,   6,   6  ! Plane X', wire 6
+ 118,   6,   7  ! Plane X', wire 7
+ 119,   6,   8  ! Plane X', wire 8
+ 120,   6,   9  ! Plane X', wire 9
+ 121,   6,  10  ! Plane X', wire 10
+ 122,   6,  11  ! Plane X', wire 11
+ 123,   6,  12  ! Plane X', wire 12
+ 124,   6,  13  ! Plane X', wire 13
+ 125,   6,  14  ! Plane X', wire 14
+ 126,   6,  15  ! Plane X', wire 15
+ 127,   6,  16  ! Plane X', wire 16
+
 SLOT=5
-! channel,plane,wire
-112,6,17 ! Plane X', wire 17
-113,6,18 ! Plane X', wire 18
-114,6,19 ! Plane X', wire 19
-115,6,20 ! Plane X', wire 20
-116,6,21 ! Plane X', wire 21
-117,6,22 ! Plane X', wire 22
-118,6,23 ! Plane X', wire 23
-119,6,24 ! Plane X', wire 24
-120,6,25 ! Plane X', wire 25
-121,6,26 ! Plane X', wire 26
-122,6,27 ! Plane X', wire 27
-123,6,28 ! Plane X', wire 28
-124,6,29 ! Plane X', wire 29
-125,6,30 ! Plane X', wire 30
-126,6,31 ! Plane X', wire 31
-127,6,32 ! Plane X', wire 32
+REFINDEX=0
+ 112,   6,  17  ! Plane X', wire 17
+ 113,   6,  18  ! Plane X', wire 18
+ 114,   6,  19  ! Plane X', wire 19
+ 115,   6,  20  ! Plane X', wire 20
+ 116,   6,  21  ! Plane X', wire 21
+ 117,   6,  22  ! Plane X', wire 22
+ 118,   6,  23  ! Plane X', wire 23
+ 119,   6,  24  ! Plane X', wire 24
+ 120,   6,  25  ! Plane X', wire 25
+ 121,   6,  26  ! Plane X', wire 26
+ 122,   6,  27  ! Plane X', wire 27
+ 123,   6,  28  ! Plane X', wire 28
+ 124,   6,  29  ! Plane X', wire 29
+ 125,   6,  30  ! Plane X', wire 30
+ 126,   6,  31  ! Plane X', wire 31
+ 127,   6,  32  ! Plane X', wire 32
+
 SLOT=7
-! channel,plane,wire
-0,6,33 ! Plane X', wire 33
-1,6,34 ! Plane X', wire 34
-2,6,35 ! Plane X', wire 35
-3,6,36 ! Plane X', wire 36
-4,6,37 ! Plane X', wire 37
-5,6,38 ! Plane X', wire 38
-6,6,39 ! Plane X', wire 39
-7,6,40 ! Plane X', wire 40
-8,6,41 ! Plane X', wire 41
-9,6,42 ! Plane X', wire 42
-10,6,43 ! Plane X', wire 43
-11,6,44 ! Plane X', wire 44
-12,6,45 ! Plane X', wire 45
-13,6,46 ! Plane X', wire 46
-14,6,47 ! Plane X', wire 47
-15,6,48 ! Plane X', wire 48
-16,6,49 ! Plane X', wire 49
-17,6,50 ! Plane X', wire 50
-18,6,51 ! Plane X', wire 51
-19,6,52 ! Plane X', wire 52
-20,6,53 ! Plane X', wire 53
-21,6,54 ! Plane X', wire 54
-22,6,55 ! Plane X', wire 55
-23,6,56 ! Plane X', wire 56
-24,6,57 ! Plane X', wire 57
-25,6,58 ! Plane X', wire 58
-26,6,59 ! Plane X', wire 59
-27,6,60 ! Plane X', wire 60
-28,6,61 ! Plane X', wire 61
-29,6,62 ! Plane X', wire 62
-30,6,63 ! Plane X', wire 63
-31,6,64 ! Plane X', wire 64
-32,6,65 ! Plane X', wire 65
-33,6,66 ! Plane X', wire 66
-34,6,67 ! Plane X', wire 67
-35,6,68 ! Plane X', wire 68
-36,6,69 ! Plane X', wire 69
-37,6,70 ! Plane X', wire 70
-38,6,71 ! Plane X', wire 71
-39,6,72 ! Plane X', wire 72
-40,6,73 ! Plane X', wire 73
-41,6,74 ! Plane X', wire 74
-42,6,75 ! Plane X', wire 75
-43,6,76 ! Plane X', wire 76
-44,6,77 ! Plane X', wire 77
-45,6,78 ! Plane X', wire 78
-46,6,79 ! Plane X', wire 79
-47,6,80 ! Plane X', wire 80
-48,6,81 ! Plane X', wire 81
-49,6,82 ! Plane X', wire 82
-50,6,83 ! Plane X', wire 83
-51,6,84 ! Plane X', wire 84
-52,6,85 ! Plane X', wire 85
-53,6,86 ! Plane X', wire 86
-54,6,87 ! Plane X', wire 87
-55,6,88 ! Plane X', wire 88
-56,6,89 ! Plane X', wire 89
-57,6,90 ! Plane X', wire 90
-58,6,91 ! Plane X', wire 91
-59,6,92 ! Plane X', wire 92
-60,6,93 ! Plane X', wire 93
-61,6,94 ! Plane X', wire 94
-62,6,95 ! Plane X', wire 95
-63,6,96 ! Plane X', wire 96
-64,6,97 ! Plane X', wire 97
-65,6,98 ! Plane X', wire 98
-66,6,99 ! Plane X', wire 99
-67,6,100 ! Plane X', wire 100
-68,6,101 ! Plane X', wire 101
-69,6,102 ! Plane X', wire 102
-70,6,103 ! Plane X', wire 103
-71,6,104 ! Plane X', wire 104
-72,6,105 ! Plane X', wire 105
-73,6,106 ! Plane X', wire 106
-74,6,107 ! Plane X', wire 107
-75,6,108 ! Plane X', wire 108
-76,6,109 ! Plane X', wire 109
-77,6,110 ! Plane X', wire 110
-78,6,111 ! Plane X', wire 111
-79,6,112 ! Plane X', wire 112
+REFINDEX=0
+   0,   6,  33  ! Plane X', wire 33
+   1,   6,  34  ! Plane X', wire 34
+   2,   6,  35  ! Plane X', wire 35
+   3,   6,  36  ! Plane X', wire 36
+   4,   6,  37  ! Plane X', wire 37
+   5,   6,  38  ! Plane X', wire 38
+   6,   6,  39  ! Plane X', wire 39
+   7,   6,  40  ! Plane X', wire 40
+   8,   6,  41  ! Plane X', wire 41
+   9,   6,  42  ! Plane X', wire 42
+  10,   6,  43  ! Plane X', wire 43
+  11,   6,  44  ! Plane X', wire 44
+  12,   6,  45  ! Plane X', wire 45
+  13,   6,  46  ! Plane X', wire 46
+  14,   6,  47  ! Plane X', wire 47
+  15,   6,  48  ! Plane X', wire 48
+  16,   6,  49  ! Plane X', wire 49
+  17,   6,  50  ! Plane X', wire 50
+  18,   6,  51  ! Plane X', wire 51
+  19,   6,  52  ! Plane X', wire 52
+  20,   6,  53  ! Plane X', wire 53
+  21,   6,  54  ! Plane X', wire 54
+  22,   6,  55  ! Plane X', wire 55
+  23,   6,  56  ! Plane X', wire 56
+  24,   6,  57  ! Plane X', wire 57
+  25,   6,  58  ! Plane X', wire 58
+  26,   6,  59  ! Plane X', wire 59
+  27,   6,  60  ! Plane X', wire 60
+  28,   6,  61  ! Plane X', wire 61
+  29,   6,  62  ! Plane X', wire 62
+  30,   6,  63  ! Plane X', wire 63
+  31,   6,  64  ! Plane X', wire 64
+  32,   6,  65  ! Plane X', wire 65
+  33,   6,  66  ! Plane X', wire 66
+  34,   6,  67  ! Plane X', wire 67
+  35,   6,  68  ! Plane X', wire 68
+  36,   6,  69  ! Plane X', wire 69
+  37,   6,  70  ! Plane X', wire 70
+  38,   6,  71  ! Plane X', wire 71
+  39,   6,  72  ! Plane X', wire 72
+  40,   6,  73  ! Plane X', wire 73
+  41,   6,  74  ! Plane X', wire 74
+  42,   6,  75  ! Plane X', wire 75
+  43,   6,  76  ! Plane X', wire 76
+  44,   6,  77  ! Plane X', wire 77
+  45,   6,  78  ! Plane X', wire 78
+  46,   6,  79  ! Plane X', wire 79
+  47,   6,  80  ! Plane X', wire 80
+  48,   6,  81  ! Plane X', wire 81
+  49,   6,  82  ! Plane X', wire 82
+  50,   6,  83  ! Plane X', wire 83
+  51,   6,  84  ! Plane X', wire 84
+  52,   6,  85  ! Plane X', wire 85
+  53,   6,  86  ! Plane X', wire 86
+  54,   6,  87  ! Plane X', wire 87
+  55,   6,  88  ! Plane X', wire 88
+  56,   6,  89  ! Plane X', wire 89
+  57,   6,  90  ! Plane X', wire 90
+  58,   6,  91  ! Plane X', wire 91
+  59,   6,  92  ! Plane X', wire 92
+  60,   6,  93  ! Plane X', wire 93
+  61,   6,  94  ! Plane X', wire 94
+  62,   6,  95  ! Plane X', wire 95
+  63,   6,  96  ! Plane X', wire 96
+  64,   6,  97  ! Plane X', wire 97
+  65,   6,  98  ! Plane X', wire 98
+  66,   6,  99  ! Plane X', wire 99
+  67,   6, 100  ! Plane X', wire 100
+  68,   6, 101  ! Plane X', wire 101
+  69,   6, 102  ! Plane X', wire 102
+  70,   6, 103  ! Plane X', wire 103
+  71,   6, 104  ! Plane X', wire 104
+  72,   6, 105  ! Plane X', wire 105
+  73,   6, 106  ! Plane X', wire 106
+  74,   6, 107  ! Plane X', wire 107
+  75,   6, 108  ! Plane X', wire 108
+  76,   6, 109  ! Plane X', wire 109
+  77,   6, 110  ! Plane X', wire 110
+  78,   6, 111  ! Plane X', wire 111
+  79,   6, 112  ! Plane X', wire 112
+
 SLOT=8
-! channel,plane,wire
-64,2,1 ! Plane Y, wire 1
-65,2,2 ! Plane Y, wire 2
-66,2,3 ! Plane Y, wire 3
-67,2,4 ! Plane Y, wire 4
-68,2,5 ! Plane Y, wire 5
-69,2,6 ! Plane Y, wire 6
-70,2,7 ! Plane Y, wire 7
-71,2,8 ! Plane Y, wire 8
-72,2,9 ! Plane Y, wire 9
-73,2,10 ! Plane Y, wire 10
-74,2,11 ! Plane Y, wire 11
-75,2,12 ! Plane Y, wire 12
-76,2,13 ! Plane Y, wire 13
-80,2,14 ! Plane Y, wire 14
-81,2,15 ! Plane Y, wire 15
-82,2,16 ! Plane Y, wire 16
-83,2,17 ! Plane Y, wire 17
-84,2,18 ! Plane Y, wire 18
-85,2,19 ! Plane Y, wire 19
-86,2,20 ! Plane Y, wire 20
-87,2,21 ! Plane Y, wire 21
-88,2,22 ! Plane Y, wire 22
-89,2,23 ! Plane Y, wire 23
-90,2,24 ! Plane Y, wire 24
-91,2,25 ! Plane Y, wire 25
-92,2,26 ! Plane Y, wire 26
-96,2,27 ! Plane Y, wire 27
-97,2,28 ! Plane Y, wire 28
-98,2,29 ! Plane Y, wire 29
-99,2,30 ! Plane Y, wire 30
-100,2,31 ! Plane Y, wire 31
-101,2,32 ! Plane Y, wire 32
-102,2,33 ! Plane Y, wire 33
-103,2,34 ! Plane Y, wire 34
-104,2,35 ! Plane Y, wire 35
-105,2,36 ! Plane Y, wire 36
-106,2,37 ! Plane Y, wire 37
-107,2,38 ! Plane Y, wire 38
-108,2,39 ! Plane Y, wire 39
-112,2,40 ! Plane Y, wire 40
-113,2,41 ! Plane Y, wire 41
-114,2,42 ! Plane Y, wire 42
-115,2,43 ! Plane Y, wire 43
-116,2,44 ! Plane Y, wire 44
-117,2,45 ! Plane Y, wire 45
-118,2,46 ! Plane Y, wire 46
-119,2,47 ! Plane Y, wire 47
-120,2,48 ! Plane Y, wire 48
-121,2,49 ! Plane Y, wire 49
-122,2,50 ! Plane Y, wire 50
-123,2,51 ! Plane Y, wire 51
-124,2,52 ! Plane Y, wire 52
+REFINDEX=0
+  64,   2,   1  ! Plane Y, wire 1
+  65,   2,   2  ! Plane Y, wire 2
+  66,   2,   3  ! Plane Y, wire 3
+  67,   2,   4  ! Plane Y, wire 4
+  68,   2,   5  ! Plane Y, wire 5
+  69,   2,   6  ! Plane Y, wire 6
+  70,   2,   7  ! Plane Y, wire 7
+  71,   2,   8  ! Plane Y, wire 8
+  72,   2,   9  ! Plane Y, wire 9
+  73,   2,  10  ! Plane Y, wire 10
+  74,   2,  11  ! Plane Y, wire 11
+  75,   2,  12  ! Plane Y, wire 12
+  76,   2,  13  ! Plane Y, wire 13
+  80,   2,  14  ! Plane Y, wire 14
+  81,   2,  15  ! Plane Y, wire 15
+  82,   2,  16  ! Plane Y, wire 16
+  83,   2,  17  ! Plane Y, wire 17
+  84,   2,  18  ! Plane Y, wire 18
+  85,   2,  19  ! Plane Y, wire 19
+  86,   2,  20  ! Plane Y, wire 20
+  87,   2,  21  ! Plane Y, wire 21
+  88,   2,  22  ! Plane Y, wire 22
+  89,   2,  23  ! Plane Y, wire 23
+  90,   2,  24  ! Plane Y, wire 24
+  91,   2,  25  ! Plane Y, wire 25
+  92,   2,  26  ! Plane Y, wire 26
+  96,   2,  27  ! Plane Y, wire 27
+  97,   2,  28  ! Plane Y, wire 28
+  98,   2,  29  ! Plane Y, wire 29
+  99,   2,  30  ! Plane Y, wire 30
+ 100,   2,  31  ! Plane Y, wire 31
+ 101,   2,  32  ! Plane Y, wire 32
+ 102,   2,  33  ! Plane Y, wire 33
+ 103,   2,  34  ! Plane Y, wire 34
+ 104,   2,  35  ! Plane Y, wire 35
+ 105,   2,  36  ! Plane Y, wire 36
+ 106,   2,  37  ! Plane Y, wire 37
+ 107,   2,  38  ! Plane Y, wire 38
+ 108,   2,  39  ! Plane Y, wire 39
+ 112,   2,  40  ! Plane Y, wire 40
+ 113,   2,  41  ! Plane Y, wire 41
+ 114,   2,  42  ! Plane Y, wire 42
+ 115,   2,  43  ! Plane Y, wire 43
+ 116,   2,  44  ! Plane Y, wire 44
+ 117,   2,  45  ! Plane Y, wire 45
+ 118,   2,  46  ! Plane Y, wire 46
+ 119,   2,  47  ! Plane Y, wire 47
+ 120,   2,  48  ! Plane Y, wire 48
+ 121,   2,  49  ! Plane Y, wire 49
+ 122,   2,  50  ! Plane Y, wire 50
+ 123,   2,  51  ! Plane Y, wire 51
+ 124,   2,  52  ! Plane Y, wire 52
+
 SLOT=10
-! channel,plane,wire
-0,5,1 ! Plane Y', wire 1
-1,5,2 ! Plane Y', wire 2
-2,5,3 ! Plane Y', wire 3
-3,5,4 ! Plane Y', wire 4
-4,5,5 ! Plane Y', wire 5
-5,5,6 ! Plane Y', wire 6
-6,5,7 ! Plane Y', wire 7
-7,5,8 ! Plane Y', wire 8
-8,5,9 ! Plane Y', wire 9
-9,5,10 ! Plane Y', wire 10
-10,5,11 ! Plane Y', wire 11
-11,5,12 ! Plane Y', wire 12
-12,5,13 ! Plane Y', wire 13
-16,5,14 ! Plane Y', wire 14
-17,5,15 ! Plane Y', wire 15
-18,5,16 ! Plane Y', wire 16
-19,5,17 ! Plane Y', wire 17
-20,5,18 ! Plane Y', wire 18
-21,5,19 ! Plane Y', wire 19
-22,5,20 ! Plane Y', wire 20
-23,5,21 ! Plane Y', wire 21
-24,5,22 ! Plane Y', wire 22
-25,5,23 ! Plane Y', wire 23
-26,5,24 ! Plane Y', wire 24
-27,5,25 ! Plane Y', wire 25
-28,5,26 ! Plane Y', wire 26
-32,5,27 ! Plane Y', wire 27
-33,5,28 ! Plane Y', wire 28
-34,5,29 ! Plane Y', wire 29
-35,5,30 ! Plane Y', wire 30
-36,5,31 ! Plane Y', wire 31
-37,5,32 ! Plane Y', wire 32
-38,5,33 ! Plane Y', wire 33
-39,5,34 ! Plane Y', wire 34
-40,5,35 ! Plane Y', wire 35
-41,5,36 ! Plane Y', wire 36
-42,5,37 ! Plane Y', wire 37
-43,5,38 ! Plane Y', wire 38
-44,5,39 ! Plane Y', wire 39
-48,5,40 ! Plane Y', wire 40
-49,5,41 ! Plane Y', wire 41
-50,5,42 ! Plane Y', wire 42
-51,5,43 ! Plane Y', wire 43
-52,5,44 ! Plane Y', wire 44
-53,5,45 ! Plane Y', wire 45
-54,5,46 ! Plane Y', wire 46
-55,5,47 ! Plane Y', wire 47
-56,5,48 ! Plane Y', wire 48
-57,5,49 ! Plane Y', wire 49
-58,5,50 ! Plane Y', wire 50
-59,5,51 ! Plane Y', wire 51
-60,5,52 ! Plane Y', wire 52
+REFINDEX=0
+ 127,1000,   0,   2
+   0,   5,   1  ! Plane Y', wire 1
+   1,   5,   2  ! Plane Y', wire 2
+   2,   5,   3  ! Plane Y', wire 3
+   3,   5,   4  ! Plane Y', wire 4
+   4,   5,   5  ! Plane Y', wire 5
+   5,   5,   6  ! Plane Y', wire 6
+   6,   5,   7  ! Plane Y', wire 7
+   7,   5,   8  ! Plane Y', wire 8
+   8,   5,   9  ! Plane Y', wire 9
+   9,   5,  10  ! Plane Y', wire 10
+  10,   5,  11  ! Plane Y', wire 11
+  11,   5,  12  ! Plane Y', wire 12
+  12,   5,  13  ! Plane Y', wire 13
+  16,   5,  14  ! Plane Y', wire 14
+  17,   5,  15  ! Plane Y', wire 15
+  18,   5,  16  ! Plane Y', wire 16
+  19,   5,  17  ! Plane Y', wire 17
+  20,   5,  18  ! Plane Y', wire 18
+  21,   5,  19  ! Plane Y', wire 19
+  22,   5,  20  ! Plane Y', wire 20
+  23,   5,  21  ! Plane Y', wire 21
+  24,   5,  22  ! Plane Y', wire 22
+  25,   5,  23  ! Plane Y', wire 23
+  26,   5,  24  ! Plane Y', wire 24
+  27,   5,  25  ! Plane Y', wire 25
+  28,   5,  26  ! Plane Y', wire 26
+  32,   5,  27  ! Plane Y', wire 27
+  33,   5,  28  ! Plane Y', wire 28
+  34,   5,  29  ! Plane Y', wire 29
+  35,   5,  30  ! Plane Y', wire 30
+  36,   5,  31  ! Plane Y', wire 31
+  37,   5,  32  ! Plane Y', wire 32
+  38,   5,  33  ! Plane Y', wire 33
+  39,   5,  34  ! Plane Y', wire 34
+  40,   5,  35  ! Plane Y', wire 35
+  41,   5,  36  ! Plane Y', wire 36
+  42,   5,  37  ! Plane Y', wire 37
+  43,   5,  38  ! Plane Y', wire 38
+  44,   5,  39  ! Plane Y', wire 39
+  48,   5,  40  ! Plane Y', wire 40
+  49,   5,  41  ! Plane Y', wire 41
+  50,   5,  42  ! Plane Y', wire 42
+  51,   5,  43  ! Plane Y', wire 43
+  52,   5,  44  ! Plane Y', wire 44
+  53,   5,  45  ! Plane Y', wire 45
+  54,   5,  46  ! Plane Y', wire 46
+  55,   5,  47  ! Plane Y', wire 47
+  56,   5,  48  ! Plane Y', wire 48
+  57,   5,  49  ! Plane Y', wire 49
+  58,   5,  50  ! Plane Y', wire 50
+  59,   5,  51  ! Plane Y', wire 51
+  60,   5,  52  ! Plane Y', wire 52
 
-! Caen 1190 VME Modules >> DC2
 SLOT=16
-! channel,plane,wire
-96,9,1 ! Plane U, wire 1
-97,9,2 ! Plane U, wire 2
-98,9,3 ! Plane U, wire 3
-99,9,4 ! Plane U, wire 4
-100,9,5 ! Plane U, wire 5
-101,9,6 ! Plane U, wire 6
-102,9,7 ! Plane U, wire 7
-103,9,8 ! Plane U, wire 8
-104,9,9 ! Plane U, wire 9
-105,9,10 ! Plane U, wire 10
-106,9,11 ! Plane U, wire 11
-107,9,12 ! Plane U, wire 12
-108,9,13 ! Plane U, wire 13
-109,9,14 ! Plane U, wire 14
-110,7,113 ! Plane X, wire 113
-112,9,15 ! Plane U, wire 15
-113,9,16 ! Plane U, wire 16
-114,9,17 ! Plane U, wire 17
-115,9,18 ! Plane U, wire 18
-116,9,19 ! Plane U, wire 19
-117,9,20 ! Plane U, wire 20
-118,9,21 ! Plane U, wire 21
-119,9,22 ! Plane U, wire 22
-120,9,23 ! Plane U, wire 23
-121,9,24 ! Plane U, wire 24
-122,9,25 ! Plane U, wire 25
-123,9,26 ! Plane U, wire 26
-124,9,27 ! Plane U, wire 27
-125,9,28 ! Plane U, wire 28
-126,9,29 ! Plane U, wire 29
+REFINDEX=0
+  96,   9,   1  ! Plane U, wire 1
+  97,   9,   2  ! Plane U, wire 2
+  98,   9,   3  ! Plane U, wire 3
+  99,   9,   4  ! Plane U, wire 4
+ 100,   9,   5  ! Plane U, wire 5
+ 101,   9,   6  ! Plane U, wire 6
+ 102,   9,   7  ! Plane U, wire 7
+ 103,   9,   8  ! Plane U, wire 8
+ 104,   9,   9  ! Plane U, wire 9
+ 105,   9,  10  ! Plane U, wire 10
+ 106,   9,  11  ! Plane U, wire 11
+ 107,   9,  12  ! Plane U, wire 12
+ 108,   9,  13  ! Plane U, wire 13
+ 109,   9,  14  ! Plane U, wire 14
+ 110,   7, 113  ! Plane X, wire 113
+ 112,   9,  15  ! Plane U, wire 15
+ 113,   9,  16  ! Plane U, wire 16
+ 114,   9,  17  ! Plane U, wire 17
+ 115,   9,  18  ! Plane U, wire 18
+ 116,   9,  19  ! Plane U, wire 19
+ 117,   9,  20  ! Plane U, wire 20
+ 118,   9,  21  ! Plane U, wire 21
+ 119,   9,  22  ! Plane U, wire 22
+ 120,   9,  23  ! Plane U, wire 23
+ 121,   9,  24  ! Plane U, wire 24
+ 122,   9,  25  ! Plane U, wire 25
+ 123,   9,  26  ! Plane U, wire 26
+ 124,   9,  27  ! Plane U, wire 27
+ 125,   9,  28  ! Plane U, wire 28
+ 126,   9,  29  ! Plane U, wire 29
+
 SLOT=14
-! channel,plane,wire
-0,9,30 ! Plane U, wire 30
-1,9,31 ! Plane U, wire 31
-2,9,32 ! Plane U, wire 32
-3,9,33 ! Plane U, wire 33
-4,9,34 ! Plane U, wire 34
-5,9,35 ! Plane U, wire 35
-6,9,36 ! Plane U, wire 36
-7,9,37 ! Plane U, wire 37
-8,9,38 ! Plane U, wire 38
-9,9,39 ! Plane U, wire 39
-10,9,40 ! Plane U, wire 40
-11,9,41 ! Plane U, wire 41
-12,9,42 ! Plane U, wire 42
-13,9,43 ! Plane U, wire 43
-14,9,44 ! Plane U, wire 44
-15,9,45 ! Plane U, wire 45
-32,9,46 ! Plane U, wire 46
-33,9,47 ! Plane U, wire 47
-34,9,48 ! Plane U, wire 48
-35,9,49 ! Plane U, wire 49
-36,9,50 ! Plane U, wire 50
-37,9,51 ! Plane U, wire 51
-38,9,52 ! Plane U, wire 52
-39,9,53 ! Plane U, wire 53
-40,9,54 ! Plane U, wire 54
-41,9,55 ! Plane U, wire 55
-42,9,56 ! Plane U, wire 56
-43,9,57 ! Plane U, wire 57
-44,9,58 ! Plane U, wire 58
-45,9,59 ! Plane U, wire 59
-46,9,60 ! Plane U, wire 60
-48,9,61 ! Plane U, wire 61
-49,9,62 ! Plane U, wire 62
-50,9,63 ! Plane U, wire 63
-51,9,64 ! Plane U, wire 64
-52,9,65 ! Plane U, wire 65
-53,9,66 ! Plane U, wire 66
-54,9,67 ! Plane U, wire 67
-55,9,68 ! Plane U, wire 68
-56,9,69 ! Plane U, wire 69
-57,9,70 ! Plane U, wire 70
-58,9,71 ! Plane U, wire 71
-59,9,72 ! Plane U, wire 72
-60,9,73 ! Plane U, wire 73
-61,9,74 ! Plane U, wire 74
-62,9,75 ! Plane U, wire 75
-63,9,76 ! Plane U, wire 76
-64,9,77 ! Plane U, wire 77
-65,9,78 ! Plane U, wire 78
-66,9,79 ! Plane U, wire 79
-67,9,80 ! Plane U, wire 80
-68,9,81 ! Plane U, wire 81
-69,9,82 ! Plane U, wire 82
-70,9,83 ! Plane U, wire 83
-71,9,84 ! Plane U, wire 84
-72,9,85 ! Plane U, wire 85
-73,9,86 ! Plane U, wire 86
-74,9,87 ! Plane U, wire 87
-75,9,88 ! Plane U, wire 88
-76,9,89 ! Plane U, wire 89
-77,9,90 ! Plane U, wire 90
-78,9,91 ! Plane U, wire 91
-80,9,92 ! Plane U, wire 92
-81,9,93 ! Plane U, wire 93
-82,9,94 ! Plane U, wire 94
-83,9,95 ! Plane U, wire 95
-84,9,96 ! Plane U, wire 96
-85,9,97 ! Plane U, wire 97
-86,9,98 ! Plane U, wire 98
-87,9,99 ! Plane U, wire 99
-88,9,100 ! Plane U, wire 100
-89,9,101 ! Plane U, wire 101
-90,9,102 ! Plane U, wire 102
-91,9,103 ! Plane U, wire 103
-92,9,104 ! Plane U, wire 104
-93,9,105 ! Plane U, wire 105
-94,9,106 ! Plane U, wire 106
-95,9,107 ! Plane U, wire 107
+REFINDEX=0
+   0,   9,  30  ! Plane U, wire 30
+   1,   9,  31  ! Plane U, wire 31
+   2,   9,  32  ! Plane U, wire 32
+   3,   9,  33  ! Plane U, wire 33
+   4,   9,  34  ! Plane U, wire 34
+   5,   9,  35  ! Plane U, wire 35
+   6,   9,  36  ! Plane U, wire 36
+   7,   9,  37  ! Plane U, wire 37
+   8,   9,  38  ! Plane U, wire 38
+   9,   9,  39  ! Plane U, wire 39
+  10,   9,  40  ! Plane U, wire 40
+  11,   9,  41  ! Plane U, wire 41
+  12,   9,  42  ! Plane U, wire 42
+  13,   9,  43  ! Plane U, wire 43
+  14,   9,  44  ! Plane U, wire 44
+  15,   9,  45  ! Plane U, wire 45
+  32,   9,  46  ! Plane U, wire 46
+  33,   9,  47  ! Plane U, wire 47
+  34,   9,  48  ! Plane U, wire 48
+  35,   9,  49  ! Plane U, wire 49
+  36,   9,  50  ! Plane U, wire 50
+  37,   9,  51  ! Plane U, wire 51
+  38,   9,  52  ! Plane U, wire 52
+  39,   9,  53  ! Plane U, wire 53
+  40,   9,  54  ! Plane U, wire 54
+  41,   9,  55  ! Plane U, wire 55
+  42,   9,  56  ! Plane U, wire 56
+  43,   9,  57  ! Plane U, wire 57
+  44,   9,  58  ! Plane U, wire 58
+  45,   9,  59  ! Plane U, wire 59
+  46,   9,  60  ! Plane U, wire 60
+  48,   9,  61  ! Plane U, wire 61
+  49,   9,  62  ! Plane U, wire 62
+  50,   9,  63  ! Plane U, wire 63
+  51,   9,  64  ! Plane U, wire 64
+  52,   9,  65  ! Plane U, wire 65
+  53,   9,  66  ! Plane U, wire 66
+  54,   9,  67  ! Plane U, wire 67
+  55,   9,  68  ! Plane U, wire 68
+  56,   9,  69  ! Plane U, wire 69
+  57,   9,  70  ! Plane U, wire 70
+  58,   9,  71  ! Plane U, wire 71
+  59,   9,  72  ! Plane U, wire 72
+  60,   9,  73  ! Plane U, wire 73
+  61,   9,  74  ! Plane U, wire 74
+  62,   9,  75  ! Plane U, wire 75
+  63,   9,  76  ! Plane U, wire 76
+  64,   9,  77  ! Plane U, wire 77
+  65,   9,  78  ! Plane U, wire 78
+  66,   9,  79  ! Plane U, wire 79
+  67,   9,  80  ! Plane U, wire 80
+  68,   9,  81  ! Plane U, wire 81
+  69,   9,  82  ! Plane U, wire 82
+  70,   9,  83  ! Plane U, wire 83
+  71,   9,  84  ! Plane U, wire 84
+  72,   9,  85  ! Plane U, wire 85
+  73,   9,  86  ! Plane U, wire 86
+  74,   9,  87  ! Plane U, wire 87
+  75,   9,  88  ! Plane U, wire 88
+  76,   9,  89  ! Plane U, wire 89
+  77,   9,  90  ! Plane U, wire 90
+  78,   9,  91  ! Plane U, wire 91
+  80,   9,  92  ! Plane U, wire 92
+  81,   9,  93  ! Plane U, wire 93
+  82,   9,  94  ! Plane U, wire 94
+  83,   9,  95  ! Plane U, wire 95
+  84,   9,  96  ! Plane U, wire 96
+  85,   9,  97  ! Plane U, wire 97
+  86,   9,  98  ! Plane U, wire 98
+  87,   9,  99  ! Plane U, wire 99
+  88,   9, 100  ! Plane U, wire 100
+  89,   9, 101  ! Plane U, wire 101
+  90,   9, 102  ! Plane U, wire 102
+  91,   9, 103  ! Plane U, wire 103
+  92,   9, 104  ! Plane U, wire 104
+  93,   9, 105  ! Plane U, wire 105
+  94,   9, 106  ! Plane U, wire 106
+  95,   9, 107  ! Plane U, wire 107
+
 SLOT=16
-! channel,plane,wire
-80,10,1 ! Plane V, wire 1
-81,10,2 ! Plane V, wire 2
-82,10,3 ! Plane V, wire 3
-83,10,4 ! Plane V, wire 4
-84,10,5 ! Plane V, wire 5
-85,10,6 ! Plane V, wire 6
-86,10,7 ! Plane V, wire 7
-87,10,8 ! Plane V, wire 8
-88,10,9 ! Plane V, wire 9
-89,10,10 ! Plane V, wire 10
-90,10,11 ! Plane V, wire 11
-91,10,12 ! Plane V, wire 12
-92,10,13 ! Plane V, wire 13
-93,10,14 ! Plane V, wire 14
-94,12,113 ! Plane X', wire 113
+REFINDEX=0
+  80,  10,   1  ! Plane V, wire 1
+  81,  10,   2  ! Plane V, wire 2
+  82,  10,   3  ! Plane V, wire 3
+  83,  10,   4  ! Plane V, wire 4
+  84,  10,   5  ! Plane V, wire 5
+  85,  10,   6  ! Plane V, wire 6
+  86,  10,   7  ! Plane V, wire 7
+  87,  10,   8  ! Plane V, wire 8
+  88,  10,   9  ! Plane V, wire 9
+  89,  10,  10  ! Plane V, wire 10
+  90,  10,  11  ! Plane V, wire 11
+  91,  10,  12  ! Plane V, wire 12
+  92,  10,  13  ! Plane V, wire 13
+  93,  10,  14  ! Plane V, wire 14
+  94,  12, 113  ! Plane X', wire 113
+
 SLOT=14
-! channel,plane,wire
-96,10,15 ! Plane V, wire 15
-97,10,16 ! Plane V, wire 16
-98,10,17 ! Plane V, wire 17
-99,10,18 ! Plane V, wire 18
-100,10,19 ! Plane V, wire 19
-101,10,20 ! Plane V, wire 20
-102,10,21 ! Plane V, wire 21
-103,10,22 ! Plane V, wire 22
-104,10,23 ! Plane V, wire 23
-105,10,24 ! Plane V, wire 24
-106,10,25 ! Plane V, wire 25
-107,10,26 ! Plane V, wire 26
-108,10,27 ! Plane V, wire 27
-109,10,28 ! Plane V, wire 28
-110,10,29 ! Plane V, wire 29
-112,10,30 ! Plane V, wire 30
-113,10,31 ! Plane V, wire 31
-114,10,32 ! Plane V, wire 32
-115,10,33 ! Plane V, wire 33
-116,10,34 ! Plane V, wire 34
-117,10,35 ! Plane V, wire 35
-118,10,36 ! Plane V, wire 36
-119,10,37 ! Plane V, wire 37
-120,10,38 ! Plane V, wire 38
-121,10,39 ! Plane V, wire 39
-122,10,40 ! Plane V, wire 40
-123,10,41 ! Plane V, wire 41
-124,10,42 ! Plane V, wire 42
-125,10,43 ! Plane V, wire 43
-126,10,44 ! Plane V, wire 44
-127,10,45 ! Plane V, wire 45
+REFINDEX=0
+  96,  10,  15  ! Plane V, wire 15
+  97,  10,  16  ! Plane V, wire 16
+  98,  10,  17  ! Plane V, wire 17
+  99,  10,  18  ! Plane V, wire 18
+ 100,  10,  19  ! Plane V, wire 19
+ 101,  10,  20  ! Plane V, wire 20
+ 102,  10,  21  ! Plane V, wire 21
+ 103,  10,  22  ! Plane V, wire 22
+ 104,  10,  23  ! Plane V, wire 23
+ 105,  10,  24  ! Plane V, wire 24
+ 106,  10,  25  ! Plane V, wire 25
+ 107,  10,  26  ! Plane V, wire 26
+ 108,  10,  27  ! Plane V, wire 27
+ 109,  10,  28  ! Plane V, wire 28
+ 110,  10,  29  ! Plane V, wire 29
+ 112,  10,  30  ! Plane V, wire 30
+ 113,  10,  31  ! Plane V, wire 31
+ 114,  10,  32  ! Plane V, wire 32
+ 115,  10,  33  ! Plane V, wire 33
+ 116,  10,  34  ! Plane V, wire 34
+ 117,  10,  35  ! Plane V, wire 35
+ 118,  10,  36  ! Plane V, wire 36
+ 119,  10,  37  ! Plane V, wire 37
+ 120,  10,  38  ! Plane V, wire 38
+ 121,  10,  39  ! Plane V, wire 39
+ 122,  10,  40  ! Plane V, wire 40
+ 123,  10,  41  ! Plane V, wire 41
+ 124,  10,  42  ! Plane V, wire 42
+ 125,  10,  43  ! Plane V, wire 43
+ 126,  10,  44  ! Plane V, wire 44
+ 127,  10,  45  ! Plane V, wire 45
+
 SLOT=17
-! channel,plane,wire
-0,10,46 ! Plane V, wire 46
-1,10,47 ! Plane V, wire 47
-2,10,48 ! Plane V, wire 48
-3,10,49 ! Plane V, wire 49
-4,10,50 ! Plane V, wire 50
-5,10,51 ! Plane V, wire 51
-6,10,52 ! Plane V, wire 52
-7,10,53 ! Plane V, wire 53
-8,10,54 ! Plane V, wire 54
-9,10,55 ! Plane V, wire 55
-10,10,56 ! Plane V, wire 56
-11,10,57 ! Plane V, wire 57
-12,10,58 ! Plane V, wire 58
-13,10,59 ! Plane V, wire 59
-14,10,60 ! Plane V, wire 60
-16,10,61 ! Plane V, wire 61
-17,10,62 ! Plane V, wire 62
-18,10,63 ! Plane V, wire 63
-19,10,64 ! Plane V, wire 64
-20,10,65 ! Plane V, wire 65
-21,10,66 ! Plane V, wire 66
-22,10,67 ! Plane V, wire 67
-23,10,68 ! Plane V, wire 68
-24,10,69 ! Plane V, wire 69
-25,10,70 ! Plane V, wire 70
-26,10,71 ! Plane V, wire 71
-27,10,72 ! Plane V, wire 72
-28,10,73 ! Plane V, wire 73
-29,10,74 ! Plane V, wire 74
-30,10,75 ! Plane V, wire 75
-31,10,76 ! Plane V, wire 76
-32,10,77 ! Plane V, wire 77
-33,10,78 ! Plane V, wire 78
-34,10,79 ! Plane V, wire 79
-35,10,80 ! Plane V, wire 80
-36,10,81 ! Plane V, wire 81
-37,10,82 ! Plane V, wire 82
-38,10,83 ! Plane V, wire 83
-39,10,84 ! Plane V, wire 84
-40,10,85 ! Plane V, wire 85
-41,10,86 ! Plane V, wire 86
-42,10,87 ! Plane V, wire 87
-43,10,88 ! Plane V, wire 88
-44,10,89 ! Plane V, wire 89
-45,10,90 ! Plane V, wire 90
-46,10,91 ! Plane V, wire 91
-48,10,92 ! Plane V, wire 92
-49,10,93 ! Plane V, wire 93
-50,10,94 ! Plane V, wire 94
-51,10,95 ! Plane V, wire 95
-52,10,96 ! Plane V, wire 96
-53,10,97 ! Plane V, wire 97
-54,10,98 ! Plane V, wire 98
-55,10,99 ! Plane V, wire 99
-56,10,100 ! Plane V, wire 100
-57,10,101 ! Plane V, wire 101
-58,10,102 ! Plane V, wire 102
-59,10,103 ! Plane V, wire 103
-60,10,104 ! Plane V, wire 104
-61,10,105 ! Plane V, wire 105
-62,10,106 ! Plane V, wire 106
-63,10,107 ! Plane V, wire 107
+REFINDEX=0
+ 127,1000,   0,   3
+   0,  10,  46  ! Plane V, wire 46
+   1,  10,  47  ! Plane V, wire 47
+   2,  10,  48  ! Plane V, wire 48
+   3,  10,  49  ! Plane V, wire 49
+   4,  10,  50  ! Plane V, wire 50
+   5,  10,  51  ! Plane V, wire 51
+   6,  10,  52  ! Plane V, wire 52
+   7,  10,  53  ! Plane V, wire 53
+   8,  10,  54  ! Plane V, wire 54
+   9,  10,  55  ! Plane V, wire 55
+  10,  10,  56  ! Plane V, wire 56
+  11,  10,  57  ! Plane V, wire 57
+  12,  10,  58  ! Plane V, wire 58
+  13,  10,  59  ! Plane V, wire 59
+  14,  10,  60  ! Plane V, wire 60
+  16,  10,  61  ! Plane V, wire 61
+  17,  10,  62  ! Plane V, wire 62
+  18,  10,  63  ! Plane V, wire 63
+  19,  10,  64  ! Plane V, wire 64
+  20,  10,  65  ! Plane V, wire 65
+  21,  10,  66  ! Plane V, wire 66
+  22,  10,  67  ! Plane V, wire 67
+  23,  10,  68  ! Plane V, wire 68
+  24,  10,  69  ! Plane V, wire 69
+  25,  10,  70  ! Plane V, wire 70
+  26,  10,  71  ! Plane V, wire 71
+  27,  10,  72  ! Plane V, wire 72
+  28,  10,  73  ! Plane V, wire 73
+  29,  10,  74  ! Plane V, wire 74
+  30,  10,  75  ! Plane V, wire 75
+  31,  10,  76  ! Plane V, wire 76
+  32,  10,  77  ! Plane V, wire 77
+  33,  10,  78  ! Plane V, wire 78
+  34,  10,  79  ! Plane V, wire 79
+  35,  10,  80  ! Plane V, wire 80
+  36,  10,  81  ! Plane V, wire 81
+  37,  10,  82  ! Plane V, wire 82
+  38,  10,  83  ! Plane V, wire 83
+  39,  10,  84  ! Plane V, wire 84
+  40,  10,  85  ! Plane V, wire 85
+  41,  10,  86  ! Plane V, wire 86
+  42,  10,  87  ! Plane V, wire 87
+  43,  10,  88  ! Plane V, wire 88
+  44,  10,  89  ! Plane V, wire 89
+  45,  10,  90  ! Plane V, wire 90
+  46,  10,  91  ! Plane V, wire 91
+  48,  10,  92  ! Plane V, wire 92
+  49,  10,  93  ! Plane V, wire 93
+  50,  10,  94  ! Plane V, wire 94
+  51,  10,  95  ! Plane V, wire 95
+  52,  10,  96  ! Plane V, wire 96
+  53,  10,  97  ! Plane V, wire 97
+  54,  10,  98  ! Plane V, wire 98
+  55,  10,  99  ! Plane V, wire 99
+  56,  10, 100  ! Plane V, wire 100
+  57,  10, 101  ! Plane V, wire 101
+  58,  10, 102  ! Plane V, wire 102
+  59,  10, 103  ! Plane V, wire 103
+  60,  10, 104  ! Plane V, wire 104
+  61,  10, 105  ! Plane V, wire 105
+  62,  10, 106  ! Plane V, wire 106
+  63,  10, 107  ! Plane V, wire 107
+
 SLOT=13
-! channel,plane,wire
-0,7,1 ! Plane X, wire 1
-1,7,2 ! Plane X, wire 2
-2,7,3 ! Plane X, wire 3
-3,7,4 ! Plane X, wire 4
-4,7,5 ! Plane X, wire 5
-5,7,6 ! Plane X, wire 6
-6,7,7 ! Plane X, wire 7
-7,7,8 ! Plane X, wire 8
-8,7,9 ! Plane X, wire 9
-9,7,10 ! Plane X, wire 10
-10,7,11 ! Plane X, wire 11
-11,7,12 ! Plane X, wire 12
-12,7,13 ! Plane X, wire 13
-13,7,14 ! Plane X, wire 14
-14,7,15 ! Plane X, wire 15
-15,7,16 ! Plane X, wire 16
-16,7,17 ! Plane X, wire 17
-17,7,18 ! Plane X, wire 18
-18,7,19 ! Plane X, wire 19
-19,7,20 ! Plane X, wire 20
-20,7,21 ! Plane X, wire 21
-21,7,22 ! Plane X, wire 22
-22,7,23 ! Plane X, wire 23
-23,7,24 ! Plane X, wire 24
-24,7,25 ! Plane X, wire 25
-25,7,26 ! Plane X, wire 26
-26,7,27 ! Plane X, wire 27
-27,7,28 ! Plane X, wire 28
-28,7,29 ! Plane X, wire 29
-29,7,30 ! Plane X, wire 30
-30,7,31 ! Plane X, wire 31
-31,7,32 ! Plane X, wire 32
-32,7,33 ! Plane X, wire 33
-33,7,34 ! Plane X, wire 34
-34,7,35 ! Plane X, wire 35
-35,7,36 ! Plane X, wire 36
-36,7,37 ! Plane X, wire 37
-37,7,38 ! Plane X, wire 38
-38,7,39 ! Plane X, wire 39
-39,7,40 ! Plane X, wire 40
-40,7,41 ! Plane X, wire 41
-41,7,42 ! Plane X, wire 42
-42,7,43 ! Plane X, wire 43
-43,7,44 ! Plane X, wire 44
-44,7,45 ! Plane X, wire 45
-45,7,46 ! Plane X, wire 46
-46,7,47 ! Plane X, wire 47
-47,7,48 ! Plane X, wire 48
-48,7,49 ! Plane X, wire 49
-49,7,50 ! Plane X, wire 50
-50,7,51 ! Plane X, wire 51
-51,7,52 ! Plane X, wire 52
-52,7,53 ! Plane X, wire 53
-53,7,54 ! Plane X, wire 54
-54,7,55 ! Plane X, wire 55
-55,7,56 ! Plane X, wire 56
-56,7,57 ! Plane X, wire 57
-57,7,58 ! Plane X, wire 58
-58,7,59 ! Plane X, wire 59
-59,7,60 ! Plane X, wire 60
-60,7,61 ! Plane X, wire 61
-61,7,62 ! Plane X, wire 62
-62,7,63 ! Plane X, wire 63
-63,7,64 ! Plane X, wire 64
-64,7,65 ! Plane X, wire 65
-65,7,66 ! Plane X, wire 66
-66,7,67 ! Plane X, wire 67
-67,7,68 ! Plane X, wire 68
-68,7,69 ! Plane X, wire 69
-69,7,70 ! Plane X, wire 70
-70,7,71 ! Plane X, wire 71
-71,7,72 ! Plane X, wire 72
-72,7,73 ! Plane X, wire 73
-73,7,74 ! Plane X, wire 74
-74,7,75 ! Plane X, wire 75
-75,7,76 ! Plane X, wire 76
-76,7,77 ! Plane X, wire 77
-77,7,78 ! Plane X, wire 78
-78,7,79 ! Plane X, wire 79
-79,7,80 ! Plane X, wire 80
-80,7,81 ! Plane X, wire 81
-81,7,82 ! Plane X, wire 82
-82,7,83 ! Plane X, wire 83
-83,7,84 ! Plane X, wire 84
-84,7,85 ! Plane X, wire 85
-85,7,86 ! Plane X, wire 86
-86,7,87 ! Plane X, wire 87
-87,7,88 ! Plane X, wire 88
-88,7,89 ! Plane X, wire 89
-89,7,90 ! Plane X, wire 90
-90,7,91 ! Plane X, wire 91
-91,7,92 ! Plane X, wire 92
-92,7,93 ! Plane X, wire 93
-93,7,94 ! Plane X, wire 94
-94,7,95 ! Plane X, wire 95
-95,7,96 ! Plane X, wire 96
-96,7,97 ! Plane X, wire 97
-97,7,98 ! Plane X, wire 98
-98,7,99 ! Plane X, wire 99
-99,7,100 ! Plane X, wire 100
-100,7,101 ! Plane X, wire 101
-101,7,102 ! Plane X, wire 102
-102,7,103 ! Plane X, wire 103
-103,7,104 ! Plane X, wire 104
-104,7,105 ! Plane X, wire 105
-105,7,106 ! Plane X, wire 106
-106,7,107 ! Plane X, wire 107
-107,7,108 ! Plane X, wire 108
-108,7,109 ! Plane X, wire 109
-109,7,110 ! Plane X, wire 110
-110,7,111 ! Plane X, wire 111
-111,7,112 ! Plane X, wire 112
-112,12,1 ! Plane X', wire 1
-113,12,2 ! Plane X', wire 2
-114,12,3 ! Plane X', wire 3
-115,12,4 ! Plane X', wire 4
-116,12,5 ! Plane X', wire 5
-117,12,6 ! Plane X', wire 6
-118,12,7 ! Plane X', wire 7
-119,12,8 ! Plane X', wire 8
-120,12,9 ! Plane X', wire 9
-121,12,10 ! Plane X', wire 10
-122,12,11 ! Plane X', wire 11
-123,12,12 ! Plane X', wire 12
-124,12,13 ! Plane X', wire 13
-125,12,14 ! Plane X', wire 14
-126,12,15 ! Plane X', wire 15
-127,12,16 ! Plane X', wire 16
-SLOT=14
-! channel,plane,wire
-16,12,17 ! Plane X', wire 17
-17,12,18 ! Plane X', wire 18
-18,12,19 ! Plane X', wire 19
-19,12,20 ! Plane X', wire 20
-20,12,21 ! Plane X', wire 21
-21,12,22 ! Plane X', wire 22
-22,12,23 ! Plane X', wire 23
-23,12,24 ! Plane X', wire 24
-24,12,25 ! Plane X', wire 25
-25,12,26 ! Plane X', wire 26
-26,12,27 ! Plane X', wire 27
-27,12,28 ! Plane X', wire 28
-28,12,29 ! Plane X', wire 29
-29,12,30 ! Plane X', wire 30
-30,12,31 ! Plane X', wire 31
-31,12,32 ! Plane X', wire 32
-SLOT=16
-! channel,plane,wire
-0,12,33 ! Plane X', wire 33
-1,12,34 ! Plane X', wire 34
-2,12,35 ! Plane X', wire 35
-3,12,36 ! Plane X', wire 36
-4,12,37 ! Plane X', wire 37
-5,12,38 ! Plane X', wire 38
-6,12,39 ! Plane X', wire 39
-7,12,40 ! Plane X', wire 40
-8,12,41 ! Plane X', wire 41
-9,12,42 ! Plane X', wire 42
-10,12,43 ! Plane X', wire 43
-11,12,44 ! Plane X', wire 44
-12,12,45 ! Plane X', wire 45
-13,12,46 ! Plane X', wire 46
-14,12,47 ! Plane X', wire 47
-15,12,48 ! Plane X', wire 48
-16,12,49 ! Plane X', wire 49
-17,12,50 ! Plane X', wire 50
-18,12,51 ! Plane X', wire 51
-19,12,52 ! Plane X', wire 52
-20,12,53 ! Plane X', wire 53
-21,12,54 ! Plane X', wire 54
-22,12,55 ! Plane X', wire 55
-23,12,56 ! Plane X', wire 56
-24,12,57 ! Plane X', wire 57
-25,12,58 ! Plane X', wire 58
-26,12,59 ! Plane X', wire 59
-27,12,60 ! Plane X', wire 60
-28,12,61 ! Plane X', wire 61
-29,12,62 ! Plane X', wire 62
-30,12,63 ! Plane X', wire 63
-31,12,64 ! Plane X', wire 64
-32,12,65 ! Plane X', wire 65
-33,12,66 ! Plane X', wire 66
-34,12,67 ! Plane X', wire 67
-35,12,68 ! Plane X', wire 68
-36,12,69 ! Plane X', wire 69
-37,12,70 ! Plane X', wire 70
-38,12,71 ! Plane X', wire 71
-39,12,72 ! Plane X', wire 72
-40,12,73 ! Plane X', wire 73
-41,12,74 ! Plane X', wire 74
-42,12,75 ! Plane X', wire 75
-43,12,76 ! Plane X', wire 76
-44,12,77 ! Plane X', wire 77
-45,12,78 ! Plane X', wire 78
-46,12,79 ! Plane X', wire 79
-47,12,80 ! Plane X', wire 80
-48,12,81 ! Plane X', wire 81
-49,12,82 ! Plane X', wire 82
-50,12,83 ! Plane X', wire 83
-51,12,84 ! Plane X', wire 84
-52,12,85 ! Plane X', wire 85
-53,12,86 ! Plane X', wire 86
-54,12,87 ! Plane X', wire 87
-55,12,88 ! Plane X', wire 88
-56,12,89 ! Plane X', wire 89
-57,12,90 ! Plane X', wire 90
-58,12,91 ! Plane X', wire 91
-59,12,92 ! Plane X', wire 92
-60,12,93 ! Plane X', wire 93
-61,12,94 ! Plane X', wire 94
-62,12,95 ! Plane X', wire 95
-63,12,96 ! Plane X', wire 96
-64,12,97 ! Plane X', wire 97
-65,12,98 ! Plane X', wire 98
-66,12,99 ! Plane X', wire 99
-67,12,100 ! Plane X', wire 100
-68,12,101 ! Plane X', wire 101
-69,12,102 ! Plane X', wire 102
-70,12,103 ! Plane X', wire 103
-71,12,104 ! Plane X', wire 104
-72,12,105 ! Plane X', wire 105
-73,12,106 ! Plane X', wire 106
-74,12,107 ! Plane X', wire 107
-75,12,108 ! Plane X', wire 108
-76,12,109 ! Plane X', wire 109
-77,12,110 ! Plane X', wire 110
-78,12,111 ! Plane X', wire 111
-79,12,112 ! Plane X', wire 112
-SLOT=17
-! channel,plane,wire
-64,8,1 ! Plane Y, wire 1
-65,8,2 ! Plane Y, wire 2
-66,8,3 ! Plane Y, wire 3
-67,8,4 ! Plane Y, wire 4
-68,8,5 ! Plane Y, wire 5
-69,8,6 ! Plane Y, wire 6
-70,8,7 ! Plane Y, wire 7
-71,8,8 ! Plane Y, wire 8
-72,8,9 ! Plane Y, wire 9
-73,8,10 ! Plane Y, wire 10
-74,8,11 ! Plane Y, wire 11
-75,8,12 ! Plane Y, wire 12
-76,8,13 ! Plane Y, wire 13
-80,8,14 ! Plane Y, wire 14
-81,8,15 ! Plane Y, wire 15
-82,8,16 ! Plane Y, wire 16
-83,8,17 ! Plane Y, wire 17
-84,8,18 ! Plane Y, wire 18
-85,8,19 ! Plane Y, wire 19
-86,8,20 ! Plane Y, wire 20
-87,8,21 ! Plane Y, wire 21
-88,8,22 ! Plane Y, wire 22
-89,8,23 ! Plane Y, wire 23
-90,8,24 ! Plane Y, wire 24
-91,8,25 ! Plane Y, wire 25
-92,8,26 ! Plane Y, wire 26
-96,8,27 ! Plane Y, wire 27
-97,8,28 ! Plane Y, wire 28
-98,8,29 ! Plane Y, wire 29
-99,8,30 ! Plane Y, wire 30
-100,8,31 ! Plane Y, wire 31
-101,8,32 ! Plane Y, wire 32
-102,8,33 ! Plane Y, wire 33
-103,8,34 ! Plane Y, wire 34
-104,8,35 ! Plane Y, wire 35
-105,8,36 ! Plane Y, wire 36
-106,8,37 ! Plane Y, wire 37
-107,8,38 ! Plane Y, wire 38
-108,8,39 ! Plane Y, wire 39
-112,8,40 ! Plane Y, wire 40
-113,8,41 ! Plane Y, wire 41
-114,8,42 ! Plane Y, wire 42
-115,8,43 ! Plane Y, wire 43
-116,8,44 ! Plane Y, wire 44
-117,8,45 ! Plane Y, wire 45
-118,8,46 ! Plane Y, wire 46
-119,8,47 ! Plane Y, wire 47
-120,8,48 ! Plane Y, wire 48
-121,8,49 ! Plane Y, wire 49
-122,8,50 ! Plane Y, wire 50
-123,8,51 ! Plane Y, wire 51
-124,8,52 ! Plane Y, wire 52
-SLOT=10
-! channel,plane,wire
-64,11,1 ! Plane Y', wire 1
-65,11,2 ! Plane Y', wire 2
-66,11,3 ! Plane Y', wire 3
-67,11,4 ! Plane Y', wire 4
-68,11,5 ! Plane Y', wire 5
-69,11,6 ! Plane Y', wire 6
-70,11,7 ! Plane Y', wire 7
-71,11,8 ! Plane Y', wire 8
-72,11,9 ! Plane Y', wire 9
-73,11,10 ! Plane Y', wire 10
-74,11,11 ! Plane Y', wire 11
-75,11,12 ! Plane Y', wire 12
-76,11,13 ! Plane Y', wire 13
-80,11,14 ! Plane Y', wire 14
-81,11,15 ! Plane Y', wire 15
-82,11,16 ! Plane Y', wire 16
-83,11,17 ! Plane Y', wire 17
-84,11,18 ! Plane Y', wire 18
-85,11,19 ! Plane Y', wire 19
-86,11,20 ! Plane Y', wire 20
-87,11,21 ! Plane Y', wire 21
-88,11,22 ! Plane Y', wire 22
-89,11,23 ! Plane Y', wire 23
-90,11,24 ! Plane Y', wire 24
-91,11,25 ! Plane Y', wire 25
-92,11,26 ! Plane Y', wire 26
-96,11,27 ! Plane Y', wire 27
-97,11,28 ! Plane Y', wire 28
-98,11,29 ! Plane Y', wire 29
-99,11,30 ! Plane Y', wire 30
-100,11,31 ! Plane Y', wire 31
-101,11,32 ! Plane Y', wire 32
-102,11,33 ! Plane Y', wire 33
-103,11,34 ! Plane Y', wire 34
-104,11,35 ! Plane Y', wire 35
-105,11,36 ! Plane Y', wire 36
-106,11,37 ! Plane Y', wire 37
-107,11,38 ! Plane Y', wire 38
-108,11,39 ! Plane Y', wire 39
-112,11,40 ! Plane Y', wire 40
-113,11,41 ! Plane Y', wire 41
-114,11,42 ! Plane Y', wire 42
-115,11,43 ! Plane Y', wire 43
-116,11,44 ! Plane Y', wire 44
-117,11,45 ! Plane Y', wire 45
-118,11,46 ! Plane Y', wire 46
-119,11,47 ! Plane Y', wire 47
-120,11,48 ! Plane Y', wire 48
-121,11,49 ! Plane Y', wire 49
-122,11,50 ! Plane Y', wire 50
-123,11,51 ! Plane Y', wire 51
-124,11,52 ! Plane Y', wire 52
+REFINDEX=0
+   0,   7,   1  ! Plane X, wire 1
+   1,   7,   2  ! Plane X, wire 2
+   2,   7,   3  ! Plane X, wire 3
+   3,   7,   4  ! Plane X, wire 4
+   4,   7,   5  ! Plane X, wire 5
+   5,   7,   6  ! Plane X, wire 6
+   6,   7,   7  ! Plane X, wire 7
+   7,   7,   8  ! Plane X, wire 8
+   8,   7,   9  ! Plane X, wire 9
+   9,   7,  10  ! Plane X, wire 10
+  10,   7,  11  ! Plane X, wire 11
+  11,   7,  12  ! Plane X, wire 12
+  12,   7,  13  ! Plane X, wire 13
+  13,   7,  14  ! Plane X, wire 14
+  14,   7,  15  ! Plane X, wire 15
+  15,   7,  16  ! Plane X, wire 16
+  16,   7,  17  ! Plane X, wire 17
+  17,   7,  18  ! Plane X, wire 18
+  18,   7,  19  ! Plane X, wire 19
+  19,   7,  20  ! Plane X, wire 20
+  20,   7,  21  ! Plane X, wire 21
+  21,   7,  22  ! Plane X, wire 22
+  22,   7,  23  ! Plane X, wire 23
+  23,   7,  24  ! Plane X, wire 24
+  24,   7,  25  ! Plane X, wire 25
+  25,   7,  26  ! Plane X, wire 26
+  26,   7,  27  ! Plane X, wire 27
+  27,   7,  28  ! Plane X, wire 28
+  28,   7,  29  ! Plane X, wire 29
+  29,   7,  30  ! Plane X, wire 30
+  30,   7,  31  ! Plane X, wire 31
+  31,   7,  32  ! Plane X, wire 32
+  32,   7,  33  ! Plane X, wire 33
+  33,   7,  34  ! Plane X, wire 34
+  34,   7,  35  ! Plane X, wire 35
+  35,   7,  36  ! Plane X, wire 36
+  36,   7,  37  ! Plane X, wire 37
+  37,   7,  38  ! Plane X, wire 38
+  38,   7,  39  ! Plane X, wire 39
+  39,   7,  40  ! Plane X, wire 40
+  40,   7,  41  ! Plane X, wire 41
+  41,   7,  42  ! Plane X, wire 42
+  42,   7,  43  ! Plane X, wire 43
+  43,   7,  44  ! Plane X, wire 44
+  44,   7,  45  ! Plane X, wire 45
+  45,   7,  46  ! Plane X, wire 46
+  46,   7,  47  ! Plane X, wire 47
+  47,   7,  48  ! Plane X, wire 48
+  48,   7,  49  ! Plane X, wire 49
+  49,   7,  50  ! Plane X, wire 50
+  50,   7,  51  ! Plane X, wire 51
+  51,   7,  52  ! Plane X, wire 52
+  52,   7,  53  ! Plane X, wire 53
+  53,   7,  54  ! Plane X, wire 54
+  54,   7,  55  ! Plane X, wire 55
+  55,   7,  56  ! Plane X, wire 56
+  56,   7,  57  ! Plane X, wire 57
+  57,   7,  58  ! Plane X, wire 58
+  58,   7,  59  ! Plane X, wire 59
+  59,   7,  60  ! Plane X, wire 60
+  60,   7,  61  ! Plane X, wire 61
+  61,   7,  62  ! Plane X, wire 62
+  62,   7,  63  ! Plane X, wire 63
+  63,   7,  64  ! Plane X, wire 64
+  64,   7,  65  ! Plane X, wire 65
+  65,   7,  66  ! Plane X, wire 66
+  66,   7,  67  ! Plane X, wire 67
+  67,   7,  68  ! Plane X, wire 68
+  68,   7,  69  ! Plane X, wire 69
+  69,   7,  70  ! Plane X, wire 70
+  70,   7,  71  ! Plane X, wire 71
+  71,   7,  72  ! Plane X, wire 72
+  72,   7,  73  ! Plane X, wire 73
+  73,   7,  74  ! Plane X, wire 74
+  74,   7,  75  ! Plane X, wire 75
+  75,   7,  76  ! Plane X, wire 76
+  76,   7,  77  ! Plane X, wire 77
+  77,   7,  78  ! Plane X, wire 78
+  78,   7,  79  ! Plane X, wire 79
+  79,   7,  80  ! Plane X, wire 80
+  80,   7,  81  ! Plane X, wire 81
+  81,   7,  82  ! Plane X, wire 82
+  82,   7,  83  ! Plane X, wire 83
+  83,   7,  84  ! Plane X, wire 84
+  84,   7,  85  ! Plane X, wire 85
+  85,   7,  86  ! Plane X, wire 86
+  86,   7,  87  ! Plane X, wire 87
+  87,   7,  88  ! Plane X, wire 88
+  88,   7,  89  ! Plane X, wire 89
+  89,   7,  90  ! Plane X, wire 90
+  90,   7,  91  ! Plane X, wire 91
+  91,   7,  92  ! Plane X, wire 92
+  92,   7,  93  ! Plane X, wire 93
+  93,   7,  94  ! Plane X, wire 94
+  94,   7,  95  ! Plane X, wire 95
+  95,   7,  96  ! Plane X, wire 96
+  96,   7,  97  ! Plane X, wire 97
+  97,   7,  98  ! Plane X, wire 98
+  98,   7,  99  ! Plane X, wire 99
+  99,   7, 100  ! Plane X, wire 100
+ 100,   7, 101  ! Plane X, wire 101
+ 101,   7, 102  ! Plane X, wire 102
+ 102,   7, 103  ! Plane X, wire 103
+ 103,   7, 104  ! Plane X, wire 104
+ 104,   7, 105  ! Plane X, wire 105
+ 105,   7, 106  ! Plane X, wire 106
+ 106,   7, 107  ! Plane X, wire 107
+ 107,   7, 108  ! Plane X, wire 108
+ 108,   7, 109  ! Plane X, wire 109
+ 109,   7, 110  ! Plane X, wire 110
+ 110,   7, 111  ! Plane X, wire 111
+ 111,   7, 112  ! Plane X, wire 112
+ 112,  12,   1  ! Plane X', wire 1
+ 113,  12,   2  ! Plane X', wire 2
+ 114,  12,   3  ! Plane X', wire 3
+ 115,  12,   4  ! Plane X', wire 4
+ 116,  12,   5  ! Plane X', wire 5
+ 117,  12,   6  ! Plane X', wire 6
+ 118,  12,   7  ! Plane X', wire 7
+ 119,  12,   8  ! Plane X', wire 8
+ 120,  12,   9  ! Plane X', wire 9
+ 121,  12,  10  ! Plane X', wire 10
+ 122,  12,  11  ! Plane X', wire 11
+ 123,  12,  12  ! Plane X', wire 12
+ 124,  12,  13  ! Plane X', wire 13
+ 125,  12,  14  ! Plane X', wire 14
+ 126,  12,  15  ! Plane X', wire 15
+ 127,  12,  16  ! Plane X', wire 16
 
+SLOT=14
+REFINDEX=0
+  16,  12,  17  ! Plane X', wire 17
+  17,  12,  18  ! Plane X', wire 18
+  18,  12,  19  ! Plane X', wire 19
+  19,  12,  20  ! Plane X', wire 20
+  20,  12,  21  ! Plane X', wire 21
+  21,  12,  22  ! Plane X', wire 22
+  22,  12,  23  ! Plane X', wire 23
+  23,  12,  24  ! Plane X', wire 24
+  24,  12,  25  ! Plane X', wire 25
+  25,  12,  26  ! Plane X', wire 26
+  26,  12,  27  ! Plane X', wire 27
+  27,  12,  28  ! Plane X', wire 28
+  28,  12,  29  ! Plane X', wire 29
+  29,  12,  30  ! Plane X', wire 30
+  30,  12,  31  ! Plane X', wire 31
+  31,  12,  32  ! Plane X', wire 32
 
+SLOT=16
+REFINDEX=0
+   0,  12,  33  ! Plane X', wire 33
+   1,  12,  34  ! Plane X', wire 34
+   2,  12,  35  ! Plane X', wire 35
+   3,  12,  36  ! Plane X', wire 36
+   4,  12,  37  ! Plane X', wire 37
+   5,  12,  38  ! Plane X', wire 38
+   6,  12,  39  ! Plane X', wire 39
+   7,  12,  40  ! Plane X', wire 40
+   8,  12,  41  ! Plane X', wire 41
+   9,  12,  42  ! Plane X', wire 42
+  10,  12,  43  ! Plane X', wire 43
+  11,  12,  44  ! Plane X', wire 44
+  12,  12,  45  ! Plane X', wire 45
+  13,  12,  46  ! Plane X', wire 46
+  14,  12,  47  ! Plane X', wire 47
+  15,  12,  48  ! Plane X', wire 48
+  16,  12,  49  ! Plane X', wire 49
+  17,  12,  50  ! Plane X', wire 50
+  18,  12,  51  ! Plane X', wire 51
+  19,  12,  52  ! Plane X', wire 52
+  20,  12,  53  ! Plane X', wire 53
+  21,  12,  54  ! Plane X', wire 54
+  22,  12,  55  ! Plane X', wire 55
+  23,  12,  56  ! Plane X', wire 56
+  24,  12,  57  ! Plane X', wire 57
+  25,  12,  58  ! Plane X', wire 58
+  26,  12,  59  ! Plane X', wire 59
+  27,  12,  60  ! Plane X', wire 60
+  28,  12,  61  ! Plane X', wire 61
+  29,  12,  62  ! Plane X', wire 62
+  30,  12,  63  ! Plane X', wire 63
+  31,  12,  64  ! Plane X', wire 64
+  32,  12,  65  ! Plane X', wire 65
+  33,  12,  66  ! Plane X', wire 66
+  34,  12,  67  ! Plane X', wire 67
+  35,  12,  68  ! Plane X', wire 68
+  36,  12,  69  ! Plane X', wire 69
+  37,  12,  70  ! Plane X', wire 70
+  38,  12,  71  ! Plane X', wire 71
+  39,  12,  72  ! Plane X', wire 72
+  40,  12,  73  ! Plane X', wire 73
+  41,  12,  74  ! Plane X', wire 74
+  42,  12,  75  ! Plane X', wire 75
+  43,  12,  76  ! Plane X', wire 76
+  44,  12,  77  ! Plane X', wire 77
+  45,  12,  78  ! Plane X', wire 78
+  46,  12,  79  ! Plane X', wire 79
+  47,  12,  80  ! Plane X', wire 80
+  48,  12,  81  ! Plane X', wire 81
+  49,  12,  82  ! Plane X', wire 82
+  50,  12,  83  ! Plane X', wire 83
+  51,  12,  84  ! Plane X', wire 84
+  52,  12,  85  ! Plane X', wire 85
+  53,  12,  86  ! Plane X', wire 86
+  54,  12,  87  ! Plane X', wire 87
+  55,  12,  88  ! Plane X', wire 88
+  56,  12,  89  ! Plane X', wire 89
+  57,  12,  90  ! Plane X', wire 90
+  58,  12,  91  ! Plane X', wire 91
+  59,  12,  92  ! Plane X', wire 92
+  60,  12,  93  ! Plane X', wire 93
+  61,  12,  94  ! Plane X', wire 94
+  62,  12,  95  ! Plane X', wire 95
+  63,  12,  96  ! Plane X', wire 96
+  64,  12,  97  ! Plane X', wire 97
+  65,  12,  98  ! Plane X', wire 98
+  66,  12,  99  ! Plane X', wire 99
+  67,  12, 100  ! Plane X', wire 100
+  68,  12, 101  ! Plane X', wire 101
+  69,  12, 102  ! Plane X', wire 102
+  70,  12, 103  ! Plane X', wire 103
+  71,  12, 104  ! Plane X', wire 104
+  72,  12, 105  ! Plane X', wire 105
+  73,  12, 106  ! Plane X', wire 106
+  74,  12, 107  ! Plane X', wire 107
+  75,  12, 108  ! Plane X', wire 108
+  76,  12, 109  ! Plane X', wire 109
+  77,  12, 110  ! Plane X', wire 110
+  78,  12, 111  ! Plane X', wire 111
+  79,  12, 112  ! Plane X', wire 112
 
+SLOT=17
+REFINDEX=0
+  64,   8,   1  ! Plane Y, wire 1
+  65,   8,   2  ! Plane Y, wire 2
+  66,   8,   3  ! Plane Y, wire 3
+  67,   8,   4  ! Plane Y, wire 4
+  68,   8,   5  ! Plane Y, wire 5
+  69,   8,   6  ! Plane Y, wire 6
+  70,   8,   7  ! Plane Y, wire 7
+  71,   8,   8  ! Plane Y, wire 8
+  72,   8,   9  ! Plane Y, wire 9
+  73,   8,  10  ! Plane Y, wire 10
+  74,   8,  11  ! Plane Y, wire 11
+  75,   8,  12  ! Plane Y, wire 12
+  76,   8,  13  ! Plane Y, wire 13
+  80,   8,  14  ! Plane Y, wire 14
+  81,   8,  15  ! Plane Y, wire 15
+  82,   8,  16  ! Plane Y, wire 16
+  83,   8,  17  ! Plane Y, wire 17
+  84,   8,  18  ! Plane Y, wire 18
+  85,   8,  19  ! Plane Y, wire 19
+  86,   8,  20  ! Plane Y, wire 20
+  87,   8,  21  ! Plane Y, wire 21
+  88,   8,  22  ! Plane Y, wire 22
+  89,   8,  23  ! Plane Y, wire 23
+  90,   8,  24  ! Plane Y, wire 24
+  91,   8,  25  ! Plane Y, wire 25
+  92,   8,  26  ! Plane Y, wire 26
+  96,   8,  27  ! Plane Y, wire 27
+  97,   8,  28  ! Plane Y, wire 28
+  98,   8,  29  ! Plane Y, wire 29
+  99,   8,  30  ! Plane Y, wire 30
+ 100,   8,  31  ! Plane Y, wire 31
+ 101,   8,  32  ! Plane Y, wire 32
+ 102,   8,  33  ! Plane Y, wire 33
+ 103,   8,  34  ! Plane Y, wire 34
+ 104,   8,  35  ! Plane Y, wire 35
+ 105,   8,  36  ! Plane Y, wire 36
+ 106,   8,  37  ! Plane Y, wire 37
+ 107,   8,  38  ! Plane Y, wire 38
+ 108,   8,  39  ! Plane Y, wire 39
+ 112,   8,  40  ! Plane Y, wire 40
+ 113,   8,  41  ! Plane Y, wire 41
+ 114,   8,  42  ! Plane Y, wire 42
+ 115,   8,  43  ! Plane Y, wire 43
+ 116,   8,  44  ! Plane Y, wire 44
+ 117,   8,  45  ! Plane Y, wire 45
+ 118,   8,  46  ! Plane Y, wire 46
+ 119,   8,  47  ! Plane Y, wire 47
+ 120,   8,  48  ! Plane Y, wire 48
+ 121,   8,  49  ! Plane Y, wire 49
+ 122,   8,  50  ! Plane Y, wire 50
+ 123,   8,  51  ! Plane Y, wire 51
+ 124,   8,  52  ! Plane Y, wire 52
 
+SLOT=10
+REFINDEX=0
+ 127,1000,   0,   1
+  64,  11,   1  ! Plane Y', wire 1
+  65,  11,   2  ! Plane Y', wire 2
+  66,  11,   3  ! Plane Y', wire 3
+  67,  11,   4  ! Plane Y', wire 4
+  68,  11,   5  ! Plane Y', wire 5
+  69,  11,   6  ! Plane Y', wire 6
+  70,  11,   7  ! Plane Y', wire 7
+  71,  11,   8  ! Plane Y', wire 8
+  72,  11,   9  ! Plane Y', wire 9
+  73,  11,  10  ! Plane Y', wire 10
+  74,  11,  11  ! Plane Y', wire 11
+  75,  11,  12  ! Plane Y', wire 12
+  76,  11,  13  ! Plane Y', wire 13
+  80,  11,  14  ! Plane Y', wire 14
+  81,  11,  15  ! Plane Y', wire 15
+  82,  11,  16  ! Plane Y', wire 16
+  83,  11,  17  ! Plane Y', wire 17
+  84,  11,  18  ! Plane Y', wire 18
+  85,  11,  19  ! Plane Y', wire 19
+  86,  11,  20  ! Plane Y', wire 20
+  87,  11,  21  ! Plane Y', wire 21
+  88,  11,  22  ! Plane Y', wire 22
+  89,  11,  23  ! Plane Y', wire 23
+  90,  11,  24  ! Plane Y', wire 24
+  91,  11,  25  ! Plane Y', wire 25
+  92,  11,  26  ! Plane Y', wire 26
+  96,  11,  27  ! Plane Y', wire 27
+  97,  11,  28  ! Plane Y', wire 28
+  98,  11,  29  ! Plane Y', wire 29
+  99,  11,  30  ! Plane Y', wire 30
+ 100,  11,  31  ! Plane Y', wire 31
+ 101,  11,  32  ! Plane Y', wire 32
+ 102,  11,  33  ! Plane Y', wire 33
+ 103,  11,  34  ! Plane Y', wire 34
+ 104,  11,  35  ! Plane Y', wire 35
+ 105,  11,  36  ! Plane Y', wire 36
+ 106,  11,  37  ! Plane Y', wire 37
+ 107,  11,  38  ! Plane Y', wire 38
+ 108,  11,  39  ! Plane Y', wire 39
+ 112,  11,  40  ! Plane Y', wire 40
+ 113,  11,  41  ! Plane Y', wire 41
+ 114,  11,  42  ! Plane Y', wire 42
+ 115,  11,  43  ! Plane Y', wire 43
+ 116,  11,  44  ! Plane Y', wire 44
+ 117,  11,  45  ! Plane Y', wire 45
+ 118,  11,  46  ! Plane Y', wire 46
+ 119,  11,  47  ! Plane Y', wire 47
+ 120,  11,  48  ! Plane Y', wire 48
+ 121,  11,  49  ! Plane Y', wire 49
+ 122,  11,  50  ! Plane Y', wire 50
+ 123,  11,  51  ! Plane Y', wire 51
+ 124,  11,  52  ! Plane Y', wire 52
diff --git a/MAPS/HMS/DETEC/hdc_hhodo_htrig.map b/MAPS/HMS/DETEC/hdc_hhodo_htrig.map
new file mode 100644
index 00000000..a9a77537
--- /dev/null
+++ b/MAPS/HMS/DETEC/hdc_hhodo_htrig.map
@@ -0,0 +1,1442 @@
+! THMS_ID=10       ::  ADC,TDC
+! HDC_ID=11        ::  ADC,TDC
+! HSCIN_ID=13      ::  ADC,TDC
+
+
+DETECTOR=10
+
+ROC=1
+
+SLOT=17
+   8,   1,   1,   0  ! hASUM
+   9,   1,   2,   0  ! hBSUM
+  10,   1,   3,   0  ! hCSUM
+  11,   1,   4,   0  ! hDSUM
+  12,   1,   5,   0  ! hPSHWR
+  13,   1,   6,   0  ! hSHWR
+  14,   1,   7,   0  ! hAERSUM
+  15,   1,   8,   0  ! hCERSUM
+
+SLOT=2
+   0,   2,   1,   1  ! h1X
+   1,   2,   2,   1  ! h1Y
+   2,   2,   3,   1  ! h2X
+   3,   2,   4,   1  ! h2Y
+   4,   2,   5,   1  ! h1T
+   5,   2,   6,   1  ! h2T
+   6,   2,   7,   1  ! hT1
+   7,   2,   8,   1  ! hASUM
+   8,   2,   9,   1  ! hBSUM
+   9,   2,  10,   1  ! hCSUM
+  10,   2,  11,   1  ! hDSUM
+  11,   2,  12,   1  ! hPSHWRLO
+  12,   2,  13,   1  ! hPSHWRHI
+  13,   2,  14,   1  ! hSHWR
+  14,   2,  15,   1  ! hAERSUM
+  15,   2,  16,   1  ! hCERSUM
+
+SLOT=20
+ 127,   2,  17,   1  ! hT2
+
+ROC=3
+
+SLOT=5
+ 111,   2,  18,   1  ! hDCREF1
+
+SLOT=8
+ 127,   2,  19,   1  ! hDCREF2
+
+SLOT=10
+ 127,   2,  20,   1  ! hDCREF3
+
+SLOT=17
+ 127,   2,  21,   1  ! hDCREF4
+
+
+DETECTOR=11  ! HMS chambers
+
+ROC=3
+
+SLOT=5
+REFINDEX=0
+ 111,1000,   0,   0
+  96,   3,   1  ! Plane U, wire 1
+  97,   3,   2  ! Plane U, wire 2
+  98,   3,   3  ! Plane U, wire 3
+  99,   3,   4  ! Plane U, wire 4
+ 100,   3,   5  ! Plane U, wire 5
+ 101,   3,   6  ! Plane U, wire 6
+ 102,   3,   7  ! Plane U, wire 7
+ 103,   3,   8  ! Plane U, wire 8
+ 104,   3,   9  ! Plane U, wire 9
+ 105,   3,  10  ! Plane U, wire 10
+ 106,   3,  11  ! Plane U, wire 11
+ 107,   3,  12  ! Plane U, wire 12
+ 108,   3,  13  ! Plane U, wire 13
+ 109,   3,  14  ! Plane U, wire 14
+ 110,   1, 113  ! Plane X, wire 113
+  80,   3,  15  ! Plane U, wire 15
+  81,   3,  16  ! Plane U, wire 16
+  82,   3,  17  ! Plane U, wire 17
+  83,   3,  18  ! Plane U, wire 18
+  84,   3,  19  ! Plane U, wire 19
+  85,   3,  20  ! Plane U, wire 20
+  86,   3,  21  ! Plane U, wire 21
+  87,   3,  22  ! Plane U, wire 22
+  88,   3,  23  ! Plane U, wire 23
+  89,   3,  24  ! Plane U, wire 24
+  90,   3,  25  ! Plane U, wire 25
+  91,   3,  26  ! Plane U, wire 26
+  92,   3,  27  ! Plane U, wire 27
+  93,   3,  28  ! Plane U, wire 28
+  94,   3,  29  ! Plane U, wire 29
+  64,   3,  30  ! Plane U, wire 30
+  65,   3,  31  ! Plane U, wire 31
+  66,   3,  32  ! Plane U, wire 32
+  67,   3,  33  ! Plane U, wire 33
+  68,   3,  34  ! Plane U, wire 34
+  69,   3,  35  ! Plane U, wire 35
+  70,   3,  36  ! Plane U, wire 36
+  71,   3,  37  ! Plane U, wire 37
+  72,   3,  38  ! Plane U, wire 38
+  73,   3,  39  ! Plane U, wire 39
+  74,   3,  40  ! Plane U, wire 40
+  75,   3,  41  ! Plane U, wire 41
+  76,   3,  42  ! Plane U, wire 42
+  77,   3,  43  ! Plane U, wire 43
+  78,   3,  44  ! Plane U, wire 44
+  79,   3,  45  ! Plane U, wire 45
+  48,   3,  46  ! Plane U, wire 46
+  49,   3,  47  ! Plane U, wire 47
+  50,   3,  48  ! Plane U, wire 48
+  51,   3,  49  ! Plane U, wire 49
+  52,   3,  50  ! Plane U, wire 50
+  53,   3,  51  ! Plane U, wire 51
+  54,   3,  52  ! Plane U, wire 52
+  55,   3,  53  ! Plane U, wire 53
+  56,   3,  54  ! Plane U, wire 54
+  57,   3,  55  ! Plane U, wire 55
+  58,   3,  56  ! Plane U, wire 56
+  59,   3,  57  ! Plane U, wire 57
+  60,   3,  58  ! Plane U, wire 58
+  61,   3,  59  ! Plane U, wire 59
+  62,   3,  60  ! Plane U, wire 60
+  32,   3,  61  ! Plane U, wire 61
+  33,   3,  62  ! Plane U, wire 62
+  34,   3,  63  ! Plane U, wire 63
+  35,   3,  64  ! Plane U, wire 64
+  36,   3,  65  ! Plane U, wire 65
+  37,   3,  66  ! Plane U, wire 66
+  38,   3,  67  ! Plane U, wire 67
+  39,   3,  68  ! Plane U, wire 68
+  40,   3,  69  ! Plane U, wire 69
+  41,   3,  70  ! Plane U, wire 70
+  42,   3,  71  ! Plane U, wire 71
+  43,   3,  72  ! Plane U, wire 72
+  44,   3,  73  ! Plane U, wire 73
+  45,   3,  74  ! Plane U, wire 74
+  46,   3,  75  ! Plane U, wire 75
+  47,   3,  76  ! Plane U, wire 76
+  16,   3,  77  ! Plane U, wire 77
+  17,   3,  78  ! Plane U, wire 78
+  18,   3,  79  ! Plane U, wire 79
+  19,   3,  80  ! Plane U, wire 80
+  20,   3,  81  ! Plane U, wire 81
+  21,   3,  82  ! Plane U, wire 82
+  22,   3,  83  ! Plane U, wire 83
+  23,   3,  84  ! Plane U, wire 84
+  24,   3,  85  ! Plane U, wire 85
+  25,   3,  86  ! Plane U, wire 86
+  26,   3,  87  ! Plane U, wire 87
+  27,   3,  88  ! Plane U, wire 88
+  28,   3,  89  ! Plane U, wire 89
+  29,   3,  90  ! Plane U, wire 90
+  30,   3,  91  ! Plane U, wire 91
+   0,   3,  92  ! Plane U, wire 92
+   1,   3,  93  ! Plane U, wire 93
+   2,   3,  94  ! Plane U, wire 94
+   3,   3,  95  ! Plane U, wire 95
+   4,   3,  96  ! Plane U, wire 96
+   5,   3,  97  ! Plane U, wire 97
+   6,   3,  98  ! Plane U, wire 98
+   7,   3,  99  ! Plane U, wire 99
+   8,   3, 100  ! Plane U, wire 100
+   9,   3, 101  ! Plane U, wire 101
+  10,   3, 102  ! Plane U, wire 102
+  11,   3, 103  ! Plane U, wire 103
+  12,   3, 104  ! Plane U, wire 104
+  13,   3, 105  ! Plane U, wire 105
+  14,   3, 106  ! Plane U, wire 106
+  15,   3, 107  ! Plane U, wire 107
+
+SLOT=7
+REFINDEX=0
+  96,   4,   1  ! Plane V, wire 1
+  97,   4,   2  ! Plane V, wire 2
+  98,   4,   3  ! Plane V, wire 3
+  99,   4,   4  ! Plane V, wire 4
+ 100,   4,   5  ! Plane V, wire 5
+ 101,   4,   6  ! Plane V, wire 6
+ 102,   4,   7  ! Plane V, wire 7
+ 103,   4,   8  ! Plane V, wire 8
+ 104,   4,   9  ! Plane V, wire 9
+ 105,   4,  10  ! Plane V, wire 10
+ 106,   4,  11  ! Plane V, wire 11
+ 107,   4,  12  ! Plane V, wire 12
+ 108,   4,  13  ! Plane V, wire 13
+ 109,   4,  14  ! Plane V, wire 14
+ 110,   6, 113  ! Plane X', wire 113
+ 112,   4,  15  ! Plane V, wire 15
+ 113,   4,  16  ! Plane V, wire 16
+ 114,   4,  17  ! Plane V, wire 17
+ 115,   4,  18  ! Plane V, wire 18
+ 116,   4,  19  ! Plane V, wire 19
+ 117,   4,  20  ! Plane V, wire 20
+ 118,   4,  21  ! Plane V, wire 21
+ 119,   4,  22  ! Plane V, wire 22
+ 120,   4,  23  ! Plane V, wire 23
+ 121,   4,  24  ! Plane V, wire 24
+ 122,   4,  25  ! Plane V, wire 25
+ 123,   4,  26  ! Plane V, wire 26
+ 124,   4,  27  ! Plane V, wire 27
+ 125,   4,  28  ! Plane V, wire 28
+ 126,   4,  29  ! Plane V, wire 29
+
+SLOT=8
+REFINDEX=0
+ 127,1000,   0,   1
+   0,   4,  30  ! Plane V, wire 30
+   1,   4,  31  ! Plane V, wire 31
+   2,   4,  32  ! Plane V, wire 32
+   3,   4,  33  ! Plane V, wire 33
+   4,   4,  34  ! Plane V, wire 34
+   5,   4,  35  ! Plane V, wire 35
+   6,   4,  36  ! Plane V, wire 36
+   7,   4,  37  ! Plane V, wire 37
+   8,   4,  38  ! Plane V, wire 38
+   9,   4,  39  ! Plane V, wire 39
+  10,   4,  40  ! Plane V, wire 40
+  11,   4,  41  ! Plane V, wire 41
+  12,   4,  42  ! Plane V, wire 42
+  13,   4,  43  ! Plane V, wire 43
+  14,   4,  44  ! Plane V, wire 44
+  15,   4,  45  ! Plane V, wire 45
+  16,   4,  46  ! Plane V, wire 46
+  17,   4,  47  ! Plane V, wire 47
+  18,   4,  48  ! Plane V, wire 48
+  19,   4,  49  ! Plane V, wire 49
+  20,   4,  50  ! Plane V, wire 50
+  21,   4,  51  ! Plane V, wire 51
+  22,   4,  52  ! Plane V, wire 52
+  23,   4,  53  ! Plane V, wire 53
+  24,   4,  54  ! Plane V, wire 54
+  25,   4,  55  ! Plane V, wire 55
+  26,   4,  56  ! Plane V, wire 56
+  27,   4,  57  ! Plane V, wire 57
+  28,   4,  58  ! Plane V, wire 58
+  29,   4,  59  ! Plane V, wire 59
+  30,   4,  60  ! Plane V, wire 60
+  32,   4,  61  ! Plane V, wire 61
+  33,   4,  62  ! Plane V, wire 62
+  34,   4,  63  ! Plane V, wire 63
+  35,   4,  64  ! Plane V, wire 64
+  36,   4,  65  ! Plane V, wire 65
+  37,   4,  66  ! Plane V, wire 66
+  38,   4,  67  ! Plane V, wire 67
+  39,   4,  68  ! Plane V, wire 68
+  40,   4,  69  ! Plane V, wire 69
+  41,   4,  70  ! Plane V, wire 70
+  42,   4,  71  ! Plane V, wire 71
+  43,   4,  72  ! Plane V, wire 72
+  44,   4,  73  ! Plane V, wire 73
+  45,   4,  74  ! Plane V, wire 74
+  46,   4,  75  ! Plane V, wire 75
+  47,   4,  76  ! Plane V, wire 76
+  48,   4,  77  ! Plane V, wire 77
+  49,   4,  78  ! Plane V, wire 78
+  50,   4,  79  ! Plane V, wire 79
+  51,   4,  80  ! Plane V, wire 80
+  52,   4,  81  ! Plane V, wire 81
+  53,   4,  82  ! Plane V, wire 82
+  54,   4,  83  ! Plane V, wire 83
+  55,   4,  84  ! Plane V, wire 84
+  56,   4,  85  ! Plane V, wire 85
+  57,   4,  86  ! Plane V, wire 86
+  58,   4,  87  ! Plane V, wire 87
+  59,   4,  88  ! Plane V, wire 88
+  60,   4,  89  ! Plane V, wire 89
+  61,   4,  90  ! Plane V, wire 90
+  62,   4,  91  ! Plane V, wire 91
+
+SLOT=4
+REFINDEX=0
+  96,   4,  92  ! Plane V, wire 92
+  97,   4,  93  ! Plane V, wire 93
+  98,   4,  94  ! Plane V, wire 94
+  99,   4,  95  ! Plane V, wire 95
+ 100,   4,  96  ! Plane V, wire 96
+ 101,   4,  97  ! Plane V, wire 97
+ 102,   4,  98  ! Plane V, wire 98
+ 103,   4,  99  ! Plane V, wire 99
+ 104,   4, 100  ! Plane V, wire 100
+ 105,   4, 101  ! Plane V, wire 101
+ 106,   4, 102  ! Plane V, wire 102
+ 107,   4, 103  ! Plane V, wire 103
+ 108,   4, 104  ! Plane V, wire 104
+ 109,   4, 105  ! Plane V, wire 105
+ 110,   4, 106  ! Plane V, wire 106
+ 111,   4, 107  ! Plane V, wire 107
+  80,   1,   1  ! Plane X, wire 1
+  81,   1,   2  ! Plane X, wire 2
+  82,   1,   3  ! Plane X, wire 3
+  83,   1,   4  ! Plane X, wire 4
+  84,   1,   5  ! Plane X, wire 5
+  85,   1,   6  ! Plane X, wire 6
+  86,   1,   7  ! Plane X, wire 7
+  87,   1,   8  ! Plane X, wire 8
+  88,   1,   9  ! Plane X, wire 9
+  89,   1,  10  ! Plane X, wire 10
+  90,   1,  11  ! Plane X, wire 11
+  91,   1,  12  ! Plane X, wire 12
+  92,   1,  13  ! Plane X, wire 13
+  93,   1,  14  ! Plane X, wire 14
+  94,   1,  15  ! Plane X, wire 15
+  95,   1,  16  ! Plane X, wire 16
+  64,   1,  17  ! Plane X, wire 17
+  65,   1,  18  ! Plane X, wire 18
+  66,   1,  19  ! Plane X, wire 19
+  67,   1,  20  ! Plane X, wire 20
+  68,   1,  21  ! Plane X, wire 21
+  69,   1,  22  ! Plane X, wire 22
+  70,   1,  23  ! Plane X, wire 23
+  71,   1,  24  ! Plane X, wire 24
+  72,   1,  25  ! Plane X, wire 25
+  73,   1,  26  ! Plane X, wire 26
+  74,   1,  27  ! Plane X, wire 27
+  75,   1,  28  ! Plane X, wire 28
+  76,   1,  29  ! Plane X, wire 29
+  77,   1,  30  ! Plane X, wire 30
+  78,   1,  31  ! Plane X, wire 31
+  79,   1,  32  ! Plane X, wire 32
+  48,   1,  33  ! Plane X, wire 33
+  49,   1,  34  ! Plane X, wire 34
+  50,   1,  35  ! Plane X, wire 35
+  51,   1,  36  ! Plane X, wire 36
+  52,   1,  37  ! Plane X, wire 37
+  53,   1,  38  ! Plane X, wire 38
+  54,   1,  39  ! Plane X, wire 39
+  55,   1,  40  ! Plane X, wire 40
+  56,   1,  41  ! Plane X, wire 41
+  57,   1,  42  ! Plane X, wire 42
+  58,   1,  43  ! Plane X, wire 43
+  59,   1,  44  ! Plane X, wire 44
+  60,   1,  45  ! Plane X, wire 45
+  61,   1,  46  ! Plane X, wire 46
+  62,   1,  47  ! Plane X, wire 47
+  63,   1,  48  ! Plane X, wire 48
+  32,   1,  49  ! Plane X, wire 49
+  33,   1,  50  ! Plane X, wire 50
+  34,   1,  51  ! Plane X, wire 51
+  35,   1,  52  ! Plane X, wire 52
+  36,   1,  53  ! Plane X, wire 53
+  37,   1,  54  ! Plane X, wire 54
+  38,   1,  55  ! Plane X, wire 55
+  39,   1,  56  ! Plane X, wire 56
+  40,   1,  57  ! Plane X, wire 57
+  41,   1,  58  ! Plane X, wire 58
+  42,   1,  59  ! Plane X, wire 59
+  43,   1,  60  ! Plane X, wire 60
+  44,   1,  61  ! Plane X, wire 61
+  45,   1,  62  ! Plane X, wire 62
+  46,   1,  63  ! Plane X, wire 63
+  47,   1,  64  ! Plane X, wire 64
+  16,   1,  65  ! Plane X, wire 65
+  17,   1,  66  ! Plane X, wire 66
+  18,   1,  67  ! Plane X, wire 67
+  19,   1,  68  ! Plane X, wire 68
+  20,   1,  69  ! Plane X, wire 69
+  21,   1,  70  ! Plane X, wire 70
+  22,   1,  71  ! Plane X, wire 71
+  23,   1,  72  ! Plane X, wire 72
+  24,   1,  73  ! Plane X, wire 73
+  25,   1,  74  ! Plane X, wire 74
+  26,   1,  75  ! Plane X, wire 75
+  27,   1,  76  ! Plane X, wire 76
+  28,   1,  77  ! Plane X, wire 77
+  29,   1,  78  ! Plane X, wire 78
+  30,   1,  79  ! Plane X, wire 79
+  31,   1,  80  ! Plane X, wire 80
+   0,   1,  81  ! Plane X, wire 81
+   1,   1,  82  ! Plane X, wire 82
+   2,   1,  83  ! Plane X, wire 83
+   3,   1,  84  ! Plane X, wire 84
+   4,   1,  85  ! Plane X, wire 85
+   5,   1,  86  ! Plane X, wire 86
+   6,   1,  87  ! Plane X, wire 87
+   7,   1,  88  ! Plane X, wire 88
+   8,   1,  89  ! Plane X, wire 89
+   9,   1,  90  ! Plane X, wire 90
+  10,   1,  91  ! Plane X, wire 91
+  11,   1,  92  ! Plane X, wire 92
+  12,   1,  93  ! Plane X, wire 93
+  13,   1,  94  ! Plane X, wire 94
+  14,   1,  95  ! Plane X, wire 95
+  15,   1,  96  ! Plane X, wire 96
+
+SLOT=7
+REFINDEX=0
+  80,   1,  97  ! Plane X, wire 97
+  81,   1,  98  ! Plane X, wire 98
+  82,   1,  99  ! Plane X, wire 99
+  83,   1, 100  ! Plane X, wire 100
+  84,   1, 101  ! Plane X, wire 101
+  85,   1, 102  ! Plane X, wire 102
+  86,   1, 103  ! Plane X, wire 103
+  87,   1, 104  ! Plane X, wire 104
+  88,   1, 105  ! Plane X, wire 105
+  89,   1, 106  ! Plane X, wire 106
+  90,   1, 107  ! Plane X, wire 107
+  91,   1, 108  ! Plane X, wire 108
+  92,   1, 109  ! Plane X, wire 109
+  93,   1, 110  ! Plane X, wire 110
+  94,   1, 111  ! Plane X, wire 111
+  95,   1, 112  ! Plane X, wire 112
+
+SLOT=4
+REFINDEX=0
+ 112,   6,   1  ! Plane X', wire 1
+ 113,   6,   2  ! Plane X', wire 2
+ 114,   6,   3  ! Plane X', wire 3
+ 115,   6,   4  ! Plane X', wire 4
+ 116,   6,   5  ! Plane X', wire 5
+ 117,   6,   6  ! Plane X', wire 6
+ 118,   6,   7  ! Plane X', wire 7
+ 119,   6,   8  ! Plane X', wire 8
+ 120,   6,   9  ! Plane X', wire 9
+ 121,   6,  10  ! Plane X', wire 10
+ 122,   6,  11  ! Plane X', wire 11
+ 123,   6,  12  ! Plane X', wire 12
+ 124,   6,  13  ! Plane X', wire 13
+ 125,   6,  14  ! Plane X', wire 14
+ 126,   6,  15  ! Plane X', wire 15
+ 127,   6,  16  ! Plane X', wire 16
+
+SLOT=5
+REFINDEX=0
+ 112,   6,  17  ! Plane X', wire 17
+ 113,   6,  18  ! Plane X', wire 18
+ 114,   6,  19  ! Plane X', wire 19
+ 115,   6,  20  ! Plane X', wire 20
+ 116,   6,  21  ! Plane X', wire 21
+ 117,   6,  22  ! Plane X', wire 22
+ 118,   6,  23  ! Plane X', wire 23
+ 119,   6,  24  ! Plane X', wire 24
+ 120,   6,  25  ! Plane X', wire 25
+ 121,   6,  26  ! Plane X', wire 26
+ 122,   6,  27  ! Plane X', wire 27
+ 123,   6,  28  ! Plane X', wire 28
+ 124,   6,  29  ! Plane X', wire 29
+ 125,   6,  30  ! Plane X', wire 30
+ 126,   6,  31  ! Plane X', wire 31
+ 127,   6,  32  ! Plane X', wire 32
+
+SLOT=7
+REFINDEX=0
+   0,   6,  33  ! Plane X', wire 33
+   1,   6,  34  ! Plane X', wire 34
+   2,   6,  35  ! Plane X', wire 35
+   3,   6,  36  ! Plane X', wire 36
+   4,   6,  37  ! Plane X', wire 37
+   5,   6,  38  ! Plane X', wire 38
+   6,   6,  39  ! Plane X', wire 39
+   7,   6,  40  ! Plane X', wire 40
+   8,   6,  41  ! Plane X', wire 41
+   9,   6,  42  ! Plane X', wire 42
+  10,   6,  43  ! Plane X', wire 43
+  11,   6,  44  ! Plane X', wire 44
+  12,   6,  45  ! Plane X', wire 45
+  13,   6,  46  ! Plane X', wire 46
+  14,   6,  47  ! Plane X', wire 47
+  15,   6,  48  ! Plane X', wire 48
+  16,   6,  49  ! Plane X', wire 49
+  17,   6,  50  ! Plane X', wire 50
+  18,   6,  51  ! Plane X', wire 51
+  19,   6,  52  ! Plane X', wire 52
+  20,   6,  53  ! Plane X', wire 53
+  21,   6,  54  ! Plane X', wire 54
+  22,   6,  55  ! Plane X', wire 55
+  23,   6,  56  ! Plane X', wire 56
+  24,   6,  57  ! Plane X', wire 57
+  25,   6,  58  ! Plane X', wire 58
+  26,   6,  59  ! Plane X', wire 59
+  27,   6,  60  ! Plane X', wire 60
+  28,   6,  61  ! Plane X', wire 61
+  29,   6,  62  ! Plane X', wire 62
+  30,   6,  63  ! Plane X', wire 63
+  31,   6,  64  ! Plane X', wire 64
+  32,   6,  65  ! Plane X', wire 65
+  33,   6,  66  ! Plane X', wire 66
+  34,   6,  67  ! Plane X', wire 67
+  35,   6,  68  ! Plane X', wire 68
+  36,   6,  69  ! Plane X', wire 69
+  37,   6,  70  ! Plane X', wire 70
+  38,   6,  71  ! Plane X', wire 71
+  39,   6,  72  ! Plane X', wire 72
+  40,   6,  73  ! Plane X', wire 73
+  41,   6,  74  ! Plane X', wire 74
+  42,   6,  75  ! Plane X', wire 75
+  43,   6,  76  ! Plane X', wire 76
+  44,   6,  77  ! Plane X', wire 77
+  45,   6,  78  ! Plane X', wire 78
+  46,   6,  79  ! Plane X', wire 79
+  47,   6,  80  ! Plane X', wire 80
+  48,   6,  81  ! Plane X', wire 81
+  49,   6,  82  ! Plane X', wire 82
+  50,   6,  83  ! Plane X', wire 83
+  51,   6,  84  ! Plane X', wire 84
+  52,   6,  85  ! Plane X', wire 85
+  53,   6,  86  ! Plane X', wire 86
+  54,   6,  87  ! Plane X', wire 87
+  55,   6,  88  ! Plane X', wire 88
+  56,   6,  89  ! Plane X', wire 89
+  57,   6,  90  ! Plane X', wire 90
+  58,   6,  91  ! Plane X', wire 91
+  59,   6,  92  ! Plane X', wire 92
+  60,   6,  93  ! Plane X', wire 93
+  61,   6,  94  ! Plane X', wire 94
+  62,   6,  95  ! Plane X', wire 95
+  63,   6,  96  ! Plane X', wire 96
+  64,   6,  97  ! Plane X', wire 97
+  65,   6,  98  ! Plane X', wire 98
+  66,   6,  99  ! Plane X', wire 99
+  67,   6, 100  ! Plane X', wire 100
+  68,   6, 101  ! Plane X', wire 101
+  69,   6, 102  ! Plane X', wire 102
+  70,   6, 103  ! Plane X', wire 103
+  71,   6, 104  ! Plane X', wire 104
+  72,   6, 105  ! Plane X', wire 105
+  73,   6, 106  ! Plane X', wire 106
+  74,   6, 107  ! Plane X', wire 107
+  75,   6, 108  ! Plane X', wire 108
+  76,   6, 109  ! Plane X', wire 109
+  77,   6, 110  ! Plane X', wire 110
+  78,   6, 111  ! Plane X', wire 111
+  79,   6, 112  ! Plane X', wire 112
+
+SLOT=8
+REFINDEX=0
+  64,   2,   1  ! Plane Y, wire 1
+  65,   2,   2  ! Plane Y, wire 2
+  66,   2,   3  ! Plane Y, wire 3
+  67,   2,   4  ! Plane Y, wire 4
+  68,   2,   5  ! Plane Y, wire 5
+  69,   2,   6  ! Plane Y, wire 6
+  70,   2,   7  ! Plane Y, wire 7
+  71,   2,   8  ! Plane Y, wire 8
+  72,   2,   9  ! Plane Y, wire 9
+  73,   2,  10  ! Plane Y, wire 10
+  74,   2,  11  ! Plane Y, wire 11
+  75,   2,  12  ! Plane Y, wire 12
+  76,   2,  13  ! Plane Y, wire 13
+  80,   2,  14  ! Plane Y, wire 14
+  81,   2,  15  ! Plane Y, wire 15
+  82,   2,  16  ! Plane Y, wire 16
+  83,   2,  17  ! Plane Y, wire 17
+  84,   2,  18  ! Plane Y, wire 18
+  85,   2,  19  ! Plane Y, wire 19
+  86,   2,  20  ! Plane Y, wire 20
+  87,   2,  21  ! Plane Y, wire 21
+  88,   2,  22  ! Plane Y, wire 22
+  89,   2,  23  ! Plane Y, wire 23
+  90,   2,  24  ! Plane Y, wire 24
+  91,   2,  25  ! Plane Y, wire 25
+  92,   2,  26  ! Plane Y, wire 26
+  96,   2,  27  ! Plane Y, wire 27
+  97,   2,  28  ! Plane Y, wire 28
+  98,   2,  29  ! Plane Y, wire 29
+  99,   2,  30  ! Plane Y, wire 30
+ 100,   2,  31  ! Plane Y, wire 31
+ 101,   2,  32  ! Plane Y, wire 32
+ 102,   2,  33  ! Plane Y, wire 33
+ 103,   2,  34  ! Plane Y, wire 34
+ 104,   2,  35  ! Plane Y, wire 35
+ 105,   2,  36  ! Plane Y, wire 36
+ 106,   2,  37  ! Plane Y, wire 37
+ 107,   2,  38  ! Plane Y, wire 38
+ 108,   2,  39  ! Plane Y, wire 39
+ 112,   2,  40  ! Plane Y, wire 40
+ 113,   2,  41  ! Plane Y, wire 41
+ 114,   2,  42  ! Plane Y, wire 42
+ 115,   2,  43  ! Plane Y, wire 43
+ 116,   2,  44  ! Plane Y, wire 44
+ 117,   2,  45  ! Plane Y, wire 45
+ 118,   2,  46  ! Plane Y, wire 46
+ 119,   2,  47  ! Plane Y, wire 47
+ 120,   2,  48  ! Plane Y, wire 48
+ 121,   2,  49  ! Plane Y, wire 49
+ 122,   2,  50  ! Plane Y, wire 50
+ 123,   2,  51  ! Plane Y, wire 51
+ 124,   2,  52  ! Plane Y, wire 52
+
+SLOT=10
+REFINDEX=0
+ 127,1000,   0,   2
+   0,   5,   1  ! Plane Y', wire 1
+   1,   5,   2  ! Plane Y', wire 2
+   2,   5,   3  ! Plane Y', wire 3
+   3,   5,   4  ! Plane Y', wire 4
+   4,   5,   5  ! Plane Y', wire 5
+   5,   5,   6  ! Plane Y', wire 6
+   6,   5,   7  ! Plane Y', wire 7
+   7,   5,   8  ! Plane Y', wire 8
+   8,   5,   9  ! Plane Y', wire 9
+   9,   5,  10  ! Plane Y', wire 10
+  10,   5,  11  ! Plane Y', wire 11
+  11,   5,  12  ! Plane Y', wire 12
+  12,   5,  13  ! Plane Y', wire 13
+  16,   5,  14  ! Plane Y', wire 14
+  17,   5,  15  ! Plane Y', wire 15
+  18,   5,  16  ! Plane Y', wire 16
+  19,   5,  17  ! Plane Y', wire 17
+  20,   5,  18  ! Plane Y', wire 18
+  21,   5,  19  ! Plane Y', wire 19
+  22,   5,  20  ! Plane Y', wire 20
+  23,   5,  21  ! Plane Y', wire 21
+  24,   5,  22  ! Plane Y', wire 22
+  25,   5,  23  ! Plane Y', wire 23
+  26,   5,  24  ! Plane Y', wire 24
+  27,   5,  25  ! Plane Y', wire 25
+  28,   5,  26  ! Plane Y', wire 26
+  32,   5,  27  ! Plane Y', wire 27
+  33,   5,  28  ! Plane Y', wire 28
+  34,   5,  29  ! Plane Y', wire 29
+  35,   5,  30  ! Plane Y', wire 30
+  36,   5,  31  ! Plane Y', wire 31
+  37,   5,  32  ! Plane Y', wire 32
+  38,   5,  33  ! Plane Y', wire 33
+  39,   5,  34  ! Plane Y', wire 34
+  40,   5,  35  ! Plane Y', wire 35
+  41,   5,  36  ! Plane Y', wire 36
+  42,   5,  37  ! Plane Y', wire 37
+  43,   5,  38  ! Plane Y', wire 38
+  44,   5,  39  ! Plane Y', wire 39
+  48,   5,  40  ! Plane Y', wire 40
+  49,   5,  41  ! Plane Y', wire 41
+  50,   5,  42  ! Plane Y', wire 42
+  51,   5,  43  ! Plane Y', wire 43
+  52,   5,  44  ! Plane Y', wire 44
+  53,   5,  45  ! Plane Y', wire 45
+  54,   5,  46  ! Plane Y', wire 46
+  55,   5,  47  ! Plane Y', wire 47
+  56,   5,  48  ! Plane Y', wire 48
+  57,   5,  49  ! Plane Y', wire 49
+  58,   5,  50  ! Plane Y', wire 50
+  59,   5,  51  ! Plane Y', wire 51
+  60,   5,  52  ! Plane Y', wire 52
+
+SLOT=16
+REFINDEX=0
+  96,   9,   1  ! Plane U, wire 1
+  97,   9,   2  ! Plane U, wire 2
+  98,   9,   3  ! Plane U, wire 3
+  99,   9,   4  ! Plane U, wire 4
+ 100,   9,   5  ! Plane U, wire 5
+ 101,   9,   6  ! Plane U, wire 6
+ 102,   9,   7  ! Plane U, wire 7
+ 103,   9,   8  ! Plane U, wire 8
+ 104,   9,   9  ! Plane U, wire 9
+ 105,   9,  10  ! Plane U, wire 10
+ 106,   9,  11  ! Plane U, wire 11
+ 107,   9,  12  ! Plane U, wire 12
+ 108,   9,  13  ! Plane U, wire 13
+ 109,   9,  14  ! Plane U, wire 14
+ 110,   7, 113  ! Plane X, wire 113
+ 112,   9,  15  ! Plane U, wire 15
+ 113,   9,  16  ! Plane U, wire 16
+ 114,   9,  17  ! Plane U, wire 17
+ 115,   9,  18  ! Plane U, wire 18
+ 116,   9,  19  ! Plane U, wire 19
+ 117,   9,  20  ! Plane U, wire 20
+ 118,   9,  21  ! Plane U, wire 21
+ 119,   9,  22  ! Plane U, wire 22
+ 120,   9,  23  ! Plane U, wire 23
+ 121,   9,  24  ! Plane U, wire 24
+ 122,   9,  25  ! Plane U, wire 25
+ 123,   9,  26  ! Plane U, wire 26
+ 124,   9,  27  ! Plane U, wire 27
+ 125,   9,  28  ! Plane U, wire 28
+ 126,   9,  29  ! Plane U, wire 29
+
+SLOT=14
+REFINDEX=0
+   0,   9,  30  ! Plane U, wire 30
+   1,   9,  31  ! Plane U, wire 31
+   2,   9,  32  ! Plane U, wire 32
+   3,   9,  33  ! Plane U, wire 33
+   4,   9,  34  ! Plane U, wire 34
+   5,   9,  35  ! Plane U, wire 35
+   6,   9,  36  ! Plane U, wire 36
+   7,   9,  37  ! Plane U, wire 37
+   8,   9,  38  ! Plane U, wire 38
+   9,   9,  39  ! Plane U, wire 39
+  10,   9,  40  ! Plane U, wire 40
+  11,   9,  41  ! Plane U, wire 41
+  12,   9,  42  ! Plane U, wire 42
+  13,   9,  43  ! Plane U, wire 43
+  14,   9,  44  ! Plane U, wire 44
+  15,   9,  45  ! Plane U, wire 45
+  32,   9,  46  ! Plane U, wire 46
+  33,   9,  47  ! Plane U, wire 47
+  34,   9,  48  ! Plane U, wire 48
+  35,   9,  49  ! Plane U, wire 49
+  36,   9,  50  ! Plane U, wire 50
+  37,   9,  51  ! Plane U, wire 51
+  38,   9,  52  ! Plane U, wire 52
+  39,   9,  53  ! Plane U, wire 53
+  40,   9,  54  ! Plane U, wire 54
+  41,   9,  55  ! Plane U, wire 55
+  42,   9,  56  ! Plane U, wire 56
+  43,   9,  57  ! Plane U, wire 57
+  44,   9,  58  ! Plane U, wire 58
+  45,   9,  59  ! Plane U, wire 59
+  46,   9,  60  ! Plane U, wire 60
+  48,   9,  61  ! Plane U, wire 61
+  49,   9,  62  ! Plane U, wire 62
+  50,   9,  63  ! Plane U, wire 63
+  51,   9,  64  ! Plane U, wire 64
+  52,   9,  65  ! Plane U, wire 65
+  53,   9,  66  ! Plane U, wire 66
+  54,   9,  67  ! Plane U, wire 67
+  55,   9,  68  ! Plane U, wire 68
+  56,   9,  69  ! Plane U, wire 69
+  57,   9,  70  ! Plane U, wire 70
+  58,   9,  71  ! Plane U, wire 71
+  59,   9,  72  ! Plane U, wire 72
+  60,   9,  73  ! Plane U, wire 73
+  61,   9,  74  ! Plane U, wire 74
+  62,   9,  75  ! Plane U, wire 75
+  63,   9,  76  ! Plane U, wire 76
+  64,   9,  77  ! Plane U, wire 77
+  65,   9,  78  ! Plane U, wire 78
+  66,   9,  79  ! Plane U, wire 79
+  67,   9,  80  ! Plane U, wire 80
+  68,   9,  81  ! Plane U, wire 81
+  69,   9,  82  ! Plane U, wire 82
+  70,   9,  83  ! Plane U, wire 83
+  71,   9,  84  ! Plane U, wire 84
+  72,   9,  85  ! Plane U, wire 85
+  73,   9,  86  ! Plane U, wire 86
+  74,   9,  87  ! Plane U, wire 87
+  75,   9,  88  ! Plane U, wire 88
+  76,   9,  89  ! Plane U, wire 89
+  77,   9,  90  ! Plane U, wire 90
+  78,   9,  91  ! Plane U, wire 91
+  80,   9,  92  ! Plane U, wire 92
+  81,   9,  93  ! Plane U, wire 93
+  82,   9,  94  ! Plane U, wire 94
+  83,   9,  95  ! Plane U, wire 95
+  84,   9,  96  ! Plane U, wire 96
+  85,   9,  97  ! Plane U, wire 97
+  86,   9,  98  ! Plane U, wire 98
+  87,   9,  99  ! Plane U, wire 99
+  88,   9, 100  ! Plane U, wire 100
+  89,   9, 101  ! Plane U, wire 101
+  90,   9, 102  ! Plane U, wire 102
+  91,   9, 103  ! Plane U, wire 103
+  92,   9, 104  ! Plane U, wire 104
+  93,   9, 105  ! Plane U, wire 105
+  94,   9, 106  ! Plane U, wire 106
+  95,   9, 107  ! Plane U, wire 107
+
+SLOT=16
+REFINDEX=0
+  80,  10,   1  ! Plane V, wire 1
+  81,  10,   2  ! Plane V, wire 2
+  82,  10,   3  ! Plane V, wire 3
+  83,  10,   4  ! Plane V, wire 4
+  84,  10,   5  ! Plane V, wire 5
+  85,  10,   6  ! Plane V, wire 6
+  86,  10,   7  ! Plane V, wire 7
+  87,  10,   8  ! Plane V, wire 8
+  88,  10,   9  ! Plane V, wire 9
+  89,  10,  10  ! Plane V, wire 10
+  90,  10,  11  ! Plane V, wire 11
+  91,  10,  12  ! Plane V, wire 12
+  92,  10,  13  ! Plane V, wire 13
+  93,  10,  14  ! Plane V, wire 14
+  94,  12, 113  ! Plane X', wire 113
+
+SLOT=14
+REFINDEX=0
+  96,  10,  15  ! Plane V, wire 15
+  97,  10,  16  ! Plane V, wire 16
+  98,  10,  17  ! Plane V, wire 17
+  99,  10,  18  ! Plane V, wire 18
+ 100,  10,  19  ! Plane V, wire 19
+ 101,  10,  20  ! Plane V, wire 20
+ 102,  10,  21  ! Plane V, wire 21
+ 103,  10,  22  ! Plane V, wire 22
+ 104,  10,  23  ! Plane V, wire 23
+ 105,  10,  24  ! Plane V, wire 24
+ 106,  10,  25  ! Plane V, wire 25
+ 107,  10,  26  ! Plane V, wire 26
+ 108,  10,  27  ! Plane V, wire 27
+ 109,  10,  28  ! Plane V, wire 28
+ 110,  10,  29  ! Plane V, wire 29
+ 112,  10,  30  ! Plane V, wire 30
+ 113,  10,  31  ! Plane V, wire 31
+ 114,  10,  32  ! Plane V, wire 32
+ 115,  10,  33  ! Plane V, wire 33
+ 116,  10,  34  ! Plane V, wire 34
+ 117,  10,  35  ! Plane V, wire 35
+ 118,  10,  36  ! Plane V, wire 36
+ 119,  10,  37  ! Plane V, wire 37
+ 120,  10,  38  ! Plane V, wire 38
+ 121,  10,  39  ! Plane V, wire 39
+ 122,  10,  40  ! Plane V, wire 40
+ 123,  10,  41  ! Plane V, wire 41
+ 124,  10,  42  ! Plane V, wire 42
+ 125,  10,  43  ! Plane V, wire 43
+ 126,  10,  44  ! Plane V, wire 44
+ 127,  10,  45  ! Plane V, wire 45
+
+SLOT=17
+REFINDEX=0
+ 127,1000,   0,   3
+   0,  10,  46  ! Plane V, wire 46
+   1,  10,  47  ! Plane V, wire 47
+   2,  10,  48  ! Plane V, wire 48
+   3,  10,  49  ! Plane V, wire 49
+   4,  10,  50  ! Plane V, wire 50
+   5,  10,  51  ! Plane V, wire 51
+   6,  10,  52  ! Plane V, wire 52
+   7,  10,  53  ! Plane V, wire 53
+   8,  10,  54  ! Plane V, wire 54
+   9,  10,  55  ! Plane V, wire 55
+  10,  10,  56  ! Plane V, wire 56
+  11,  10,  57  ! Plane V, wire 57
+  12,  10,  58  ! Plane V, wire 58
+  13,  10,  59  ! Plane V, wire 59
+  14,  10,  60  ! Plane V, wire 60
+  16,  10,  61  ! Plane V, wire 61
+  17,  10,  62  ! Plane V, wire 62
+  18,  10,  63  ! Plane V, wire 63
+  19,  10,  64  ! Plane V, wire 64
+  20,  10,  65  ! Plane V, wire 65
+  21,  10,  66  ! Plane V, wire 66
+  22,  10,  67  ! Plane V, wire 67
+  23,  10,  68  ! Plane V, wire 68
+  24,  10,  69  ! Plane V, wire 69
+  25,  10,  70  ! Plane V, wire 70
+  26,  10,  71  ! Plane V, wire 71
+  27,  10,  72  ! Plane V, wire 72
+  28,  10,  73  ! Plane V, wire 73
+  29,  10,  74  ! Plane V, wire 74
+  30,  10,  75  ! Plane V, wire 75
+  31,  10,  76  ! Plane V, wire 76
+  32,  10,  77  ! Plane V, wire 77
+  33,  10,  78  ! Plane V, wire 78
+  34,  10,  79  ! Plane V, wire 79
+  35,  10,  80  ! Plane V, wire 80
+  36,  10,  81  ! Plane V, wire 81
+  37,  10,  82  ! Plane V, wire 82
+  38,  10,  83  ! Plane V, wire 83
+  39,  10,  84  ! Plane V, wire 84
+  40,  10,  85  ! Plane V, wire 85
+  41,  10,  86  ! Plane V, wire 86
+  42,  10,  87  ! Plane V, wire 87
+  43,  10,  88  ! Plane V, wire 88
+  44,  10,  89  ! Plane V, wire 89
+  45,  10,  90  ! Plane V, wire 90
+  46,  10,  91  ! Plane V, wire 91
+  48,  10,  92  ! Plane V, wire 92
+  49,  10,  93  ! Plane V, wire 93
+  50,  10,  94  ! Plane V, wire 94
+  51,  10,  95  ! Plane V, wire 95
+  52,  10,  96  ! Plane V, wire 96
+  53,  10,  97  ! Plane V, wire 97
+  54,  10,  98  ! Plane V, wire 98
+  55,  10,  99  ! Plane V, wire 99
+  56,  10, 100  ! Plane V, wire 100
+  57,  10, 101  ! Plane V, wire 101
+  58,  10, 102  ! Plane V, wire 102
+  59,  10, 103  ! Plane V, wire 103
+  60,  10, 104  ! Plane V, wire 104
+  61,  10, 105  ! Plane V, wire 105
+  62,  10, 106  ! Plane V, wire 106
+  63,  10, 107  ! Plane V, wire 107
+
+SLOT=13
+REFINDEX=0
+   0,   7,   1  ! Plane X, wire 1
+   1,   7,   2  ! Plane X, wire 2
+   2,   7,   3  ! Plane X, wire 3
+   3,   7,   4  ! Plane X, wire 4
+   4,   7,   5  ! Plane X, wire 5
+   5,   7,   6  ! Plane X, wire 6
+   6,   7,   7  ! Plane X, wire 7
+   7,   7,   8  ! Plane X, wire 8
+   8,   7,   9  ! Plane X, wire 9
+   9,   7,  10  ! Plane X, wire 10
+  10,   7,  11  ! Plane X, wire 11
+  11,   7,  12  ! Plane X, wire 12
+  12,   7,  13  ! Plane X, wire 13
+  13,   7,  14  ! Plane X, wire 14
+  14,   7,  15  ! Plane X, wire 15
+  15,   7,  16  ! Plane X, wire 16
+  16,   7,  17  ! Plane X, wire 17
+  17,   7,  18  ! Plane X, wire 18
+  18,   7,  19  ! Plane X, wire 19
+  19,   7,  20  ! Plane X, wire 20
+  20,   7,  21  ! Plane X, wire 21
+  21,   7,  22  ! Plane X, wire 22
+  22,   7,  23  ! Plane X, wire 23
+  23,   7,  24  ! Plane X, wire 24
+  24,   7,  25  ! Plane X, wire 25
+  25,   7,  26  ! Plane X, wire 26
+  26,   7,  27  ! Plane X, wire 27
+  27,   7,  28  ! Plane X, wire 28
+  28,   7,  29  ! Plane X, wire 29
+  29,   7,  30  ! Plane X, wire 30
+  30,   7,  31  ! Plane X, wire 31
+  31,   7,  32  ! Plane X, wire 32
+  32,   7,  33  ! Plane X, wire 33
+  33,   7,  34  ! Plane X, wire 34
+  34,   7,  35  ! Plane X, wire 35
+  35,   7,  36  ! Plane X, wire 36
+  36,   7,  37  ! Plane X, wire 37
+  37,   7,  38  ! Plane X, wire 38
+  38,   7,  39  ! Plane X, wire 39
+  39,   7,  40  ! Plane X, wire 40
+  40,   7,  41  ! Plane X, wire 41
+  41,   7,  42  ! Plane X, wire 42
+  42,   7,  43  ! Plane X, wire 43
+  43,   7,  44  ! Plane X, wire 44
+  44,   7,  45  ! Plane X, wire 45
+  45,   7,  46  ! Plane X, wire 46
+  46,   7,  47  ! Plane X, wire 47
+  47,   7,  48  ! Plane X, wire 48
+  48,   7,  49  ! Plane X, wire 49
+  49,   7,  50  ! Plane X, wire 50
+  50,   7,  51  ! Plane X, wire 51
+  51,   7,  52  ! Plane X, wire 52
+  52,   7,  53  ! Plane X, wire 53
+  53,   7,  54  ! Plane X, wire 54
+  54,   7,  55  ! Plane X, wire 55
+  55,   7,  56  ! Plane X, wire 56
+  56,   7,  57  ! Plane X, wire 57
+  57,   7,  58  ! Plane X, wire 58
+  58,   7,  59  ! Plane X, wire 59
+  59,   7,  60  ! Plane X, wire 60
+  60,   7,  61  ! Plane X, wire 61
+  61,   7,  62  ! Plane X, wire 62
+  62,   7,  63  ! Plane X, wire 63
+  63,   7,  64  ! Plane X, wire 64
+  64,   7,  65  ! Plane X, wire 65
+  65,   7,  66  ! Plane X, wire 66
+  66,   7,  67  ! Plane X, wire 67
+  67,   7,  68  ! Plane X, wire 68
+  68,   7,  69  ! Plane X, wire 69
+  69,   7,  70  ! Plane X, wire 70
+  70,   7,  71  ! Plane X, wire 71
+  71,   7,  72  ! Plane X, wire 72
+  72,   7,  73  ! Plane X, wire 73
+  73,   7,  74  ! Plane X, wire 74
+  74,   7,  75  ! Plane X, wire 75
+  75,   7,  76  ! Plane X, wire 76
+  76,   7,  77  ! Plane X, wire 77
+  77,   7,  78  ! Plane X, wire 78
+  78,   7,  79  ! Plane X, wire 79
+  79,   7,  80  ! Plane X, wire 80
+  80,   7,  81  ! Plane X, wire 81
+  81,   7,  82  ! Plane X, wire 82
+  82,   7,  83  ! Plane X, wire 83
+  83,   7,  84  ! Plane X, wire 84
+  84,   7,  85  ! Plane X, wire 85
+  85,   7,  86  ! Plane X, wire 86
+  86,   7,  87  ! Plane X, wire 87
+  87,   7,  88  ! Plane X, wire 88
+  88,   7,  89  ! Plane X, wire 89
+  89,   7,  90  ! Plane X, wire 90
+  90,   7,  91  ! Plane X, wire 91
+  91,   7,  92  ! Plane X, wire 92
+  92,   7,  93  ! Plane X, wire 93
+  93,   7,  94  ! Plane X, wire 94
+  94,   7,  95  ! Plane X, wire 95
+  95,   7,  96  ! Plane X, wire 96
+  96,   7,  97  ! Plane X, wire 97
+  97,   7,  98  ! Plane X, wire 98
+  98,   7,  99  ! Plane X, wire 99
+  99,   7, 100  ! Plane X, wire 100
+ 100,   7, 101  ! Plane X, wire 101
+ 101,   7, 102  ! Plane X, wire 102
+ 102,   7, 103  ! Plane X, wire 103
+ 103,   7, 104  ! Plane X, wire 104
+ 104,   7, 105  ! Plane X, wire 105
+ 105,   7, 106  ! Plane X, wire 106
+ 106,   7, 107  ! Plane X, wire 107
+ 107,   7, 108  ! Plane X, wire 108
+ 108,   7, 109  ! Plane X, wire 109
+ 109,   7, 110  ! Plane X, wire 110
+ 110,   7, 111  ! Plane X, wire 111
+ 111,   7, 112  ! Plane X, wire 112
+ 112,  12,   1  ! Plane X', wire 1
+ 113,  12,   2  ! Plane X', wire 2
+ 114,  12,   3  ! Plane X', wire 3
+ 115,  12,   4  ! Plane X', wire 4
+ 116,  12,   5  ! Plane X', wire 5
+ 117,  12,   6  ! Plane X', wire 6
+ 118,  12,   7  ! Plane X', wire 7
+ 119,  12,   8  ! Plane X', wire 8
+ 120,  12,   9  ! Plane X', wire 9
+ 121,  12,  10  ! Plane X', wire 10
+ 122,  12,  11  ! Plane X', wire 11
+ 123,  12,  12  ! Plane X', wire 12
+ 124,  12,  13  ! Plane X', wire 13
+ 125,  12,  14  ! Plane X', wire 14
+ 126,  12,  15  ! Plane X', wire 15
+ 127,  12,  16  ! Plane X', wire 16
+
+SLOT=14
+REFINDEX=0
+  16,  12,  17  ! Plane X', wire 17
+  17,  12,  18  ! Plane X', wire 18
+  18,  12,  19  ! Plane X', wire 19
+  19,  12,  20  ! Plane X', wire 20
+  20,  12,  21  ! Plane X', wire 21
+  21,  12,  22  ! Plane X', wire 22
+  22,  12,  23  ! Plane X', wire 23
+  23,  12,  24  ! Plane X', wire 24
+  24,  12,  25  ! Plane X', wire 25
+  25,  12,  26  ! Plane X', wire 26
+  26,  12,  27  ! Plane X', wire 27
+  27,  12,  28  ! Plane X', wire 28
+  28,  12,  29  ! Plane X', wire 29
+  29,  12,  30  ! Plane X', wire 30
+  30,  12,  31  ! Plane X', wire 31
+  31,  12,  32  ! Plane X', wire 32
+
+SLOT=16
+REFINDEX=0
+   0,  12,  33  ! Plane X', wire 33
+   1,  12,  34  ! Plane X', wire 34
+   2,  12,  35  ! Plane X', wire 35
+   3,  12,  36  ! Plane X', wire 36
+   4,  12,  37  ! Plane X', wire 37
+   5,  12,  38  ! Plane X', wire 38
+   6,  12,  39  ! Plane X', wire 39
+   7,  12,  40  ! Plane X', wire 40
+   8,  12,  41  ! Plane X', wire 41
+   9,  12,  42  ! Plane X', wire 42
+  10,  12,  43  ! Plane X', wire 43
+  11,  12,  44  ! Plane X', wire 44
+  12,  12,  45  ! Plane X', wire 45
+  13,  12,  46  ! Plane X', wire 46
+  14,  12,  47  ! Plane X', wire 47
+  15,  12,  48  ! Plane X', wire 48
+  16,  12,  49  ! Plane X', wire 49
+  17,  12,  50  ! Plane X', wire 50
+  18,  12,  51  ! Plane X', wire 51
+  19,  12,  52  ! Plane X', wire 52
+  20,  12,  53  ! Plane X', wire 53
+  21,  12,  54  ! Plane X', wire 54
+  22,  12,  55  ! Plane X', wire 55
+  23,  12,  56  ! Plane X', wire 56
+  24,  12,  57  ! Plane X', wire 57
+  25,  12,  58  ! Plane X', wire 58
+  26,  12,  59  ! Plane X', wire 59
+  27,  12,  60  ! Plane X', wire 60
+  28,  12,  61  ! Plane X', wire 61
+  29,  12,  62  ! Plane X', wire 62
+  30,  12,  63  ! Plane X', wire 63
+  31,  12,  64  ! Plane X', wire 64
+  32,  12,  65  ! Plane X', wire 65
+  33,  12,  66  ! Plane X', wire 66
+  34,  12,  67  ! Plane X', wire 67
+  35,  12,  68  ! Plane X', wire 68
+  36,  12,  69  ! Plane X', wire 69
+  37,  12,  70  ! Plane X', wire 70
+  38,  12,  71  ! Plane X', wire 71
+  39,  12,  72  ! Plane X', wire 72
+  40,  12,  73  ! Plane X', wire 73
+  41,  12,  74  ! Plane X', wire 74
+  42,  12,  75  ! Plane X', wire 75
+  43,  12,  76  ! Plane X', wire 76
+  44,  12,  77  ! Plane X', wire 77
+  45,  12,  78  ! Plane X', wire 78
+  46,  12,  79  ! Plane X', wire 79
+  47,  12,  80  ! Plane X', wire 80
+  48,  12,  81  ! Plane X', wire 81
+  49,  12,  82  ! Plane X', wire 82
+  50,  12,  83  ! Plane X', wire 83
+  51,  12,  84  ! Plane X', wire 84
+  52,  12,  85  ! Plane X', wire 85
+  53,  12,  86  ! Plane X', wire 86
+  54,  12,  87  ! Plane X', wire 87
+  55,  12,  88  ! Plane X', wire 88
+  56,  12,  89  ! Plane X', wire 89
+  57,  12,  90  ! Plane X', wire 90
+  58,  12,  91  ! Plane X', wire 91
+  59,  12,  92  ! Plane X', wire 92
+  60,  12,  93  ! Plane X', wire 93
+  61,  12,  94  ! Plane X', wire 94
+  62,  12,  95  ! Plane X', wire 95
+  63,  12,  96  ! Plane X', wire 96
+  64,  12,  97  ! Plane X', wire 97
+  65,  12,  98  ! Plane X', wire 98
+  66,  12,  99  ! Plane X', wire 99
+  67,  12, 100  ! Plane X', wire 100
+  68,  12, 101  ! Plane X', wire 101
+  69,  12, 102  ! Plane X', wire 102
+  70,  12, 103  ! Plane X', wire 103
+  71,  12, 104  ! Plane X', wire 104
+  72,  12, 105  ! Plane X', wire 105
+  73,  12, 106  ! Plane X', wire 106
+  74,  12, 107  ! Plane X', wire 107
+  75,  12, 108  ! Plane X', wire 108
+  76,  12, 109  ! Plane X', wire 109
+  77,  12, 110  ! Plane X', wire 110
+  78,  12, 111  ! Plane X', wire 111
+  79,  12, 112  ! Plane X', wire 112
+
+SLOT=17
+REFINDEX=0
+  64,   8,   1  ! Plane Y, wire 1
+  65,   8,   2  ! Plane Y, wire 2
+  66,   8,   3  ! Plane Y, wire 3
+  67,   8,   4  ! Plane Y, wire 4
+  68,   8,   5  ! Plane Y, wire 5
+  69,   8,   6  ! Plane Y, wire 6
+  70,   8,   7  ! Plane Y, wire 7
+  71,   8,   8  ! Plane Y, wire 8
+  72,   8,   9  ! Plane Y, wire 9
+  73,   8,  10  ! Plane Y, wire 10
+  74,   8,  11  ! Plane Y, wire 11
+  75,   8,  12  ! Plane Y, wire 12
+  76,   8,  13  ! Plane Y, wire 13
+  80,   8,  14  ! Plane Y, wire 14
+  81,   8,  15  ! Plane Y, wire 15
+  82,   8,  16  ! Plane Y, wire 16
+  83,   8,  17  ! Plane Y, wire 17
+  84,   8,  18  ! Plane Y, wire 18
+  85,   8,  19  ! Plane Y, wire 19
+  86,   8,  20  ! Plane Y, wire 20
+  87,   8,  21  ! Plane Y, wire 21
+  88,   8,  22  ! Plane Y, wire 22
+  89,   8,  23  ! Plane Y, wire 23
+  90,   8,  24  ! Plane Y, wire 24
+  91,   8,  25  ! Plane Y, wire 25
+  92,   8,  26  ! Plane Y, wire 26
+  96,   8,  27  ! Plane Y, wire 27
+  97,   8,  28  ! Plane Y, wire 28
+  98,   8,  29  ! Plane Y, wire 29
+  99,   8,  30  ! Plane Y, wire 30
+ 100,   8,  31  ! Plane Y, wire 31
+ 101,   8,  32  ! Plane Y, wire 32
+ 102,   8,  33  ! Plane Y, wire 33
+ 103,   8,  34  ! Plane Y, wire 34
+ 104,   8,  35  ! Plane Y, wire 35
+ 105,   8,  36  ! Plane Y, wire 36
+ 106,   8,  37  ! Plane Y, wire 37
+ 107,   8,  38  ! Plane Y, wire 38
+ 108,   8,  39  ! Plane Y, wire 39
+ 112,   8,  40  ! Plane Y, wire 40
+ 113,   8,  41  ! Plane Y, wire 41
+ 114,   8,  42  ! Plane Y, wire 42
+ 115,   8,  43  ! Plane Y, wire 43
+ 116,   8,  44  ! Plane Y, wire 44
+ 117,   8,  45  ! Plane Y, wire 45
+ 118,   8,  46  ! Plane Y, wire 46
+ 119,   8,  47  ! Plane Y, wire 47
+ 120,   8,  48  ! Plane Y, wire 48
+ 121,   8,  49  ! Plane Y, wire 49
+ 122,   8,  50  ! Plane Y, wire 50
+ 123,   8,  51  ! Plane Y, wire 51
+ 124,   8,  52  ! Plane Y, wire 52
+
+SLOT=10
+REFINDEX=0
+ 127,1000,   0,   1
+  64,  11,   1  ! Plane Y', wire 1
+  65,  11,   2  ! Plane Y', wire 2
+  66,  11,   3  ! Plane Y', wire 3
+  67,  11,   4  ! Plane Y', wire 4
+  68,  11,   5  ! Plane Y', wire 5
+  69,  11,   6  ! Plane Y', wire 6
+  70,  11,   7  ! Plane Y', wire 7
+  71,  11,   8  ! Plane Y', wire 8
+  72,  11,   9  ! Plane Y', wire 9
+  73,  11,  10  ! Plane Y', wire 10
+  74,  11,  11  ! Plane Y', wire 11
+  75,  11,  12  ! Plane Y', wire 12
+  76,  11,  13  ! Plane Y', wire 13
+  80,  11,  14  ! Plane Y', wire 14
+  81,  11,  15  ! Plane Y', wire 15
+  82,  11,  16  ! Plane Y', wire 16
+  83,  11,  17  ! Plane Y', wire 17
+  84,  11,  18  ! Plane Y', wire 18
+  85,  11,  19  ! Plane Y', wire 19
+  86,  11,  20  ! Plane Y', wire 20
+  87,  11,  21  ! Plane Y', wire 21
+  88,  11,  22  ! Plane Y', wire 22
+  89,  11,  23  ! Plane Y', wire 23
+  90,  11,  24  ! Plane Y', wire 24
+  91,  11,  25  ! Plane Y', wire 25
+  92,  11,  26  ! Plane Y', wire 26
+  96,  11,  27  ! Plane Y', wire 27
+  97,  11,  28  ! Plane Y', wire 28
+  98,  11,  29  ! Plane Y', wire 29
+  99,  11,  30  ! Plane Y', wire 30
+ 100,  11,  31  ! Plane Y', wire 31
+ 101,  11,  32  ! Plane Y', wire 32
+ 102,  11,  33  ! Plane Y', wire 33
+ 103,  11,  34  ! Plane Y', wire 34
+ 104,  11,  35  ! Plane Y', wire 35
+ 105,  11,  36  ! Plane Y', wire 36
+ 106,  11,  37  ! Plane Y', wire 37
+ 107,  11,  38  ! Plane Y', wire 38
+ 108,  11,  39  ! Plane Y', wire 39
+ 112,  11,  40  ! Plane Y', wire 40
+ 113,  11,  41  ! Plane Y', wire 41
+ 114,  11,  42  ! Plane Y', wire 42
+ 115,  11,  43  ! Plane Y', wire 43
+ 116,  11,  44  ! Plane Y', wire 44
+ 117,  11,  45  ! Plane Y', wire 45
+ 118,  11,  46  ! Plane Y', wire 46
+ 119,  11,  47  ! Plane Y', wire 47
+ 120,  11,  48  ! Plane Y', wire 48
+ 121,  11,  49  ! Plane Y', wire 49
+ 122,  11,  50  ! Plane Y', wire 50
+ 123,  11,  51  ! Plane Y', wire 51
+ 124,  11,  52  ! Plane Y', wire 52
+
+
+DETECTOR=13
+
+ROC=1
+
+SLOT=8
+   0,   1,   1,   0  ! h1x01A+
+   1,   1,   2,   0  ! h1x02A+
+   2,   1,   3,   0  ! h1x03A+
+   3,   1,   4,   0  ! h1x04A+
+   4,   1,   5,   0  ! h1x05A+
+   5,   1,   6,   0  ! h1x06A+
+   6,   1,   7,   0  ! h1x07A+
+   7,   1,   8,   0  ! h1x08A+
+   8,   1,   9,   0  ! h1x09A+
+   9,   1,  10,   0  ! h1x10A+
+  10,   1,  11,   0  ! h1x11A+
+  11,   1,  12,   0  ! h1x12A+
+  12,   1,  13,   0  ! h1x13A+
+  13,   1,  14,   0  ! h1x14A+
+  14,   1,  15,   0  ! h1x15A+
+  15,   1,  16,   0  ! h1x16A+
+
+SLOT=9
+   0,   1,   1,   1  ! h1x01A-
+   1,   1,   2,   1  ! h1x02A-
+   2,   1,   3,   1  ! h1x03A-
+   3,   1,   4,   1  ! h1x04A-
+   4,   1,   5,   1  ! h1x05A-
+   5,   1,   6,   1  ! h1x06A-
+   6,   1,   7,   1  ! h1x07A-
+   7,   1,   8,   1  ! h1x08A-
+   8,   1,   9,   1  ! h1x09A-
+   9,   1,  10,   1  ! h1x10A-
+  10,   1,  11,   1  ! h1x11A-
+  11,   1,  12,   1  ! h1x12A-
+  12,   1,  13,   1  ! h1x13A-
+  13,   1,  14,   1  ! h1x14A-
+  14,   1,  15,   1  ! h1x15A-
+  15,   1,  16,   1  ! h1x16A-
+
+SLOT=10
+   0,   2,   1,   0  ! h1y01A+
+   1,   2,   2,   0  ! h1y02A+
+   2,   2,   3,   0  ! h1y03A+
+   3,   2,   4,   0  ! h1y04A+
+   4,   2,   5,   0  ! h1y05A+
+   5,   2,   6,   0  ! h1y06A+
+   6,   2,   7,   0  ! h1y07A+
+   7,   2,   8,   0  ! h1y08A+
+   8,   2,   9,   0  ! h1y09A+
+   9,   2,  10,   0  ! h1y10A+
+  10,   2,   1,   1  ! h1y01A-
+  11,   2,   2,   1  ! h1y02A-
+  12,   2,   3,   1  ! h1y03A-
+  13,   2,   4,   1  ! h1y04A-
+  14,   2,   5,   1  ! h1y05A-
+  15,   2,   6,   1  ! h1y06A-
+
+SLOT=13
+   0,   2,   7,   1  ! h1y07A-
+   1,   2,   8,   1  ! h1y08A-
+   2,   2,   9,   1  ! h1y09A-
+   3,   2,  10,   1  ! h1y10A-
+   4,   3,   1,   0  ! h2x01A+
+   5,   3,   2,   0  ! h2x02A+
+   6,   3,   3,   0  ! h2x03A+
+   7,   3,   4,   0  ! h2x04A+
+   8,   3,   5,   0  ! h2x05A+
+   9,   3,   6,   0  ! h2x06A+
+  10,   3,   7,   0  ! h2x07A+
+  11,   3,   8,   0  ! h2x08A+
+  12,   3,   9,   0  ! h2x09A+
+  13,   3,  10,   0  ! h2x10A+
+  14,   3,  11,   0  ! h2x11A+
+  15,   3,  12,   0  ! h2x12A+
+
+SLOT=14
+   0,   3,  13,   0  ! h2x13A+
+   1,   3,  14,   0  ! h2x14A+
+   2,   3,  15,   0  ! h2x15A+
+   3,   3,  16,   0  ! h2x16A+
+   4,   3,   1,   1  ! h2x01A-
+   5,   3,   2,   1  ! h2x02A-
+   6,   3,   3,   1  ! h2x03A-
+   7,   3,   4,   1  ! h2x04A-
+   8,   3,   5,   1  ! h2x05A-
+   9,   3,   6,   1  ! h2x06A-
+  10,   3,   7,   1  ! h2x07A-
+  11,   3,   8,   1  ! h2x08A-
+  12,   3,   9,   1  ! h2x09A-
+  13,   3,  10,   1  ! h2x10A-
+  14,   3,  11,   1  ! h2x11A-
+  15,   3,  12,   1  ! h2x12A-
+
+SLOT=15
+   0,   3,  13,   1  ! h2x13A-
+   1,   3,  14,   1  ! h2x14A-
+   2,   3,  15,   1  ! h2x15A-
+   3,   3,  16,   1  ! h2x16A-
+   4,   4,   1,   0  ! h2y01A+
+   5,   4,   2,   0  ! h2y02A+
+   6,   4,   3,   0  ! h2y03A+
+   7,   4,   4,   0  ! h2y04A+
+   8,   4,   5,   0  ! h2y05A+
+   9,   4,   6,   0  ! h2y06A+
+  10,   4,   7,   0  ! h2y07A+
+  11,   4,   8,   0  ! h2y08A+
+  12,   4,   9,   0  ! h2y09A+
+  13,   4,  10,   0  ! h2y10A+
+  14,   4,   1,   1  ! h2y01A-
+  15,   4,   2,   1  ! h2y02A-
+
+SLOT=16
+   0,   4,   3,   1  ! h2y03A-
+   1,   4,   4,   1  ! h2y04A-
+   2,   4,   5,   1  ! h2y05A-
+   3,   4,   6,   1  ! h2y06A-
+   4,   4,   7,   1  ! h2y07A-
+   5,   4,   8,   1  ! h2y08A-
+   6,   4,   9,   1  ! h2y09A-
+   7,   4,  10,   1  ! h2y10A-
+
+SLOT=20
+REFINDEX=0
+ 127,1000,   0,   0
+   0,   1,   1,   2  ! h1x01T+
+   1,   1,   3,   2  ! h1x03T+
+   2,   1,   5,   2  ! h1x05T+
+   3,   1,   7,   2  ! h1x07T+
+   4,   1,   2,   2  ! h1x02T+
+   5,   1,   4,   2  ! h1x04T+
+   6,   1,   6,   2  ! h1x06T+
+   7,   1,   8,   2  ! h1x08T+
+   8,   1,   9,   2  ! h1x09T+
+   9,   1,  11,   2  ! h1x11T+
+  10,   1,  13,   2  ! h1x13T+
+  11,   1,  15,   2  ! h1x15T+
+  12,   1,  10,   2  ! h1x10T+
+  13,   1,  12,   2  ! h1x12T+
+  14,   1,  14,   2  ! h1x14T+
+  15,   1,  16,   2  ! h1x16T+
+  16,   1,   1,   3  ! h1x01T-
+  17,   1,   3,   3  ! h1x03T-
+  18,   1,   5,   3  ! h1x05T-
+  19,   1,   7,   3  ! h1x07T-
+  20,   1,   2,   3  ! h1x02T-
+  21,   1,   4,   3  ! h1x04T-
+  22,   1,   6,   3  ! h1x06T-
+  23,   1,   8,   3  ! h1x08T-
+  24,   1,   9,   3  ! h1x09T-
+  25,   1,  11,   3  ! h1x11T-
+  26,   1,  13,   3  ! h1x13T-
+  27,   1,  15,   3  ! h1x15T-
+  28,   1,  10,   3  ! h1x10T-
+  29,   1,  12,   3  ! h1x12T-
+  30,   1,  14,   3  ! h1x14T-
+  31,   1,  16,   3  ! h1x16T-
+  32,   2,   1,   2  ! h1y01T+
+  33,   2,   3,   2  ! h1y03T+
+  34,   2,   5,   2  ! h1y05T+
+  35,   2,   7,   2  ! h1y07T+
+  36,   2,   2,   2  ! h1y02T+
+  37,   2,   4,   2  ! h1y04T+
+  38,   2,   6,   2  ! h1y06T+
+  39,   2,   8,   2  ! h1y08T+
+  40,   2,   9,   2  ! h1y09T+
+  44,   2,  10,   2  ! h1y10T+
+  48,   2,   1,   3  ! h1y01T-
+  49,   2,   3,   3  ! h1y03T-
+  50,   2,   5,   3  ! h1y05T-
+  51,   2,   7,   3  ! h1y07T-
+  52,   2,   2,   3  ! h1y02T-
+  53,   2,   4,   3  ! h1y04T-
+  54,   2,   6,   3  ! h1y06T-
+  55,   2,   8,   3  ! h1y08T-
+  56,   2,   9,   3  ! h1y09T-
+  60,   2,  10,   3  ! h1y10T-
+  64,   3,   1,   2  ! h2x01T+
+  65,   3,   3,   2  ! h2x03T+
+  66,   3,   5,   2  ! h2x05T+
+  67,   3,   7,   2  ! h2x07T+
+  68,   3,   2,   2  ! h2x02T+
+  69,   3,   4,   2  ! h2x04T+
+  70,   3,   6,   2  ! h2x06T+
+  71,   3,   8,   2  ! h2x08T+
+  72,   3,   9,   2  ! h2x09T+
+  73,   3,  11,   2  ! h2x11T+
+  74,   3,  13,   2  ! h2x13T+
+  75,   3,  15,   2  ! h2x15T+
+  76,   3,  10,   2  ! h2x10T+
+  77,   3,  12,   2  ! h2x12T+
+  78,   3,  14,   2  ! h2x14T+
+  79,   3,  16,   2  ! h2x16T+
+  80,   3,   1,   3  ! h2x01T-
+  81,   3,   3,   3  ! h2x03T-
+  82,   3,   5,   3  ! h2x05T-
+  83,   3,   7,   3  ! h2x07T-
+  84,   3,   2,   3  ! h2x02T-
+  85,   3,   4,   3  ! h2x04T-
+  86,   3,   6,   3  ! h2x06T-
+  87,   3,   8,   3  ! h2x08T-
+  88,   3,   9,   3  ! h2x09T-
+  89,   3,  11,   3  ! h2x11T-
+  90,   3,  13,   3  ! h2x13T-
+  91,   3,  15,   3  ! h2x15T-
+  92,   3,  10,   3  ! h2x10T-
+  93,   3,  12,   3  ! h2x12T-
+  94,   3,  14,   3  ! h2x14T-
+  95,   3,  16,   3  ! h2x16T-
+  96,   4,   1,   2  ! h2y01T+
+  97,   4,   3,   2  ! h2y03T+
+  98,   4,   5,   2  ! h2y05T+
+  99,   4,   7,   2  ! h2y07T+
+ 100,   4,   2,   2  ! h2y02T+
+ 101,   4,   4,   2  ! h2y04T+
+ 102,   4,   6,   2  ! h2y06T+
+ 103,   4,   8,   2  ! h2y08T+
+ 104,   4,   9,   2  ! h2y09T+
+ 108,   4,  10,   2  ! h2y10T+
+ 112,   4,   1,   3  ! h2y01T-
+ 113,   4,   3,   3  ! h2y03T-
+ 114,   4,   5,   3  ! h2y05T-
+ 115,   4,   7,   3  ! h2y07T-
+ 116,   4,   2,   3  ! h2y02T-
+ 117,   4,   4,   3  ! h2y04T-
+ 118,   4,   6,   3  ! h2y06T-
+ 119,   4,   8,   3  ! h2y08T-
+ 120,   4,   9,   3  ! h2y09T-
+ 124,   4,  10,   3  ! h2y10T-
diff --git a/MAPS/HMS/DETEC/hdc_htrig.map b/MAPS/HMS/DETEC/hdc_htrig.map
new file mode 100644
index 00000000..b3e0097e
--- /dev/null
+++ b/MAPS/HMS/DETEC/hdc_htrig.map
@@ -0,0 +1,1210 @@
+! THMS_ID=10       ::  ADC,TDC
+! HDC_ID=11        ::  ADC,TDC
+
+
+DETECTOR=10
+
+ROC=1
+
+SLOT=17
+   8,   1,   1,   0  ! hASUM
+   9,   1,   2,   0  ! hBSUM
+  10,   1,   3,   0  ! hCSUM
+  11,   1,   4,   0  ! hDSUM
+  12,   1,   5,   0  ! hPSHWR
+  13,   1,   6,   0  ! hSHWR
+  14,   1,   7,   0  ! hAERSUM
+  15,   1,   8,   0  ! hCERSUM
+
+SLOT=2
+   0,   2,   1,   1  ! h1X
+   1,   2,   2,   1  ! h1Y
+   2,   2,   3,   1  ! h2X
+   3,   2,   4,   1  ! h2Y
+   4,   2,   5,   1  ! h1T
+   5,   2,   6,   1  ! h2T
+   6,   2,   7,   1  ! hT1
+   7,   2,   8,   1  ! hASUM
+   8,   2,   9,   1  ! hBSUM
+   9,   2,  10,   1  ! hCSUM
+  10,   2,  11,   1  ! hDSUM
+  11,   2,  12,   1  ! hPSHWRLO
+  12,   2,  13,   1  ! hPSHWRHI
+  13,   2,  14,   1  ! hSHWR
+  14,   2,  15,   1  ! hAERSUM
+  15,   2,  16,   1  ! hCERSUM
+
+SLOT=20
+ 127,   2,  17,   1  ! hT2
+
+ROC=3
+
+SLOT=5
+ 111,   2,  18,   1  ! hDCREF1
+
+SLOT=8
+ 127,   2,  19,   1  ! hDCREF2
+
+SLOT=10
+ 127,   2,  20,   1  ! hDCREF3
+
+SLOT=17
+ 127,   2,  21,   1  ! hDCREF4
+
+
+DETECTOR=11  ! HMS chambers
+
+ROC=3
+
+SLOT=5
+REFINDEX=0
+ 111,1000,   0,   0
+  96,   3,   1  ! Plane U, wire 1
+  97,   3,   2  ! Plane U, wire 2
+  98,   3,   3  ! Plane U, wire 3
+  99,   3,   4  ! Plane U, wire 4
+ 100,   3,   5  ! Plane U, wire 5
+ 101,   3,   6  ! Plane U, wire 6
+ 102,   3,   7  ! Plane U, wire 7
+ 103,   3,   8  ! Plane U, wire 8
+ 104,   3,   9  ! Plane U, wire 9
+ 105,   3,  10  ! Plane U, wire 10
+ 106,   3,  11  ! Plane U, wire 11
+ 107,   3,  12  ! Plane U, wire 12
+ 108,   3,  13  ! Plane U, wire 13
+ 109,   3,  14  ! Plane U, wire 14
+ 110,   1, 113  ! Plane X, wire 113
+  80,   3,  15  ! Plane U, wire 15
+  81,   3,  16  ! Plane U, wire 16
+  82,   3,  17  ! Plane U, wire 17
+  83,   3,  18  ! Plane U, wire 18
+  84,   3,  19  ! Plane U, wire 19
+  85,   3,  20  ! Plane U, wire 20
+  86,   3,  21  ! Plane U, wire 21
+  87,   3,  22  ! Plane U, wire 22
+  88,   3,  23  ! Plane U, wire 23
+  89,   3,  24  ! Plane U, wire 24
+  90,   3,  25  ! Plane U, wire 25
+  91,   3,  26  ! Plane U, wire 26
+  92,   3,  27  ! Plane U, wire 27
+  93,   3,  28  ! Plane U, wire 28
+  94,   3,  29  ! Plane U, wire 29
+  64,   3,  30  ! Plane U, wire 30
+  65,   3,  31  ! Plane U, wire 31
+  66,   3,  32  ! Plane U, wire 32
+  67,   3,  33  ! Plane U, wire 33
+  68,   3,  34  ! Plane U, wire 34
+  69,   3,  35  ! Plane U, wire 35
+  70,   3,  36  ! Plane U, wire 36
+  71,   3,  37  ! Plane U, wire 37
+  72,   3,  38  ! Plane U, wire 38
+  73,   3,  39  ! Plane U, wire 39
+  74,   3,  40  ! Plane U, wire 40
+  75,   3,  41  ! Plane U, wire 41
+  76,   3,  42  ! Plane U, wire 42
+  77,   3,  43  ! Plane U, wire 43
+  78,   3,  44  ! Plane U, wire 44
+  79,   3,  45  ! Plane U, wire 45
+  48,   3,  46  ! Plane U, wire 46
+  49,   3,  47  ! Plane U, wire 47
+  50,   3,  48  ! Plane U, wire 48
+  51,   3,  49  ! Plane U, wire 49
+  52,   3,  50  ! Plane U, wire 50
+  53,   3,  51  ! Plane U, wire 51
+  54,   3,  52  ! Plane U, wire 52
+  55,   3,  53  ! Plane U, wire 53
+  56,   3,  54  ! Plane U, wire 54
+  57,   3,  55  ! Plane U, wire 55
+  58,   3,  56  ! Plane U, wire 56
+  59,   3,  57  ! Plane U, wire 57
+  60,   3,  58  ! Plane U, wire 58
+  61,   3,  59  ! Plane U, wire 59
+  62,   3,  60  ! Plane U, wire 60
+  32,   3,  61  ! Plane U, wire 61
+  33,   3,  62  ! Plane U, wire 62
+  34,   3,  63  ! Plane U, wire 63
+  35,   3,  64  ! Plane U, wire 64
+  36,   3,  65  ! Plane U, wire 65
+  37,   3,  66  ! Plane U, wire 66
+  38,   3,  67  ! Plane U, wire 67
+  39,   3,  68  ! Plane U, wire 68
+  40,   3,  69  ! Plane U, wire 69
+  41,   3,  70  ! Plane U, wire 70
+  42,   3,  71  ! Plane U, wire 71
+  43,   3,  72  ! Plane U, wire 72
+  44,   3,  73  ! Plane U, wire 73
+  45,   3,  74  ! Plane U, wire 74
+  46,   3,  75  ! Plane U, wire 75
+  47,   3,  76  ! Plane U, wire 76
+  16,   3,  77  ! Plane U, wire 77
+  17,   3,  78  ! Plane U, wire 78
+  18,   3,  79  ! Plane U, wire 79
+  19,   3,  80  ! Plane U, wire 80
+  20,   3,  81  ! Plane U, wire 81
+  21,   3,  82  ! Plane U, wire 82
+  22,   3,  83  ! Plane U, wire 83
+  23,   3,  84  ! Plane U, wire 84
+  24,   3,  85  ! Plane U, wire 85
+  25,   3,  86  ! Plane U, wire 86
+  26,   3,  87  ! Plane U, wire 87
+  27,   3,  88  ! Plane U, wire 88
+  28,   3,  89  ! Plane U, wire 89
+  29,   3,  90  ! Plane U, wire 90
+  30,   3,  91  ! Plane U, wire 91
+   0,   3,  92  ! Plane U, wire 92
+   1,   3,  93  ! Plane U, wire 93
+   2,   3,  94  ! Plane U, wire 94
+   3,   3,  95  ! Plane U, wire 95
+   4,   3,  96  ! Plane U, wire 96
+   5,   3,  97  ! Plane U, wire 97
+   6,   3,  98  ! Plane U, wire 98
+   7,   3,  99  ! Plane U, wire 99
+   8,   3, 100  ! Plane U, wire 100
+   9,   3, 101  ! Plane U, wire 101
+  10,   3, 102  ! Plane U, wire 102
+  11,   3, 103  ! Plane U, wire 103
+  12,   3, 104  ! Plane U, wire 104
+  13,   3, 105  ! Plane U, wire 105
+  14,   3, 106  ! Plane U, wire 106
+  15,   3, 107  ! Plane U, wire 107
+
+SLOT=7
+REFINDEX=0
+  96,   4,   1  ! Plane V, wire 1
+  97,   4,   2  ! Plane V, wire 2
+  98,   4,   3  ! Plane V, wire 3
+  99,   4,   4  ! Plane V, wire 4
+ 100,   4,   5  ! Plane V, wire 5
+ 101,   4,   6  ! Plane V, wire 6
+ 102,   4,   7  ! Plane V, wire 7
+ 103,   4,   8  ! Plane V, wire 8
+ 104,   4,   9  ! Plane V, wire 9
+ 105,   4,  10  ! Plane V, wire 10
+ 106,   4,  11  ! Plane V, wire 11
+ 107,   4,  12  ! Plane V, wire 12
+ 108,   4,  13  ! Plane V, wire 13
+ 109,   4,  14  ! Plane V, wire 14
+ 110,   6, 113  ! Plane X', wire 113
+ 112,   4,  15  ! Plane V, wire 15
+ 113,   4,  16  ! Plane V, wire 16
+ 114,   4,  17  ! Plane V, wire 17
+ 115,   4,  18  ! Plane V, wire 18
+ 116,   4,  19  ! Plane V, wire 19
+ 117,   4,  20  ! Plane V, wire 20
+ 118,   4,  21  ! Plane V, wire 21
+ 119,   4,  22  ! Plane V, wire 22
+ 120,   4,  23  ! Plane V, wire 23
+ 121,   4,  24  ! Plane V, wire 24
+ 122,   4,  25  ! Plane V, wire 25
+ 123,   4,  26  ! Plane V, wire 26
+ 124,   4,  27  ! Plane V, wire 27
+ 125,   4,  28  ! Plane V, wire 28
+ 126,   4,  29  ! Plane V, wire 29
+
+SLOT=8
+REFINDEX=0
+ 127,1000,   0,   1
+   0,   4,  30  ! Plane V, wire 30
+   1,   4,  31  ! Plane V, wire 31
+   2,   4,  32  ! Plane V, wire 32
+   3,   4,  33  ! Plane V, wire 33
+   4,   4,  34  ! Plane V, wire 34
+   5,   4,  35  ! Plane V, wire 35
+   6,   4,  36  ! Plane V, wire 36
+   7,   4,  37  ! Plane V, wire 37
+   8,   4,  38  ! Plane V, wire 38
+   9,   4,  39  ! Plane V, wire 39
+  10,   4,  40  ! Plane V, wire 40
+  11,   4,  41  ! Plane V, wire 41
+  12,   4,  42  ! Plane V, wire 42
+  13,   4,  43  ! Plane V, wire 43
+  14,   4,  44  ! Plane V, wire 44
+  15,   4,  45  ! Plane V, wire 45
+  16,   4,  46  ! Plane V, wire 46
+  17,   4,  47  ! Plane V, wire 47
+  18,   4,  48  ! Plane V, wire 48
+  19,   4,  49  ! Plane V, wire 49
+  20,   4,  50  ! Plane V, wire 50
+  21,   4,  51  ! Plane V, wire 51
+  22,   4,  52  ! Plane V, wire 52
+  23,   4,  53  ! Plane V, wire 53
+  24,   4,  54  ! Plane V, wire 54
+  25,   4,  55  ! Plane V, wire 55
+  26,   4,  56  ! Plane V, wire 56
+  27,   4,  57  ! Plane V, wire 57
+  28,   4,  58  ! Plane V, wire 58
+  29,   4,  59  ! Plane V, wire 59
+  30,   4,  60  ! Plane V, wire 60
+  32,   4,  61  ! Plane V, wire 61
+  33,   4,  62  ! Plane V, wire 62
+  34,   4,  63  ! Plane V, wire 63
+  35,   4,  64  ! Plane V, wire 64
+  36,   4,  65  ! Plane V, wire 65
+  37,   4,  66  ! Plane V, wire 66
+  38,   4,  67  ! Plane V, wire 67
+  39,   4,  68  ! Plane V, wire 68
+  40,   4,  69  ! Plane V, wire 69
+  41,   4,  70  ! Plane V, wire 70
+  42,   4,  71  ! Plane V, wire 71
+  43,   4,  72  ! Plane V, wire 72
+  44,   4,  73  ! Plane V, wire 73
+  45,   4,  74  ! Plane V, wire 74
+  46,   4,  75  ! Plane V, wire 75
+  47,   4,  76  ! Plane V, wire 76
+  48,   4,  77  ! Plane V, wire 77
+  49,   4,  78  ! Plane V, wire 78
+  50,   4,  79  ! Plane V, wire 79
+  51,   4,  80  ! Plane V, wire 80
+  52,   4,  81  ! Plane V, wire 81
+  53,   4,  82  ! Plane V, wire 82
+  54,   4,  83  ! Plane V, wire 83
+  55,   4,  84  ! Plane V, wire 84
+  56,   4,  85  ! Plane V, wire 85
+  57,   4,  86  ! Plane V, wire 86
+  58,   4,  87  ! Plane V, wire 87
+  59,   4,  88  ! Plane V, wire 88
+  60,   4,  89  ! Plane V, wire 89
+  61,   4,  90  ! Plane V, wire 90
+  62,   4,  91  ! Plane V, wire 91
+
+SLOT=4
+REFINDEX=0
+  96,   4,  92  ! Plane V, wire 92
+  97,   4,  93  ! Plane V, wire 93
+  98,   4,  94  ! Plane V, wire 94
+  99,   4,  95  ! Plane V, wire 95
+ 100,   4,  96  ! Plane V, wire 96
+ 101,   4,  97  ! Plane V, wire 97
+ 102,   4,  98  ! Plane V, wire 98
+ 103,   4,  99  ! Plane V, wire 99
+ 104,   4, 100  ! Plane V, wire 100
+ 105,   4, 101  ! Plane V, wire 101
+ 106,   4, 102  ! Plane V, wire 102
+ 107,   4, 103  ! Plane V, wire 103
+ 108,   4, 104  ! Plane V, wire 104
+ 109,   4, 105  ! Plane V, wire 105
+ 110,   4, 106  ! Plane V, wire 106
+ 111,   4, 107  ! Plane V, wire 107
+  80,   1,   1  ! Plane X, wire 1
+  81,   1,   2  ! Plane X, wire 2
+  82,   1,   3  ! Plane X, wire 3
+  83,   1,   4  ! Plane X, wire 4
+  84,   1,   5  ! Plane X, wire 5
+  85,   1,   6  ! Plane X, wire 6
+  86,   1,   7  ! Plane X, wire 7
+  87,   1,   8  ! Plane X, wire 8
+  88,   1,   9  ! Plane X, wire 9
+  89,   1,  10  ! Plane X, wire 10
+  90,   1,  11  ! Plane X, wire 11
+  91,   1,  12  ! Plane X, wire 12
+  92,   1,  13  ! Plane X, wire 13
+  93,   1,  14  ! Plane X, wire 14
+  94,   1,  15  ! Plane X, wire 15
+  95,   1,  16  ! Plane X, wire 16
+  64,   1,  17  ! Plane X, wire 17
+  65,   1,  18  ! Plane X, wire 18
+  66,   1,  19  ! Plane X, wire 19
+  67,   1,  20  ! Plane X, wire 20
+  68,   1,  21  ! Plane X, wire 21
+  69,   1,  22  ! Plane X, wire 22
+  70,   1,  23  ! Plane X, wire 23
+  71,   1,  24  ! Plane X, wire 24
+  72,   1,  25  ! Plane X, wire 25
+  73,   1,  26  ! Plane X, wire 26
+  74,   1,  27  ! Plane X, wire 27
+  75,   1,  28  ! Plane X, wire 28
+  76,   1,  29  ! Plane X, wire 29
+  77,   1,  30  ! Plane X, wire 30
+  78,   1,  31  ! Plane X, wire 31
+  79,   1,  32  ! Plane X, wire 32
+  48,   1,  33  ! Plane X, wire 33
+  49,   1,  34  ! Plane X, wire 34
+  50,   1,  35  ! Plane X, wire 35
+  51,   1,  36  ! Plane X, wire 36
+  52,   1,  37  ! Plane X, wire 37
+  53,   1,  38  ! Plane X, wire 38
+  54,   1,  39  ! Plane X, wire 39
+  55,   1,  40  ! Plane X, wire 40
+  56,   1,  41  ! Plane X, wire 41
+  57,   1,  42  ! Plane X, wire 42
+  58,   1,  43  ! Plane X, wire 43
+  59,   1,  44  ! Plane X, wire 44
+  60,   1,  45  ! Plane X, wire 45
+  61,   1,  46  ! Plane X, wire 46
+  62,   1,  47  ! Plane X, wire 47
+  63,   1,  48  ! Plane X, wire 48
+  32,   1,  49  ! Plane X, wire 49
+  33,   1,  50  ! Plane X, wire 50
+  34,   1,  51  ! Plane X, wire 51
+  35,   1,  52  ! Plane X, wire 52
+  36,   1,  53  ! Plane X, wire 53
+  37,   1,  54  ! Plane X, wire 54
+  38,   1,  55  ! Plane X, wire 55
+  39,   1,  56  ! Plane X, wire 56
+  40,   1,  57  ! Plane X, wire 57
+  41,   1,  58  ! Plane X, wire 58
+  42,   1,  59  ! Plane X, wire 59
+  43,   1,  60  ! Plane X, wire 60
+  44,   1,  61  ! Plane X, wire 61
+  45,   1,  62  ! Plane X, wire 62
+  46,   1,  63  ! Plane X, wire 63
+  47,   1,  64  ! Plane X, wire 64
+  16,   1,  65  ! Plane X, wire 65
+  17,   1,  66  ! Plane X, wire 66
+  18,   1,  67  ! Plane X, wire 67
+  19,   1,  68  ! Plane X, wire 68
+  20,   1,  69  ! Plane X, wire 69
+  21,   1,  70  ! Plane X, wire 70
+  22,   1,  71  ! Plane X, wire 71
+  23,   1,  72  ! Plane X, wire 72
+  24,   1,  73  ! Plane X, wire 73
+  25,   1,  74  ! Plane X, wire 74
+  26,   1,  75  ! Plane X, wire 75
+  27,   1,  76  ! Plane X, wire 76
+  28,   1,  77  ! Plane X, wire 77
+  29,   1,  78  ! Plane X, wire 78
+  30,   1,  79  ! Plane X, wire 79
+  31,   1,  80  ! Plane X, wire 80
+   0,   1,  81  ! Plane X, wire 81
+   1,   1,  82  ! Plane X, wire 82
+   2,   1,  83  ! Plane X, wire 83
+   3,   1,  84  ! Plane X, wire 84
+   4,   1,  85  ! Plane X, wire 85
+   5,   1,  86  ! Plane X, wire 86
+   6,   1,  87  ! Plane X, wire 87
+   7,   1,  88  ! Plane X, wire 88
+   8,   1,  89  ! Plane X, wire 89
+   9,   1,  90  ! Plane X, wire 90
+  10,   1,  91  ! Plane X, wire 91
+  11,   1,  92  ! Plane X, wire 92
+  12,   1,  93  ! Plane X, wire 93
+  13,   1,  94  ! Plane X, wire 94
+  14,   1,  95  ! Plane X, wire 95
+  15,   1,  96  ! Plane X, wire 96
+
+SLOT=7
+REFINDEX=0
+  80,   1,  97  ! Plane X, wire 97
+  81,   1,  98  ! Plane X, wire 98
+  82,   1,  99  ! Plane X, wire 99
+  83,   1, 100  ! Plane X, wire 100
+  84,   1, 101  ! Plane X, wire 101
+  85,   1, 102  ! Plane X, wire 102
+  86,   1, 103  ! Plane X, wire 103
+  87,   1, 104  ! Plane X, wire 104
+  88,   1, 105  ! Plane X, wire 105
+  89,   1, 106  ! Plane X, wire 106
+  90,   1, 107  ! Plane X, wire 107
+  91,   1, 108  ! Plane X, wire 108
+  92,   1, 109  ! Plane X, wire 109
+  93,   1, 110  ! Plane X, wire 110
+  94,   1, 111  ! Plane X, wire 111
+  95,   1, 112  ! Plane X, wire 112
+
+SLOT=4
+REFINDEX=0
+ 112,   6,   1  ! Plane X', wire 1
+ 113,   6,   2  ! Plane X', wire 2
+ 114,   6,   3  ! Plane X', wire 3
+ 115,   6,   4  ! Plane X', wire 4
+ 116,   6,   5  ! Plane X', wire 5
+ 117,   6,   6  ! Plane X', wire 6
+ 118,   6,   7  ! Plane X', wire 7
+ 119,   6,   8  ! Plane X', wire 8
+ 120,   6,   9  ! Plane X', wire 9
+ 121,   6,  10  ! Plane X', wire 10
+ 122,   6,  11  ! Plane X', wire 11
+ 123,   6,  12  ! Plane X', wire 12
+ 124,   6,  13  ! Plane X', wire 13
+ 125,   6,  14  ! Plane X', wire 14
+ 126,   6,  15  ! Plane X', wire 15
+ 127,   6,  16  ! Plane X', wire 16
+
+SLOT=5
+REFINDEX=0
+ 112,   6,  17  ! Plane X', wire 17
+ 113,   6,  18  ! Plane X', wire 18
+ 114,   6,  19  ! Plane X', wire 19
+ 115,   6,  20  ! Plane X', wire 20
+ 116,   6,  21  ! Plane X', wire 21
+ 117,   6,  22  ! Plane X', wire 22
+ 118,   6,  23  ! Plane X', wire 23
+ 119,   6,  24  ! Plane X', wire 24
+ 120,   6,  25  ! Plane X', wire 25
+ 121,   6,  26  ! Plane X', wire 26
+ 122,   6,  27  ! Plane X', wire 27
+ 123,   6,  28  ! Plane X', wire 28
+ 124,   6,  29  ! Plane X', wire 29
+ 125,   6,  30  ! Plane X', wire 30
+ 126,   6,  31  ! Plane X', wire 31
+ 127,   6,  32  ! Plane X', wire 32
+
+SLOT=7
+REFINDEX=0
+   0,   6,  33  ! Plane X', wire 33
+   1,   6,  34  ! Plane X', wire 34
+   2,   6,  35  ! Plane X', wire 35
+   3,   6,  36  ! Plane X', wire 36
+   4,   6,  37  ! Plane X', wire 37
+   5,   6,  38  ! Plane X', wire 38
+   6,   6,  39  ! Plane X', wire 39
+   7,   6,  40  ! Plane X', wire 40
+   8,   6,  41  ! Plane X', wire 41
+   9,   6,  42  ! Plane X', wire 42
+  10,   6,  43  ! Plane X', wire 43
+  11,   6,  44  ! Plane X', wire 44
+  12,   6,  45  ! Plane X', wire 45
+  13,   6,  46  ! Plane X', wire 46
+  14,   6,  47  ! Plane X', wire 47
+  15,   6,  48  ! Plane X', wire 48
+  16,   6,  49  ! Plane X', wire 49
+  17,   6,  50  ! Plane X', wire 50
+  18,   6,  51  ! Plane X', wire 51
+  19,   6,  52  ! Plane X', wire 52
+  20,   6,  53  ! Plane X', wire 53
+  21,   6,  54  ! Plane X', wire 54
+  22,   6,  55  ! Plane X', wire 55
+  23,   6,  56  ! Plane X', wire 56
+  24,   6,  57  ! Plane X', wire 57
+  25,   6,  58  ! Plane X', wire 58
+  26,   6,  59  ! Plane X', wire 59
+  27,   6,  60  ! Plane X', wire 60
+  28,   6,  61  ! Plane X', wire 61
+  29,   6,  62  ! Plane X', wire 62
+  30,   6,  63  ! Plane X', wire 63
+  31,   6,  64  ! Plane X', wire 64
+  32,   6,  65  ! Plane X', wire 65
+  33,   6,  66  ! Plane X', wire 66
+  34,   6,  67  ! Plane X', wire 67
+  35,   6,  68  ! Plane X', wire 68
+  36,   6,  69  ! Plane X', wire 69
+  37,   6,  70  ! Plane X', wire 70
+  38,   6,  71  ! Plane X', wire 71
+  39,   6,  72  ! Plane X', wire 72
+  40,   6,  73  ! Plane X', wire 73
+  41,   6,  74  ! Plane X', wire 74
+  42,   6,  75  ! Plane X', wire 75
+  43,   6,  76  ! Plane X', wire 76
+  44,   6,  77  ! Plane X', wire 77
+  45,   6,  78  ! Plane X', wire 78
+  46,   6,  79  ! Plane X', wire 79
+  47,   6,  80  ! Plane X', wire 80
+  48,   6,  81  ! Plane X', wire 81
+  49,   6,  82  ! Plane X', wire 82
+  50,   6,  83  ! Plane X', wire 83
+  51,   6,  84  ! Plane X', wire 84
+  52,   6,  85  ! Plane X', wire 85
+  53,   6,  86  ! Plane X', wire 86
+  54,   6,  87  ! Plane X', wire 87
+  55,   6,  88  ! Plane X', wire 88
+  56,   6,  89  ! Plane X', wire 89
+  57,   6,  90  ! Plane X', wire 90
+  58,   6,  91  ! Plane X', wire 91
+  59,   6,  92  ! Plane X', wire 92
+  60,   6,  93  ! Plane X', wire 93
+  61,   6,  94  ! Plane X', wire 94
+  62,   6,  95  ! Plane X', wire 95
+  63,   6,  96  ! Plane X', wire 96
+  64,   6,  97  ! Plane X', wire 97
+  65,   6,  98  ! Plane X', wire 98
+  66,   6,  99  ! Plane X', wire 99
+  67,   6, 100  ! Plane X', wire 100
+  68,   6, 101  ! Plane X', wire 101
+  69,   6, 102  ! Plane X', wire 102
+  70,   6, 103  ! Plane X', wire 103
+  71,   6, 104  ! Plane X', wire 104
+  72,   6, 105  ! Plane X', wire 105
+  73,   6, 106  ! Plane X', wire 106
+  74,   6, 107  ! Plane X', wire 107
+  75,   6, 108  ! Plane X', wire 108
+  76,   6, 109  ! Plane X', wire 109
+  77,   6, 110  ! Plane X', wire 110
+  78,   6, 111  ! Plane X', wire 111
+  79,   6, 112  ! Plane X', wire 112
+
+SLOT=8
+REFINDEX=0
+  64,   2,   1  ! Plane Y, wire 1
+  65,   2,   2  ! Plane Y, wire 2
+  66,   2,   3  ! Plane Y, wire 3
+  67,   2,   4  ! Plane Y, wire 4
+  68,   2,   5  ! Plane Y, wire 5
+  69,   2,   6  ! Plane Y, wire 6
+  70,   2,   7  ! Plane Y, wire 7
+  71,   2,   8  ! Plane Y, wire 8
+  72,   2,   9  ! Plane Y, wire 9
+  73,   2,  10  ! Plane Y, wire 10
+  74,   2,  11  ! Plane Y, wire 11
+  75,   2,  12  ! Plane Y, wire 12
+  76,   2,  13  ! Plane Y, wire 13
+  80,   2,  14  ! Plane Y, wire 14
+  81,   2,  15  ! Plane Y, wire 15
+  82,   2,  16  ! Plane Y, wire 16
+  83,   2,  17  ! Plane Y, wire 17
+  84,   2,  18  ! Plane Y, wire 18
+  85,   2,  19  ! Plane Y, wire 19
+  86,   2,  20  ! Plane Y, wire 20
+  87,   2,  21  ! Plane Y, wire 21
+  88,   2,  22  ! Plane Y, wire 22
+  89,   2,  23  ! Plane Y, wire 23
+  90,   2,  24  ! Plane Y, wire 24
+  91,   2,  25  ! Plane Y, wire 25
+  92,   2,  26  ! Plane Y, wire 26
+  96,   2,  27  ! Plane Y, wire 27
+  97,   2,  28  ! Plane Y, wire 28
+  98,   2,  29  ! Plane Y, wire 29
+  99,   2,  30  ! Plane Y, wire 30
+ 100,   2,  31  ! Plane Y, wire 31
+ 101,   2,  32  ! Plane Y, wire 32
+ 102,   2,  33  ! Plane Y, wire 33
+ 103,   2,  34  ! Plane Y, wire 34
+ 104,   2,  35  ! Plane Y, wire 35
+ 105,   2,  36  ! Plane Y, wire 36
+ 106,   2,  37  ! Plane Y, wire 37
+ 107,   2,  38  ! Plane Y, wire 38
+ 108,   2,  39  ! Plane Y, wire 39
+ 112,   2,  40  ! Plane Y, wire 40
+ 113,   2,  41  ! Plane Y, wire 41
+ 114,   2,  42  ! Plane Y, wire 42
+ 115,   2,  43  ! Plane Y, wire 43
+ 116,   2,  44  ! Plane Y, wire 44
+ 117,   2,  45  ! Plane Y, wire 45
+ 118,   2,  46  ! Plane Y, wire 46
+ 119,   2,  47  ! Plane Y, wire 47
+ 120,   2,  48  ! Plane Y, wire 48
+ 121,   2,  49  ! Plane Y, wire 49
+ 122,   2,  50  ! Plane Y, wire 50
+ 123,   2,  51  ! Plane Y, wire 51
+ 124,   2,  52  ! Plane Y, wire 52
+
+SLOT=10
+REFINDEX=0
+ 127,1000,   0,   2
+   0,   5,   1  ! Plane Y', wire 1
+   1,   5,   2  ! Plane Y', wire 2
+   2,   5,   3  ! Plane Y', wire 3
+   3,   5,   4  ! Plane Y', wire 4
+   4,   5,   5  ! Plane Y', wire 5
+   5,   5,   6  ! Plane Y', wire 6
+   6,   5,   7  ! Plane Y', wire 7
+   7,   5,   8  ! Plane Y', wire 8
+   8,   5,   9  ! Plane Y', wire 9
+   9,   5,  10  ! Plane Y', wire 10
+  10,   5,  11  ! Plane Y', wire 11
+  11,   5,  12  ! Plane Y', wire 12
+  12,   5,  13  ! Plane Y', wire 13
+  16,   5,  14  ! Plane Y', wire 14
+  17,   5,  15  ! Plane Y', wire 15
+  18,   5,  16  ! Plane Y', wire 16
+  19,   5,  17  ! Plane Y', wire 17
+  20,   5,  18  ! Plane Y', wire 18
+  21,   5,  19  ! Plane Y', wire 19
+  22,   5,  20  ! Plane Y', wire 20
+  23,   5,  21  ! Plane Y', wire 21
+  24,   5,  22  ! Plane Y', wire 22
+  25,   5,  23  ! Plane Y', wire 23
+  26,   5,  24  ! Plane Y', wire 24
+  27,   5,  25  ! Plane Y', wire 25
+  28,   5,  26  ! Plane Y', wire 26
+  32,   5,  27  ! Plane Y', wire 27
+  33,   5,  28  ! Plane Y', wire 28
+  34,   5,  29  ! Plane Y', wire 29
+  35,   5,  30  ! Plane Y', wire 30
+  36,   5,  31  ! Plane Y', wire 31
+  37,   5,  32  ! Plane Y', wire 32
+  38,   5,  33  ! Plane Y', wire 33
+  39,   5,  34  ! Plane Y', wire 34
+  40,   5,  35  ! Plane Y', wire 35
+  41,   5,  36  ! Plane Y', wire 36
+  42,   5,  37  ! Plane Y', wire 37
+  43,   5,  38  ! Plane Y', wire 38
+  44,   5,  39  ! Plane Y', wire 39
+  48,   5,  40  ! Plane Y', wire 40
+  49,   5,  41  ! Plane Y', wire 41
+  50,   5,  42  ! Plane Y', wire 42
+  51,   5,  43  ! Plane Y', wire 43
+  52,   5,  44  ! Plane Y', wire 44
+  53,   5,  45  ! Plane Y', wire 45
+  54,   5,  46  ! Plane Y', wire 46
+  55,   5,  47  ! Plane Y', wire 47
+  56,   5,  48  ! Plane Y', wire 48
+  57,   5,  49  ! Plane Y', wire 49
+  58,   5,  50  ! Plane Y', wire 50
+  59,   5,  51  ! Plane Y', wire 51
+  60,   5,  52  ! Plane Y', wire 52
+
+SLOT=16
+REFINDEX=0
+  96,   9,   1  ! Plane U, wire 1
+  97,   9,   2  ! Plane U, wire 2
+  98,   9,   3  ! Plane U, wire 3
+  99,   9,   4  ! Plane U, wire 4
+ 100,   9,   5  ! Plane U, wire 5
+ 101,   9,   6  ! Plane U, wire 6
+ 102,   9,   7  ! Plane U, wire 7
+ 103,   9,   8  ! Plane U, wire 8
+ 104,   9,   9  ! Plane U, wire 9
+ 105,   9,  10  ! Plane U, wire 10
+ 106,   9,  11  ! Plane U, wire 11
+ 107,   9,  12  ! Plane U, wire 12
+ 108,   9,  13  ! Plane U, wire 13
+ 109,   9,  14  ! Plane U, wire 14
+ 110,   7, 113  ! Plane X, wire 113
+ 112,   9,  15  ! Plane U, wire 15
+ 113,   9,  16  ! Plane U, wire 16
+ 114,   9,  17  ! Plane U, wire 17
+ 115,   9,  18  ! Plane U, wire 18
+ 116,   9,  19  ! Plane U, wire 19
+ 117,   9,  20  ! Plane U, wire 20
+ 118,   9,  21  ! Plane U, wire 21
+ 119,   9,  22  ! Plane U, wire 22
+ 120,   9,  23  ! Plane U, wire 23
+ 121,   9,  24  ! Plane U, wire 24
+ 122,   9,  25  ! Plane U, wire 25
+ 123,   9,  26  ! Plane U, wire 26
+ 124,   9,  27  ! Plane U, wire 27
+ 125,   9,  28  ! Plane U, wire 28
+ 126,   9,  29  ! Plane U, wire 29
+
+SLOT=14
+REFINDEX=0
+   0,   9,  30  ! Plane U, wire 30
+   1,   9,  31  ! Plane U, wire 31
+   2,   9,  32  ! Plane U, wire 32
+   3,   9,  33  ! Plane U, wire 33
+   4,   9,  34  ! Plane U, wire 34
+   5,   9,  35  ! Plane U, wire 35
+   6,   9,  36  ! Plane U, wire 36
+   7,   9,  37  ! Plane U, wire 37
+   8,   9,  38  ! Plane U, wire 38
+   9,   9,  39  ! Plane U, wire 39
+  10,   9,  40  ! Plane U, wire 40
+  11,   9,  41  ! Plane U, wire 41
+  12,   9,  42  ! Plane U, wire 42
+  13,   9,  43  ! Plane U, wire 43
+  14,   9,  44  ! Plane U, wire 44
+  15,   9,  45  ! Plane U, wire 45
+  32,   9,  46  ! Plane U, wire 46
+  33,   9,  47  ! Plane U, wire 47
+  34,   9,  48  ! Plane U, wire 48
+  35,   9,  49  ! Plane U, wire 49
+  36,   9,  50  ! Plane U, wire 50
+  37,   9,  51  ! Plane U, wire 51
+  38,   9,  52  ! Plane U, wire 52
+  39,   9,  53  ! Plane U, wire 53
+  40,   9,  54  ! Plane U, wire 54
+  41,   9,  55  ! Plane U, wire 55
+  42,   9,  56  ! Plane U, wire 56
+  43,   9,  57  ! Plane U, wire 57
+  44,   9,  58  ! Plane U, wire 58
+  45,   9,  59  ! Plane U, wire 59
+  46,   9,  60  ! Plane U, wire 60
+  48,   9,  61  ! Plane U, wire 61
+  49,   9,  62  ! Plane U, wire 62
+  50,   9,  63  ! Plane U, wire 63
+  51,   9,  64  ! Plane U, wire 64
+  52,   9,  65  ! Plane U, wire 65
+  53,   9,  66  ! Plane U, wire 66
+  54,   9,  67  ! Plane U, wire 67
+  55,   9,  68  ! Plane U, wire 68
+  56,   9,  69  ! Plane U, wire 69
+  57,   9,  70  ! Plane U, wire 70
+  58,   9,  71  ! Plane U, wire 71
+  59,   9,  72  ! Plane U, wire 72
+  60,   9,  73  ! Plane U, wire 73
+  61,   9,  74  ! Plane U, wire 74
+  62,   9,  75  ! Plane U, wire 75
+  63,   9,  76  ! Plane U, wire 76
+  64,   9,  77  ! Plane U, wire 77
+  65,   9,  78  ! Plane U, wire 78
+  66,   9,  79  ! Plane U, wire 79
+  67,   9,  80  ! Plane U, wire 80
+  68,   9,  81  ! Plane U, wire 81
+  69,   9,  82  ! Plane U, wire 82
+  70,   9,  83  ! Plane U, wire 83
+  71,   9,  84  ! Plane U, wire 84
+  72,   9,  85  ! Plane U, wire 85
+  73,   9,  86  ! Plane U, wire 86
+  74,   9,  87  ! Plane U, wire 87
+  75,   9,  88  ! Plane U, wire 88
+  76,   9,  89  ! Plane U, wire 89
+  77,   9,  90  ! Plane U, wire 90
+  78,   9,  91  ! Plane U, wire 91
+  80,   9,  92  ! Plane U, wire 92
+  81,   9,  93  ! Plane U, wire 93
+  82,   9,  94  ! Plane U, wire 94
+  83,   9,  95  ! Plane U, wire 95
+  84,   9,  96  ! Plane U, wire 96
+  85,   9,  97  ! Plane U, wire 97
+  86,   9,  98  ! Plane U, wire 98
+  87,   9,  99  ! Plane U, wire 99
+  88,   9, 100  ! Plane U, wire 100
+  89,   9, 101  ! Plane U, wire 101
+  90,   9, 102  ! Plane U, wire 102
+  91,   9, 103  ! Plane U, wire 103
+  92,   9, 104  ! Plane U, wire 104
+  93,   9, 105  ! Plane U, wire 105
+  94,   9, 106  ! Plane U, wire 106
+  95,   9, 107  ! Plane U, wire 107
+
+SLOT=16
+REFINDEX=0
+  80,  10,   1  ! Plane V, wire 1
+  81,  10,   2  ! Plane V, wire 2
+  82,  10,   3  ! Plane V, wire 3
+  83,  10,   4  ! Plane V, wire 4
+  84,  10,   5  ! Plane V, wire 5
+  85,  10,   6  ! Plane V, wire 6
+  86,  10,   7  ! Plane V, wire 7
+  87,  10,   8  ! Plane V, wire 8
+  88,  10,   9  ! Plane V, wire 9
+  89,  10,  10  ! Plane V, wire 10
+  90,  10,  11  ! Plane V, wire 11
+  91,  10,  12  ! Plane V, wire 12
+  92,  10,  13  ! Plane V, wire 13
+  93,  10,  14  ! Plane V, wire 14
+  94,  12, 113  ! Plane X', wire 113
+
+SLOT=14
+REFINDEX=0
+  96,  10,  15  ! Plane V, wire 15
+  97,  10,  16  ! Plane V, wire 16
+  98,  10,  17  ! Plane V, wire 17
+  99,  10,  18  ! Plane V, wire 18
+ 100,  10,  19  ! Plane V, wire 19
+ 101,  10,  20  ! Plane V, wire 20
+ 102,  10,  21  ! Plane V, wire 21
+ 103,  10,  22  ! Plane V, wire 22
+ 104,  10,  23  ! Plane V, wire 23
+ 105,  10,  24  ! Plane V, wire 24
+ 106,  10,  25  ! Plane V, wire 25
+ 107,  10,  26  ! Plane V, wire 26
+ 108,  10,  27  ! Plane V, wire 27
+ 109,  10,  28  ! Plane V, wire 28
+ 110,  10,  29  ! Plane V, wire 29
+ 112,  10,  30  ! Plane V, wire 30
+ 113,  10,  31  ! Plane V, wire 31
+ 114,  10,  32  ! Plane V, wire 32
+ 115,  10,  33  ! Plane V, wire 33
+ 116,  10,  34  ! Plane V, wire 34
+ 117,  10,  35  ! Plane V, wire 35
+ 118,  10,  36  ! Plane V, wire 36
+ 119,  10,  37  ! Plane V, wire 37
+ 120,  10,  38  ! Plane V, wire 38
+ 121,  10,  39  ! Plane V, wire 39
+ 122,  10,  40  ! Plane V, wire 40
+ 123,  10,  41  ! Plane V, wire 41
+ 124,  10,  42  ! Plane V, wire 42
+ 125,  10,  43  ! Plane V, wire 43
+ 126,  10,  44  ! Plane V, wire 44
+ 127,  10,  45  ! Plane V, wire 45
+
+SLOT=17
+REFINDEX=0
+ 127,1000,   0,   3
+   0,  10,  46  ! Plane V, wire 46
+   1,  10,  47  ! Plane V, wire 47
+   2,  10,  48  ! Plane V, wire 48
+   3,  10,  49  ! Plane V, wire 49
+   4,  10,  50  ! Plane V, wire 50
+   5,  10,  51  ! Plane V, wire 51
+   6,  10,  52  ! Plane V, wire 52
+   7,  10,  53  ! Plane V, wire 53
+   8,  10,  54  ! Plane V, wire 54
+   9,  10,  55  ! Plane V, wire 55
+  10,  10,  56  ! Plane V, wire 56
+  11,  10,  57  ! Plane V, wire 57
+  12,  10,  58  ! Plane V, wire 58
+  13,  10,  59  ! Plane V, wire 59
+  14,  10,  60  ! Plane V, wire 60
+  16,  10,  61  ! Plane V, wire 61
+  17,  10,  62  ! Plane V, wire 62
+  18,  10,  63  ! Plane V, wire 63
+  19,  10,  64  ! Plane V, wire 64
+  20,  10,  65  ! Plane V, wire 65
+  21,  10,  66  ! Plane V, wire 66
+  22,  10,  67  ! Plane V, wire 67
+  23,  10,  68  ! Plane V, wire 68
+  24,  10,  69  ! Plane V, wire 69
+  25,  10,  70  ! Plane V, wire 70
+  26,  10,  71  ! Plane V, wire 71
+  27,  10,  72  ! Plane V, wire 72
+  28,  10,  73  ! Plane V, wire 73
+  29,  10,  74  ! Plane V, wire 74
+  30,  10,  75  ! Plane V, wire 75
+  31,  10,  76  ! Plane V, wire 76
+  32,  10,  77  ! Plane V, wire 77
+  33,  10,  78  ! Plane V, wire 78
+  34,  10,  79  ! Plane V, wire 79
+  35,  10,  80  ! Plane V, wire 80
+  36,  10,  81  ! Plane V, wire 81
+  37,  10,  82  ! Plane V, wire 82
+  38,  10,  83  ! Plane V, wire 83
+  39,  10,  84  ! Plane V, wire 84
+  40,  10,  85  ! Plane V, wire 85
+  41,  10,  86  ! Plane V, wire 86
+  42,  10,  87  ! Plane V, wire 87
+  43,  10,  88  ! Plane V, wire 88
+  44,  10,  89  ! Plane V, wire 89
+  45,  10,  90  ! Plane V, wire 90
+  46,  10,  91  ! Plane V, wire 91
+  48,  10,  92  ! Plane V, wire 92
+  49,  10,  93  ! Plane V, wire 93
+  50,  10,  94  ! Plane V, wire 94
+  51,  10,  95  ! Plane V, wire 95
+  52,  10,  96  ! Plane V, wire 96
+  53,  10,  97  ! Plane V, wire 97
+  54,  10,  98  ! Plane V, wire 98
+  55,  10,  99  ! Plane V, wire 99
+  56,  10, 100  ! Plane V, wire 100
+  57,  10, 101  ! Plane V, wire 101
+  58,  10, 102  ! Plane V, wire 102
+  59,  10, 103  ! Plane V, wire 103
+  60,  10, 104  ! Plane V, wire 104
+  61,  10, 105  ! Plane V, wire 105
+  62,  10, 106  ! Plane V, wire 106
+  63,  10, 107  ! Plane V, wire 107
+
+SLOT=13
+REFINDEX=0
+   0,   7,   1  ! Plane X, wire 1
+   1,   7,   2  ! Plane X, wire 2
+   2,   7,   3  ! Plane X, wire 3
+   3,   7,   4  ! Plane X, wire 4
+   4,   7,   5  ! Plane X, wire 5
+   5,   7,   6  ! Plane X, wire 6
+   6,   7,   7  ! Plane X, wire 7
+   7,   7,   8  ! Plane X, wire 8
+   8,   7,   9  ! Plane X, wire 9
+   9,   7,  10  ! Plane X, wire 10
+  10,   7,  11  ! Plane X, wire 11
+  11,   7,  12  ! Plane X, wire 12
+  12,   7,  13  ! Plane X, wire 13
+  13,   7,  14  ! Plane X, wire 14
+  14,   7,  15  ! Plane X, wire 15
+  15,   7,  16  ! Plane X, wire 16
+  16,   7,  17  ! Plane X, wire 17
+  17,   7,  18  ! Plane X, wire 18
+  18,   7,  19  ! Plane X, wire 19
+  19,   7,  20  ! Plane X, wire 20
+  20,   7,  21  ! Plane X, wire 21
+  21,   7,  22  ! Plane X, wire 22
+  22,   7,  23  ! Plane X, wire 23
+  23,   7,  24  ! Plane X, wire 24
+  24,   7,  25  ! Plane X, wire 25
+  25,   7,  26  ! Plane X, wire 26
+  26,   7,  27  ! Plane X, wire 27
+  27,   7,  28  ! Plane X, wire 28
+  28,   7,  29  ! Plane X, wire 29
+  29,   7,  30  ! Plane X, wire 30
+  30,   7,  31  ! Plane X, wire 31
+  31,   7,  32  ! Plane X, wire 32
+  32,   7,  33  ! Plane X, wire 33
+  33,   7,  34  ! Plane X, wire 34
+  34,   7,  35  ! Plane X, wire 35
+  35,   7,  36  ! Plane X, wire 36
+  36,   7,  37  ! Plane X, wire 37
+  37,   7,  38  ! Plane X, wire 38
+  38,   7,  39  ! Plane X, wire 39
+  39,   7,  40  ! Plane X, wire 40
+  40,   7,  41  ! Plane X, wire 41
+  41,   7,  42  ! Plane X, wire 42
+  42,   7,  43  ! Plane X, wire 43
+  43,   7,  44  ! Plane X, wire 44
+  44,   7,  45  ! Plane X, wire 45
+  45,   7,  46  ! Plane X, wire 46
+  46,   7,  47  ! Plane X, wire 47
+  47,   7,  48  ! Plane X, wire 48
+  48,   7,  49  ! Plane X, wire 49
+  49,   7,  50  ! Plane X, wire 50
+  50,   7,  51  ! Plane X, wire 51
+  51,   7,  52  ! Plane X, wire 52
+  52,   7,  53  ! Plane X, wire 53
+  53,   7,  54  ! Plane X, wire 54
+  54,   7,  55  ! Plane X, wire 55
+  55,   7,  56  ! Plane X, wire 56
+  56,   7,  57  ! Plane X, wire 57
+  57,   7,  58  ! Plane X, wire 58
+  58,   7,  59  ! Plane X, wire 59
+  59,   7,  60  ! Plane X, wire 60
+  60,   7,  61  ! Plane X, wire 61
+  61,   7,  62  ! Plane X, wire 62
+  62,   7,  63  ! Plane X, wire 63
+  63,   7,  64  ! Plane X, wire 64
+  64,   7,  65  ! Plane X, wire 65
+  65,   7,  66  ! Plane X, wire 66
+  66,   7,  67  ! Plane X, wire 67
+  67,   7,  68  ! Plane X, wire 68
+  68,   7,  69  ! Plane X, wire 69
+  69,   7,  70  ! Plane X, wire 70
+  70,   7,  71  ! Plane X, wire 71
+  71,   7,  72  ! Plane X, wire 72
+  72,   7,  73  ! Plane X, wire 73
+  73,   7,  74  ! Plane X, wire 74
+  74,   7,  75  ! Plane X, wire 75
+  75,   7,  76  ! Plane X, wire 76
+  76,   7,  77  ! Plane X, wire 77
+  77,   7,  78  ! Plane X, wire 78
+  78,   7,  79  ! Plane X, wire 79
+  79,   7,  80  ! Plane X, wire 80
+  80,   7,  81  ! Plane X, wire 81
+  81,   7,  82  ! Plane X, wire 82
+  82,   7,  83  ! Plane X, wire 83
+  83,   7,  84  ! Plane X, wire 84
+  84,   7,  85  ! Plane X, wire 85
+  85,   7,  86  ! Plane X, wire 86
+  86,   7,  87  ! Plane X, wire 87
+  87,   7,  88  ! Plane X, wire 88
+  88,   7,  89  ! Plane X, wire 89
+  89,   7,  90  ! Plane X, wire 90
+  90,   7,  91  ! Plane X, wire 91
+  91,   7,  92  ! Plane X, wire 92
+  92,   7,  93  ! Plane X, wire 93
+  93,   7,  94  ! Plane X, wire 94
+  94,   7,  95  ! Plane X, wire 95
+  95,   7,  96  ! Plane X, wire 96
+  96,   7,  97  ! Plane X, wire 97
+  97,   7,  98  ! Plane X, wire 98
+  98,   7,  99  ! Plane X, wire 99
+  99,   7, 100  ! Plane X, wire 100
+ 100,   7, 101  ! Plane X, wire 101
+ 101,   7, 102  ! Plane X, wire 102
+ 102,   7, 103  ! Plane X, wire 103
+ 103,   7, 104  ! Plane X, wire 104
+ 104,   7, 105  ! Plane X, wire 105
+ 105,   7, 106  ! Plane X, wire 106
+ 106,   7, 107  ! Plane X, wire 107
+ 107,   7, 108  ! Plane X, wire 108
+ 108,   7, 109  ! Plane X, wire 109
+ 109,   7, 110  ! Plane X, wire 110
+ 110,   7, 111  ! Plane X, wire 111
+ 111,   7, 112  ! Plane X, wire 112
+ 112,  12,   1  ! Plane X', wire 1
+ 113,  12,   2  ! Plane X', wire 2
+ 114,  12,   3  ! Plane X', wire 3
+ 115,  12,   4  ! Plane X', wire 4
+ 116,  12,   5  ! Plane X', wire 5
+ 117,  12,   6  ! Plane X', wire 6
+ 118,  12,   7  ! Plane X', wire 7
+ 119,  12,   8  ! Plane X', wire 8
+ 120,  12,   9  ! Plane X', wire 9
+ 121,  12,  10  ! Plane X', wire 10
+ 122,  12,  11  ! Plane X', wire 11
+ 123,  12,  12  ! Plane X', wire 12
+ 124,  12,  13  ! Plane X', wire 13
+ 125,  12,  14  ! Plane X', wire 14
+ 126,  12,  15  ! Plane X', wire 15
+ 127,  12,  16  ! Plane X', wire 16
+
+SLOT=14
+REFINDEX=0
+  16,  12,  17  ! Plane X', wire 17
+  17,  12,  18  ! Plane X', wire 18
+  18,  12,  19  ! Plane X', wire 19
+  19,  12,  20  ! Plane X', wire 20
+  20,  12,  21  ! Plane X', wire 21
+  21,  12,  22  ! Plane X', wire 22
+  22,  12,  23  ! Plane X', wire 23
+  23,  12,  24  ! Plane X', wire 24
+  24,  12,  25  ! Plane X', wire 25
+  25,  12,  26  ! Plane X', wire 26
+  26,  12,  27  ! Plane X', wire 27
+  27,  12,  28  ! Plane X', wire 28
+  28,  12,  29  ! Plane X', wire 29
+  29,  12,  30  ! Plane X', wire 30
+  30,  12,  31  ! Plane X', wire 31
+  31,  12,  32  ! Plane X', wire 32
+
+SLOT=16
+REFINDEX=0
+   0,  12,  33  ! Plane X', wire 33
+   1,  12,  34  ! Plane X', wire 34
+   2,  12,  35  ! Plane X', wire 35
+   3,  12,  36  ! Plane X', wire 36
+   4,  12,  37  ! Plane X', wire 37
+   5,  12,  38  ! Plane X', wire 38
+   6,  12,  39  ! Plane X', wire 39
+   7,  12,  40  ! Plane X', wire 40
+   8,  12,  41  ! Plane X', wire 41
+   9,  12,  42  ! Plane X', wire 42
+  10,  12,  43  ! Plane X', wire 43
+  11,  12,  44  ! Plane X', wire 44
+  12,  12,  45  ! Plane X', wire 45
+  13,  12,  46  ! Plane X', wire 46
+  14,  12,  47  ! Plane X', wire 47
+  15,  12,  48  ! Plane X', wire 48
+  16,  12,  49  ! Plane X', wire 49
+  17,  12,  50  ! Plane X', wire 50
+  18,  12,  51  ! Plane X', wire 51
+  19,  12,  52  ! Plane X', wire 52
+  20,  12,  53  ! Plane X', wire 53
+  21,  12,  54  ! Plane X', wire 54
+  22,  12,  55  ! Plane X', wire 55
+  23,  12,  56  ! Plane X', wire 56
+  24,  12,  57  ! Plane X', wire 57
+  25,  12,  58  ! Plane X', wire 58
+  26,  12,  59  ! Plane X', wire 59
+  27,  12,  60  ! Plane X', wire 60
+  28,  12,  61  ! Plane X', wire 61
+  29,  12,  62  ! Plane X', wire 62
+  30,  12,  63  ! Plane X', wire 63
+  31,  12,  64  ! Plane X', wire 64
+  32,  12,  65  ! Plane X', wire 65
+  33,  12,  66  ! Plane X', wire 66
+  34,  12,  67  ! Plane X', wire 67
+  35,  12,  68  ! Plane X', wire 68
+  36,  12,  69  ! Plane X', wire 69
+  37,  12,  70  ! Plane X', wire 70
+  38,  12,  71  ! Plane X', wire 71
+  39,  12,  72  ! Plane X', wire 72
+  40,  12,  73  ! Plane X', wire 73
+  41,  12,  74  ! Plane X', wire 74
+  42,  12,  75  ! Plane X', wire 75
+  43,  12,  76  ! Plane X', wire 76
+  44,  12,  77  ! Plane X', wire 77
+  45,  12,  78  ! Plane X', wire 78
+  46,  12,  79  ! Plane X', wire 79
+  47,  12,  80  ! Plane X', wire 80
+  48,  12,  81  ! Plane X', wire 81
+  49,  12,  82  ! Plane X', wire 82
+  50,  12,  83  ! Plane X', wire 83
+  51,  12,  84  ! Plane X', wire 84
+  52,  12,  85  ! Plane X', wire 85
+  53,  12,  86  ! Plane X', wire 86
+  54,  12,  87  ! Plane X', wire 87
+  55,  12,  88  ! Plane X', wire 88
+  56,  12,  89  ! Plane X', wire 89
+  57,  12,  90  ! Plane X', wire 90
+  58,  12,  91  ! Plane X', wire 91
+  59,  12,  92  ! Plane X', wire 92
+  60,  12,  93  ! Plane X', wire 93
+  61,  12,  94  ! Plane X', wire 94
+  62,  12,  95  ! Plane X', wire 95
+  63,  12,  96  ! Plane X', wire 96
+  64,  12,  97  ! Plane X', wire 97
+  65,  12,  98  ! Plane X', wire 98
+  66,  12,  99  ! Plane X', wire 99
+  67,  12, 100  ! Plane X', wire 100
+  68,  12, 101  ! Plane X', wire 101
+  69,  12, 102  ! Plane X', wire 102
+  70,  12, 103  ! Plane X', wire 103
+  71,  12, 104  ! Plane X', wire 104
+  72,  12, 105  ! Plane X', wire 105
+  73,  12, 106  ! Plane X', wire 106
+  74,  12, 107  ! Plane X', wire 107
+  75,  12, 108  ! Plane X', wire 108
+  76,  12, 109  ! Plane X', wire 109
+  77,  12, 110  ! Plane X', wire 110
+  78,  12, 111  ! Plane X', wire 111
+  79,  12, 112  ! Plane X', wire 112
+
+SLOT=17
+REFINDEX=0
+  64,   8,   1  ! Plane Y, wire 1
+  65,   8,   2  ! Plane Y, wire 2
+  66,   8,   3  ! Plane Y, wire 3
+  67,   8,   4  ! Plane Y, wire 4
+  68,   8,   5  ! Plane Y, wire 5
+  69,   8,   6  ! Plane Y, wire 6
+  70,   8,   7  ! Plane Y, wire 7
+  71,   8,   8  ! Plane Y, wire 8
+  72,   8,   9  ! Plane Y, wire 9
+  73,   8,  10  ! Plane Y, wire 10
+  74,   8,  11  ! Plane Y, wire 11
+  75,   8,  12  ! Plane Y, wire 12
+  76,   8,  13  ! Plane Y, wire 13
+  80,   8,  14  ! Plane Y, wire 14
+  81,   8,  15  ! Plane Y, wire 15
+  82,   8,  16  ! Plane Y, wire 16
+  83,   8,  17  ! Plane Y, wire 17
+  84,   8,  18  ! Plane Y, wire 18
+  85,   8,  19  ! Plane Y, wire 19
+  86,   8,  20  ! Plane Y, wire 20
+  87,   8,  21  ! Plane Y, wire 21
+  88,   8,  22  ! Plane Y, wire 22
+  89,   8,  23  ! Plane Y, wire 23
+  90,   8,  24  ! Plane Y, wire 24
+  91,   8,  25  ! Plane Y, wire 25
+  92,   8,  26  ! Plane Y, wire 26
+  96,   8,  27  ! Plane Y, wire 27
+  97,   8,  28  ! Plane Y, wire 28
+  98,   8,  29  ! Plane Y, wire 29
+  99,   8,  30  ! Plane Y, wire 30
+ 100,   8,  31  ! Plane Y, wire 31
+ 101,   8,  32  ! Plane Y, wire 32
+ 102,   8,  33  ! Plane Y, wire 33
+ 103,   8,  34  ! Plane Y, wire 34
+ 104,   8,  35  ! Plane Y, wire 35
+ 105,   8,  36  ! Plane Y, wire 36
+ 106,   8,  37  ! Plane Y, wire 37
+ 107,   8,  38  ! Plane Y, wire 38
+ 108,   8,  39  ! Plane Y, wire 39
+ 112,   8,  40  ! Plane Y, wire 40
+ 113,   8,  41  ! Plane Y, wire 41
+ 114,   8,  42  ! Plane Y, wire 42
+ 115,   8,  43  ! Plane Y, wire 43
+ 116,   8,  44  ! Plane Y, wire 44
+ 117,   8,  45  ! Plane Y, wire 45
+ 118,   8,  46  ! Plane Y, wire 46
+ 119,   8,  47  ! Plane Y, wire 47
+ 120,   8,  48  ! Plane Y, wire 48
+ 121,   8,  49  ! Plane Y, wire 49
+ 122,   8,  50  ! Plane Y, wire 50
+ 123,   8,  51  ! Plane Y, wire 51
+ 124,   8,  52  ! Plane Y, wire 52
+
+SLOT=10
+REFINDEX=0
+ 127,1000,   0,   1
+  64,  11,   1  ! Plane Y', wire 1
+  65,  11,   2  ! Plane Y', wire 2
+  66,  11,   3  ! Plane Y', wire 3
+  67,  11,   4  ! Plane Y', wire 4
+  68,  11,   5  ! Plane Y', wire 5
+  69,  11,   6  ! Plane Y', wire 6
+  70,  11,   7  ! Plane Y', wire 7
+  71,  11,   8  ! Plane Y', wire 8
+  72,  11,   9  ! Plane Y', wire 9
+  73,  11,  10  ! Plane Y', wire 10
+  74,  11,  11  ! Plane Y', wire 11
+  75,  11,  12  ! Plane Y', wire 12
+  76,  11,  13  ! Plane Y', wire 13
+  80,  11,  14  ! Plane Y', wire 14
+  81,  11,  15  ! Plane Y', wire 15
+  82,  11,  16  ! Plane Y', wire 16
+  83,  11,  17  ! Plane Y', wire 17
+  84,  11,  18  ! Plane Y', wire 18
+  85,  11,  19  ! Plane Y', wire 19
+  86,  11,  20  ! Plane Y', wire 20
+  87,  11,  21  ! Plane Y', wire 21
+  88,  11,  22  ! Plane Y', wire 22
+  89,  11,  23  ! Plane Y', wire 23
+  90,  11,  24  ! Plane Y', wire 24
+  91,  11,  25  ! Plane Y', wire 25
+  92,  11,  26  ! Plane Y', wire 26
+  96,  11,  27  ! Plane Y', wire 27
+  97,  11,  28  ! Plane Y', wire 28
+  98,  11,  29  ! Plane Y', wire 29
+  99,  11,  30  ! Plane Y', wire 30
+ 100,  11,  31  ! Plane Y', wire 31
+ 101,  11,  32  ! Plane Y', wire 32
+ 102,  11,  33  ! Plane Y', wire 33
+ 103,  11,  34  ! Plane Y', wire 34
+ 104,  11,  35  ! Plane Y', wire 35
+ 105,  11,  36  ! Plane Y', wire 36
+ 106,  11,  37  ! Plane Y', wire 37
+ 107,  11,  38  ! Plane Y', wire 38
+ 108,  11,  39  ! Plane Y', wire 39
+ 112,  11,  40  ! Plane Y', wire 40
+ 113,  11,  41  ! Plane Y', wire 41
+ 114,  11,  42  ! Plane Y', wire 42
+ 115,  11,  43  ! Plane Y', wire 43
+ 116,  11,  44  ! Plane Y', wire 44
+ 117,  11,  45  ! Plane Y', wire 45
+ 118,  11,  46  ! Plane Y', wire 46
+ 119,  11,  47  ! Plane Y', wire 47
+ 120,  11,  48  ! Plane Y', wire 48
+ 121,  11,  49  ! Plane Y', wire 49
+ 122,  11,  50  ! Plane Y', wire 50
+ 123,  11,  51  ! Plane Y', wire 51
+ 124,  11,  52  ! Plane Y', wire 52
diff --git a/MAPS/HMS/DETEC/hhodo.map b/MAPS/HMS/DETEC/hhodo.map
index 2a99b3eb..698489c2 100644
--- a/MAPS/HMS/DETEC/hhodo.map
+++ b/MAPS/HMS/DETEC/hhodo.map
@@ -115,17 +115,19 @@ SLOT=15
     15,      4,      2,      1!    h2y02A-
 SLOT=16
 ! chan   plane     bar     sig
-     0,      4,     10,      1!    h2y10A-
-     1,      4,      9,      1!    h2y09A-
-     2,      4,      8,      1!    h2y08A-
-     3,      4,      7,      1!    h2y07A-
-     4,      4,      6,      1!    h2y06A-
-     5,      4,      5,      1!    h2y05A-
-     6,      4,      4,      1!    h2y04A-
-     7,      4,      3,      1!    h2y03A-
+     0,      4,      3,      1!    h2y03A-
+     1,      4,      4,      1!    h2y04A-
+     2,      4,      5,      1!    h2y05A-
+     3,      4,      6,      1!    h2y06A-
+     4,      4,      7,      1!    h2y07A-
+     5,      4,      8,      1!    h2y08A-
+     6,      4,      9,      1!    h2y09A-
+     7,      4,     10,      1!    h2y10A-
 
 ! Caen 1190 module
 SLOT=20
+REFINDEX=0
+  127,1000,   0,   0
 ! A0
 ! chan   plane     bar     sig
      0,      1,      1,      2!    h1x01T+
diff --git a/MAPS/HMS/DETEC/hhodo_htrig.map b/MAPS/HMS/DETEC/hhodo_htrig.map
new file mode 100644
index 00000000..9d28bae5
--- /dev/null
+++ b/MAPS/HMS/DETEC/hhodo_htrig.map
@@ -0,0 +1,283 @@
+! THMS_ID=10       ::  ADC,TDC
+! HSCIN_ID=13      ::  ADC,TDC
+
+
+DETECTOR=10
+
+ROC=1
+
+SLOT=17
+   8,   1,   1,   0  ! hASUM
+   9,   1,   2,   0  ! hBSUM
+  10,   1,   3,   0  ! hCSUM
+  11,   1,   4,   0  ! hDSUM
+  12,   1,   5,   0  ! hPSHWR
+  13,   1,   6,   0  ! hSHWR
+  14,   1,   7,   0  ! hAERSUM
+  15,   1,   8,   0  ! hCERSUM
+
+SLOT=2
+   0,   2,   1,   1  ! h1X
+   1,   2,   2,   1  ! h1Y
+   2,   2,   3,   1  ! h2X
+   3,   2,   4,   1  ! h2Y
+   4,   2,   5,   1  ! h1T
+   5,   2,   6,   1  ! h2T
+   6,   2,   7,   1  ! hT1
+   7,   2,   8,   1  ! hASUM
+   8,   2,   9,   1  ! hBSUM
+   9,   2,  10,   1  ! hCSUM
+  10,   2,  11,   1  ! hDSUM
+  11,   2,  12,   1  ! hPSHWRLO
+  12,   2,  13,   1  ! hPSHWRHI
+  13,   2,  14,   1  ! hSHWR
+  14,   2,  15,   1  ! hAERSUM
+  15,   2,  16,   1  ! hCERSUM
+
+SLOT=20
+ 127,   2,  17,   1  ! hT2
+
+ROC=3
+
+SLOT=5
+ 111,   2,  18,   1  ! hDCREF1
+
+SLOT=8
+ 127,   2,  19,   1  ! hDCREF2
+
+SLOT=10
+ 127,   2,  20,   1  ! hDCREF3
+
+SLOT=17
+ 127,   2,  21,   1  ! hDCREF4
+
+
+DETECTOR=13
+
+ROC=1
+
+SLOT=8
+   0,   1,   1,   0  ! h1x01A+
+   1,   1,   2,   0  ! h1x02A+
+   2,   1,   3,   0  ! h1x03A+
+   3,   1,   4,   0  ! h1x04A+
+   4,   1,   5,   0  ! h1x05A+
+   5,   1,   6,   0  ! h1x06A+
+   6,   1,   7,   0  ! h1x07A+
+   7,   1,   8,   0  ! h1x08A+
+   8,   1,   9,   0  ! h1x09A+
+   9,   1,  10,   0  ! h1x10A+
+  10,   1,  11,   0  ! h1x11A+
+  11,   1,  12,   0  ! h1x12A+
+  12,   1,  13,   0  ! h1x13A+
+  13,   1,  14,   0  ! h1x14A+
+  14,   1,  15,   0  ! h1x15A+
+  15,   1,  16,   0  ! h1x16A+
+
+SLOT=9
+   0,   1,   1,   1  ! h1x01A-
+   1,   1,   2,   1  ! h1x02A-
+   2,   1,   3,   1  ! h1x03A-
+   3,   1,   4,   1  ! h1x04A-
+   4,   1,   5,   1  ! h1x05A-
+   5,   1,   6,   1  ! h1x06A-
+   6,   1,   7,   1  ! h1x07A-
+   7,   1,   8,   1  ! h1x08A-
+   8,   1,   9,   1  ! h1x09A-
+   9,   1,  10,   1  ! h1x10A-
+  10,   1,  11,   1  ! h1x11A-
+  11,   1,  12,   1  ! h1x12A-
+  12,   1,  13,   1  ! h1x13A-
+  13,   1,  14,   1  ! h1x14A-
+  14,   1,  15,   1  ! h1x15A-
+  15,   1,  16,   1  ! h1x16A-
+
+SLOT=10
+   0,   2,   1,   0  ! h1y01A+
+   1,   2,   2,   0  ! h1y02A+
+   2,   2,   3,   0  ! h1y03A+
+   3,   2,   4,   0  ! h1y04A+
+   4,   2,   5,   0  ! h1y05A+
+   5,   2,   6,   0  ! h1y06A+
+   6,   2,   7,   0  ! h1y07A+
+   7,   2,   8,   0  ! h1y08A+
+   8,   2,   9,   0  ! h1y09A+
+   9,   2,  10,   0  ! h1y10A+
+  10,   2,   1,   1  ! h1y01A-
+  11,   2,   2,   1  ! h1y02A-
+  12,   2,   3,   1  ! h1y03A-
+  13,   2,   4,   1  ! h1y04A-
+  14,   2,   5,   1  ! h1y05A-
+  15,   2,   6,   1  ! h1y06A-
+
+SLOT=13
+   0,   2,   7,   1  ! h1y07A-
+   1,   2,   8,   1  ! h1y08A-
+   2,   2,   9,   1  ! h1y09A-
+   3,   2,  10,   1  ! h1y10A-
+   4,   3,   1,   0  ! h2x01A+
+   5,   3,   2,   0  ! h2x02A+
+   6,   3,   3,   0  ! h2x03A+
+   7,   3,   4,   0  ! h2x04A+
+   8,   3,   5,   0  ! h2x05A+
+   9,   3,   6,   0  ! h2x06A+
+  10,   3,   7,   0  ! h2x07A+
+  11,   3,   8,   0  ! h2x08A+
+  12,   3,   9,   0  ! h2x09A+
+  13,   3,  10,   0  ! h2x10A+
+  14,   3,  11,   0  ! h2x11A+
+  15,   3,  12,   0  ! h2x12A+
+
+SLOT=14
+   0,   3,  13,   0  ! h2x13A+
+   1,   3,  14,   0  ! h2x14A+
+   2,   3,  15,   0  ! h2x15A+
+   3,   3,  16,   0  ! h2x16A+
+   4,   3,   1,   1  ! h2x01A-
+   5,   3,   2,   1  ! h2x02A-
+   6,   3,   3,   1  ! h2x03A-
+   7,   3,   4,   1  ! h2x04A-
+   8,   3,   5,   1  ! h2x05A-
+   9,   3,   6,   1  ! h2x06A-
+  10,   3,   7,   1  ! h2x07A-
+  11,   3,   8,   1  ! h2x08A-
+  12,   3,   9,   1  ! h2x09A-
+  13,   3,  10,   1  ! h2x10A-
+  14,   3,  11,   1  ! h2x11A-
+  15,   3,  12,   1  ! h2x12A-
+
+SLOT=15
+   0,   3,  13,   1  ! h2x13A-
+   1,   3,  14,   1  ! h2x14A-
+   2,   3,  15,   1  ! h2x15A-
+   3,   3,  16,   1  ! h2x16A-
+   4,   4,   1,   0  ! h2y01A+
+   5,   4,   2,   0  ! h2y02A+
+   6,   4,   3,   0  ! h2y03A+
+   7,   4,   4,   0  ! h2y04A+
+   8,   4,   5,   0  ! h2y05A+
+   9,   4,   6,   0  ! h2y06A+
+  10,   4,   7,   0  ! h2y07A+
+  11,   4,   8,   0  ! h2y08A+
+  12,   4,   9,   0  ! h2y09A+
+  13,   4,  10,   0  ! h2y10A+
+  14,   4,   1,   1  ! h2y01A-
+  15,   4,   2,   1  ! h2y02A-
+
+SLOT=16
+   0,   4,   3,   1  ! h2y03A-
+   1,   4,   4,   1  ! h2y04A-
+   2,   4,   5,   1  ! h2y05A-
+   3,   4,   6,   1  ! h2y06A-
+   4,   4,   7,   1  ! h2y07A-
+   5,   4,   8,   1  ! h2y08A-
+   6,   4,   9,   1  ! h2y09A-
+   7,   4,  10,   1  ! h2y10A-
+
+SLOT=20
+REFINDEX=0
+ 127,1000,   0,   0
+   0,   1,   1,   2  ! h1x01T+
+   1,   1,   3,   2  ! h1x03T+
+   2,   1,   5,   2  ! h1x05T+
+   3,   1,   7,   2  ! h1x07T+
+   4,   1,   2,   2  ! h1x02T+
+   5,   1,   4,   2  ! h1x04T+
+   6,   1,   6,   2  ! h1x06T+
+   7,   1,   8,   2  ! h1x08T+
+   8,   1,   9,   2  ! h1x09T+
+   9,   1,  11,   2  ! h1x11T+
+  10,   1,  13,   2  ! h1x13T+
+  11,   1,  15,   2  ! h1x15T+
+  12,   1,  10,   2  ! h1x10T+
+  13,   1,  12,   2  ! h1x12T+
+  14,   1,  14,   2  ! h1x14T+
+  15,   1,  16,   2  ! h1x16T+
+  16,   1,   1,   3  ! h1x01T-
+  17,   1,   3,   3  ! h1x03T-
+  18,   1,   5,   3  ! h1x05T-
+  19,   1,   7,   3  ! h1x07T-
+  20,   1,   2,   3  ! h1x02T-
+  21,   1,   4,   3  ! h1x04T-
+  22,   1,   6,   3  ! h1x06T-
+  23,   1,   8,   3  ! h1x08T-
+  24,   1,   9,   3  ! h1x09T-
+  25,   1,  11,   3  ! h1x11T-
+  26,   1,  13,   3  ! h1x13T-
+  27,   1,  15,   3  ! h1x15T-
+  28,   1,  10,   3  ! h1x10T-
+  29,   1,  12,   3  ! h1x12T-
+  30,   1,  14,   3  ! h1x14T-
+  31,   1,  16,   3  ! h1x16T-
+  32,   2,   1,   2  ! h1y01T+
+  33,   2,   3,   2  ! h1y03T+
+  34,   2,   5,   2  ! h1y05T+
+  35,   2,   7,   2  ! h1y07T+
+  36,   2,   2,   2  ! h1y02T+
+  37,   2,   4,   2  ! h1y04T+
+  38,   2,   6,   2  ! h1y06T+
+  39,   2,   8,   2  ! h1y08T+
+  40,   2,   9,   2  ! h1y09T+
+  44,   2,  10,   2  ! h1y10T+
+  48,   2,   1,   3  ! h1y01T-
+  49,   2,   3,   3  ! h1y03T-
+  50,   2,   5,   3  ! h1y05T-
+  51,   2,   7,   3  ! h1y07T-
+  52,   2,   2,   3  ! h1y02T-
+  53,   2,   4,   3  ! h1y04T-
+  54,   2,   6,   3  ! h1y06T-
+  55,   2,   8,   3  ! h1y08T-
+  56,   2,   9,   3  ! h1y09T-
+  60,   2,  10,   3  ! h1y10T-
+  64,   3,   1,   2  ! h2x01T+
+  65,   3,   3,   2  ! h2x03T+
+  66,   3,   5,   2  ! h2x05T+
+  67,   3,   7,   2  ! h2x07T+
+  68,   3,   2,   2  ! h2x02T+
+  69,   3,   4,   2  ! h2x04T+
+  70,   3,   6,   2  ! h2x06T+
+  71,   3,   8,   2  ! h2x08T+
+  72,   3,   9,   2  ! h2x09T+
+  73,   3,  11,   2  ! h2x11T+
+  74,   3,  13,   2  ! h2x13T+
+  75,   3,  15,   2  ! h2x15T+
+  76,   3,  10,   2  ! h2x10T+
+  77,   3,  12,   2  ! h2x12T+
+  78,   3,  14,   2  ! h2x14T+
+  79,   3,  16,   2  ! h2x16T+
+  80,   3,   1,   3  ! h2x01T-
+  81,   3,   3,   3  ! h2x03T-
+  82,   3,   5,   3  ! h2x05T-
+  83,   3,   7,   3  ! h2x07T-
+  84,   3,   2,   3  ! h2x02T-
+  85,   3,   4,   3  ! h2x04T-
+  86,   3,   6,   3  ! h2x06T-
+  87,   3,   8,   3  ! h2x08T-
+  88,   3,   9,   3  ! h2x09T-
+  89,   3,  11,   3  ! h2x11T-
+  90,   3,  13,   3  ! h2x13T-
+  91,   3,  15,   3  ! h2x15T-
+  92,   3,  10,   3  ! h2x10T-
+  93,   3,  12,   3  ! h2x12T-
+  94,   3,  14,   3  ! h2x14T-
+  95,   3,  16,   3  ! h2x16T-
+  96,   4,   1,   2  ! h2y01T+
+  97,   4,   3,   2  ! h2y03T+
+  98,   4,   5,   2  ! h2y05T+
+  99,   4,   7,   2  ! h2y07T+
+ 100,   4,   2,   2  ! h2y02T+
+ 101,   4,   4,   2  ! h2y04T+
+ 102,   4,   6,   2  ! h2y06T+
+ 103,   4,   8,   2  ! h2y08T+
+ 104,   4,   9,   2  ! h2y09T+
+ 108,   4,  10,   2  ! h2y10T+
+ 112,   4,   1,   3  ! h2y01T-
+ 113,   4,   3,   3  ! h2y03T-
+ 114,   4,   5,   3  ! h2y05T-
+ 115,   4,   7,   3  ! h2y07T-
+ 116,   4,   2,   3  ! h2y02T-
+ 117,   4,   4,   3  ! h2y04T-
+ 118,   4,   6,   3  ! h2y06T-
+ 119,   4,   8,   3  ! h2y08T-
+ 120,   4,   9,   3  ! h2y09T-
+ 124,   4,  10,   3  ! h2y10T-
diff --git a/MAPS/HMS/DETEC/hms_stack.map b/MAPS/HMS/DETEC/hms_stack.map
new file mode 100644
index 00000000..1547c7c6
--- /dev/null
+++ b/MAPS/HMS/DETEC/hms_stack.map
@@ -0,0 +1,1546 @@
+! THMS_ID=10       ::  ADC,TDC
+! HDC_ID=11        ::  TDC
+! HSCIN_ID=13      ::  ADC+,ADC-,TDC+,TDC-
+! HCER_ID=14       ::  (TDC),ADC
+! HCAL_ID=15       ::  ADC
+
+
+DETECTOR=10
+
+ROC=1
+
+SLOT=17
+   8,   1,   1,   0  ! hASUM
+   9,   1,   2,   0  ! hBSUM
+  10,   1,   3,   0  ! hCSUM
+  11,   1,   4,   0  ! hDSUM
+  12,   1,   5,   0  ! hPSHWR
+  13,   1,   6,   0  ! hSHWR
+  14,   1,   7,   0  ! hAERSUM
+  15,   1,   8,   0  ! hCERSUM
+
+SLOT=2
+   0,   2,   1,   1  ! h1X
+   1,   2,   2,   1  ! h1Y
+   2,   2,   3,   1  ! h2X
+   3,   2,   4,   1  ! h2Y
+   4,   2,   5,   1  ! h1T
+   5,   2,   6,   1  ! h2T
+   6,   2,   7,   1  ! hT1
+   7,   2,   8,   1  ! hASUM
+   8,   2,   9,   1  ! hBSUM
+   9,   2,  10,   1  ! hCSUM
+  10,   2,  11,   1  ! hDSUM
+  11,   2,  12,   1  ! hPSHWRLO
+  12,   2,  13,   1  ! hPSHWRHI
+  13,   2,  14,   1  ! hSHWR
+  14,   2,  15,   1  ! hAERSUM
+  15,   2,  16,   1  ! hCERSUM
+
+SLOT=20
+ 127,   2,  17,   1  ! hT2
+
+ROC=3
+
+SLOT=5
+ 111,   2,  18,   1  ! hDCREF1
+
+SLOT=8
+ 127,   2,  19,   1  ! hDCREF2
+
+SLOT=10
+ 127,   2,  20,   1  ! hDCREF3
+
+SLOT=17
+ 127,   2,  21,   1  ! hDCREF4
+
+
+DETECTOR=11  ! HMS chambers
+
+ROC=3
+
+SLOT=5
+REFINDEX=0
+ 111,1000,   0,   0
+  96,   3,   1  ! Plane U, wire 1
+  97,   3,   2  ! Plane U, wire 2
+  98,   3,   3  ! Plane U, wire 3
+  99,   3,   4  ! Plane U, wire 4
+ 100,   3,   5  ! Plane U, wire 5
+ 101,   3,   6  ! Plane U, wire 6
+ 102,   3,   7  ! Plane U, wire 7
+ 103,   3,   8  ! Plane U, wire 8
+ 104,   3,   9  ! Plane U, wire 9
+ 105,   3,  10  ! Plane U, wire 10
+ 106,   3,  11  ! Plane U, wire 11
+ 107,   3,  12  ! Plane U, wire 12
+ 108,   3,  13  ! Plane U, wire 13
+ 109,   3,  14  ! Plane U, wire 14
+ 110,   1, 113  ! Plane X, wire 113
+  80,   3,  15  ! Plane U, wire 15
+  81,   3,  16  ! Plane U, wire 16
+  82,   3,  17  ! Plane U, wire 17
+  83,   3,  18  ! Plane U, wire 18
+  84,   3,  19  ! Plane U, wire 19
+  85,   3,  20  ! Plane U, wire 20
+  86,   3,  21  ! Plane U, wire 21
+  87,   3,  22  ! Plane U, wire 22
+  88,   3,  23  ! Plane U, wire 23
+  89,   3,  24  ! Plane U, wire 24
+  90,   3,  25  ! Plane U, wire 25
+  91,   3,  26  ! Plane U, wire 26
+  92,   3,  27  ! Plane U, wire 27
+  93,   3,  28  ! Plane U, wire 28
+  94,   3,  29  ! Plane U, wire 29
+  64,   3,  30  ! Plane U, wire 30
+  65,   3,  31  ! Plane U, wire 31
+  66,   3,  32  ! Plane U, wire 32
+  67,   3,  33  ! Plane U, wire 33
+  68,   3,  34  ! Plane U, wire 34
+  69,   3,  35  ! Plane U, wire 35
+  70,   3,  36  ! Plane U, wire 36
+  71,   3,  37  ! Plane U, wire 37
+  72,   3,  38  ! Plane U, wire 38
+  73,   3,  39  ! Plane U, wire 39
+  74,   3,  40  ! Plane U, wire 40
+  75,   3,  41  ! Plane U, wire 41
+  76,   3,  42  ! Plane U, wire 42
+  77,   3,  43  ! Plane U, wire 43
+  78,   3,  44  ! Plane U, wire 44
+  79,   3,  45  ! Plane U, wire 45
+  48,   3,  46  ! Plane U, wire 46
+  49,   3,  47  ! Plane U, wire 47
+  50,   3,  48  ! Plane U, wire 48
+  51,   3,  49  ! Plane U, wire 49
+  52,   3,  50  ! Plane U, wire 50
+  53,   3,  51  ! Plane U, wire 51
+  54,   3,  52  ! Plane U, wire 52
+  55,   3,  53  ! Plane U, wire 53
+  56,   3,  54  ! Plane U, wire 54
+  57,   3,  55  ! Plane U, wire 55
+  58,   3,  56  ! Plane U, wire 56
+  59,   3,  57  ! Plane U, wire 57
+  60,   3,  58  ! Plane U, wire 58
+  61,   3,  59  ! Plane U, wire 59
+  62,   3,  60  ! Plane U, wire 60
+  32,   3,  61  ! Plane U, wire 61
+  33,   3,  62  ! Plane U, wire 62
+  34,   3,  63  ! Plane U, wire 63
+  35,   3,  64  ! Plane U, wire 64
+  36,   3,  65  ! Plane U, wire 65
+  37,   3,  66  ! Plane U, wire 66
+  38,   3,  67  ! Plane U, wire 67
+  39,   3,  68  ! Plane U, wire 68
+  40,   3,  69  ! Plane U, wire 69
+  41,   3,  70  ! Plane U, wire 70
+  42,   3,  71  ! Plane U, wire 71
+  43,   3,  72  ! Plane U, wire 72
+  44,   3,  73  ! Plane U, wire 73
+  45,   3,  74  ! Plane U, wire 74
+  46,   3,  75  ! Plane U, wire 75
+  47,   3,  76  ! Plane U, wire 76
+  16,   3,  77  ! Plane U, wire 77
+  17,   3,  78  ! Plane U, wire 78
+  18,   3,  79  ! Plane U, wire 79
+  19,   3,  80  ! Plane U, wire 80
+  20,   3,  81  ! Plane U, wire 81
+  21,   3,  82  ! Plane U, wire 82
+  22,   3,  83  ! Plane U, wire 83
+  23,   3,  84  ! Plane U, wire 84
+  24,   3,  85  ! Plane U, wire 85
+  25,   3,  86  ! Plane U, wire 86
+  26,   3,  87  ! Plane U, wire 87
+  27,   3,  88  ! Plane U, wire 88
+  28,   3,  89  ! Plane U, wire 89
+  29,   3,  90  ! Plane U, wire 90
+  30,   3,  91  ! Plane U, wire 91
+   0,   3,  92  ! Plane U, wire 92
+   1,   3,  93  ! Plane U, wire 93
+   2,   3,  94  ! Plane U, wire 94
+   3,   3,  95  ! Plane U, wire 95
+   4,   3,  96  ! Plane U, wire 96
+   5,   3,  97  ! Plane U, wire 97
+   6,   3,  98  ! Plane U, wire 98
+   7,   3,  99  ! Plane U, wire 99
+   8,   3, 100  ! Plane U, wire 100
+   9,   3, 101  ! Plane U, wire 101
+  10,   3, 102  ! Plane U, wire 102
+  11,   3, 103  ! Plane U, wire 103
+  12,   3, 104  ! Plane U, wire 104
+  13,   3, 105  ! Plane U, wire 105
+  14,   3, 106  ! Plane U, wire 106
+  15,   3, 107  ! Plane U, wire 107
+
+SLOT=7
+REFINDEX=0
+  96,   4,   1  ! Plane V, wire 1
+  97,   4,   2  ! Plane V, wire 2
+  98,   4,   3  ! Plane V, wire 3
+  99,   4,   4  ! Plane V, wire 4
+ 100,   4,   5  ! Plane V, wire 5
+ 101,   4,   6  ! Plane V, wire 6
+ 102,   4,   7  ! Plane V, wire 7
+ 103,   4,   8  ! Plane V, wire 8
+ 104,   4,   9  ! Plane V, wire 9
+ 105,   4,  10  ! Plane V, wire 10
+ 106,   4,  11  ! Plane V, wire 11
+ 107,   4,  12  ! Plane V, wire 12
+ 108,   4,  13  ! Plane V, wire 13
+ 109,   4,  14  ! Plane V, wire 14
+ 110,   6, 113  ! Plane X', wire 113
+ 112,   4,  15  ! Plane V, wire 15
+ 113,   4,  16  ! Plane V, wire 16
+ 114,   4,  17  ! Plane V, wire 17
+ 115,   4,  18  ! Plane V, wire 18
+ 116,   4,  19  ! Plane V, wire 19
+ 117,   4,  20  ! Plane V, wire 20
+ 118,   4,  21  ! Plane V, wire 21
+ 119,   4,  22  ! Plane V, wire 22
+ 120,   4,  23  ! Plane V, wire 23
+ 121,   4,  24  ! Plane V, wire 24
+ 122,   4,  25  ! Plane V, wire 25
+ 123,   4,  26  ! Plane V, wire 26
+ 124,   4,  27  ! Plane V, wire 27
+ 125,   4,  28  ! Plane V, wire 28
+ 126,   4,  29  ! Plane V, wire 29
+
+SLOT=8
+REFINDEX=0
+ 127,1000,   0,   1
+   0,   4,  30  ! Plane V, wire 30
+   1,   4,  31  ! Plane V, wire 31
+   2,   4,  32  ! Plane V, wire 32
+   3,   4,  33  ! Plane V, wire 33
+   4,   4,  34  ! Plane V, wire 34
+   5,   4,  35  ! Plane V, wire 35
+   6,   4,  36  ! Plane V, wire 36
+   7,   4,  37  ! Plane V, wire 37
+   8,   4,  38  ! Plane V, wire 38
+   9,   4,  39  ! Plane V, wire 39
+  10,   4,  40  ! Plane V, wire 40
+  11,   4,  41  ! Plane V, wire 41
+  12,   4,  42  ! Plane V, wire 42
+  13,   4,  43  ! Plane V, wire 43
+  14,   4,  44  ! Plane V, wire 44
+  15,   4,  45  ! Plane V, wire 45
+  16,   4,  46  ! Plane V, wire 46
+  17,   4,  47  ! Plane V, wire 47
+  18,   4,  48  ! Plane V, wire 48
+  19,   4,  49  ! Plane V, wire 49
+  20,   4,  50  ! Plane V, wire 50
+  21,   4,  51  ! Plane V, wire 51
+  22,   4,  52  ! Plane V, wire 52
+  23,   4,  53  ! Plane V, wire 53
+  24,   4,  54  ! Plane V, wire 54
+  25,   4,  55  ! Plane V, wire 55
+  26,   4,  56  ! Plane V, wire 56
+  27,   4,  57  ! Plane V, wire 57
+  28,   4,  58  ! Plane V, wire 58
+  29,   4,  59  ! Plane V, wire 59
+  30,   4,  60  ! Plane V, wire 60
+  32,   4,  61  ! Plane V, wire 61
+  33,   4,  62  ! Plane V, wire 62
+  34,   4,  63  ! Plane V, wire 63
+  35,   4,  64  ! Plane V, wire 64
+  36,   4,  65  ! Plane V, wire 65
+  37,   4,  66  ! Plane V, wire 66
+  38,   4,  67  ! Plane V, wire 67
+  39,   4,  68  ! Plane V, wire 68
+  40,   4,  69  ! Plane V, wire 69
+  41,   4,  70  ! Plane V, wire 70
+  42,   4,  71  ! Plane V, wire 71
+  43,   4,  72  ! Plane V, wire 72
+  44,   4,  73  ! Plane V, wire 73
+  45,   4,  74  ! Plane V, wire 74
+  46,   4,  75  ! Plane V, wire 75
+  47,   4,  76  ! Plane V, wire 76
+  48,   4,  77  ! Plane V, wire 77
+  49,   4,  78  ! Plane V, wire 78
+  50,   4,  79  ! Plane V, wire 79
+  51,   4,  80  ! Plane V, wire 80
+  52,   4,  81  ! Plane V, wire 81
+  53,   4,  82  ! Plane V, wire 82
+  54,   4,  83  ! Plane V, wire 83
+  55,   4,  84  ! Plane V, wire 84
+  56,   4,  85  ! Plane V, wire 85
+  57,   4,  86  ! Plane V, wire 86
+  58,   4,  87  ! Plane V, wire 87
+  59,   4,  88  ! Plane V, wire 88
+  60,   4,  89  ! Plane V, wire 89
+  61,   4,  90  ! Plane V, wire 90
+  62,   4,  91  ! Plane V, wire 91
+
+SLOT=4
+REFINDEX=0
+  96,   4,  92  ! Plane V, wire 92
+  97,   4,  93  ! Plane V, wire 93
+  98,   4,  94  ! Plane V, wire 94
+  99,   4,  95  ! Plane V, wire 95
+ 100,   4,  96  ! Plane V, wire 96
+ 101,   4,  97  ! Plane V, wire 97
+ 102,   4,  98  ! Plane V, wire 98
+ 103,   4,  99  ! Plane V, wire 99
+ 104,   4, 100  ! Plane V, wire 100
+ 105,   4, 101  ! Plane V, wire 101
+ 106,   4, 102  ! Plane V, wire 102
+ 107,   4, 103  ! Plane V, wire 103
+ 108,   4, 104  ! Plane V, wire 104
+ 109,   4, 105  ! Plane V, wire 105
+ 110,   4, 106  ! Plane V, wire 106
+ 111,   4, 107  ! Plane V, wire 107
+  80,   1,   1  ! Plane X, wire 1
+  81,   1,   2  ! Plane X, wire 2
+  82,   1,   3  ! Plane X, wire 3
+  83,   1,   4  ! Plane X, wire 4
+  84,   1,   5  ! Plane X, wire 5
+  85,   1,   6  ! Plane X, wire 6
+  86,   1,   7  ! Plane X, wire 7
+  87,   1,   8  ! Plane X, wire 8
+  88,   1,   9  ! Plane X, wire 9
+  89,   1,  10  ! Plane X, wire 10
+  90,   1,  11  ! Plane X, wire 11
+  91,   1,  12  ! Plane X, wire 12
+  92,   1,  13  ! Plane X, wire 13
+  93,   1,  14  ! Plane X, wire 14
+  94,   1,  15  ! Plane X, wire 15
+  95,   1,  16  ! Plane X, wire 16
+  64,   1,  17  ! Plane X, wire 17
+  65,   1,  18  ! Plane X, wire 18
+  66,   1,  19  ! Plane X, wire 19
+  67,   1,  20  ! Plane X, wire 20
+  68,   1,  21  ! Plane X, wire 21
+  69,   1,  22  ! Plane X, wire 22
+  70,   1,  23  ! Plane X, wire 23
+  71,   1,  24  ! Plane X, wire 24
+  72,   1,  25  ! Plane X, wire 25
+  73,   1,  26  ! Plane X, wire 26
+  74,   1,  27  ! Plane X, wire 27
+  75,   1,  28  ! Plane X, wire 28
+  76,   1,  29  ! Plane X, wire 29
+  77,   1,  30  ! Plane X, wire 30
+  78,   1,  31  ! Plane X, wire 31
+  79,   1,  32  ! Plane X, wire 32
+  48,   1,  33  ! Plane X, wire 33
+  49,   1,  34  ! Plane X, wire 34
+  50,   1,  35  ! Plane X, wire 35
+  51,   1,  36  ! Plane X, wire 36
+  52,   1,  37  ! Plane X, wire 37
+  53,   1,  38  ! Plane X, wire 38
+  54,   1,  39  ! Plane X, wire 39
+  55,   1,  40  ! Plane X, wire 40
+  56,   1,  41  ! Plane X, wire 41
+  57,   1,  42  ! Plane X, wire 42
+  58,   1,  43  ! Plane X, wire 43
+  59,   1,  44  ! Plane X, wire 44
+  60,   1,  45  ! Plane X, wire 45
+  61,   1,  46  ! Plane X, wire 46
+  62,   1,  47  ! Plane X, wire 47
+  63,   1,  48  ! Plane X, wire 48
+  32,   1,  49  ! Plane X, wire 49
+  33,   1,  50  ! Plane X, wire 50
+  34,   1,  51  ! Plane X, wire 51
+  35,   1,  52  ! Plane X, wire 52
+  36,   1,  53  ! Plane X, wire 53
+  37,   1,  54  ! Plane X, wire 54
+  38,   1,  55  ! Plane X, wire 55
+  39,   1,  56  ! Plane X, wire 56
+  40,   1,  57  ! Plane X, wire 57
+  41,   1,  58  ! Plane X, wire 58
+  42,   1,  59  ! Plane X, wire 59
+  43,   1,  60  ! Plane X, wire 60
+  44,   1,  61  ! Plane X, wire 61
+  45,   1,  62  ! Plane X, wire 62
+  46,   1,  63  ! Plane X, wire 63
+  47,   1,  64  ! Plane X, wire 64
+  16,   1,  65  ! Plane X, wire 65
+  17,   1,  66  ! Plane X, wire 66
+  18,   1,  67  ! Plane X, wire 67
+  19,   1,  68  ! Plane X, wire 68
+  20,   1,  69  ! Plane X, wire 69
+  21,   1,  70  ! Plane X, wire 70
+  22,   1,  71  ! Plane X, wire 71
+  23,   1,  72  ! Plane X, wire 72
+  24,   1,  73  ! Plane X, wire 73
+  25,   1,  74  ! Plane X, wire 74
+  26,   1,  75  ! Plane X, wire 75
+  27,   1,  76  ! Plane X, wire 76
+  28,   1,  77  ! Plane X, wire 77
+  29,   1,  78  ! Plane X, wire 78
+  30,   1,  79  ! Plane X, wire 79
+  31,   1,  80  ! Plane X, wire 80
+   0,   1,  81  ! Plane X, wire 81
+   1,   1,  82  ! Plane X, wire 82
+   2,   1,  83  ! Plane X, wire 83
+   3,   1,  84  ! Plane X, wire 84
+   4,   1,  85  ! Plane X, wire 85
+   5,   1,  86  ! Plane X, wire 86
+   6,   1,  87  ! Plane X, wire 87
+   7,   1,  88  ! Plane X, wire 88
+   8,   1,  89  ! Plane X, wire 89
+   9,   1,  90  ! Plane X, wire 90
+  10,   1,  91  ! Plane X, wire 91
+  11,   1,  92  ! Plane X, wire 92
+  12,   1,  93  ! Plane X, wire 93
+  13,   1,  94  ! Plane X, wire 94
+  14,   1,  95  ! Plane X, wire 95
+  15,   1,  96  ! Plane X, wire 96
+
+SLOT=7
+REFINDEX=0
+  80,   1,  97  ! Plane X, wire 97
+  81,   1,  98  ! Plane X, wire 98
+  82,   1,  99  ! Plane X, wire 99
+  83,   1, 100  ! Plane X, wire 100
+  84,   1, 101  ! Plane X, wire 101
+  85,   1, 102  ! Plane X, wire 102
+  86,   1, 103  ! Plane X, wire 103
+  87,   1, 104  ! Plane X, wire 104
+  88,   1, 105  ! Plane X, wire 105
+  89,   1, 106  ! Plane X, wire 106
+  90,   1, 107  ! Plane X, wire 107
+  91,   1, 108  ! Plane X, wire 108
+  92,   1, 109  ! Plane X, wire 109
+  93,   1, 110  ! Plane X, wire 110
+  94,   1, 111  ! Plane X, wire 111
+  95,   1, 112  ! Plane X, wire 112
+
+SLOT=4
+REFINDEX=0
+ 112,   6,   1  ! Plane X', wire 1
+ 113,   6,   2  ! Plane X', wire 2
+ 114,   6,   3  ! Plane X', wire 3
+ 115,   6,   4  ! Plane X', wire 4
+ 116,   6,   5  ! Plane X', wire 5
+ 117,   6,   6  ! Plane X', wire 6
+ 118,   6,   7  ! Plane X', wire 7
+ 119,   6,   8  ! Plane X', wire 8
+ 120,   6,   9  ! Plane X', wire 9
+ 121,   6,  10  ! Plane X', wire 10
+ 122,   6,  11  ! Plane X', wire 11
+ 123,   6,  12  ! Plane X', wire 12
+ 124,   6,  13  ! Plane X', wire 13
+ 125,   6,  14  ! Plane X', wire 14
+ 126,   6,  15  ! Plane X', wire 15
+ 127,   6,  16  ! Plane X', wire 16
+
+SLOT=5
+REFINDEX=0
+ 112,   6,  17  ! Plane X', wire 17
+ 113,   6,  18  ! Plane X', wire 18
+ 114,   6,  19  ! Plane X', wire 19
+ 115,   6,  20  ! Plane X', wire 20
+ 116,   6,  21  ! Plane X', wire 21
+ 117,   6,  22  ! Plane X', wire 22
+ 118,   6,  23  ! Plane X', wire 23
+ 119,   6,  24  ! Plane X', wire 24
+ 120,   6,  25  ! Plane X', wire 25
+ 121,   6,  26  ! Plane X', wire 26
+ 122,   6,  27  ! Plane X', wire 27
+ 123,   6,  28  ! Plane X', wire 28
+ 124,   6,  29  ! Plane X', wire 29
+ 125,   6,  30  ! Plane X', wire 30
+ 126,   6,  31  ! Plane X', wire 31
+ 127,   6,  32  ! Plane X', wire 32
+
+SLOT=7
+REFINDEX=0
+   0,   6,  33  ! Plane X', wire 33
+   1,   6,  34  ! Plane X', wire 34
+   2,   6,  35  ! Plane X', wire 35
+   3,   6,  36  ! Plane X', wire 36
+   4,   6,  37  ! Plane X', wire 37
+   5,   6,  38  ! Plane X', wire 38
+   6,   6,  39  ! Plane X', wire 39
+   7,   6,  40  ! Plane X', wire 40
+   8,   6,  41  ! Plane X', wire 41
+   9,   6,  42  ! Plane X', wire 42
+  10,   6,  43  ! Plane X', wire 43
+  11,   6,  44  ! Plane X', wire 44
+  12,   6,  45  ! Plane X', wire 45
+  13,   6,  46  ! Plane X', wire 46
+  14,   6,  47  ! Plane X', wire 47
+  15,   6,  48  ! Plane X', wire 48
+  16,   6,  49  ! Plane X', wire 49
+  17,   6,  50  ! Plane X', wire 50
+  18,   6,  51  ! Plane X', wire 51
+  19,   6,  52  ! Plane X', wire 52
+  20,   6,  53  ! Plane X', wire 53
+  21,   6,  54  ! Plane X', wire 54
+  22,   6,  55  ! Plane X', wire 55
+  23,   6,  56  ! Plane X', wire 56
+  24,   6,  57  ! Plane X', wire 57
+  25,   6,  58  ! Plane X', wire 58
+  26,   6,  59  ! Plane X', wire 59
+  27,   6,  60  ! Plane X', wire 60
+  28,   6,  61  ! Plane X', wire 61
+  29,   6,  62  ! Plane X', wire 62
+  30,   6,  63  ! Plane X', wire 63
+  31,   6,  64  ! Plane X', wire 64
+  32,   6,  65  ! Plane X', wire 65
+  33,   6,  66  ! Plane X', wire 66
+  34,   6,  67  ! Plane X', wire 67
+  35,   6,  68  ! Plane X', wire 68
+  36,   6,  69  ! Plane X', wire 69
+  37,   6,  70  ! Plane X', wire 70
+  38,   6,  71  ! Plane X', wire 71
+  39,   6,  72  ! Plane X', wire 72
+  40,   6,  73  ! Plane X', wire 73
+  41,   6,  74  ! Plane X', wire 74
+  42,   6,  75  ! Plane X', wire 75
+  43,   6,  76  ! Plane X', wire 76
+  44,   6,  77  ! Plane X', wire 77
+  45,   6,  78  ! Plane X', wire 78
+  46,   6,  79  ! Plane X', wire 79
+  47,   6,  80  ! Plane X', wire 80
+  48,   6,  81  ! Plane X', wire 81
+  49,   6,  82  ! Plane X', wire 82
+  50,   6,  83  ! Plane X', wire 83
+  51,   6,  84  ! Plane X', wire 84
+  52,   6,  85  ! Plane X', wire 85
+  53,   6,  86  ! Plane X', wire 86
+  54,   6,  87  ! Plane X', wire 87
+  55,   6,  88  ! Plane X', wire 88
+  56,   6,  89  ! Plane X', wire 89
+  57,   6,  90  ! Plane X', wire 90
+  58,   6,  91  ! Plane X', wire 91
+  59,   6,  92  ! Plane X', wire 92
+  60,   6,  93  ! Plane X', wire 93
+  61,   6,  94  ! Plane X', wire 94
+  62,   6,  95  ! Plane X', wire 95
+  63,   6,  96  ! Plane X', wire 96
+  64,   6,  97  ! Plane X', wire 97
+  65,   6,  98  ! Plane X', wire 98
+  66,   6,  99  ! Plane X', wire 99
+  67,   6, 100  ! Plane X', wire 100
+  68,   6, 101  ! Plane X', wire 101
+  69,   6, 102  ! Plane X', wire 102
+  70,   6, 103  ! Plane X', wire 103
+  71,   6, 104  ! Plane X', wire 104
+  72,   6, 105  ! Plane X', wire 105
+  73,   6, 106  ! Plane X', wire 106
+  74,   6, 107  ! Plane X', wire 107
+  75,   6, 108  ! Plane X', wire 108
+  76,   6, 109  ! Plane X', wire 109
+  77,   6, 110  ! Plane X', wire 110
+  78,   6, 111  ! Plane X', wire 111
+  79,   6, 112  ! Plane X', wire 112
+
+SLOT=8
+REFINDEX=0
+  64,   2,   1  ! Plane Y, wire 1
+  65,   2,   2  ! Plane Y, wire 2
+  66,   2,   3  ! Plane Y, wire 3
+  67,   2,   4  ! Plane Y, wire 4
+  68,   2,   5  ! Plane Y, wire 5
+  69,   2,   6  ! Plane Y, wire 6
+  70,   2,   7  ! Plane Y, wire 7
+  71,   2,   8  ! Plane Y, wire 8
+  72,   2,   9  ! Plane Y, wire 9
+  73,   2,  10  ! Plane Y, wire 10
+  74,   2,  11  ! Plane Y, wire 11
+  75,   2,  12  ! Plane Y, wire 12
+  76,   2,  13  ! Plane Y, wire 13
+  80,   2,  14  ! Plane Y, wire 14
+  81,   2,  15  ! Plane Y, wire 15
+  82,   2,  16  ! Plane Y, wire 16
+  83,   2,  17  ! Plane Y, wire 17
+  84,   2,  18  ! Plane Y, wire 18
+  85,   2,  19  ! Plane Y, wire 19
+  86,   2,  20  ! Plane Y, wire 20
+  87,   2,  21  ! Plane Y, wire 21
+  88,   2,  22  ! Plane Y, wire 22
+  89,   2,  23  ! Plane Y, wire 23
+  90,   2,  24  ! Plane Y, wire 24
+  91,   2,  25  ! Plane Y, wire 25
+  92,   2,  26  ! Plane Y, wire 26
+  96,   2,  27  ! Plane Y, wire 27
+  97,   2,  28  ! Plane Y, wire 28
+  98,   2,  29  ! Plane Y, wire 29
+  99,   2,  30  ! Plane Y, wire 30
+ 100,   2,  31  ! Plane Y, wire 31
+ 101,   2,  32  ! Plane Y, wire 32
+ 102,   2,  33  ! Plane Y, wire 33
+ 103,   2,  34  ! Plane Y, wire 34
+ 104,   2,  35  ! Plane Y, wire 35
+ 105,   2,  36  ! Plane Y, wire 36
+ 106,   2,  37  ! Plane Y, wire 37
+ 107,   2,  38  ! Plane Y, wire 38
+ 108,   2,  39  ! Plane Y, wire 39
+ 112,   2,  40  ! Plane Y, wire 40
+ 113,   2,  41  ! Plane Y, wire 41
+ 114,   2,  42  ! Plane Y, wire 42
+ 115,   2,  43  ! Plane Y, wire 43
+ 116,   2,  44  ! Plane Y, wire 44
+ 117,   2,  45  ! Plane Y, wire 45
+ 118,   2,  46  ! Plane Y, wire 46
+ 119,   2,  47  ! Plane Y, wire 47
+ 120,   2,  48  ! Plane Y, wire 48
+ 121,   2,  49  ! Plane Y, wire 49
+ 122,   2,  50  ! Plane Y, wire 50
+ 123,   2,  51  ! Plane Y, wire 51
+ 124,   2,  52  ! Plane Y, wire 52
+
+SLOT=10
+REFINDEX=0
+ 127,1000,   0,   2
+   0,   5,   1  ! Plane Y', wire 1
+   1,   5,   2  ! Plane Y', wire 2
+   2,   5,   3  ! Plane Y', wire 3
+   3,   5,   4  ! Plane Y', wire 4
+   4,   5,   5  ! Plane Y', wire 5
+   5,   5,   6  ! Plane Y', wire 6
+   6,   5,   7  ! Plane Y', wire 7
+   7,   5,   8  ! Plane Y', wire 8
+   8,   5,   9  ! Plane Y', wire 9
+   9,   5,  10  ! Plane Y', wire 10
+  10,   5,  11  ! Plane Y', wire 11
+  11,   5,  12  ! Plane Y', wire 12
+  12,   5,  13  ! Plane Y', wire 13
+  16,   5,  14  ! Plane Y', wire 14
+  17,   5,  15  ! Plane Y', wire 15
+  18,   5,  16  ! Plane Y', wire 16
+  19,   5,  17  ! Plane Y', wire 17
+  20,   5,  18  ! Plane Y', wire 18
+  21,   5,  19  ! Plane Y', wire 19
+  22,   5,  20  ! Plane Y', wire 20
+  23,   5,  21  ! Plane Y', wire 21
+  24,   5,  22  ! Plane Y', wire 22
+  25,   5,  23  ! Plane Y', wire 23
+  26,   5,  24  ! Plane Y', wire 24
+  27,   5,  25  ! Plane Y', wire 25
+  28,   5,  26  ! Plane Y', wire 26
+  32,   5,  27  ! Plane Y', wire 27
+  33,   5,  28  ! Plane Y', wire 28
+  34,   5,  29  ! Plane Y', wire 29
+  35,   5,  30  ! Plane Y', wire 30
+  36,   5,  31  ! Plane Y', wire 31
+  37,   5,  32  ! Plane Y', wire 32
+  38,   5,  33  ! Plane Y', wire 33
+  39,   5,  34  ! Plane Y', wire 34
+  40,   5,  35  ! Plane Y', wire 35
+  41,   5,  36  ! Plane Y', wire 36
+  42,   5,  37  ! Plane Y', wire 37
+  43,   5,  38  ! Plane Y', wire 38
+  44,   5,  39  ! Plane Y', wire 39
+  48,   5,  40  ! Plane Y', wire 40
+  49,   5,  41  ! Plane Y', wire 41
+  50,   5,  42  ! Plane Y', wire 42
+  51,   5,  43  ! Plane Y', wire 43
+  52,   5,  44  ! Plane Y', wire 44
+  53,   5,  45  ! Plane Y', wire 45
+  54,   5,  46  ! Plane Y', wire 46
+  55,   5,  47  ! Plane Y', wire 47
+  56,   5,  48  ! Plane Y', wire 48
+  57,   5,  49  ! Plane Y', wire 49
+  58,   5,  50  ! Plane Y', wire 50
+  59,   5,  51  ! Plane Y', wire 51
+  60,   5,  52  ! Plane Y', wire 52
+
+SLOT=16
+REFINDEX=0
+  96,   9,   1  ! Plane U, wire 1
+  97,   9,   2  ! Plane U, wire 2
+  98,   9,   3  ! Plane U, wire 3
+  99,   9,   4  ! Plane U, wire 4
+ 100,   9,   5  ! Plane U, wire 5
+ 101,   9,   6  ! Plane U, wire 6
+ 102,   9,   7  ! Plane U, wire 7
+ 103,   9,   8  ! Plane U, wire 8
+ 104,   9,   9  ! Plane U, wire 9
+ 105,   9,  10  ! Plane U, wire 10
+ 106,   9,  11  ! Plane U, wire 11
+ 107,   9,  12  ! Plane U, wire 12
+ 108,   9,  13  ! Plane U, wire 13
+ 109,   9,  14  ! Plane U, wire 14
+ 110,   7, 113  ! Plane X, wire 113
+ 112,   9,  15  ! Plane U, wire 15
+ 113,   9,  16  ! Plane U, wire 16
+ 114,   9,  17  ! Plane U, wire 17
+ 115,   9,  18  ! Plane U, wire 18
+ 116,   9,  19  ! Plane U, wire 19
+ 117,   9,  20  ! Plane U, wire 20
+ 118,   9,  21  ! Plane U, wire 21
+ 119,   9,  22  ! Plane U, wire 22
+ 120,   9,  23  ! Plane U, wire 23
+ 121,   9,  24  ! Plane U, wire 24
+ 122,   9,  25  ! Plane U, wire 25
+ 123,   9,  26  ! Plane U, wire 26
+ 124,   9,  27  ! Plane U, wire 27
+ 125,   9,  28  ! Plane U, wire 28
+ 126,   9,  29  ! Plane U, wire 29
+
+SLOT=14
+REFINDEX=0
+   0,   9,  30  ! Plane U, wire 30
+   1,   9,  31  ! Plane U, wire 31
+   2,   9,  32  ! Plane U, wire 32
+   3,   9,  33  ! Plane U, wire 33
+   4,   9,  34  ! Plane U, wire 34
+   5,   9,  35  ! Plane U, wire 35
+   6,   9,  36  ! Plane U, wire 36
+   7,   9,  37  ! Plane U, wire 37
+   8,   9,  38  ! Plane U, wire 38
+   9,   9,  39  ! Plane U, wire 39
+  10,   9,  40  ! Plane U, wire 40
+  11,   9,  41  ! Plane U, wire 41
+  12,   9,  42  ! Plane U, wire 42
+  13,   9,  43  ! Plane U, wire 43
+  14,   9,  44  ! Plane U, wire 44
+  15,   9,  45  ! Plane U, wire 45
+  32,   9,  46  ! Plane U, wire 46
+  33,   9,  47  ! Plane U, wire 47
+  34,   9,  48  ! Plane U, wire 48
+  35,   9,  49  ! Plane U, wire 49
+  36,   9,  50  ! Plane U, wire 50
+  37,   9,  51  ! Plane U, wire 51
+  38,   9,  52  ! Plane U, wire 52
+  39,   9,  53  ! Plane U, wire 53
+  40,   9,  54  ! Plane U, wire 54
+  41,   9,  55  ! Plane U, wire 55
+  42,   9,  56  ! Plane U, wire 56
+  43,   9,  57  ! Plane U, wire 57
+  44,   9,  58  ! Plane U, wire 58
+  45,   9,  59  ! Plane U, wire 59
+  46,   9,  60  ! Plane U, wire 60
+  48,   9,  61  ! Plane U, wire 61
+  49,   9,  62  ! Plane U, wire 62
+  50,   9,  63  ! Plane U, wire 63
+  51,   9,  64  ! Plane U, wire 64
+  52,   9,  65  ! Plane U, wire 65
+  53,   9,  66  ! Plane U, wire 66
+  54,   9,  67  ! Plane U, wire 67
+  55,   9,  68  ! Plane U, wire 68
+  56,   9,  69  ! Plane U, wire 69
+  57,   9,  70  ! Plane U, wire 70
+  58,   9,  71  ! Plane U, wire 71
+  59,   9,  72  ! Plane U, wire 72
+  60,   9,  73  ! Plane U, wire 73
+  61,   9,  74  ! Plane U, wire 74
+  62,   9,  75  ! Plane U, wire 75
+  63,   9,  76  ! Plane U, wire 76
+  64,   9,  77  ! Plane U, wire 77
+  65,   9,  78  ! Plane U, wire 78
+  66,   9,  79  ! Plane U, wire 79
+  67,   9,  80  ! Plane U, wire 80
+  68,   9,  81  ! Plane U, wire 81
+  69,   9,  82  ! Plane U, wire 82
+  70,   9,  83  ! Plane U, wire 83
+  71,   9,  84  ! Plane U, wire 84
+  72,   9,  85  ! Plane U, wire 85
+  73,   9,  86  ! Plane U, wire 86
+  74,   9,  87  ! Plane U, wire 87
+  75,   9,  88  ! Plane U, wire 88
+  76,   9,  89  ! Plane U, wire 89
+  77,   9,  90  ! Plane U, wire 90
+  78,   9,  91  ! Plane U, wire 91
+  80,   9,  92  ! Plane U, wire 92
+  81,   9,  93  ! Plane U, wire 93
+  82,   9,  94  ! Plane U, wire 94
+  83,   9,  95  ! Plane U, wire 95
+  84,   9,  96  ! Plane U, wire 96
+  85,   9,  97  ! Plane U, wire 97
+  86,   9,  98  ! Plane U, wire 98
+  87,   9,  99  ! Plane U, wire 99
+  88,   9, 100  ! Plane U, wire 100
+  89,   9, 101  ! Plane U, wire 101
+  90,   9, 102  ! Plane U, wire 102
+  91,   9, 103  ! Plane U, wire 103
+  92,   9, 104  ! Plane U, wire 104
+  93,   9, 105  ! Plane U, wire 105
+  94,   9, 106  ! Plane U, wire 106
+  95,   9, 107  ! Plane U, wire 107
+
+SLOT=16
+REFINDEX=0
+  80,  10,   1  ! Plane V, wire 1
+  81,  10,   2  ! Plane V, wire 2
+  82,  10,   3  ! Plane V, wire 3
+  83,  10,   4  ! Plane V, wire 4
+  84,  10,   5  ! Plane V, wire 5
+  85,  10,   6  ! Plane V, wire 6
+  86,  10,   7  ! Plane V, wire 7
+  87,  10,   8  ! Plane V, wire 8
+  88,  10,   9  ! Plane V, wire 9
+  89,  10,  10  ! Plane V, wire 10
+  90,  10,  11  ! Plane V, wire 11
+  91,  10,  12  ! Plane V, wire 12
+  92,  10,  13  ! Plane V, wire 13
+  93,  10,  14  ! Plane V, wire 14
+  94,  12, 113  ! Plane X', wire 113
+
+SLOT=14
+REFINDEX=0
+  96,  10,  15  ! Plane V, wire 15
+  97,  10,  16  ! Plane V, wire 16
+  98,  10,  17  ! Plane V, wire 17
+  99,  10,  18  ! Plane V, wire 18
+ 100,  10,  19  ! Plane V, wire 19
+ 101,  10,  20  ! Plane V, wire 20
+ 102,  10,  21  ! Plane V, wire 21
+ 103,  10,  22  ! Plane V, wire 22
+ 104,  10,  23  ! Plane V, wire 23
+ 105,  10,  24  ! Plane V, wire 24
+ 106,  10,  25  ! Plane V, wire 25
+ 107,  10,  26  ! Plane V, wire 26
+ 108,  10,  27  ! Plane V, wire 27
+ 109,  10,  28  ! Plane V, wire 28
+ 110,  10,  29  ! Plane V, wire 29
+ 112,  10,  30  ! Plane V, wire 30
+ 113,  10,  31  ! Plane V, wire 31
+ 114,  10,  32  ! Plane V, wire 32
+ 115,  10,  33  ! Plane V, wire 33
+ 116,  10,  34  ! Plane V, wire 34
+ 117,  10,  35  ! Plane V, wire 35
+ 118,  10,  36  ! Plane V, wire 36
+ 119,  10,  37  ! Plane V, wire 37
+ 120,  10,  38  ! Plane V, wire 38
+ 121,  10,  39  ! Plane V, wire 39
+ 122,  10,  40  ! Plane V, wire 40
+ 123,  10,  41  ! Plane V, wire 41
+ 124,  10,  42  ! Plane V, wire 42
+ 125,  10,  43  ! Plane V, wire 43
+ 126,  10,  44  ! Plane V, wire 44
+ 127,  10,  45  ! Plane V, wire 45
+
+SLOT=17
+REFINDEX=0
+ 127,1000,   0,   3
+   0,  10,  46  ! Plane V, wire 46
+   1,  10,  47  ! Plane V, wire 47
+   2,  10,  48  ! Plane V, wire 48
+   3,  10,  49  ! Plane V, wire 49
+   4,  10,  50  ! Plane V, wire 50
+   5,  10,  51  ! Plane V, wire 51
+   6,  10,  52  ! Plane V, wire 52
+   7,  10,  53  ! Plane V, wire 53
+   8,  10,  54  ! Plane V, wire 54
+   9,  10,  55  ! Plane V, wire 55
+  10,  10,  56  ! Plane V, wire 56
+  11,  10,  57  ! Plane V, wire 57
+  12,  10,  58  ! Plane V, wire 58
+  13,  10,  59  ! Plane V, wire 59
+  14,  10,  60  ! Plane V, wire 60
+  16,  10,  61  ! Plane V, wire 61
+  17,  10,  62  ! Plane V, wire 62
+  18,  10,  63  ! Plane V, wire 63
+  19,  10,  64  ! Plane V, wire 64
+  20,  10,  65  ! Plane V, wire 65
+  21,  10,  66  ! Plane V, wire 66
+  22,  10,  67  ! Plane V, wire 67
+  23,  10,  68  ! Plane V, wire 68
+  24,  10,  69  ! Plane V, wire 69
+  25,  10,  70  ! Plane V, wire 70
+  26,  10,  71  ! Plane V, wire 71
+  27,  10,  72  ! Plane V, wire 72
+  28,  10,  73  ! Plane V, wire 73
+  29,  10,  74  ! Plane V, wire 74
+  30,  10,  75  ! Plane V, wire 75
+  31,  10,  76  ! Plane V, wire 76
+  32,  10,  77  ! Plane V, wire 77
+  33,  10,  78  ! Plane V, wire 78
+  34,  10,  79  ! Plane V, wire 79
+  35,  10,  80  ! Plane V, wire 80
+  36,  10,  81  ! Plane V, wire 81
+  37,  10,  82  ! Plane V, wire 82
+  38,  10,  83  ! Plane V, wire 83
+  39,  10,  84  ! Plane V, wire 84
+  40,  10,  85  ! Plane V, wire 85
+  41,  10,  86  ! Plane V, wire 86
+  42,  10,  87  ! Plane V, wire 87
+  43,  10,  88  ! Plane V, wire 88
+  44,  10,  89  ! Plane V, wire 89
+  45,  10,  90  ! Plane V, wire 90
+  46,  10,  91  ! Plane V, wire 91
+  48,  10,  92  ! Plane V, wire 92
+  49,  10,  93  ! Plane V, wire 93
+  50,  10,  94  ! Plane V, wire 94
+  51,  10,  95  ! Plane V, wire 95
+  52,  10,  96  ! Plane V, wire 96
+  53,  10,  97  ! Plane V, wire 97
+  54,  10,  98  ! Plane V, wire 98
+  55,  10,  99  ! Plane V, wire 99
+  56,  10, 100  ! Plane V, wire 100
+  57,  10, 101  ! Plane V, wire 101
+  58,  10, 102  ! Plane V, wire 102
+  59,  10, 103  ! Plane V, wire 103
+  60,  10, 104  ! Plane V, wire 104
+  61,  10, 105  ! Plane V, wire 105
+  62,  10, 106  ! Plane V, wire 106
+  63,  10, 107  ! Plane V, wire 107
+
+SLOT=13
+REFINDEX=0
+   0,   7,   1  ! Plane X, wire 1
+   1,   7,   2  ! Plane X, wire 2
+   2,   7,   3  ! Plane X, wire 3
+   3,   7,   4  ! Plane X, wire 4
+   4,   7,   5  ! Plane X, wire 5
+   5,   7,   6  ! Plane X, wire 6
+   6,   7,   7  ! Plane X, wire 7
+   7,   7,   8  ! Plane X, wire 8
+   8,   7,   9  ! Plane X, wire 9
+   9,   7,  10  ! Plane X, wire 10
+  10,   7,  11  ! Plane X, wire 11
+  11,   7,  12  ! Plane X, wire 12
+  12,   7,  13  ! Plane X, wire 13
+  13,   7,  14  ! Plane X, wire 14
+  14,   7,  15  ! Plane X, wire 15
+  15,   7,  16  ! Plane X, wire 16
+  16,   7,  17  ! Plane X, wire 17
+  17,   7,  18  ! Plane X, wire 18
+  18,   7,  19  ! Plane X, wire 19
+  19,   7,  20  ! Plane X, wire 20
+  20,   7,  21  ! Plane X, wire 21
+  21,   7,  22  ! Plane X, wire 22
+  22,   7,  23  ! Plane X, wire 23
+  23,   7,  24  ! Plane X, wire 24
+  24,   7,  25  ! Plane X, wire 25
+  25,   7,  26  ! Plane X, wire 26
+  26,   7,  27  ! Plane X, wire 27
+  27,   7,  28  ! Plane X, wire 28
+  28,   7,  29  ! Plane X, wire 29
+  29,   7,  30  ! Plane X, wire 30
+  30,   7,  31  ! Plane X, wire 31
+  31,   7,  32  ! Plane X, wire 32
+  32,   7,  33  ! Plane X, wire 33
+  33,   7,  34  ! Plane X, wire 34
+  34,   7,  35  ! Plane X, wire 35
+  35,   7,  36  ! Plane X, wire 36
+  36,   7,  37  ! Plane X, wire 37
+  37,   7,  38  ! Plane X, wire 38
+  38,   7,  39  ! Plane X, wire 39
+  39,   7,  40  ! Plane X, wire 40
+  40,   7,  41  ! Plane X, wire 41
+  41,   7,  42  ! Plane X, wire 42
+  42,   7,  43  ! Plane X, wire 43
+  43,   7,  44  ! Plane X, wire 44
+  44,   7,  45  ! Plane X, wire 45
+  45,   7,  46  ! Plane X, wire 46
+  46,   7,  47  ! Plane X, wire 47
+  47,   7,  48  ! Plane X, wire 48
+  48,   7,  49  ! Plane X, wire 49
+  49,   7,  50  ! Plane X, wire 50
+  50,   7,  51  ! Plane X, wire 51
+  51,   7,  52  ! Plane X, wire 52
+  52,   7,  53  ! Plane X, wire 53
+  53,   7,  54  ! Plane X, wire 54
+  54,   7,  55  ! Plane X, wire 55
+  55,   7,  56  ! Plane X, wire 56
+  56,   7,  57  ! Plane X, wire 57
+  57,   7,  58  ! Plane X, wire 58
+  58,   7,  59  ! Plane X, wire 59
+  59,   7,  60  ! Plane X, wire 60
+  60,   7,  61  ! Plane X, wire 61
+  61,   7,  62  ! Plane X, wire 62
+  62,   7,  63  ! Plane X, wire 63
+  63,   7,  64  ! Plane X, wire 64
+  64,   7,  65  ! Plane X, wire 65
+  65,   7,  66  ! Plane X, wire 66
+  66,   7,  67  ! Plane X, wire 67
+  67,   7,  68  ! Plane X, wire 68
+  68,   7,  69  ! Plane X, wire 69
+  69,   7,  70  ! Plane X, wire 70
+  70,   7,  71  ! Plane X, wire 71
+  71,   7,  72  ! Plane X, wire 72
+  72,   7,  73  ! Plane X, wire 73
+  73,   7,  74  ! Plane X, wire 74
+  74,   7,  75  ! Plane X, wire 75
+  75,   7,  76  ! Plane X, wire 76
+  76,   7,  77  ! Plane X, wire 77
+  77,   7,  78  ! Plane X, wire 78
+  78,   7,  79  ! Plane X, wire 79
+  79,   7,  80  ! Plane X, wire 80
+  80,   7,  81  ! Plane X, wire 81
+  81,   7,  82  ! Plane X, wire 82
+  82,   7,  83  ! Plane X, wire 83
+  83,   7,  84  ! Plane X, wire 84
+  84,   7,  85  ! Plane X, wire 85
+  85,   7,  86  ! Plane X, wire 86
+  86,   7,  87  ! Plane X, wire 87
+  87,   7,  88  ! Plane X, wire 88
+  88,   7,  89  ! Plane X, wire 89
+  89,   7,  90  ! Plane X, wire 90
+  90,   7,  91  ! Plane X, wire 91
+  91,   7,  92  ! Plane X, wire 92
+  92,   7,  93  ! Plane X, wire 93
+  93,   7,  94  ! Plane X, wire 94
+  94,   7,  95  ! Plane X, wire 95
+  95,   7,  96  ! Plane X, wire 96
+  96,   7,  97  ! Plane X, wire 97
+  97,   7,  98  ! Plane X, wire 98
+  98,   7,  99  ! Plane X, wire 99
+  99,   7, 100  ! Plane X, wire 100
+ 100,   7, 101  ! Plane X, wire 101
+ 101,   7, 102  ! Plane X, wire 102
+ 102,   7, 103  ! Plane X, wire 103
+ 103,   7, 104  ! Plane X, wire 104
+ 104,   7, 105  ! Plane X, wire 105
+ 105,   7, 106  ! Plane X, wire 106
+ 106,   7, 107  ! Plane X, wire 107
+ 107,   7, 108  ! Plane X, wire 108
+ 108,   7, 109  ! Plane X, wire 109
+ 109,   7, 110  ! Plane X, wire 110
+ 110,   7, 111  ! Plane X, wire 111
+ 111,   7, 112  ! Plane X, wire 112
+ 112,  12,   1  ! Plane X', wire 1
+ 113,  12,   2  ! Plane X', wire 2
+ 114,  12,   3  ! Plane X', wire 3
+ 115,  12,   4  ! Plane X', wire 4
+ 116,  12,   5  ! Plane X', wire 5
+ 117,  12,   6  ! Plane X', wire 6
+ 118,  12,   7  ! Plane X', wire 7
+ 119,  12,   8  ! Plane X', wire 8
+ 120,  12,   9  ! Plane X', wire 9
+ 121,  12,  10  ! Plane X', wire 10
+ 122,  12,  11  ! Plane X', wire 11
+ 123,  12,  12  ! Plane X', wire 12
+ 124,  12,  13  ! Plane X', wire 13
+ 125,  12,  14  ! Plane X', wire 14
+ 126,  12,  15  ! Plane X', wire 15
+ 127,  12,  16  ! Plane X', wire 16
+
+SLOT=14
+REFINDEX=0
+  16,  12,  17  ! Plane X', wire 17
+  17,  12,  18  ! Plane X', wire 18
+  18,  12,  19  ! Plane X', wire 19
+  19,  12,  20  ! Plane X', wire 20
+  20,  12,  21  ! Plane X', wire 21
+  21,  12,  22  ! Plane X', wire 22
+  22,  12,  23  ! Plane X', wire 23
+  23,  12,  24  ! Plane X', wire 24
+  24,  12,  25  ! Plane X', wire 25
+  25,  12,  26  ! Plane X', wire 26
+  26,  12,  27  ! Plane X', wire 27
+  27,  12,  28  ! Plane X', wire 28
+  28,  12,  29  ! Plane X', wire 29
+  29,  12,  30  ! Plane X', wire 30
+  30,  12,  31  ! Plane X', wire 31
+  31,  12,  32  ! Plane X', wire 32
+
+SLOT=16
+REFINDEX=0
+   0,  12,  33  ! Plane X', wire 33
+   1,  12,  34  ! Plane X', wire 34
+   2,  12,  35  ! Plane X', wire 35
+   3,  12,  36  ! Plane X', wire 36
+   4,  12,  37  ! Plane X', wire 37
+   5,  12,  38  ! Plane X', wire 38
+   6,  12,  39  ! Plane X', wire 39
+   7,  12,  40  ! Plane X', wire 40
+   8,  12,  41  ! Plane X', wire 41
+   9,  12,  42  ! Plane X', wire 42
+  10,  12,  43  ! Plane X', wire 43
+  11,  12,  44  ! Plane X', wire 44
+  12,  12,  45  ! Plane X', wire 45
+  13,  12,  46  ! Plane X', wire 46
+  14,  12,  47  ! Plane X', wire 47
+  15,  12,  48  ! Plane X', wire 48
+  16,  12,  49  ! Plane X', wire 49
+  17,  12,  50  ! Plane X', wire 50
+  18,  12,  51  ! Plane X', wire 51
+  19,  12,  52  ! Plane X', wire 52
+  20,  12,  53  ! Plane X', wire 53
+  21,  12,  54  ! Plane X', wire 54
+  22,  12,  55  ! Plane X', wire 55
+  23,  12,  56  ! Plane X', wire 56
+  24,  12,  57  ! Plane X', wire 57
+  25,  12,  58  ! Plane X', wire 58
+  26,  12,  59  ! Plane X', wire 59
+  27,  12,  60  ! Plane X', wire 60
+  28,  12,  61  ! Plane X', wire 61
+  29,  12,  62  ! Plane X', wire 62
+  30,  12,  63  ! Plane X', wire 63
+  31,  12,  64  ! Plane X', wire 64
+  32,  12,  65  ! Plane X', wire 65
+  33,  12,  66  ! Plane X', wire 66
+  34,  12,  67  ! Plane X', wire 67
+  35,  12,  68  ! Plane X', wire 68
+  36,  12,  69  ! Plane X', wire 69
+  37,  12,  70  ! Plane X', wire 70
+  38,  12,  71  ! Plane X', wire 71
+  39,  12,  72  ! Plane X', wire 72
+  40,  12,  73  ! Plane X', wire 73
+  41,  12,  74  ! Plane X', wire 74
+  42,  12,  75  ! Plane X', wire 75
+  43,  12,  76  ! Plane X', wire 76
+  44,  12,  77  ! Plane X', wire 77
+  45,  12,  78  ! Plane X', wire 78
+  46,  12,  79  ! Plane X', wire 79
+  47,  12,  80  ! Plane X', wire 80
+  48,  12,  81  ! Plane X', wire 81
+  49,  12,  82  ! Plane X', wire 82
+  50,  12,  83  ! Plane X', wire 83
+  51,  12,  84  ! Plane X', wire 84
+  52,  12,  85  ! Plane X', wire 85
+  53,  12,  86  ! Plane X', wire 86
+  54,  12,  87  ! Plane X', wire 87
+  55,  12,  88  ! Plane X', wire 88
+  56,  12,  89  ! Plane X', wire 89
+  57,  12,  90  ! Plane X', wire 90
+  58,  12,  91  ! Plane X', wire 91
+  59,  12,  92  ! Plane X', wire 92
+  60,  12,  93  ! Plane X', wire 93
+  61,  12,  94  ! Plane X', wire 94
+  62,  12,  95  ! Plane X', wire 95
+  63,  12,  96  ! Plane X', wire 96
+  64,  12,  97  ! Plane X', wire 97
+  65,  12,  98  ! Plane X', wire 98
+  66,  12,  99  ! Plane X', wire 99
+  67,  12, 100  ! Plane X', wire 100
+  68,  12, 101  ! Plane X', wire 101
+  69,  12, 102  ! Plane X', wire 102
+  70,  12, 103  ! Plane X', wire 103
+  71,  12, 104  ! Plane X', wire 104
+  72,  12, 105  ! Plane X', wire 105
+  73,  12, 106  ! Plane X', wire 106
+  74,  12, 107  ! Plane X', wire 107
+  75,  12, 108  ! Plane X', wire 108
+  76,  12, 109  ! Plane X', wire 109
+  77,  12, 110  ! Plane X', wire 110
+  78,  12, 111  ! Plane X', wire 111
+  79,  12, 112  ! Plane X', wire 112
+
+SLOT=17
+REFINDEX=0
+  64,   8,   1  ! Plane Y, wire 1
+  65,   8,   2  ! Plane Y, wire 2
+  66,   8,   3  ! Plane Y, wire 3
+  67,   8,   4  ! Plane Y, wire 4
+  68,   8,   5  ! Plane Y, wire 5
+  69,   8,   6  ! Plane Y, wire 6
+  70,   8,   7  ! Plane Y, wire 7
+  71,   8,   8  ! Plane Y, wire 8
+  72,   8,   9  ! Plane Y, wire 9
+  73,   8,  10  ! Plane Y, wire 10
+  74,   8,  11  ! Plane Y, wire 11
+  75,   8,  12  ! Plane Y, wire 12
+  76,   8,  13  ! Plane Y, wire 13
+  80,   8,  14  ! Plane Y, wire 14
+  81,   8,  15  ! Plane Y, wire 15
+  82,   8,  16  ! Plane Y, wire 16
+  83,   8,  17  ! Plane Y, wire 17
+  84,   8,  18  ! Plane Y, wire 18
+  85,   8,  19  ! Plane Y, wire 19
+  86,   8,  20  ! Plane Y, wire 20
+  87,   8,  21  ! Plane Y, wire 21
+  88,   8,  22  ! Plane Y, wire 22
+  89,   8,  23  ! Plane Y, wire 23
+  90,   8,  24  ! Plane Y, wire 24
+  91,   8,  25  ! Plane Y, wire 25
+  92,   8,  26  ! Plane Y, wire 26
+  96,   8,  27  ! Plane Y, wire 27
+  97,   8,  28  ! Plane Y, wire 28
+  98,   8,  29  ! Plane Y, wire 29
+  99,   8,  30  ! Plane Y, wire 30
+ 100,   8,  31  ! Plane Y, wire 31
+ 101,   8,  32  ! Plane Y, wire 32
+ 102,   8,  33  ! Plane Y, wire 33
+ 103,   8,  34  ! Plane Y, wire 34
+ 104,   8,  35  ! Plane Y, wire 35
+ 105,   8,  36  ! Plane Y, wire 36
+ 106,   8,  37  ! Plane Y, wire 37
+ 107,   8,  38  ! Plane Y, wire 38
+ 108,   8,  39  ! Plane Y, wire 39
+ 112,   8,  40  ! Plane Y, wire 40
+ 113,   8,  41  ! Plane Y, wire 41
+ 114,   8,  42  ! Plane Y, wire 42
+ 115,   8,  43  ! Plane Y, wire 43
+ 116,   8,  44  ! Plane Y, wire 44
+ 117,   8,  45  ! Plane Y, wire 45
+ 118,   8,  46  ! Plane Y, wire 46
+ 119,   8,  47  ! Plane Y, wire 47
+ 120,   8,  48  ! Plane Y, wire 48
+ 121,   8,  49  ! Plane Y, wire 49
+ 122,   8,  50  ! Plane Y, wire 50
+ 123,   8,  51  ! Plane Y, wire 51
+ 124,   8,  52  ! Plane Y, wire 52
+
+SLOT=10
+REFINDEX=0
+ 127,1000,   0,   1
+  64,  11,   1  ! Plane Y', wire 1
+  65,  11,   2  ! Plane Y', wire 2
+  66,  11,   3  ! Plane Y', wire 3
+  67,  11,   4  ! Plane Y', wire 4
+  68,  11,   5  ! Plane Y', wire 5
+  69,  11,   6  ! Plane Y', wire 6
+  70,  11,   7  ! Plane Y', wire 7
+  71,  11,   8  ! Plane Y', wire 8
+  72,  11,   9  ! Plane Y', wire 9
+  73,  11,  10  ! Plane Y', wire 10
+  74,  11,  11  ! Plane Y', wire 11
+  75,  11,  12  ! Plane Y', wire 12
+  76,  11,  13  ! Plane Y', wire 13
+  80,  11,  14  ! Plane Y', wire 14
+  81,  11,  15  ! Plane Y', wire 15
+  82,  11,  16  ! Plane Y', wire 16
+  83,  11,  17  ! Plane Y', wire 17
+  84,  11,  18  ! Plane Y', wire 18
+  85,  11,  19  ! Plane Y', wire 19
+  86,  11,  20  ! Plane Y', wire 20
+  87,  11,  21  ! Plane Y', wire 21
+  88,  11,  22  ! Plane Y', wire 22
+  89,  11,  23  ! Plane Y', wire 23
+  90,  11,  24  ! Plane Y', wire 24
+  91,  11,  25  ! Plane Y', wire 25
+  92,  11,  26  ! Plane Y', wire 26
+  96,  11,  27  ! Plane Y', wire 27
+  97,  11,  28  ! Plane Y', wire 28
+  98,  11,  29  ! Plane Y', wire 29
+  99,  11,  30  ! Plane Y', wire 30
+ 100,  11,  31  ! Plane Y', wire 31
+ 101,  11,  32  ! Plane Y', wire 32
+ 102,  11,  33  ! Plane Y', wire 33
+ 103,  11,  34  ! Plane Y', wire 34
+ 104,  11,  35  ! Plane Y', wire 35
+ 105,  11,  36  ! Plane Y', wire 36
+ 106,  11,  37  ! Plane Y', wire 37
+ 107,  11,  38  ! Plane Y', wire 38
+ 108,  11,  39  ! Plane Y', wire 39
+ 112,  11,  40  ! Plane Y', wire 40
+ 113,  11,  41  ! Plane Y', wire 41
+ 114,  11,  42  ! Plane Y', wire 42
+ 115,  11,  43  ! Plane Y', wire 43
+ 116,  11,  44  ! Plane Y', wire 44
+ 117,  11,  45  ! Plane Y', wire 45
+ 118,  11,  46  ! Plane Y', wire 46
+ 119,  11,  47  ! Plane Y', wire 47
+ 120,  11,  48  ! Plane Y', wire 48
+ 121,  11,  49  ! Plane Y', wire 49
+ 122,  11,  50  ! Plane Y', wire 50
+ 123,  11,  51  ! Plane Y', wire 51
+ 124,  11,  52  ! Plane Y', wire 52
+
+
+DETECTOR=13
+
+ROC=1
+
+SLOT=8
+   0,   1,   1,   0  ! h1x01A+
+   1,   1,   2,   0  ! h1x02A+
+   2,   1,   3,   0  ! h1x03A+
+   3,   1,   4,   0  ! h1x04A+
+   4,   1,   5,   0  ! h1x05A+
+   5,   1,   6,   0  ! h1x06A+
+   6,   1,   7,   0  ! h1x07A+
+   7,   1,   8,   0  ! h1x08A+
+   8,   1,   9,   0  ! h1x09A+
+   9,   1,  10,   0  ! h1x10A+
+  10,   1,  11,   0  ! h1x11A+
+  11,   1,  12,   0  ! h1x12A+
+  12,   1,  13,   0  ! h1x13A+
+  13,   1,  14,   0  ! h1x14A+
+  14,   1,  15,   0  ! h1x15A+
+  15,   1,  16,   0  ! h1x16A+
+
+SLOT=9
+   0,   1,   1,   1  ! h1x01A-
+   1,   1,   2,   1  ! h1x02A-
+   2,   1,   3,   1  ! h1x03A-
+   3,   1,   4,   1  ! h1x04A-
+   4,   1,   5,   1  ! h1x05A-
+   5,   1,   6,   1  ! h1x06A-
+   6,   1,   7,   1  ! h1x07A-
+   7,   1,   8,   1  ! h1x08A-
+   8,   1,   9,   1  ! h1x09A-
+   9,   1,  10,   1  ! h1x10A-
+  10,   1,  11,   1  ! h1x11A-
+  11,   1,  12,   1  ! h1x12A-
+  12,   1,  13,   1  ! h1x13A-
+  13,   1,  14,   1  ! h1x14A-
+  14,   1,  15,   1  ! h1x15A-
+  15,   1,  16,   1  ! h1x16A-
+
+SLOT=10
+   0,   2,   1,   0  ! h1y01A+
+   1,   2,   2,   0  ! h1y02A+
+   2,   2,   3,   0  ! h1y03A+
+   3,   2,   4,   0  ! h1y04A+
+   4,   2,   5,   0  ! h1y05A+
+   5,   2,   6,   0  ! h1y06A+
+   6,   2,   7,   0  ! h1y07A+
+   7,   2,   8,   0  ! h1y08A+
+   8,   2,   9,   0  ! h1y09A+
+   9,   2,  10,   0  ! h1y10A+
+  10,   2,   1,   1  ! h1y01A-
+  11,   2,   2,   1  ! h1y02A-
+  12,   2,   3,   1  ! h1y03A-
+  13,   2,   4,   1  ! h1y04A-
+  14,   2,   5,   1  ! h1y05A-
+  15,   2,   6,   1  ! h1y06A-
+
+SLOT=13
+   0,   2,   7,   1  ! h1y07A-
+   1,   2,   8,   1  ! h1y08A-
+   2,   2,   9,   1  ! h1y09A-
+   3,   2,  10,   1  ! h1y10A-
+   4,   3,   1,   0  ! h2x01A+
+   5,   3,   2,   0  ! h2x02A+
+   6,   3,   3,   0  ! h2x03A+
+   7,   3,   4,   0  ! h2x04A+
+   8,   3,   5,   0  ! h2x05A+
+   9,   3,   6,   0  ! h2x06A+
+  10,   3,   7,   0  ! h2x07A+
+  11,   3,   8,   0  ! h2x08A+
+  12,   3,   9,   0  ! h2x09A+
+  13,   3,  10,   0  ! h2x10A+
+  14,   3,  11,   0  ! h2x11A+
+  15,   3,  12,   0  ! h2x12A+
+
+SLOT=14
+   0,   3,  13,   0  ! h2x13A+
+   1,   3,  14,   0  ! h2x14A+
+   2,   3,  15,   0  ! h2x15A+
+   3,   3,  16,   0  ! h2x16A+
+   4,   3,   1,   1  ! h2x01A-
+   5,   3,   2,   1  ! h2x02A-
+   6,   3,   3,   1  ! h2x03A-
+   7,   3,   4,   1  ! h2x04A-
+   8,   3,   5,   1  ! h2x05A-
+   9,   3,   6,   1  ! h2x06A-
+  10,   3,   7,   1  ! h2x07A-
+  11,   3,   8,   1  ! h2x08A-
+  12,   3,   9,   1  ! h2x09A-
+  13,   3,  10,   1  ! h2x10A-
+  14,   3,  11,   1  ! h2x11A-
+  15,   3,  12,   1  ! h2x12A-
+
+SLOT=15
+   0,   3,  13,   1  ! h2x13A-
+   1,   3,  14,   1  ! h2x14A-
+   2,   3,  15,   1  ! h2x15A-
+   3,   3,  16,   1  ! h2x16A-
+   4,   4,   1,   0  ! h2y01A+
+   5,   4,   2,   0  ! h2y02A+
+   6,   4,   3,   0  ! h2y03A+
+   7,   4,   4,   0  ! h2y04A+
+   8,   4,   5,   0  ! h2y05A+
+   9,   4,   6,   0  ! h2y06A+
+  10,   4,   7,   0  ! h2y07A+
+  11,   4,   8,   0  ! h2y08A+
+  12,   4,   9,   0  ! h2y09A+
+  13,   4,  10,   0  ! h2y10A+
+  14,   4,   1,   1  ! h2y01A-
+  15,   4,   2,   1  ! h2y02A-
+
+SLOT=16
+   0,   4,   3,   1  ! h2y03A-
+   1,   4,   4,   1  ! h2y04A-
+   2,   4,   5,   1  ! h2y05A-
+   3,   4,   6,   1  ! h2y06A-
+   4,   4,   7,   1  ! h2y07A-
+   5,   4,   8,   1  ! h2y08A-
+   6,   4,   9,   1  ! h2y09A-
+   7,   4,  10,   1  ! h2y10A-
+
+SLOT=20
+REFINDEX=0
+ 127,1000,   0,   0
+   0,   1,   1,   2  ! h1x01T+
+   1,   1,   3,   2  ! h1x03T+
+   2,   1,   5,   2  ! h1x05T+
+   3,   1,   7,   2  ! h1x07T+
+   4,   1,   2,   2  ! h1x02T+
+   5,   1,   4,   2  ! h1x04T+
+   6,   1,   6,   2  ! h1x06T+
+   7,   1,   8,   2  ! h1x08T+
+   8,   1,   9,   2  ! h1x09T+
+   9,   1,  11,   2  ! h1x11T+
+  10,   1,  13,   2  ! h1x13T+
+  11,   1,  15,   2  ! h1x15T+
+  12,   1,  10,   2  ! h1x10T+
+  13,   1,  12,   2  ! h1x12T+
+  14,   1,  14,   2  ! h1x14T+
+  15,   1,  16,   2  ! h1x16T+
+  16,   1,   1,   3  ! h1x01T-
+  17,   1,   3,   3  ! h1x03T-
+  18,   1,   5,   3  ! h1x05T-
+  19,   1,   7,   3  ! h1x07T-
+  20,   1,   2,   3  ! h1x02T-
+  21,   1,   4,   3  ! h1x04T-
+  22,   1,   6,   3  ! h1x06T-
+  23,   1,   8,   3  ! h1x08T-
+  24,   1,   9,   3  ! h1x09T-
+  25,   1,  11,   3  ! h1x11T-
+  26,   1,  13,   3  ! h1x13T-
+  27,   1,  15,   3  ! h1x15T-
+  28,   1,  10,   3  ! h1x10T-
+  29,   1,  12,   3  ! h1x12T-
+  30,   1,  14,   3  ! h1x14T-
+  31,   1,  16,   3  ! h1x16T-
+  32,   2,   1,   2  ! h1y01T+
+  33,   2,   3,   2  ! h1y03T+
+  34,   2,   5,   2  ! h1y05T+
+  35,   2,   7,   2  ! h1y07T+
+  36,   2,   2,   2  ! h1y02T+
+  37,   2,   4,   2  ! h1y04T+
+  38,   2,   6,   2  ! h1y06T+
+  39,   2,   8,   2  ! h1y08T+
+  40,   2,   9,   2  ! h1y09T+
+  44,   2,  10,   2  ! h1y10T+
+  48,   2,   1,   3  ! h1y01T-
+  49,   2,   3,   3  ! h1y03T-
+  50,   2,   5,   3  ! h1y05T-
+  51,   2,   7,   3  ! h1y07T-
+  52,   2,   2,   3  ! h1y02T-
+  53,   2,   4,   3  ! h1y04T-
+  54,   2,   6,   3  ! h1y06T-
+  55,   2,   8,   3  ! h1y08T-
+  56,   2,   9,   3  ! h1y09T-
+  60,   2,  10,   3  ! h1y10T-
+  64,   3,   1,   2  ! h2x01T+
+  65,   3,   3,   2  ! h2x03T+
+  66,   3,   5,   2  ! h2x05T+
+  67,   3,   7,   2  ! h2x07T+
+  68,   3,   2,   2  ! h2x02T+
+  69,   3,   4,   2  ! h2x04T+
+  70,   3,   6,   2  ! h2x06T+
+  71,   3,   8,   2  ! h2x08T+
+  72,   3,   9,   2  ! h2x09T+
+  73,   3,  11,   2  ! h2x11T+
+  74,   3,  13,   2  ! h2x13T+
+  75,   3,  15,   2  ! h2x15T+
+  76,   3,  10,   2  ! h2x10T+
+  77,   3,  12,   2  ! h2x12T+
+  78,   3,  14,   2  ! h2x14T+
+  79,   3,  16,   2  ! h2x16T+
+  80,   3,   1,   3  ! h2x01T-
+  81,   3,   3,   3  ! h2x03T-
+  82,   3,   5,   3  ! h2x05T-
+  83,   3,   7,   3  ! h2x07T-
+  84,   3,   2,   3  ! h2x02T-
+  85,   3,   4,   3  ! h2x04T-
+  86,   3,   6,   3  ! h2x06T-
+  87,   3,   8,   3  ! h2x08T-
+  88,   3,   9,   3  ! h2x09T-
+  89,   3,  11,   3  ! h2x11T-
+  90,   3,  13,   3  ! h2x13T-
+  91,   3,  15,   3  ! h2x15T-
+  92,   3,  10,   3  ! h2x10T-
+  93,   3,  12,   3  ! h2x12T-
+  94,   3,  14,   3  ! h2x14T-
+  95,   3,  16,   3  ! h2x16T-
+  96,   4,   1,   2  ! h2y01T+
+  97,   4,   3,   2  ! h2y03T+
+  98,   4,   5,   2  ! h2y05T+
+  99,   4,   7,   2  ! h2y07T+
+ 100,   4,   2,   2  ! h2y02T+
+ 101,   4,   4,   2  ! h2y04T+
+ 102,   4,   6,   2  ! h2y06T+
+ 103,   4,   8,   2  ! h2y08T+
+ 104,   4,   9,   2  ! h2y09T+
+ 108,   4,  10,   2  ! h2y10T+
+ 112,   4,   1,   3  ! h2y01T-
+ 113,   4,   3,   3  ! h2y03T-
+ 114,   4,   5,   3  ! h2y05T-
+ 115,   4,   7,   3  ! h2y07T-
+ 116,   4,   2,   3  ! h2y02T-
+ 117,   4,   4,   3  ! h2y04T-
+ 118,   4,   6,   3  ! h2y06T-
+ 119,   4,   8,   3  ! h2y08T-
+ 120,   4,   9,   3  ! h2y09T-
+ 124,   4,  10,   3  ! h2y10T-
+
+
+DETECTOR=14
+
+ROC=1
+
+SLOT=7
+  14,   1,   1,   0  ! hCER01
+  15,   1,   2,   0  ! hCER02
+
+
+DETECTOR=15
+
+ROC=1
+
+SLOT=3
+   0,   1,   1,   0  ! hA01+
+   1,   1,   2,   0  ! hA02+
+   2,   1,   3,   0  ! hA03+
+   3,   1,   4,   0  ! hA04+
+   4,   1,   5,   0  ! hA05+
+   5,   1,   6,   0  ! hA06+
+   6,   1,   7,   0  ! hA07+
+   7,   1,   8,   0  ! hA08+
+   8,   1,   9,   0  ! hA09+
+   9,   1,  10,   0  ! hA10+
+  10,   1,  11,   0  ! hA11+
+  11,   1,  12,   0  ! hA12+
+  12,   1,  13,   0  ! hA13+
+  13,   1,   1,   1  ! hA01-
+  14,   1,   2,   1  ! hA02-
+  15,   1,   3,   1  ! hA03-
+
+SLOT=4
+   0,   1,   4,   1  ! hA04-
+   1,   1,   5,   1  ! hA05-
+   2,   1,   6,   1  ! hA06-
+   3,   1,   7,   1  ! hA07-
+   4,   1,   8,   1  ! hA08-
+   5,   1,   9,   1  ! hA09-
+   6,   1,  10,   1  ! hA10-
+   7,   1,  11,   1  ! hA11-
+   8,   1,  12,   1  ! hA12-
+   9,   1,  13,   1  ! hA13-
+  10,   2,   1,   0  ! hB01+
+  11,   2,   2,   0  ! hB02+
+  12,   2,   3,   0  ! hB03+
+  13,   2,   4,   0  ! hB04+
+  14,   2,   5,   0  ! hB05+
+  15,   2,   6,   0  ! hB06+
+
+SLOT=5
+   0,   2,   7,   0  ! hB07+
+   1,   2,   8,   0  ! hB08+
+   2,   2,   9,   0  ! hB09+
+   3,   2,  10,   0  ! hB10+
+   4,   2,  11,   0  ! hB11+
+   5,   2,  12,   0  ! hB12+
+   6,   2,  13,   0  ! hB13+
+   7,   2,   1,   1  ! hB01-
+   8,   2,   2,   1  ! hB02-
+   9,   2,   3,   1  ! hB03-
+  10,   2,   4,   1  ! hB04-
+  11,   2,   5,   1  ! hB05-
+  12,   2,   6,   1  ! hB06-
+  13,   2,   7,   1  ! hB07-
+  14,   2,   8,   1  ! hB08-
+  15,   2,   9,   1  ! hB09-
+
+SLOT=6
+   0,   2,  10,   1  ! hB10-
+   1,   2,  11,   1  ! hB11-
+   2,   2,  12,   1  ! hB12-
+   3,   2,  13,   1  ! hB13-
+   4,   3,   1,   0  ! hC01+
+   5,   3,   2,   0  ! hC02+
+   6,   3,   3,   0  ! hC03+
+   7,   3,   4,   0  ! hC04+
+   8,   3,   5,   0  ! hC05+
+   9,   3,   6,   0  ! hC06+
+  10,   3,   7,   0  ! hC07+
+  11,   3,   8,   0  ! hC08+
+  12,   3,   9,   0  ! hC09+
+  13,   3,  10,   0  ! hC10+
+  14,   3,  11,   0  ! hC11+
+  15,   3,  12,   0  ! hC12+
+
+SLOT=7
+   0,   3,  13,   0  ! hC13+
+   1,   4,   1,   0  ! hD01+
+   2,   4,   2,   0  ! hD02+
+   3,   4,   3,   0  ! hD03+
+   4,   4,   4,   0  ! hD04+
+   5,   4,   5,   0  ! hD05+
+   6,   4,   6,   0  ! hD06+
+   7,   4,   7,   0  ! hD07+
+   8,   4,   8,   0  ! hD08+
+   9,   4,   9,   0  ! hD09+
+  10,   4,  10,   0  ! hD10+
+  11,   4,  11,   0  ! hD11+
+  12,   4,  12,   0  ! hD12+
+  13,   4,  13,   0  ! hD13+
diff --git a/MAPS/HMS/DETEC/hms_stack_spring17_current_run.map b/MAPS/HMS/DETEC/hms_stack_spring17_current_run.map
new file mode 100644
index 00000000..93cbf351
--- /dev/null
+++ b/MAPS/HMS/DETEC/hms_stack_spring17_current_run.map
@@ -0,0 +1,1544 @@
+! THMS_ID=10       ::  ADC,TDC
+! HDC_ID=11        ::  TDC
+! HSCIN_ID=13      ::  ADC+,ADC-,TDC+,TDC-
+! HCER_ID=14       ::  (TDC),ADC
+! HCAL_ID=15       ::  ADC
+
+
+DETECTOR=10
+
+ROC=1
+
+SLOT=17
+   8,   1,   1,   0  ! hASUM
+   9,   1,   2,   0  ! hBSUM
+  10,   1,   3,   0  ! hCSUM
+  11,   1,   4,   0  ! hDSUM
+  12,   1,   5,   0  ! hPSHWR
+  13,   1,   6,   0  ! hSHWR
+  14,   1,   7,   0  ! hAERSUM
+  15,   1,   8,   0  ! hCERSUM
+
+SLOT=2
+   0,   2,   1,   1  ! h1X
+   1,   2,   2,   1  ! h1Y
+   2,   2,   3,   1  ! h2X
+   3,   2,   4,   1  ! h2Y
+   4,   2,   5,   1  ! h1T
+   5,   2,   6,   1  ! h2T
+   6,   2,   7,   1  ! hT1
+   7,   2,   8,   1  ! hASUM
+   8,   2,   9,   1  ! hBSUM
+   9,   2,  10,   1  ! hCSUM
+  10,   2,  11,   1  ! hDSUM
+  11,   2,  12,   1  ! hPSHWRLO
+  12,   2,  13,   1  ! hPSHWRHI
+  13,   2,  14,   1  ! hSHWR
+  14,   2,  15,   1  ! hAERSUM
+  15,   2,  16,   1  ! hCERSUM
+
+SLOT=20
+ 127,   2,  17,   1  ! hT2
+
+ROC=3
+
+SLOT=5
+ 111,   2,  18,   1  ! hDCREF1
+
+SLOT=8
+ 127,   2,  19,   1  ! hDCREF2
+
+SLOT=10
+ 127,   2,  20,   1  ! hDCREF3
+
+SLOT=17
+ 127,   2,  21,   1  ! hDCREF4
+
+
+DETECTOR=11  ! HMS chambers
+
+ROC=3
+
+SLOT=5
+REFINDEX=0
+ 111,1000,   0,   0
+  96,   3,   1  ! Plane U, wire 1
+  97,   3,   2  ! Plane U, wire 2
+  98,   3,   3  ! Plane U, wire 3
+  99,   3,   4  ! Plane U, wire 4
+ 100,   3,   5  ! Plane U, wire 5
+ 101,   3,   6  ! Plane U, wire 6
+ 102,   3,   7  ! Plane U, wire 7
+ 103,   3,   8  ! Plane U, wire 8
+ 104,   3,   9  ! Plane U, wire 9
+ 105,   3,  10  ! Plane U, wire 10
+ 106,   3,  11  ! Plane U, wire 11
+ 107,   3,  12  ! Plane U, wire 12
+ 108,   3,  13  ! Plane U, wire 13
+ 109,   3,  14  ! Plane U, wire 14
+ 110,   1, 113  ! Plane X, wire 113
+  80,   3,  15  ! Plane U, wire 15
+  81,   3,  16  ! Plane U, wire 16
+  82,   3,  17  ! Plane U, wire 17
+  83,   3,  18  ! Plane U, wire 18
+  84,   3,  19  ! Plane U, wire 19
+  85,   3,  20  ! Plane U, wire 20
+  86,   3,  21  ! Plane U, wire 21
+  87,   3,  22  ! Plane U, wire 22
+  88,   3,  23  ! Plane U, wire 23
+  89,   3,  24  ! Plane U, wire 24
+  90,   3,  25  ! Plane U, wire 25
+  91,   3,  26  ! Plane U, wire 26
+  92,   3,  27  ! Plane U, wire 27
+  93,   3,  28  ! Plane U, wire 28
+  94,   3,  29  ! Plane U, wire 29
+  64,   3,  30  ! Plane U, wire 30
+  65,   3,  31  ! Plane U, wire 31
+  66,   3,  32  ! Plane U, wire 32
+  67,   3,  33  ! Plane U, wire 33
+  68,   3,  34  ! Plane U, wire 34
+  69,   3,  35  ! Plane U, wire 35
+  70,   3,  36  ! Plane U, wire 36
+  71,   3,  37  ! Plane U, wire 37
+  72,   3,  38  ! Plane U, wire 38
+  73,   3,  39  ! Plane U, wire 39
+  74,   3,  40  ! Plane U, wire 40
+  75,   3,  41  ! Plane U, wire 41
+  76,   3,  42  ! Plane U, wire 42
+  77,   3,  43  ! Plane U, wire 43
+  78,   3,  44  ! Plane U, wire 44
+  79,   3,  45  ! Plane U, wire 45
+  48,   3,  46  ! Plane U, wire 46
+  49,   3,  47  ! Plane U, wire 47
+  50,   3,  48  ! Plane U, wire 48
+  51,   3,  49  ! Plane U, wire 49
+  52,   3,  50  ! Plane U, wire 50
+  53,   3,  51  ! Plane U, wire 51
+  54,   3,  52  ! Plane U, wire 52
+  55,   3,  53  ! Plane U, wire 53
+  56,   3,  54  ! Plane U, wire 54
+  57,   3,  55  ! Plane U, wire 55
+  58,   3,  56  ! Plane U, wire 56
+  59,   3,  57  ! Plane U, wire 57
+  60,   3,  58  ! Plane U, wire 58
+  61,   3,  59  ! Plane U, wire 59
+  62,   3,  60  ! Plane U, wire 60
+  32,   3,  61  ! Plane U, wire 61
+  33,   3,  62  ! Plane U, wire 62
+  34,   3,  63  ! Plane U, wire 63
+  35,   3,  64  ! Plane U, wire 64
+  36,   3,  65  ! Plane U, wire 65
+  37,   3,  66  ! Plane U, wire 66
+  38,   3,  67  ! Plane U, wire 67
+  39,   3,  68  ! Plane U, wire 68
+  40,   3,  69  ! Plane U, wire 69
+  41,   3,  70  ! Plane U, wire 70
+  42,   3,  71  ! Plane U, wire 71
+  43,   3,  72  ! Plane U, wire 72
+  44,   3,  73  ! Plane U, wire 73
+  45,   3,  74  ! Plane U, wire 74
+  46,   3,  75  ! Plane U, wire 75
+  47,   3,  76  ! Plane U, wire 76
+  16,   3,  77  ! Plane U, wire 77
+  17,   3,  78  ! Plane U, wire 78
+  18,   3,  79  ! Plane U, wire 79
+  19,   3,  80  ! Plane U, wire 80
+  20,   3,  81  ! Plane U, wire 81
+  21,   3,  82  ! Plane U, wire 82
+  22,   3,  83  ! Plane U, wire 83
+  23,   3,  84  ! Plane U, wire 84
+  24,   3,  85  ! Plane U, wire 85
+  25,   3,  86  ! Plane U, wire 86
+  26,   3,  87  ! Plane U, wire 87
+  27,   3,  88  ! Plane U, wire 88
+  28,   3,  89  ! Plane U, wire 89
+  29,   3,  90  ! Plane U, wire 90
+  30,   3,  91  ! Plane U, wire 91
+   0,   3,  92  ! Plane U, wire 92
+   1,   3,  93  ! Plane U, wire 93
+   2,   3,  94  ! Plane U, wire 94
+   3,   3,  95  ! Plane U, wire 95
+   4,   3,  96  ! Plane U, wire 96
+   5,   3,  97  ! Plane U, wire 97
+   6,   3,  98  ! Plane U, wire 98
+   7,   3,  99  ! Plane U, wire 99
+   8,   3, 100  ! Plane U, wire 100
+   9,   3, 101  ! Plane U, wire 101
+  10,   3, 102  ! Plane U, wire 102
+  11,   3, 103  ! Plane U, wire 103
+  12,   3, 104  ! Plane U, wire 104
+  13,   3, 105  ! Plane U, wire 105
+  14,   3, 106  ! Plane U, wire 106
+  15,   3, 107  ! Plane U, wire 107
+
+SLOT=7
+REFINDEX=0
+  96,   4,   1  ! Plane V, wire 1
+  97,   4,   2  ! Plane V, wire 2
+  98,   4,   3  ! Plane V, wire 3
+  99,   4,   4  ! Plane V, wire 4
+ 100,   4,   5  ! Plane V, wire 5
+ 101,   4,   6  ! Plane V, wire 6
+ 102,   4,   7  ! Plane V, wire 7
+ 103,   4,   8  ! Plane V, wire 8
+ 104,   4,   9  ! Plane V, wire 9
+ 105,   4,  10  ! Plane V, wire 10
+ 106,   4,  11  ! Plane V, wire 11
+ 107,   4,  12  ! Plane V, wire 12
+ 108,   4,  13  ! Plane V, wire 13
+ 109,   4,  14  ! Plane V, wire 14
+ 110,   6, 113  ! Plane X', wire 113
+ 112,   4,  15  ! Plane V, wire 15
+ 113,   4,  16  ! Plane V, wire 16
+ 114,   4,  17  ! Plane V, wire 17
+ 115,   4,  18  ! Plane V, wire 18
+ 116,   4,  19  ! Plane V, wire 19
+ 117,   4,  20  ! Plane V, wire 20
+ 118,   4,  21  ! Plane V, wire 21
+ 119,   4,  22  ! Plane V, wire 22
+ 120,   4,  23  ! Plane V, wire 23
+ 121,   4,  24  ! Plane V, wire 24
+ 122,   4,  25  ! Plane V, wire 25
+ 123,   4,  26  ! Plane V, wire 26
+ 124,   4,  27  ! Plane V, wire 27
+ 125,   4,  28  ! Plane V, wire 28
+ 126,   4,  29  ! Plane V, wire 29
+
+SLOT=8
+REFINDEX=0
+ 127,1000,   0,   1
+   0,   4,  30  ! Plane V, wire 30
+   1,   4,  31  ! Plane V, wire 31
+   2,   4,  32  ! Plane V, wire 32
+   3,   4,  33  ! Plane V, wire 33
+   4,   4,  34  ! Plane V, wire 34
+   5,   4,  35  ! Plane V, wire 35
+   6,   4,  36  ! Plane V, wire 36
+   7,   4,  37  ! Plane V, wire 37
+   8,   4,  38  ! Plane V, wire 38
+   9,   4,  39  ! Plane V, wire 39
+  10,   4,  40  ! Plane V, wire 40
+  11,   4,  41  ! Plane V, wire 41
+  12,   4,  42  ! Plane V, wire 42
+  13,   4,  43  ! Plane V, wire 43
+  14,   4,  44  ! Plane V, wire 44
+  15,   4,  45  ! Plane V, wire 45
+  16,   4,  46  ! Plane V, wire 46
+  17,   4,  47  ! Plane V, wire 47
+  18,   4,  48  ! Plane V, wire 48
+  19,   4,  49  ! Plane V, wire 49
+  20,   4,  50  ! Plane V, wire 50
+  21,   4,  51  ! Plane V, wire 51
+  22,   4,  52  ! Plane V, wire 52
+  23,   4,  53  ! Plane V, wire 53
+  24,   4,  54  ! Plane V, wire 54
+  25,   4,  55  ! Plane V, wire 55
+  26,   4,  56  ! Plane V, wire 56
+  27,   4,  57  ! Plane V, wire 57
+  28,   4,  58  ! Plane V, wire 58
+  29,   4,  59  ! Plane V, wire 59
+  30,   4,  60  ! Plane V, wire 60
+  32,   4,  61  ! Plane V, wire 61
+  33,   4,  62  ! Plane V, wire 62
+  34,   4,  63  ! Plane V, wire 63
+  35,   4,  64  ! Plane V, wire 64
+  36,   4,  65  ! Plane V, wire 65
+  37,   4,  66  ! Plane V, wire 66
+  38,   4,  67  ! Plane V, wire 67
+  39,   4,  68  ! Plane V, wire 68
+  40,   4,  69  ! Plane V, wire 69
+  41,   4,  70  ! Plane V, wire 70
+  42,   4,  71  ! Plane V, wire 71
+  43,   4,  72  ! Plane V, wire 72
+  44,   4,  73  ! Plane V, wire 73
+  45,   4,  74  ! Plane V, wire 74
+  46,   4,  75  ! Plane V, wire 75
+  47,   4,  76  ! Plane V, wire 76
+  48,   4,  77  ! Plane V, wire 77
+  49,   4,  78  ! Plane V, wire 78
+  50,   4,  79  ! Plane V, wire 79
+  51,   4,  80  ! Plane V, wire 80
+  52,   4,  81  ! Plane V, wire 81
+  53,   4,  82  ! Plane V, wire 82
+  54,   4,  83  ! Plane V, wire 83
+  55,   4,  84  ! Plane V, wire 84
+  56,   4,  85  ! Plane V, wire 85
+  57,   4,  86  ! Plane V, wire 86
+  58,   4,  87  ! Plane V, wire 87
+  59,   4,  88  ! Plane V, wire 88
+  60,   4,  89  ! Plane V, wire 89
+  61,   4,  90  ! Plane V, wire 90
+  62,   4,  91  ! Plane V, wire 91
+
+SLOT=4
+REFINDEX=0
+  96,   4,  92  ! Plane V, wire 92
+  97,   4,  93  ! Plane V, wire 93
+  98,   4,  94  ! Plane V, wire 94
+  99,   4,  95  ! Plane V, wire 95
+ 100,   4,  96  ! Plane V, wire 96
+ 101,   4,  97  ! Plane V, wire 97
+ 102,   4,  98  ! Plane V, wire 98
+ 103,   4,  99  ! Plane V, wire 99
+ 104,   4, 100  ! Plane V, wire 100
+ 105,   4, 101  ! Plane V, wire 101
+ 106,   4, 102  ! Plane V, wire 102
+ 107,   4, 103  ! Plane V, wire 103
+ 108,   4, 104  ! Plane V, wire 104
+ 109,   4, 105  ! Plane V, wire 105
+ 110,   4, 106  ! Plane V, wire 106
+ 111,   4, 107  ! Plane V, wire 107
+  80,   1,   1  ! Plane X, wire 1
+  81,   1,   2  ! Plane X, wire 2
+  82,   1,   3  ! Plane X, wire 3
+  83,   1,   4  ! Plane X, wire 4
+  84,   1,   5  ! Plane X, wire 5
+  85,   1,   6  ! Plane X, wire 6
+  86,   1,   7  ! Plane X, wire 7
+  87,   1,   8  ! Plane X, wire 8
+  88,   1,   9  ! Plane X, wire 9
+  89,   1,  10  ! Plane X, wire 10
+  90,   1,  11  ! Plane X, wire 11
+  91,   1,  12  ! Plane X, wire 12
+  92,   1,  13  ! Plane X, wire 13
+  93,   1,  14  ! Plane X, wire 14
+  94,   1,  15  ! Plane X, wire 15
+  95,   1,  16  ! Plane X, wire 16
+  64,   1,  17  ! Plane X, wire 17
+  65,   1,  18  ! Plane X, wire 18
+  66,   1,  19  ! Plane X, wire 19
+  67,   1,  20  ! Plane X, wire 20
+  68,   1,  21  ! Plane X, wire 21
+  69,   1,  22  ! Plane X, wire 22
+  70,   1,  23  ! Plane X, wire 23
+  71,   1,  24  ! Plane X, wire 24
+  72,   1,  25  ! Plane X, wire 25
+  73,   1,  26  ! Plane X, wire 26
+  74,   1,  27  ! Plane X, wire 27
+  75,   1,  28  ! Plane X, wire 28
+  76,   1,  29  ! Plane X, wire 29
+  77,   1,  30  ! Plane X, wire 30
+  78,   1,  31  ! Plane X, wire 31
+  79,   1,  32  ! Plane X, wire 32
+  48,   1,  33  ! Plane X, wire 33
+  49,   1,  34  ! Plane X, wire 34
+  50,   1,  35  ! Plane X, wire 35
+  51,   1,  36  ! Plane X, wire 36
+  52,   1,  37  ! Plane X, wire 37
+  53,   1,  38  ! Plane X, wire 38
+  54,   1,  39  ! Plane X, wire 39
+  55,   1,  40  ! Plane X, wire 40
+  56,   1,  41  ! Plane X, wire 41
+  57,   1,  42  ! Plane X, wire 42
+  58,   1,  43  ! Plane X, wire 43
+  59,   1,  44  ! Plane X, wire 44
+  60,   1,  45  ! Plane X, wire 45
+  61,   1,  46  ! Plane X, wire 46
+  62,   1,  47  ! Plane X, wire 47
+  63,   1,  48  ! Plane X, wire 48
+  32,   1,  49  ! Plane X, wire 49
+  33,   1,  50  ! Plane X, wire 50
+  34,   1,  51  ! Plane X, wire 51
+  35,   1,  52  ! Plane X, wire 52
+  36,   1,  53  ! Plane X, wire 53
+  37,   1,  54  ! Plane X, wire 54
+  38,   1,  55  ! Plane X, wire 55
+  39,   1,  56  ! Plane X, wire 56
+  40,   1,  57  ! Plane X, wire 57
+  41,   1,  58  ! Plane X, wire 58
+  42,   1,  59  ! Plane X, wire 59
+  43,   1,  60  ! Plane X, wire 60
+  44,   1,  61  ! Plane X, wire 61
+  45,   1,  62  ! Plane X, wire 62
+  46,   1,  63  ! Plane X, wire 63
+  47,   1,  64  ! Plane X, wire 64
+  16,   1,  65  ! Plane X, wire 65
+  17,   1,  66  ! Plane X, wire 66
+  18,   1,  67  ! Plane X, wire 67
+  19,   1,  68  ! Plane X, wire 68
+  20,   1,  69  ! Plane X, wire 69
+  21,   1,  70  ! Plane X, wire 70
+  22,   1,  71  ! Plane X, wire 71
+  23,   1,  72  ! Plane X, wire 72
+  24,   1,  73  ! Plane X, wire 73
+  25,   1,  74  ! Plane X, wire 74
+  26,   1,  75  ! Plane X, wire 75
+  27,   1,  76  ! Plane X, wire 76
+  28,   1,  77  ! Plane X, wire 77
+  29,   1,  78  ! Plane X, wire 78
+  30,   1,  79  ! Plane X, wire 79
+  31,   1,  80  ! Plane X, wire 80
+   0,   1,  81  ! Plane X, wire 81
+   1,   1,  82  ! Plane X, wire 82
+   2,   1,  83  ! Plane X, wire 83
+   3,   1,  84  ! Plane X, wire 84
+   4,   1,  85  ! Plane X, wire 85
+   5,   1,  86  ! Plane X, wire 86
+   6,   1,  87  ! Plane X, wire 87
+   7,   1,  88  ! Plane X, wire 88
+   8,   1,  89  ! Plane X, wire 89
+   9,   1,  90  ! Plane X, wire 90
+  10,   1,  91  ! Plane X, wire 91
+  11,   1,  92  ! Plane X, wire 92
+  12,   1,  93  ! Plane X, wire 93
+  13,   1,  94  ! Plane X, wire 94
+  14,   1,  95  ! Plane X, wire 95
+  15,   1,  96  ! Plane X, wire 96
+
+SLOT=7
+REFINDEX=0
+  80,   1,  97  ! Plane X, wire 97
+  81,   1,  98  ! Plane X, wire 98
+  82,   1,  99  ! Plane X, wire 99
+  83,   1, 100  ! Plane X, wire 100
+  84,   1, 101  ! Plane X, wire 101
+  85,   1, 102  ! Plane X, wire 102
+  86,   1, 103  ! Plane X, wire 103
+  87,   1, 104  ! Plane X, wire 104
+  88,   1, 105  ! Plane X, wire 105
+  89,   1, 106  ! Plane X, wire 106
+  90,   1, 107  ! Plane X, wire 107
+  91,   1, 108  ! Plane X, wire 108
+  92,   1, 109  ! Plane X, wire 109
+  93,   1, 110  ! Plane X, wire 110
+  94,   1, 111  ! Plane X, wire 111
+  95,   1, 112  ! Plane X, wire 112
+
+SLOT=4
+REFINDEX=0
+ 112,   6,   1  ! Plane X', wire 1
+ 113,   6,   2  ! Plane X', wire 2
+ 114,   6,   3  ! Plane X', wire 3
+ 115,   6,   4  ! Plane X', wire 4
+ 116,   6,   5  ! Plane X', wire 5
+ 117,   6,   6  ! Plane X', wire 6
+ 118,   6,   7  ! Plane X', wire 7
+ 119,   6,   8  ! Plane X', wire 8
+ 120,   6,   9  ! Plane X', wire 9
+ 121,   6,  10  ! Plane X', wire 10
+ 122,   6,  11  ! Plane X', wire 11
+ 123,   6,  12  ! Plane X', wire 12
+ 124,   6,  13  ! Plane X', wire 13
+ 125,   6,  14  ! Plane X', wire 14
+ 126,   6,  15  ! Plane X', wire 15
+ 127,   6,  16  ! Plane X', wire 16
+
+SLOT=5
+REFINDEX=0
+ 112,   6,  17  ! Plane X', wire 17
+ 113,   6,  18  ! Plane X', wire 18
+ 114,   6,  19  ! Plane X', wire 19
+ 115,   6,  20  ! Plane X', wire 20
+ 116,   6,  21  ! Plane X', wire 21
+ 117,   6,  22  ! Plane X', wire 22
+ 118,   6,  23  ! Plane X', wire 23
+ 119,   6,  24  ! Plane X', wire 24
+ 120,   6,  25  ! Plane X', wire 25
+ 121,   6,  26  ! Plane X', wire 26
+ 122,   6,  27  ! Plane X', wire 27
+ 123,   6,  28  ! Plane X', wire 28
+ 124,   6,  29  ! Plane X', wire 29
+ 125,   6,  30  ! Plane X', wire 30
+ 126,   6,  31  ! Plane X', wire 31
+ 127,   6,  32  ! Plane X', wire 32
+
+SLOT=7
+REFINDEX=0
+   0,   6,  33  ! Plane X', wire 33
+   1,   6,  34  ! Plane X', wire 34
+   2,   6,  35  ! Plane X', wire 35
+   3,   6,  36  ! Plane X', wire 36
+   4,   6,  37  ! Plane X', wire 37
+   5,   6,  38  ! Plane X', wire 38
+   6,   6,  39  ! Plane X', wire 39
+   7,   6,  40  ! Plane X', wire 40
+   8,   6,  41  ! Plane X', wire 41
+   9,   6,  42  ! Plane X', wire 42
+  10,   6,  43  ! Plane X', wire 43
+  11,   6,  44  ! Plane X', wire 44
+  12,   6,  45  ! Plane X', wire 45
+  13,   6,  46  ! Plane X', wire 46
+  14,   6,  47  ! Plane X', wire 47
+  15,   6,  48  ! Plane X', wire 48
+  16,   6,  49  ! Plane X', wire 49
+  17,   6,  50  ! Plane X', wire 50
+  18,   6,  51  ! Plane X', wire 51
+  19,   6,  52  ! Plane X', wire 52
+  20,   6,  53  ! Plane X', wire 53
+  21,   6,  54  ! Plane X', wire 54
+  22,   6,  55  ! Plane X', wire 55
+  23,   6,  56  ! Plane X', wire 56
+  24,   6,  57  ! Plane X', wire 57
+  25,   6,  58  ! Plane X', wire 58
+  26,   6,  59  ! Plane X', wire 59
+  27,   6,  60  ! Plane X', wire 60
+  28,   6,  61  ! Plane X', wire 61
+  29,   6,  62  ! Plane X', wire 62
+  30,   6,  63  ! Plane X', wire 63
+  31,   6,  64  ! Plane X', wire 64
+  32,   6,  65  ! Plane X', wire 65
+  33,   6,  66  ! Plane X', wire 66
+  34,   6,  67  ! Plane X', wire 67
+  35,   6,  68  ! Plane X', wire 68
+  36,   6,  69  ! Plane X', wire 69
+  37,   6,  70  ! Plane X', wire 70
+  38,   6,  71  ! Plane X', wire 71
+  39,   6,  72  ! Plane X', wire 72
+  40,   6,  73  ! Plane X', wire 73
+  41,   6,  74  ! Plane X', wire 74
+  42,   6,  75  ! Plane X', wire 75
+  43,   6,  76  ! Plane X', wire 76
+  44,   6,  77  ! Plane X', wire 77
+  45,   6,  78  ! Plane X', wire 78
+  46,   6,  79  ! Plane X', wire 79
+  47,   6,  80  ! Plane X', wire 80
+  48,   6,  81  ! Plane X', wire 81
+  49,   6,  82  ! Plane X', wire 82
+  50,   6,  83  ! Plane X', wire 83
+  51,   6,  84  ! Plane X', wire 84
+  52,   6,  85  ! Plane X', wire 85
+  53,   6,  86  ! Plane X', wire 86
+  54,   6,  87  ! Plane X', wire 87
+  55,   6,  88  ! Plane X', wire 88
+  56,   6,  89  ! Plane X', wire 89
+  57,   6,  90  ! Plane X', wire 90
+  58,   6,  91  ! Plane X', wire 91
+  59,   6,  92  ! Plane X', wire 92
+  60,   6,  93  ! Plane X', wire 93
+  61,   6,  94  ! Plane X', wire 94
+  62,   6,  95  ! Plane X', wire 95
+  63,   6,  96  ! Plane X', wire 96
+  64,   6,  97  ! Plane X', wire 97
+  65,   6,  98  ! Plane X', wire 98
+  66,   6,  99  ! Plane X', wire 99
+  67,   6, 100  ! Plane X', wire 100
+  68,   6, 101  ! Plane X', wire 101
+  69,   6, 102  ! Plane X', wire 102
+  70,   6, 103  ! Plane X', wire 103
+  71,   6, 104  ! Plane X', wire 104
+  72,   6, 105  ! Plane X', wire 105
+  73,   6, 106  ! Plane X', wire 106
+  74,   6, 107  ! Plane X', wire 107
+  75,   6, 108  ! Plane X', wire 108
+  76,   6, 109  ! Plane X', wire 109
+  77,   6, 110  ! Plane X', wire 110
+  78,   6, 111  ! Plane X', wire 111
+  79,   6, 112  ! Plane X', wire 112
+
+SLOT=8
+REFINDEX=0
+  64,   2,   1  ! Plane Y, wire 1
+  65,   2,   2  ! Plane Y, wire 2
+  66,   2,   3  ! Plane Y, wire 3
+  67,   2,   4  ! Plane Y, wire 4
+  68,   2,   5  ! Plane Y, wire 5
+  69,   2,   6  ! Plane Y, wire 6
+  70,   2,   7  ! Plane Y, wire 7
+  71,   2,   8  ! Plane Y, wire 8
+  72,   2,   9  ! Plane Y, wire 9
+  73,   2,  10  ! Plane Y, wire 10
+  74,   2,  11  ! Plane Y, wire 11
+  75,   2,  12  ! Plane Y, wire 12
+  76,   2,  13  ! Plane Y, wire 13
+  80,   2,  14  ! Plane Y, wire 14
+  81,   2,  15  ! Plane Y, wire 15
+  82,   2,  16  ! Plane Y, wire 16
+  83,   2,  17  ! Plane Y, wire 17
+  84,   2,  18  ! Plane Y, wire 18
+  85,   2,  19  ! Plane Y, wire 19
+  86,   2,  20  ! Plane Y, wire 20
+  87,   2,  21  ! Plane Y, wire 21
+  88,   2,  22  ! Plane Y, wire 22
+  89,   2,  23  ! Plane Y, wire 23
+  90,   2,  24  ! Plane Y, wire 24
+  91,   2,  25  ! Plane Y, wire 25
+  92,   2,  26  ! Plane Y, wire 26
+  96,   2,  27  ! Plane Y, wire 27
+  97,   2,  28  ! Plane Y, wire 28
+  98,   2,  29  ! Plane Y, wire 29
+  99,   2,  30  ! Plane Y, wire 30
+ 100,   2,  31  ! Plane Y, wire 31
+ 101,   2,  32  ! Plane Y, wire 32
+ 102,   2,  33  ! Plane Y, wire 33
+ 103,   2,  34  ! Plane Y, wire 34
+ 104,   2,  35  ! Plane Y, wire 35
+ 105,   2,  36  ! Plane Y, wire 36
+ 106,   2,  37  ! Plane Y, wire 37
+ 107,   2,  38  ! Plane Y, wire 38
+ 108,   2,  39  ! Plane Y, wire 39
+ 112,   2,  40  ! Plane Y, wire 40
+ 113,   2,  41  ! Plane Y, wire 41
+ 114,   2,  42  ! Plane Y, wire 42
+ 115,   2,  43  ! Plane Y, wire 43
+ 116,   2,  44  ! Plane Y, wire 44
+ 117,   2,  45  ! Plane Y, wire 45
+ 118,   2,  46  ! Plane Y, wire 46
+ 119,   2,  47  ! Plane Y, wire 47
+ 120,   2,  48  ! Plane Y, wire 48
+ 121,   2,  49  ! Plane Y, wire 49
+ 122,   2,  50  ! Plane Y, wire 50
+ 123,   2,  51  ! Plane Y, wire 51
+ 124,   2,  52  ! Plane Y, wire 52
+
+SLOT=10
+REFINDEX=0
+ 127,1000,   0,   2
+   0,   5,   1  ! Plane Y', wire 1
+   1,   5,   2  ! Plane Y', wire 2
+   2,   5,   3  ! Plane Y', wire 3
+   3,   5,   4  ! Plane Y', wire 4
+   4,   5,   5  ! Plane Y', wire 5
+   5,   5,   6  ! Plane Y', wire 6
+   6,   5,   7  ! Plane Y', wire 7
+   7,   5,   8  ! Plane Y', wire 8
+   8,   5,   9  ! Plane Y', wire 9
+   9,   5,  10  ! Plane Y', wire 10
+  10,   5,  11  ! Plane Y', wire 11
+  11,   5,  12  ! Plane Y', wire 12
+  12,   5,  13  ! Plane Y', wire 13
+  16,   5,  14  ! Plane Y', wire 14
+  17,   5,  15  ! Plane Y', wire 15
+  18,   5,  16  ! Plane Y', wire 16
+  19,   5,  17  ! Plane Y', wire 17
+  20,   5,  18  ! Plane Y', wire 18
+  21,   5,  19  ! Plane Y', wire 19
+  22,   5,  20  ! Plane Y', wire 20
+  23,   5,  21  ! Plane Y', wire 21
+  24,   5,  22  ! Plane Y', wire 22
+  25,   5,  23  ! Plane Y', wire 23
+  26,   5,  24  ! Plane Y', wire 24
+  27,   5,  25  ! Plane Y', wire 25
+  28,   5,  26  ! Plane Y', wire 26
+  32,   5,  27  ! Plane Y', wire 27
+  33,   5,  28  ! Plane Y', wire 28
+  34,   5,  29  ! Plane Y', wire 29
+  35,   5,  30  ! Plane Y', wire 30
+  36,   5,  31  ! Plane Y', wire 31
+  37,   5,  32  ! Plane Y', wire 32
+  38,   5,  33  ! Plane Y', wire 33
+  39,   5,  34  ! Plane Y', wire 34
+  40,   5,  35  ! Plane Y', wire 35
+  41,   5,  36  ! Plane Y', wire 36
+  42,   5,  37  ! Plane Y', wire 37
+  43,   5,  38  ! Plane Y', wire 38
+  44,   5,  39  ! Plane Y', wire 39
+  48,   5,  40  ! Plane Y', wire 40
+  49,   5,  41  ! Plane Y', wire 41
+  50,   5,  42  ! Plane Y', wire 42
+  51,   5,  43  ! Plane Y', wire 43
+  52,   5,  44  ! Plane Y', wire 44
+  53,   5,  45  ! Plane Y', wire 45
+  54,   5,  46  ! Plane Y', wire 46
+  55,   5,  47  ! Plane Y', wire 47
+  56,   5,  48  ! Plane Y', wire 48
+  57,   5,  49  ! Plane Y', wire 49
+  58,   5,  50  ! Plane Y', wire 50
+  59,   5,  51  ! Plane Y', wire 51
+  60,   5,  52  ! Plane Y', wire 52
+
+SLOT=16
+REFINDEX=0
+  96,   9,   1  ! Plane U, wire 1
+  97,   9,   2  ! Plane U, wire 2
+  98,   9,   3  ! Plane U, wire 3
+  99,   9,   4  ! Plane U, wire 4
+ 100,   9,   5  ! Plane U, wire 5
+ 101,   9,   6  ! Plane U, wire 6
+ 102,   9,   7  ! Plane U, wire 7
+ 103,   9,   8  ! Plane U, wire 8
+ 104,   9,   9  ! Plane U, wire 9
+ 105,   9,  10  ! Plane U, wire 10
+ 106,   9,  11  ! Plane U, wire 11
+ 107,   9,  12  ! Plane U, wire 12
+ 108,   9,  13  ! Plane U, wire 13
+ 109,   9,  14  ! Plane U, wire 14
+ 110,   7, 113  ! Plane X, wire 113
+ 112,   9,  15  ! Plane U, wire 15
+ 113,   9,  16  ! Plane U, wire 16
+ 114,   9,  17  ! Plane U, wire 17
+ 115,   9,  18  ! Plane U, wire 18
+ 116,   9,  19  ! Plane U, wire 19
+ 117,   9,  20  ! Plane U, wire 20
+ 118,   9,  21  ! Plane U, wire 21
+ 119,   9,  22  ! Plane U, wire 22
+ 120,   9,  23  ! Plane U, wire 23
+ 121,   9,  24  ! Plane U, wire 24
+ 122,   9,  25  ! Plane U, wire 25
+ 123,   9,  26  ! Plane U, wire 26
+ 124,   9,  27  ! Plane U, wire 27
+ 125,   9,  28  ! Plane U, wire 28
+ 126,   9,  29  ! Plane U, wire 29
+
+SLOT=14
+REFINDEX=0
+   0,   9,  30  ! Plane U, wire 30
+   1,   9,  31  ! Plane U, wire 31
+   2,   9,  32  ! Plane U, wire 32
+   3,   9,  33  ! Plane U, wire 33
+   4,   9,  34  ! Plane U, wire 34
+   5,   9,  35  ! Plane U, wire 35
+   6,   9,  36  ! Plane U, wire 36
+   7,   9,  37  ! Plane U, wire 37
+   8,   9,  38  ! Plane U, wire 38
+   9,   9,  39  ! Plane U, wire 39
+  10,   9,  40  ! Plane U, wire 40
+  11,   9,  41  ! Plane U, wire 41
+  12,   9,  42  ! Plane U, wire 42
+  13,   9,  43  ! Plane U, wire 43
+  14,   9,  44  ! Plane U, wire 44
+  15,   9,  45  ! Plane U, wire 45
+  32,   9,  46  ! Plane U, wire 46
+  33,   9,  47  ! Plane U, wire 47
+  34,   9,  48  ! Plane U, wire 48
+  35,   9,  49  ! Plane U, wire 49
+  36,   9,  50  ! Plane U, wire 50
+  37,   9,  51  ! Plane U, wire 51
+  38,   9,  52  ! Plane U, wire 52
+  39,   9,  53  ! Plane U, wire 53
+  40,   9,  54  ! Plane U, wire 54
+  41,   9,  55  ! Plane U, wire 55
+  42,   9,  56  ! Plane U, wire 56
+  43,   9,  57  ! Plane U, wire 57
+  44,   9,  58  ! Plane U, wire 58
+  45,   9,  59  ! Plane U, wire 59
+  46,   9,  60  ! Plane U, wire 60
+  48,   9,  61  ! Plane U, wire 61
+  49,   9,  62  ! Plane U, wire 62
+  50,   9,  63  ! Plane U, wire 63
+  51,   9,  64  ! Plane U, wire 64
+  52,   9,  65  ! Plane U, wire 65
+  53,   9,  66  ! Plane U, wire 66
+  54,   9,  67  ! Plane U, wire 67
+  55,   9,  68  ! Plane U, wire 68
+  56,   9,  69  ! Plane U, wire 69
+  57,   9,  70  ! Plane U, wire 70
+  58,   9,  71  ! Plane U, wire 71
+  59,   9,  72  ! Plane U, wire 72
+  60,   9,  73  ! Plane U, wire 73
+  61,   9,  74  ! Plane U, wire 74
+  62,   9,  75  ! Plane U, wire 75
+  63,   9,  76  ! Plane U, wire 76
+  64,   9,  77  ! Plane U, wire 77
+  65,   9,  78  ! Plane U, wire 78
+  66,   9,  79  ! Plane U, wire 79
+  67,   9,  80  ! Plane U, wire 80
+  68,   9,  81  ! Plane U, wire 81
+  69,   9,  82  ! Plane U, wire 82
+  70,   9,  83  ! Plane U, wire 83
+  71,   9,  84  ! Plane U, wire 84
+  72,   9,  85  ! Plane U, wire 85
+  73,   9,  86  ! Plane U, wire 86
+  74,   9,  87  ! Plane U, wire 87
+  75,   9,  88  ! Plane U, wire 88
+  76,   9,  89  ! Plane U, wire 89
+  77,   9,  90  ! Plane U, wire 90
+  78,   9,  91  ! Plane U, wire 91
+  80,   9,  92  ! Plane U, wire 92
+  81,   9,  93  ! Plane U, wire 93
+  82,   9,  94  ! Plane U, wire 94
+  83,   9,  95  ! Plane U, wire 95
+  84,   9,  96  ! Plane U, wire 96
+  85,   9,  97  ! Plane U, wire 97
+  86,   9,  98  ! Plane U, wire 98
+  87,   9,  99  ! Plane U, wire 99
+  88,   9, 100  ! Plane U, wire 100
+  89,   9, 101  ! Plane U, wire 101
+  90,   9, 102  ! Plane U, wire 102
+  91,   9, 103  ! Plane U, wire 103
+  92,   9, 104  ! Plane U, wire 104
+  93,   9, 105  ! Plane U, wire 105
+  94,   9, 106  ! Plane U, wire 106
+  95,   9, 107  ! Plane U, wire 107
+
+SLOT=16
+REFINDEX=0
+  80,  10,   1  ! Plane V, wire 1
+  81,  10,   2  ! Plane V, wire 2
+  82,  10,   3  ! Plane V, wire 3
+  83,  10,   4  ! Plane V, wire 4
+  84,  10,   5  ! Plane V, wire 5
+  85,  10,   6  ! Plane V, wire 6
+  86,  10,   7  ! Plane V, wire 7
+  87,  10,   8  ! Plane V, wire 8
+  88,  10,   9  ! Plane V, wire 9
+  89,  10,  10  ! Plane V, wire 10
+  90,  10,  11  ! Plane V, wire 11
+  91,  10,  12  ! Plane V, wire 12
+  92,  10,  13  ! Plane V, wire 13
+  93,  10,  14  ! Plane V, wire 14
+  94,  12, 113  ! Plane X', wire 113
+
+SLOT=14
+REFINDEX=0
+  96,  10,  15  ! Plane V, wire 15
+  97,  10,  16  ! Plane V, wire 16
+  98,  10,  17  ! Plane V, wire 17
+  99,  10,  18  ! Plane V, wire 18
+ 100,  10,  19  ! Plane V, wire 19
+ 101,  10,  20  ! Plane V, wire 20
+ 102,  10,  21  ! Plane V, wire 21
+ 103,  10,  22  ! Plane V, wire 22
+ 104,  10,  23  ! Plane V, wire 23
+ 105,  10,  24  ! Plane V, wire 24
+ 106,  10,  25  ! Plane V, wire 25
+ 107,  10,  26  ! Plane V, wire 26
+ 108,  10,  27  ! Plane V, wire 27
+ 109,  10,  28  ! Plane V, wire 28
+ 110,  10,  29  ! Plane V, wire 29
+ 112,  10,  30  ! Plane V, wire 30
+ 113,  10,  31  ! Plane V, wire 31
+ 114,  10,  32  ! Plane V, wire 32
+ 115,  10,  33  ! Plane V, wire 33
+ 116,  10,  34  ! Plane V, wire 34
+ 117,  10,  35  ! Plane V, wire 35
+ 118,  10,  36  ! Plane V, wire 36
+ 119,  10,  37  ! Plane V, wire 37
+ 120,  10,  38  ! Plane V, wire 38
+ 121,  10,  39  ! Plane V, wire 39
+ 122,  10,  40  ! Plane V, wire 40
+ 123,  10,  41  ! Plane V, wire 41
+ 124,  10,  42  ! Plane V, wire 42
+ 125,  10,  43  ! Plane V, wire 43
+ 126,  10,  44  ! Plane V, wire 44
+ 127,  10,  45  ! Plane V, wire 45
+
+SLOT=17
+REFINDEX=0
+ 127,1000,   0,   3
+   0,  10,  46  ! Plane V, wire 46
+   1,  10,  47  ! Plane V, wire 47
+   2,  10,  48  ! Plane V, wire 48
+   3,  10,  49  ! Plane V, wire 49
+   4,  10,  50  ! Plane V, wire 50
+   5,  10,  51  ! Plane V, wire 51
+   6,  10,  52  ! Plane V, wire 52
+   7,  10,  53  ! Plane V, wire 53
+   8,  10,  54  ! Plane V, wire 54
+   9,  10,  55  ! Plane V, wire 55
+  10,  10,  56  ! Plane V, wire 56
+  11,  10,  57  ! Plane V, wire 57
+  12,  10,  58  ! Plane V, wire 58
+  13,  10,  59  ! Plane V, wire 59
+  14,  10,  60  ! Plane V, wire 60
+  16,  10,  61  ! Plane V, wire 61
+  17,  10,  62  ! Plane V, wire 62
+  18,  10,  63  ! Plane V, wire 63
+  19,  10,  64  ! Plane V, wire 64
+  20,  10,  65  ! Plane V, wire 65
+  21,  10,  66  ! Plane V, wire 66
+  22,  10,  67  ! Plane V, wire 67
+  23,  10,  68  ! Plane V, wire 68
+  24,  10,  69  ! Plane V, wire 69
+  25,  10,  70  ! Plane V, wire 70
+  26,  10,  71  ! Plane V, wire 71
+  27,  10,  72  ! Plane V, wire 72
+  28,  10,  73  ! Plane V, wire 73
+  29,  10,  74  ! Plane V, wire 74
+  30,  10,  75  ! Plane V, wire 75
+  31,  10,  76  ! Plane V, wire 76
+  32,  10,  77  ! Plane V, wire 77
+  33,  10,  78  ! Plane V, wire 78
+  34,  10,  79  ! Plane V, wire 79
+  35,  10,  80  ! Plane V, wire 80
+  36,  10,  81  ! Plane V, wire 81
+  37,  10,  82  ! Plane V, wire 82
+  38,  10,  83  ! Plane V, wire 83
+  39,  10,  84  ! Plane V, wire 84
+  40,  10,  85  ! Plane V, wire 85
+  41,  10,  86  ! Plane V, wire 86
+  42,  10,  87  ! Plane V, wire 87
+  43,  10,  88  ! Plane V, wire 88
+  44,  10,  89  ! Plane V, wire 89
+  45,  10,  90  ! Plane V, wire 90
+  46,  10,  91  ! Plane V, wire 91
+  48,  10,  92  ! Plane V, wire 92
+  49,  10,  93  ! Plane V, wire 93
+  50,  10,  94  ! Plane V, wire 94
+  51,  10,  95  ! Plane V, wire 95
+  52,  10,  96  ! Plane V, wire 96
+  53,  10,  97  ! Plane V, wire 97
+  54,  10,  98  ! Plane V, wire 98
+  55,  10,  99  ! Plane V, wire 99
+  56,  10, 100  ! Plane V, wire 100
+  57,  10, 101  ! Plane V, wire 101
+  58,  10, 102  ! Plane V, wire 102
+  59,  10, 103  ! Plane V, wire 103
+  60,  10, 104  ! Plane V, wire 104
+  61,  10, 105  ! Plane V, wire 105
+  62,  10, 106  ! Plane V, wire 106
+  63,  10, 107  ! Plane V, wire 107
+
+SLOT=13
+REFINDEX=0
+   0,   7,   1  ! Plane X, wire 1
+   1,   7,   2  ! Plane X, wire 2
+   2,   7,   3  ! Plane X, wire 3
+   3,   7,   4  ! Plane X, wire 4
+   4,   7,   5  ! Plane X, wire 5
+   5,   7,   6  ! Plane X, wire 6
+   6,   7,   7  ! Plane X, wire 7
+   7,   7,   8  ! Plane X, wire 8
+   8,   7,   9  ! Plane X, wire 9
+   9,   7,  10  ! Plane X, wire 10
+  10,   7,  11  ! Plane X, wire 11
+  11,   7,  12  ! Plane X, wire 12
+  12,   7,  13  ! Plane X, wire 13
+  13,   7,  14  ! Plane X, wire 14
+  14,   7,  15  ! Plane X, wire 15
+  15,   7,  16  ! Plane X, wire 16
+  16,   7,  17  ! Plane X, wire 17
+  17,   7,  18  ! Plane X, wire 18
+  18,   7,  19  ! Plane X, wire 19
+  19,   7,  20  ! Plane X, wire 20
+  20,   7,  21  ! Plane X, wire 21
+  21,   7,  22  ! Plane X, wire 22
+  22,   7,  23  ! Plane X, wire 23
+  23,   7,  24  ! Plane X, wire 24
+  24,   7,  25  ! Plane X, wire 25
+  25,   7,  26  ! Plane X, wire 26
+  26,   7,  27  ! Plane X, wire 27
+  27,   7,  28  ! Plane X, wire 28
+  28,   7,  29  ! Plane X, wire 29
+  29,   7,  30  ! Plane X, wire 30
+  30,   7,  31  ! Plane X, wire 31
+  31,   7,  32  ! Plane X, wire 32
+  32,   7,  33  ! Plane X, wire 33
+  33,   7,  34  ! Plane X, wire 34
+  34,   7,  35  ! Plane X, wire 35
+  35,   7,  36  ! Plane X, wire 36
+  36,   7,  37  ! Plane X, wire 37
+  37,   7,  38  ! Plane X, wire 38
+  38,   7,  39  ! Plane X, wire 39
+  39,   7,  40  ! Plane X, wire 40
+  40,   7,  41  ! Plane X, wire 41
+  41,   7,  42  ! Plane X, wire 42
+  42,   7,  43  ! Plane X, wire 43
+  43,   7,  44  ! Plane X, wire 44
+  44,   7,  45  ! Plane X, wire 45
+  45,   7,  46  ! Plane X, wire 46
+  46,   7,  47  ! Plane X, wire 47
+  47,   7,  48  ! Plane X, wire 48
+  48,   7,  49  ! Plane X, wire 49
+  49,   7,  50  ! Plane X, wire 50
+  50,   7,  51  ! Plane X, wire 51
+  51,   7,  52  ! Plane X, wire 52
+  52,   7,  53  ! Plane X, wire 53
+  53,   7,  54  ! Plane X, wire 54
+  54,   7,  55  ! Plane X, wire 55
+  55,   7,  56  ! Plane X, wire 56
+  56,   7,  57  ! Plane X, wire 57
+  57,   7,  58  ! Plane X, wire 58
+  58,   7,  59  ! Plane X, wire 59
+  59,   7,  60  ! Plane X, wire 60
+  60,   7,  61  ! Plane X, wire 61
+  61,   7,  62  ! Plane X, wire 62
+  62,   7,  63  ! Plane X, wire 63
+  63,   7,  64  ! Plane X, wire 64
+  64,   7,  65  ! Plane X, wire 65
+  65,   7,  66  ! Plane X, wire 66
+  66,   7,  67  ! Plane X, wire 67
+  67,   7,  68  ! Plane X, wire 68
+  68,   7,  69  ! Plane X, wire 69
+  69,   7,  70  ! Plane X, wire 70
+  70,   7,  71  ! Plane X, wire 71
+  71,   7,  72  ! Plane X, wire 72
+  72,   7,  73  ! Plane X, wire 73
+  73,   7,  74  ! Plane X, wire 74
+  74,   7,  75  ! Plane X, wire 75
+  75,   7,  76  ! Plane X, wire 76
+  76,   7,  77  ! Plane X, wire 77
+  77,   7,  78  ! Plane X, wire 78
+  78,   7,  79  ! Plane X, wire 79
+  79,   7,  80  ! Plane X, wire 80
+  80,   7,  81  ! Plane X, wire 81
+  81,   7,  82  ! Plane X, wire 82
+  82,   7,  83  ! Plane X, wire 83
+  83,   7,  84  ! Plane X, wire 84
+  84,   7,  85  ! Plane X, wire 85
+  85,   7,  86  ! Plane X, wire 86
+  86,   7,  87  ! Plane X, wire 87
+  87,   7,  88  ! Plane X, wire 88
+  88,   7,  89  ! Plane X, wire 89
+  89,   7,  90  ! Plane X, wire 90
+  90,   7,  91  ! Plane X, wire 91
+  91,   7,  92  ! Plane X, wire 92
+  92,   7,  93  ! Plane X, wire 93
+  93,   7,  94  ! Plane X, wire 94
+  94,   7,  95  ! Plane X, wire 95
+  95,   7,  96  ! Plane X, wire 96
+  96,   7,  97  ! Plane X, wire 97
+  97,   7,  98  ! Plane X, wire 98
+  98,   7,  99  ! Plane X, wire 99
+  99,   7, 100  ! Plane X, wire 100
+ 100,   7, 101  ! Plane X, wire 101
+ 101,   7, 102  ! Plane X, wire 102
+ 102,   7, 103  ! Plane X, wire 103
+ 103,   7, 104  ! Plane X, wire 104
+ 104,   7, 105  ! Plane X, wire 105
+ 105,   7, 106  ! Plane X, wire 106
+ 106,   7, 107  ! Plane X, wire 107
+ 107,   7, 108  ! Plane X, wire 108
+ 108,   7, 109  ! Plane X, wire 109
+ 109,   7, 110  ! Plane X, wire 110
+ 110,   7, 111  ! Plane X, wire 111
+ 111,   7, 112  ! Plane X, wire 112
+ 112,  12,   1  ! Plane X', wire 1
+ 113,  12,   2  ! Plane X', wire 2
+ 114,  12,   3  ! Plane X', wire 3
+ 115,  12,   4  ! Plane X', wire 4
+ 116,  12,   5  ! Plane X', wire 5
+ 117,  12,   6  ! Plane X', wire 6
+ 118,  12,   7  ! Plane X', wire 7
+ 119,  12,   8  ! Plane X', wire 8
+ 120,  12,   9  ! Plane X', wire 9
+ 121,  12,  10  ! Plane X', wire 10
+ 122,  12,  11  ! Plane X', wire 11
+ 123,  12,  12  ! Plane X', wire 12
+ 124,  12,  13  ! Plane X', wire 13
+ 125,  12,  14  ! Plane X', wire 14
+ 126,  12,  15  ! Plane X', wire 15
+ 127,  12,  16  ! Plane X', wire 16
+
+SLOT=14
+REFINDEX=0
+  16,  12,  17  ! Plane X', wire 17
+  17,  12,  18  ! Plane X', wire 18
+  18,  12,  19  ! Plane X', wire 19
+  19,  12,  20  ! Plane X', wire 20
+  20,  12,  21  ! Plane X', wire 21
+  21,  12,  22  ! Plane X', wire 22
+  22,  12,  23  ! Plane X', wire 23
+  23,  12,  24  ! Plane X', wire 24
+  24,  12,  25  ! Plane X', wire 25
+  25,  12,  26  ! Plane X', wire 26
+  26,  12,  27  ! Plane X', wire 27
+  27,  12,  28  ! Plane X', wire 28
+  28,  12,  29  ! Plane X', wire 29
+  29,  12,  30  ! Plane X', wire 30
+  30,  12,  31  ! Plane X', wire 31
+  31,  12,  32  ! Plane X', wire 32
+
+SLOT=16
+REFINDEX=0
+   0,  12,  33  ! Plane X', wire 33
+   1,  12,  34  ! Plane X', wire 34
+   2,  12,  35  ! Plane X', wire 35
+   3,  12,  36  ! Plane X', wire 36
+   4,  12,  37  ! Plane X', wire 37
+   5,  12,  38  ! Plane X', wire 38
+   6,  12,  39  ! Plane X', wire 39
+   7,  12,  40  ! Plane X', wire 40
+   8,  12,  41  ! Plane X', wire 41
+   9,  12,  42  ! Plane X', wire 42
+  10,  12,  43  ! Plane X', wire 43
+  11,  12,  44  ! Plane X', wire 44
+  12,  12,  45  ! Plane X', wire 45
+  13,  12,  46  ! Plane X', wire 46
+  14,  12,  47  ! Plane X', wire 47
+  15,  12,  48  ! Plane X', wire 48
+  16,  12,  49  ! Plane X', wire 49
+  17,  12,  50  ! Plane X', wire 50
+  18,  12,  51  ! Plane X', wire 51
+  19,  12,  52  ! Plane X', wire 52
+  20,  12,  53  ! Plane X', wire 53
+  21,  12,  54  ! Plane X', wire 54
+  22,  12,  55  ! Plane X', wire 55
+  23,  12,  56  ! Plane X', wire 56
+  24,  12,  57  ! Plane X', wire 57
+  25,  12,  58  ! Plane X', wire 58
+  26,  12,  59  ! Plane X', wire 59
+  27,  12,  60  ! Plane X', wire 60
+  28,  12,  61  ! Plane X', wire 61
+  29,  12,  62  ! Plane X', wire 62
+  30,  12,  63  ! Plane X', wire 63
+  31,  12,  64  ! Plane X', wire 64
+  32,  12,  65  ! Plane X', wire 65
+  33,  12,  66  ! Plane X', wire 66
+  34,  12,  67  ! Plane X', wire 67
+  35,  12,  68  ! Plane X', wire 68
+  36,  12,  69  ! Plane X', wire 69
+  37,  12,  70  ! Plane X', wire 70
+  38,  12,  71  ! Plane X', wire 71
+  39,  12,  72  ! Plane X', wire 72
+  40,  12,  73  ! Plane X', wire 73
+  41,  12,  74  ! Plane X', wire 74
+  42,  12,  75  ! Plane X', wire 75
+  43,  12,  76  ! Plane X', wire 76
+  44,  12,  77  ! Plane X', wire 77
+  45,  12,  78  ! Plane X', wire 78
+  46,  12,  79  ! Plane X', wire 79
+  47,  12,  80  ! Plane X', wire 80
+  48,  12,  81  ! Plane X', wire 81
+  49,  12,  82  ! Plane X', wire 82
+  50,  12,  83  ! Plane X', wire 83
+  51,  12,  84  ! Plane X', wire 84
+  52,  12,  85  ! Plane X', wire 85
+  53,  12,  86  ! Plane X', wire 86
+  54,  12,  87  ! Plane X', wire 87
+  55,  12,  88  ! Plane X', wire 88
+  56,  12,  89  ! Plane X', wire 89
+  57,  12,  90  ! Plane X', wire 90
+  58,  12,  91  ! Plane X', wire 91
+  59,  12,  92  ! Plane X', wire 92
+  60,  12,  93  ! Plane X', wire 93
+  61,  12,  94  ! Plane X', wire 94
+  62,  12,  95  ! Plane X', wire 95
+  63,  12,  96  ! Plane X', wire 96
+  64,  12,  97  ! Plane X', wire 97
+  65,  12,  98  ! Plane X', wire 98
+  66,  12,  99  ! Plane X', wire 99
+  67,  12, 100  ! Plane X', wire 100
+  68,  12, 101  ! Plane X', wire 101
+  69,  12, 102  ! Plane X', wire 102
+  70,  12, 103  ! Plane X', wire 103
+  71,  12, 104  ! Plane X', wire 104
+  72,  12, 105  ! Plane X', wire 105
+  73,  12, 106  ! Plane X', wire 106
+  74,  12, 107  ! Plane X', wire 107
+  75,  12, 108  ! Plane X', wire 108
+  76,  12, 109  ! Plane X', wire 109
+  77,  12, 110  ! Plane X', wire 110
+  78,  12, 111  ! Plane X', wire 111
+  79,  12, 112  ! Plane X', wire 112
+
+SLOT=17
+REFINDEX=0
+  64,   8,   1  ! Plane Y, wire 1
+  65,   8,   2  ! Plane Y, wire 2
+  66,   8,   3  ! Plane Y, wire 3
+  67,   8,   4  ! Plane Y, wire 4
+  68,   8,   5  ! Plane Y, wire 5
+  69,   8,   6  ! Plane Y, wire 6
+  70,   8,   7  ! Plane Y, wire 7
+  71,   8,   8  ! Plane Y, wire 8
+  72,   8,   9  ! Plane Y, wire 9
+  73,   8,  10  ! Plane Y, wire 10
+  74,   8,  11  ! Plane Y, wire 11
+  75,   8,  12  ! Plane Y, wire 12
+  76,   8,  13  ! Plane Y, wire 13
+  80,   8,  14  ! Plane Y, wire 14
+  81,   8,  15  ! Plane Y, wire 15
+  82,   8,  16  ! Plane Y, wire 16
+  83,   8,  17  ! Plane Y, wire 17
+  84,   8,  18  ! Plane Y, wire 18
+  85,   8,  19  ! Plane Y, wire 19
+  86,   8,  20  ! Plane Y, wire 20
+  87,   8,  21  ! Plane Y, wire 21
+  88,   8,  22  ! Plane Y, wire 22
+  89,   8,  23  ! Plane Y, wire 23
+  90,   8,  24  ! Plane Y, wire 24
+  91,   8,  25  ! Plane Y, wire 25
+  92,   8,  26  ! Plane Y, wire 26
+  96,   8,  27  ! Plane Y, wire 27
+  97,   8,  28  ! Plane Y, wire 28
+  98,   8,  29  ! Plane Y, wire 29
+  99,   8,  30  ! Plane Y, wire 30
+ 100,   8,  31  ! Plane Y, wire 31
+ 101,   8,  32  ! Plane Y, wire 32
+ 102,   8,  33  ! Plane Y, wire 33
+ 103,   8,  34  ! Plane Y, wire 34
+ 104,   8,  35  ! Plane Y, wire 35
+ 105,   8,  36  ! Plane Y, wire 36
+ 106,   8,  37  ! Plane Y, wire 37
+ 107,   8,  38  ! Plane Y, wire 38
+ 108,   8,  39  ! Plane Y, wire 39
+ 112,   8,  40  ! Plane Y, wire 40
+ 113,   8,  41  ! Plane Y, wire 41
+ 114,   8,  42  ! Plane Y, wire 42
+ 115,   8,  43  ! Plane Y, wire 43
+ 116,   8,  44  ! Plane Y, wire 44
+ 117,   8,  45  ! Plane Y, wire 45
+ 118,   8,  46  ! Plane Y, wire 46
+ 119,   8,  47  ! Plane Y, wire 47
+ 120,   8,  48  ! Plane Y, wire 48
+ 121,   8,  49  ! Plane Y, wire 49
+ 122,   8,  50  ! Plane Y, wire 50
+ 123,   8,  51  ! Plane Y, wire 51
+ 124,   8,  52  ! Plane Y, wire 52
+
+SLOT=10
+REFINDEX=0
+ 127,1000,   0,   1
+  64,  11,   1  ! Plane Y', wire 1
+  65,  11,   2  ! Plane Y', wire 2
+  66,  11,   3  ! Plane Y', wire 3
+  67,  11,   4  ! Plane Y', wire 4
+  68,  11,   5  ! Plane Y', wire 5
+  69,  11,   6  ! Plane Y', wire 6
+  70,  11,   7  ! Plane Y', wire 7
+  71,  11,   8  ! Plane Y', wire 8
+  72,  11,   9  ! Plane Y', wire 9
+  73,  11,  10  ! Plane Y', wire 10
+  74,  11,  11  ! Plane Y', wire 11
+  75,  11,  12  ! Plane Y', wire 12
+  76,  11,  13  ! Plane Y', wire 13
+  80,  11,  14  ! Plane Y', wire 14
+  81,  11,  15  ! Plane Y', wire 15
+  82,  11,  16  ! Plane Y', wire 16
+  83,  11,  17  ! Plane Y', wire 17
+  84,  11,  18  ! Plane Y', wire 18
+  85,  11,  19  ! Plane Y', wire 19
+  86,  11,  20  ! Plane Y', wire 20
+  87,  11,  21  ! Plane Y', wire 21
+  88,  11,  22  ! Plane Y', wire 22
+  89,  11,  23  ! Plane Y', wire 23
+  90,  11,  24  ! Plane Y', wire 24
+  91,  11,  25  ! Plane Y', wire 25
+  92,  11,  26  ! Plane Y', wire 26
+  96,  11,  27  ! Plane Y', wire 27
+  97,  11,  28  ! Plane Y', wire 28
+  98,  11,  29  ! Plane Y', wire 29
+  99,  11,  30  ! Plane Y', wire 30
+ 100,  11,  31  ! Plane Y', wire 31
+ 101,  11,  32  ! Plane Y', wire 32
+ 102,  11,  33  ! Plane Y', wire 33
+ 103,  11,  34  ! Plane Y', wire 34
+ 104,  11,  35  ! Plane Y', wire 35
+ 105,  11,  36  ! Plane Y', wire 36
+ 106,  11,  37  ! Plane Y', wire 37
+ 107,  11,  38  ! Plane Y', wire 38
+ 108,  11,  39  ! Plane Y', wire 39
+ 112,  11,  40  ! Plane Y', wire 40
+ 113,  11,  41  ! Plane Y', wire 41
+ 114,  11,  42  ! Plane Y', wire 42
+ 115,  11,  43  ! Plane Y', wire 43
+ 116,  11,  44  ! Plane Y', wire 44
+ 117,  11,  45  ! Plane Y', wire 45
+ 118,  11,  46  ! Plane Y', wire 46
+ 119,  11,  47  ! Plane Y', wire 47
+ 120,  11,  48  ! Plane Y', wire 48
+ 121,  11,  49  ! Plane Y', wire 49
+ 122,  11,  50  ! Plane Y', wire 50
+ 123,  11,  51  ! Plane Y', wire 51
+ 124,  11,  52  ! Plane Y', wire 52
+
+
+DETECTOR=13
+
+ROC=1
+
+SLOT=8
+   0,   1,   1,   0  ! h1x01A+
+   1,   1,   2,   0  ! h1x02A+
+   2,   1,   3,   0  ! h1x03A+
+   3,   1,   4,   0  ! h1x04A+
+   4,   1,   5,   0  ! h1x05A+
+   5,   1,   6,   0  ! h1x06A+
+   6,   1,   7,   0  ! h1x07A+
+   7,   1,   8,   0  ! h1x08A+
+   8,   1,   9,   0  ! h1x09A+
+   9,   1,  10,   0  ! h1x10A+
+  10,   1,  11,   0  ! h1x11A+
+  11,   1,  12,   0  ! h1x12A+
+  12,   1,  13,   0  ! h1x13A+
+  13,   1,  14,   0  ! h1x14A+
+  14,   1,  15,   0  ! h1x15A+
+  15,   1,  16,   0  ! h1x16A+
+
+SLOT=9
+   0,   1,   1,   1  ! h1x01A-
+   1,   1,   2,   1  ! h1x02A-
+   2,   1,   3,   1  ! h1x03A-
+   3,   1,   4,   1  ! h1x04A-
+   4,   1,   5,   1  ! h1x05A-
+   5,   1,   6,   1  ! h1x06A-
+   6,   1,   7,   1  ! h1x07A-
+   7,   1,   8,   1  ! h1x08A-
+   8,   1,   9,   1  ! h1x09A-
+   9,   1,  10,   1  ! h1x10A-
+  10,   1,  11,   1  ! h1x11A-
+  11,   1,  12,   1  ! h1x12A-
+  12,   1,  13,   1  ! h1x13A-
+  13,   1,  14,   1  ! h1x14A-
+  14,   1,  15,   1  ! h1x15A-
+  15,   1,  16,   1  ! h1x16A-
+
+SLOT=10
+   0,   2,   1,   0  ! h1y01A+
+   1,   2,   2,   0  ! h1y02A+
+   2,   2,   3,   0  ! h1y03A+
+   3,   2,   4,   0  ! h1y04A+
+   4,   2,   5,   0  ! h1y05A+
+   5,   2,   6,   0  ! h1y06A+
+   6,   2,   7,   0  ! h1y07A+
+   7,   2,   8,   0  ! h1y08A+
+   8,   2,   9,   0  ! h1y09A+
+   9,   2,  10,   0  ! h1y10A+
+  10,   2,   1,   1  ! h1y01A-
+  11,   2,   2,   1  ! h1y02A-
+  12,   2,   3,   1  ! h1y03A-
+  13,   2,   4,   1  ! h1y04A-
+  14,   2,   5,   1  ! h1y05A-
+  15,   2,   6,   1  ! h1y06A-
+
+SLOT=13
+   0,   2,   7,   1  ! h1y07A-
+   1,   2,   8,   1  ! h1y08A-
+   2,   2,   9,   1  ! h1y09A-
+   3,   2,  10,   1  ! h1y10A-
+   4,   3,   1,   0  ! h2x01A+
+   5,   3,   2,   0  ! h2x02A+
+   6,   3,   3,   0  ! h2x03A+
+   7,   3,   4,   0  ! h2x04A+
+   8,   3,   5,   0  ! h2x05A+
+   9,   3,   6,   0  ! h2x06A+
+  10,   3,   7,   0  ! h2x07A+
+  11,   3,   8,   0  ! h2x08A+
+  12,   3,   9,   0  ! h2x09A+
+  13,   3,  10,   0  ! h2x10A+
+  14,   3,  11,   0  ! h2x11A+
+  15,   3,  12,   0  ! h2x12A+
+
+SLOT=14
+   0,   3,  13,   0  ! h2x13A+
+   1,   3,  14,   0  ! h2x14A+
+   2,   3,  15,   0  ! h2x15A+
+   3,   3,  16,   0  ! h2x16A+
+   4,   3,   1,   1  ! h2x01A-
+   5,   3,   2,   1  ! h2x02A-
+   6,   3,   3,   1  ! h2x03A-
+   7,   3,   4,   1  ! h2x04A-
+   8,   3,   5,   1  ! h2x05A-
+   9,   3,   6,   1  ! h2x06A-
+  10,   3,   7,   1  ! h2x07A-
+  11,   3,   8,   1  ! h2x08A-
+  12,   3,   9,   1  ! h2x09A-
+  13,   3,  10,   1  ! h2x10A-
+  14,   3,  11,   1  ! h2x11A-
+  15,   3,  12,   1  ! h2x12A-
+
+SLOT=15
+   0,   3,  13,   1  ! h2x13A-
+   1,   3,  14,   1  ! h2x14A-
+   2,   3,  15,   1  ! h2x15A-
+   3,   3,  16,   1  ! h2x16A-
+   4,   4,   1,   0  ! h2y01A+
+   5,   4,   2,   0  ! h2y02A+
+   6,   4,   3,   0  ! h2y03A+
+   7,   4,   4,   0  ! h2y04A+
+   8,   4,   5,   0  ! h2y05A+
+   9,   4,   6,   0  ! h2y06A+
+  10,   4,   7,   0  ! h2y07A+
+  11,   4,   8,   0  ! h2y08A+
+  12,   4,   9,   0  ! h2y09A+
+  13,   4,  10,   0  ! h2y10A+
+  14,   4,   1,   1  ! h2y01A-
+  15,   4,   2,   1  ! h2y02A-
+
+SLOT=16
+   0,   4,   3,   1  ! h2y03A-
+   1,   4,   4,   1  ! h2y04A-
+   2,   4,   5,   1  ! h2y05A-
+   3,   4,   6,   1  ! h2y06A-
+   4,   4,   7,   1  ! h2y07A-
+   5,   4,   8,   1  ! h2y08A-
+   6,   4,   9,   1  ! h2y09A-
+   7,   4,  10,   1  ! h2y10A-
+
+SLOT=20
+REFINDEX=0
+ 127,1000,   0,   0
+   0,   1,   1,   2  ! h1x01T+
+   1,   1,   3,   2  ! h1x03T+
+   2,   1,   5,   2  ! h1x05T+
+   3,   1,   7,   2  ! h1x07T+
+   4,   1,   2,   2  ! h1x02T+
+   5,   1,   4,   2  ! h1x04T+
+   6,   1,   6,   2  ! h1x06T+
+   7,   1,   8,   2  ! h1x08T+
+   8,   1,   9,   2  ! h1x09T+
+   9,   1,  11,   2  ! h1x11T+
+  10,   1,  13,   2  ! h1x13T+
+  11,   1,  15,   2  ! h1x15T+
+  12,   1,  10,   2  ! h1x10T+
+  13,   1,  12,   2  ! h1x12T+
+  14,   1,  14,   2  ! h1x14T+
+  15,   1,  16,   2  ! h1x16T+
+  16,   1,   1,   3  ! h1x01T-
+  17,   1,   3,   3  ! h1x03T-
+  18,   1,   5,   3  ! h1x05T-
+  19,   1,   7,   3  ! h1x07T-
+  20,   1,   2,   3  ! h1x02T-
+  21,   1,   4,   3  ! h1x04T-
+  22,   1,   6,   3  ! h1x06T-
+  23,   1,   8,   3  ! h1x08T-
+  24,   1,   9,   3  ! h1x09T-
+  25,   1,  11,   3  ! h1x11T-
+  26,   1,  13,   3  ! h1x13T-
+  27,   1,  15,   3  ! h1x15T-
+  28,   1,  10,   3  ! h1x10T-
+  29,   1,  12,   3  ! h1x12T-
+  30,   1,  14,   3  ! h1x14T-
+  31,   1,  16,   3  ! h1x16T-
+  32,   2,   1,   2  ! h1y01T+
+  33,   2,   3,   2  ! h1y03T+
+  34,   2,   5,   2  ! h1y05T+
+  35,   2,   7,   2  ! h1y07T+
+  36,   2,   2,   2  ! h1y02T+
+  37,   2,   4,   2  ! h1y04T+
+  38,   2,   6,   2  ! h1y06T+
+  39,   2,   8,   2  ! h1y08T+
+  40,   2,   9,   2  ! h1y09T+
+  44,   2,  10,   2  ! h1y10T+
+  48,   2,   1,   3  ! h1y01T-
+  49,   2,   3,   3  ! h1y03T-
+  50,   2,   5,   3  ! h1y05T-
+  51,   2,   7,   3  ! h1y07T-
+  52,   2,   2,   3  ! h1y02T-
+  53,   2,   4,   3  ! h1y04T-
+  54,   2,   6,   3  ! h1y06T-
+  55,   2,   8,   3  ! h1y08T-
+  56,   2,   9,   3  ! h1y09T-
+  60,   2,  10,   3  ! h1y10T-
+  64,   3,   1,   2  ! h2x01T+
+  65,   3,   3,   2  ! h2x03T+
+  66,   3,   5,   2  ! h2x05T+
+  67,   3,   7,   2  ! h2x07T+
+  68,   3,   2,   2  ! h2x02T+
+  69,   3,   4,   2  ! h2x04T+
+  70,   3,   6,   2  ! h2x06T+
+  71,   3,   8,   2  ! h2x08T+
+  72,   3,   9,   2  ! h2x09T+
+  73,   3,  11,   2  ! h2x11T+
+  74,   3,  13,   2  ! h2x13T+
+  75,   3,  15,   2  ! h2x15T+
+  76,   3,  10,   2  ! h2x10T+
+  77,   3,  12,   2  ! h2x12T+
+  78,   3,  14,   2  ! h2x14T+
+  79,   3,  16,   2  ! h2x16T+
+  80,   3,   1,   3  ! h2x01T-
+  81,   3,   3,   3  ! h2x03T-
+  82,   3,   5,   3  ! h2x05T-
+  83,   3,   7,   3  ! h2x07T-
+  84,   3,   2,   3  ! h2x02T-
+  85,   3,   4,   3  ! h2x04T-
+  86,   3,   6,   3  ! h2x06T-
+  87,   3,   8,   3  ! h2x08T-
+  88,   3,   9,   3  ! h2x09T-
+  89,   3,  11,   3  ! h2x11T-
+  90,   3,  13,   3  ! h2x13T-
+  91,   3,  15,   3  ! h2x15T-
+  92,   3,  10,   3  ! h2x10T-
+  93,   3,  12,   3  ! h2x12T-
+  94,   3,  14,   3  ! h2x14T-
+  95,   3,  16,   3  ! h2x16T-
+  96,   4,   1,   2  ! h2y01T+
+  97,   4,   3,   2  ! h2y03T+
+  98,   4,   5,   2  ! h2y05T+
+  99,   4,   7,   2  ! h2y07T+
+ 100,   4,   2,   2  ! h2y02T+
+ 101,   4,   4,   2  ! h2y04T+
+ 102,   4,   6,   2  ! h2y06T+
+ 103,   4,   8,   2  ! h2y08T+
+ 104,   4,   9,   2  ! h2y09T+
+ 108,   4,  10,   2  ! h2y10T+
+ 112,   4,   1,   3  ! h2y01T-
+ 113,   4,   3,   3  ! h2y03T-
+ 114,   4,   5,   3  ! h2y05T-
+ 115,   4,   7,   3  ! h2y07T-
+ 116,   4,   2,   3  ! h2y02T-
+ 117,   4,   4,   3  ! h2y04T-
+ 118,   4,   6,   3  ! h2y06T-
+ 119,   4,   8,   3  ! h2y08T-
+ 120,   4,   9,   3  ! h2y09T-
+ 124,   4,  10,   3  ! h2y10T-
+DETECTOR=14
+
+ROC=1
+
+SLOT=7
+  14,   1,   1,   0  ! hCER01
+  15,   1,   2,   0  ! hCER02
+
+
+DETECTOR=15
+
+ROC=1
+
+SLOT=3
+   0,   1,   1,   0  ! hA01+
+   1,   1,   2,   0  ! hA02+
+   2,   1,   3,   0  ! hA03+
+   3,   1,   4,   0  ! hA04+
+   4,   1,   5,   0  ! hA05+
+   5,   1,   6,   0  ! hA06+
+   6,   1,   7,   0  ! hA07+
+   7,   1,   8,   0  ! hA08+
+   8,   1,   9,   0  ! hA09+
+   9,   1,  10,   0  ! hA10+
+  10,   1,  11,   0  ! hA11+
+  11,   1,  12,   0  ! hA12+
+  12,   1,  13,   0  ! hA13+
+  13,   1,   1,   1  ! hA01-
+  14,   1,   2,   1  ! hA02-
+  15,   1,   3,   1  ! hA03-
+
+SLOT=4
+   0,   1,   4,   1  ! hA04-
+   1,   1,   5,   1  ! hA05-
+   2,   1,   6,   1  ! hA06-
+   3,   1,   7,   1  ! hA07-
+   4,   1,   8,   1  ! hA08-
+   5,   1,   9,   1  ! hA09-
+   6,   1,  10,   1  ! hA10-
+   7,   1,  11,   1  ! hA11-
+   8,   1,  12,   1  ! hA12-
+   9,   1,  13,   1  ! hA13-
+  10,   2,   1,   0  ! hB01+
+  11,   2,   2,   0  ! hB02+
+  12,   2,   3,   0  ! hB03+
+  13,   2,   4,   0  ! hB04+
+  14,   2,   5,   0  ! hB05+
+  15,   2,   6,   0  ! hB06+
+
+SLOT=5
+   0,   2,   7,   0  ! hB07+
+   1,   2,   8,   0  ! hB08+
+   2,   2,   9,   0  ! hB09+
+   3,   2,  10,   0  ! hB10+
+   4,   2,  11,   0  ! hB11+
+   5,   2,  12,   0  ! hB12+
+   6,   2,  13,   0  ! hB13+
+   7,   2,   1,   1  ! hB01-
+   8,   2,   2,   1  ! hB02-
+   9,   2,   3,   1  ! hB03-
+  10,   2,   4,   1  ! hB04-
+  11,   2,   5,   1  ! hB05-
+  12,   2,   6,   1  ! hB06-
+  13,   2,   7,   1  ! hB07-
+  14,   2,   8,   1  ! hB08-
+  15,   2,   9,   1  ! hB09-
+
+SLOT=6
+   0,   2,  10,   1  ! hB10-
+   1,   2,  11,   1  ! hB11-
+   2,   2,  12,   1  ! hB12-
+   3,   2,  13,   1  ! hB13-
+   4,   3,   1,   0  ! hC01+
+   5,   3,   2,   0  ! hC02+
+   6,   3,   3,   0  ! hC03+
+   7,   3,   4,   0  ! hC04+
+   8,   3,   5,   0  ! hC05+
+   9,   3,   6,   0  ! hC06+
+  10,   3,   7,   0  ! hC07+
+  11,   3,   8,   0  ! hC08+
+  12,   3,   9,   0  ! hC09+
+  13,   3,  10,   0  ! hC10+
+  14,   3,  11,   0  ! hC11+
+  15,   3,  12,   0  ! hC12+
+
+SLOT=7
+   0,   3,  13,   0  ! hC13+
+   1,   4,   1,   0  ! hD01+
+   2,   4,   2,   0  ! hD02+
+   3,   4,   3,   0  ! hD03+
+   4,   4,   4,   0  ! hD04+
+   5,   4,   5,   0  ! hD05+
+   6,   4,   6,   0  ! hD06+
+   7,   4,   7,   0  ! hD07+
+   8,   4,   8,   0  ! hD08+
+   9,   4,   9,   0  ! hD09+
+  10,   4,  10,   0  ! hD10+
+  11,   4,  11,   0  ! hD11+
+  12,   4,  12,   0  ! hD12+
+  13,   4,  13,   0  ! hD13+
diff --git a/MAPS/HMS/DETEC/hms_stack_spring17_run_00001_00243.map b/MAPS/HMS/DETEC/hms_stack_spring17_run_00001_00243.map
new file mode 100644
index 00000000..4f7ef430
--- /dev/null
+++ b/MAPS/HMS/DETEC/hms_stack_spring17_run_00001_00243.map
@@ -0,0 +1,1544 @@
+! THMS_ID=10       ::  ADC,TDC
+! HDC_ID=11        ::  TDC
+! HSCIN_ID=13      ::  ADC+,ADC-,TDC+,TDC-
+! HCER_ID=14       ::  (TDC),ADC
+! HCAL_ID=15       ::  ADC
+
+
+DETECTOR=10
+
+ROC=11
+
+SLOT=17
+   8,   1,   1,   0  ! hASUM
+   9,   1,   2,   0  ! hBSUM
+  10,   1,   3,   0  ! hCSUM
+  11,   1,   4,   0  ! hDSUM
+  12,   1,   5,   0  ! hPSHWR
+  13,   1,   6,   0  ! hSHWR
+  14,   1,   7,   0  ! hAERSUM
+  15,   1,   8,   0  ! hCERSUM
+
+SLOT=2
+   0,   2,   1,   1  ! h1X
+   1,   2,   2,   1  ! h1Y
+   2,   2,   3,   1  ! h2X
+   3,   2,   4,   1  ! h2Y
+   4,   2,   5,   1  ! h1T
+   5,   2,   6,   1  ! h2T
+   6,   2,   7,   1  ! hT1
+   7,   2,   8,   1  ! hASUM
+   8,   2,   9,   1  ! hBSUM
+   9,   2,  10,   1  ! hCSUM
+  10,   2,  11,   1  ! hDSUM
+  11,   2,  12,   1  ! hPSHWRLO
+  12,   2,  13,   1  ! hPSHWRHI
+  13,   2,  14,   1  ! hSHWR
+  14,   2,  15,   1  ! hAERSUM
+  15,   2,  16,   1  ! hCERSUM
+
+SLOT=20
+ 127,   2,  17,   1  ! hT2
+
+ROC=3
+
+SLOT=5
+ 111,   2,  18,   1  ! hDCREF1
+
+SLOT=8
+ 127,   2,  19,   1  ! hDCREF2
+
+SLOT=10
+ 127,   2,  20,   1  ! hDCREF3
+
+SLOT=17
+ 127,   2,  21,   1  ! hDCREF4
+
+
+DETECTOR=11  ! HMS chambers
+
+ROC=3
+
+SLOT=5
+REFINDEX=0
+ 111,1000,   0,   0
+  96,   3,   1  ! Plane U, wire 1
+  97,   3,   2  ! Plane U, wire 2
+  98,   3,   3  ! Plane U, wire 3
+  99,   3,   4  ! Plane U, wire 4
+ 100,   3,   5  ! Plane U, wire 5
+ 101,   3,   6  ! Plane U, wire 6
+ 102,   3,   7  ! Plane U, wire 7
+ 103,   3,   8  ! Plane U, wire 8
+ 104,   3,   9  ! Plane U, wire 9
+ 105,   3,  10  ! Plane U, wire 10
+ 106,   3,  11  ! Plane U, wire 11
+ 107,   3,  12  ! Plane U, wire 12
+ 108,   3,  13  ! Plane U, wire 13
+ 109,   3,  14  ! Plane U, wire 14
+ 110,   1, 113  ! Plane X, wire 113
+  80,   3,  15  ! Plane U, wire 15
+  81,   3,  16  ! Plane U, wire 16
+  82,   3,  17  ! Plane U, wire 17
+  83,   3,  18  ! Plane U, wire 18
+  84,   3,  19  ! Plane U, wire 19
+  85,   3,  20  ! Plane U, wire 20
+  86,   3,  21  ! Plane U, wire 21
+  87,   3,  22  ! Plane U, wire 22
+  88,   3,  23  ! Plane U, wire 23
+  89,   3,  24  ! Plane U, wire 24
+  90,   3,  25  ! Plane U, wire 25
+  91,   3,  26  ! Plane U, wire 26
+  92,   3,  27  ! Plane U, wire 27
+  93,   3,  28  ! Plane U, wire 28
+  94,   3,  29  ! Plane U, wire 29
+  64,   3,  30  ! Plane U, wire 30
+  65,   3,  31  ! Plane U, wire 31
+  66,   3,  32  ! Plane U, wire 32
+  67,   3,  33  ! Plane U, wire 33
+  68,   3,  34  ! Plane U, wire 34
+  69,   3,  35  ! Plane U, wire 35
+  70,   3,  36  ! Plane U, wire 36
+  71,   3,  37  ! Plane U, wire 37
+  72,   3,  38  ! Plane U, wire 38
+  73,   3,  39  ! Plane U, wire 39
+  74,   3,  40  ! Plane U, wire 40
+  75,   3,  41  ! Plane U, wire 41
+  76,   3,  42  ! Plane U, wire 42
+  77,   3,  43  ! Plane U, wire 43
+  78,   3,  44  ! Plane U, wire 44
+  79,   3,  45  ! Plane U, wire 45
+  48,   3,  46  ! Plane U, wire 46
+  49,   3,  47  ! Plane U, wire 47
+  50,   3,  48  ! Plane U, wire 48
+  51,   3,  49  ! Plane U, wire 49
+  52,   3,  50  ! Plane U, wire 50
+  53,   3,  51  ! Plane U, wire 51
+  54,   3,  52  ! Plane U, wire 52
+  55,   3,  53  ! Plane U, wire 53
+  56,   3,  54  ! Plane U, wire 54
+  57,   3,  55  ! Plane U, wire 55
+  58,   3,  56  ! Plane U, wire 56
+  59,   3,  57  ! Plane U, wire 57
+  60,   3,  58  ! Plane U, wire 58
+  61,   3,  59  ! Plane U, wire 59
+  62,   3,  60  ! Plane U, wire 60
+  32,   3,  61  ! Plane U, wire 61
+  33,   3,  62  ! Plane U, wire 62
+  34,   3,  63  ! Plane U, wire 63
+  35,   3,  64  ! Plane U, wire 64
+  36,   3,  65  ! Plane U, wire 65
+  37,   3,  66  ! Plane U, wire 66
+  38,   3,  67  ! Plane U, wire 67
+  39,   3,  68  ! Plane U, wire 68
+  40,   3,  69  ! Plane U, wire 69
+  41,   3,  70  ! Plane U, wire 70
+  42,   3,  71  ! Plane U, wire 71
+  43,   3,  72  ! Plane U, wire 72
+  44,   3,  73  ! Plane U, wire 73
+  45,   3,  74  ! Plane U, wire 74
+  46,   3,  75  ! Plane U, wire 75
+  47,   3,  76  ! Plane U, wire 76
+  16,   3,  77  ! Plane U, wire 77
+  17,   3,  78  ! Plane U, wire 78
+  18,   3,  79  ! Plane U, wire 79
+  19,   3,  80  ! Plane U, wire 80
+  20,   3,  81  ! Plane U, wire 81
+  21,   3,  82  ! Plane U, wire 82
+  22,   3,  83  ! Plane U, wire 83
+  23,   3,  84  ! Plane U, wire 84
+  24,   3,  85  ! Plane U, wire 85
+  25,   3,  86  ! Plane U, wire 86
+  26,   3,  87  ! Plane U, wire 87
+  27,   3,  88  ! Plane U, wire 88
+  28,   3,  89  ! Plane U, wire 89
+  29,   3,  90  ! Plane U, wire 90
+  30,   3,  91  ! Plane U, wire 91
+   0,   3,  92  ! Plane U, wire 92
+   1,   3,  93  ! Plane U, wire 93
+   2,   3,  94  ! Plane U, wire 94
+   3,   3,  95  ! Plane U, wire 95
+   4,   3,  96  ! Plane U, wire 96
+   5,   3,  97  ! Plane U, wire 97
+   6,   3,  98  ! Plane U, wire 98
+   7,   3,  99  ! Plane U, wire 99
+   8,   3, 100  ! Plane U, wire 100
+   9,   3, 101  ! Plane U, wire 101
+  10,   3, 102  ! Plane U, wire 102
+  11,   3, 103  ! Plane U, wire 103
+  12,   3, 104  ! Plane U, wire 104
+  13,   3, 105  ! Plane U, wire 105
+  14,   3, 106  ! Plane U, wire 106
+  15,   3, 107  ! Plane U, wire 107
+
+SLOT=7
+REFINDEX=0
+  96,   4,   1  ! Plane V, wire 1
+  97,   4,   2  ! Plane V, wire 2
+  98,   4,   3  ! Plane V, wire 3
+  99,   4,   4  ! Plane V, wire 4
+ 100,   4,   5  ! Plane V, wire 5
+ 101,   4,   6  ! Plane V, wire 6
+ 102,   4,   7  ! Plane V, wire 7
+ 103,   4,   8  ! Plane V, wire 8
+ 104,   4,   9  ! Plane V, wire 9
+ 105,   4,  10  ! Plane V, wire 10
+ 106,   4,  11  ! Plane V, wire 11
+ 107,   4,  12  ! Plane V, wire 12
+ 108,   4,  13  ! Plane V, wire 13
+ 109,   4,  14  ! Plane V, wire 14
+ 110,   6, 113  ! Plane X', wire 113
+ 112,   4,  15  ! Plane V, wire 15
+ 113,   4,  16  ! Plane V, wire 16
+ 114,   4,  17  ! Plane V, wire 17
+ 115,   4,  18  ! Plane V, wire 18
+ 116,   4,  19  ! Plane V, wire 19
+ 117,   4,  20  ! Plane V, wire 20
+ 118,   4,  21  ! Plane V, wire 21
+ 119,   4,  22  ! Plane V, wire 22
+ 120,   4,  23  ! Plane V, wire 23
+ 121,   4,  24  ! Plane V, wire 24
+ 122,   4,  25  ! Plane V, wire 25
+ 123,   4,  26  ! Plane V, wire 26
+ 124,   4,  27  ! Plane V, wire 27
+ 125,   4,  28  ! Plane V, wire 28
+ 126,   4,  29  ! Plane V, wire 29
+
+SLOT=8
+REFINDEX=0
+ 127,1000,   0,   1
+   0,   4,  30  ! Plane V, wire 30
+   1,   4,  31  ! Plane V, wire 31
+   2,   4,  32  ! Plane V, wire 32
+   3,   4,  33  ! Plane V, wire 33
+   4,   4,  34  ! Plane V, wire 34
+   5,   4,  35  ! Plane V, wire 35
+   6,   4,  36  ! Plane V, wire 36
+   7,   4,  37  ! Plane V, wire 37
+   8,   4,  38  ! Plane V, wire 38
+   9,   4,  39  ! Plane V, wire 39
+  10,   4,  40  ! Plane V, wire 40
+  11,   4,  41  ! Plane V, wire 41
+  12,   4,  42  ! Plane V, wire 42
+  13,   4,  43  ! Plane V, wire 43
+  14,   4,  44  ! Plane V, wire 44
+  15,   4,  45  ! Plane V, wire 45
+  16,   4,  46  ! Plane V, wire 46
+  17,   4,  47  ! Plane V, wire 47
+  18,   4,  48  ! Plane V, wire 48
+  19,   4,  49  ! Plane V, wire 49
+  20,   4,  50  ! Plane V, wire 50
+  21,   4,  51  ! Plane V, wire 51
+  22,   4,  52  ! Plane V, wire 52
+  23,   4,  53  ! Plane V, wire 53
+  24,   4,  54  ! Plane V, wire 54
+  25,   4,  55  ! Plane V, wire 55
+  26,   4,  56  ! Plane V, wire 56
+  27,   4,  57  ! Plane V, wire 57
+  28,   4,  58  ! Plane V, wire 58
+  29,   4,  59  ! Plane V, wire 59
+  30,   4,  60  ! Plane V, wire 60
+  32,   4,  61  ! Plane V, wire 61
+  33,   4,  62  ! Plane V, wire 62
+  34,   4,  63  ! Plane V, wire 63
+  35,   4,  64  ! Plane V, wire 64
+  36,   4,  65  ! Plane V, wire 65
+  37,   4,  66  ! Plane V, wire 66
+  38,   4,  67  ! Plane V, wire 67
+  39,   4,  68  ! Plane V, wire 68
+  40,   4,  69  ! Plane V, wire 69
+  41,   4,  70  ! Plane V, wire 70
+  42,   4,  71  ! Plane V, wire 71
+  43,   4,  72  ! Plane V, wire 72
+  44,   4,  73  ! Plane V, wire 73
+  45,   4,  74  ! Plane V, wire 74
+  46,   4,  75  ! Plane V, wire 75
+  47,   4,  76  ! Plane V, wire 76
+  48,   4,  77  ! Plane V, wire 77
+  49,   4,  78  ! Plane V, wire 78
+  50,   4,  79  ! Plane V, wire 79
+  51,   4,  80  ! Plane V, wire 80
+  52,   4,  81  ! Plane V, wire 81
+  53,   4,  82  ! Plane V, wire 82
+  54,   4,  83  ! Plane V, wire 83
+  55,   4,  84  ! Plane V, wire 84
+  56,   4,  85  ! Plane V, wire 85
+  57,   4,  86  ! Plane V, wire 86
+  58,   4,  87  ! Plane V, wire 87
+  59,   4,  88  ! Plane V, wire 88
+  60,   4,  89  ! Plane V, wire 89
+  61,   4,  90  ! Plane V, wire 90
+  62,   4,  91  ! Plane V, wire 91
+
+SLOT=4
+REFINDEX=0
+  96,   4,  92  ! Plane V, wire 92
+  97,   4,  93  ! Plane V, wire 93
+  98,   4,  94  ! Plane V, wire 94
+  99,   4,  95  ! Plane V, wire 95
+ 100,   4,  96  ! Plane V, wire 96
+ 101,   4,  97  ! Plane V, wire 97
+ 102,   4,  98  ! Plane V, wire 98
+ 103,   4,  99  ! Plane V, wire 99
+ 104,   4, 100  ! Plane V, wire 100
+ 105,   4, 101  ! Plane V, wire 101
+ 106,   4, 102  ! Plane V, wire 102
+ 107,   4, 103  ! Plane V, wire 103
+ 108,   4, 104  ! Plane V, wire 104
+ 109,   4, 105  ! Plane V, wire 105
+ 110,   4, 106  ! Plane V, wire 106
+ 111,   4, 107  ! Plane V, wire 107
+  80,   1,   1  ! Plane X, wire 1
+  81,   1,   2  ! Plane X, wire 2
+  82,   1,   3  ! Plane X, wire 3
+  83,   1,   4  ! Plane X, wire 4
+  84,   1,   5  ! Plane X, wire 5
+  85,   1,   6  ! Plane X, wire 6
+  86,   1,   7  ! Plane X, wire 7
+  87,   1,   8  ! Plane X, wire 8
+  88,   1,   9  ! Plane X, wire 9
+  89,   1,  10  ! Plane X, wire 10
+  90,   1,  11  ! Plane X, wire 11
+  91,   1,  12  ! Plane X, wire 12
+  92,   1,  13  ! Plane X, wire 13
+  93,   1,  14  ! Plane X, wire 14
+  94,   1,  15  ! Plane X, wire 15
+  95,   1,  16  ! Plane X, wire 16
+  64,   1,  17  ! Plane X, wire 17
+  65,   1,  18  ! Plane X, wire 18
+  66,   1,  19  ! Plane X, wire 19
+  67,   1,  20  ! Plane X, wire 20
+  68,   1,  21  ! Plane X, wire 21
+  69,   1,  22  ! Plane X, wire 22
+  70,   1,  23  ! Plane X, wire 23
+  71,   1,  24  ! Plane X, wire 24
+  72,   1,  25  ! Plane X, wire 25
+  73,   1,  26  ! Plane X, wire 26
+  74,   1,  27  ! Plane X, wire 27
+  75,   1,  28  ! Plane X, wire 28
+  76,   1,  29  ! Plane X, wire 29
+  77,   1,  30  ! Plane X, wire 30
+  78,   1,  31  ! Plane X, wire 31
+  79,   1,  32  ! Plane X, wire 32
+  48,   1,  33  ! Plane X, wire 33
+  49,   1,  34  ! Plane X, wire 34
+  50,   1,  35  ! Plane X, wire 35
+  51,   1,  36  ! Plane X, wire 36
+  52,   1,  37  ! Plane X, wire 37
+  53,   1,  38  ! Plane X, wire 38
+  54,   1,  39  ! Plane X, wire 39
+  55,   1,  40  ! Plane X, wire 40
+  56,   1,  41  ! Plane X, wire 41
+  57,   1,  42  ! Plane X, wire 42
+  58,   1,  43  ! Plane X, wire 43
+  59,   1,  44  ! Plane X, wire 44
+  60,   1,  45  ! Plane X, wire 45
+  61,   1,  46  ! Plane X, wire 46
+  62,   1,  47  ! Plane X, wire 47
+  63,   1,  48  ! Plane X, wire 48
+  32,   1,  49  ! Plane X, wire 49
+  33,   1,  50  ! Plane X, wire 50
+  34,   1,  51  ! Plane X, wire 51
+  35,   1,  52  ! Plane X, wire 52
+  36,   1,  53  ! Plane X, wire 53
+  37,   1,  54  ! Plane X, wire 54
+  38,   1,  55  ! Plane X, wire 55
+  39,   1,  56  ! Plane X, wire 56
+  40,   1,  57  ! Plane X, wire 57
+  41,   1,  58  ! Plane X, wire 58
+  42,   1,  59  ! Plane X, wire 59
+  43,   1,  60  ! Plane X, wire 60
+  44,   1,  61  ! Plane X, wire 61
+  45,   1,  62  ! Plane X, wire 62
+  46,   1,  63  ! Plane X, wire 63
+  47,   1,  64  ! Plane X, wire 64
+  16,   1,  65  ! Plane X, wire 65
+  17,   1,  66  ! Plane X, wire 66
+  18,   1,  67  ! Plane X, wire 67
+  19,   1,  68  ! Plane X, wire 68
+  20,   1,  69  ! Plane X, wire 69
+  21,   1,  70  ! Plane X, wire 70
+  22,   1,  71  ! Plane X, wire 71
+  23,   1,  72  ! Plane X, wire 72
+  24,   1,  73  ! Plane X, wire 73
+  25,   1,  74  ! Plane X, wire 74
+  26,   1,  75  ! Plane X, wire 75
+  27,   1,  76  ! Plane X, wire 76
+  28,   1,  77  ! Plane X, wire 77
+  29,   1,  78  ! Plane X, wire 78
+  30,   1,  79  ! Plane X, wire 79
+  31,   1,  80  ! Plane X, wire 80
+   0,   1,  81  ! Plane X, wire 81
+   1,   1,  82  ! Plane X, wire 82
+   2,   1,  83  ! Plane X, wire 83
+   3,   1,  84  ! Plane X, wire 84
+   4,   1,  85  ! Plane X, wire 85
+   5,   1,  86  ! Plane X, wire 86
+   6,   1,  87  ! Plane X, wire 87
+   7,   1,  88  ! Plane X, wire 88
+   8,   1,  89  ! Plane X, wire 89
+   9,   1,  90  ! Plane X, wire 90
+  10,   1,  91  ! Plane X, wire 91
+  11,   1,  92  ! Plane X, wire 92
+  12,   1,  93  ! Plane X, wire 93
+  13,   1,  94  ! Plane X, wire 94
+  14,   1,  95  ! Plane X, wire 95
+  15,   1,  96  ! Plane X, wire 96
+
+SLOT=7
+REFINDEX=0
+  80,   1,  97  ! Plane X, wire 97
+  81,   1,  98  ! Plane X, wire 98
+  82,   1,  99  ! Plane X, wire 99
+  83,   1, 100  ! Plane X, wire 100
+  84,   1, 101  ! Plane X, wire 101
+  85,   1, 102  ! Plane X, wire 102
+  86,   1, 103  ! Plane X, wire 103
+  87,   1, 104  ! Plane X, wire 104
+  88,   1, 105  ! Plane X, wire 105
+  89,   1, 106  ! Plane X, wire 106
+  90,   1, 107  ! Plane X, wire 107
+  91,   1, 108  ! Plane X, wire 108
+  92,   1, 109  ! Plane X, wire 109
+  93,   1, 110  ! Plane X, wire 110
+  94,   1, 111  ! Plane X, wire 111
+  95,   1, 112  ! Plane X, wire 112
+
+SLOT=4
+REFINDEX=0
+ 112,   6,   1  ! Plane X', wire 1
+ 113,   6,   2  ! Plane X', wire 2
+ 114,   6,   3  ! Plane X', wire 3
+ 115,   6,   4  ! Plane X', wire 4
+ 116,   6,   5  ! Plane X', wire 5
+ 117,   6,   6  ! Plane X', wire 6
+ 118,   6,   7  ! Plane X', wire 7
+ 119,   6,   8  ! Plane X', wire 8
+ 120,   6,   9  ! Plane X', wire 9
+ 121,   6,  10  ! Plane X', wire 10
+ 122,   6,  11  ! Plane X', wire 11
+ 123,   6,  12  ! Plane X', wire 12
+ 124,   6,  13  ! Plane X', wire 13
+ 125,   6,  14  ! Plane X', wire 14
+ 126,   6,  15  ! Plane X', wire 15
+ 127,   6,  16  ! Plane X', wire 16
+
+SLOT=5
+REFINDEX=0
+ 112,   6,  17  ! Plane X', wire 17
+ 113,   6,  18  ! Plane X', wire 18
+ 114,   6,  19  ! Plane X', wire 19
+ 115,   6,  20  ! Plane X', wire 20
+ 116,   6,  21  ! Plane X', wire 21
+ 117,   6,  22  ! Plane X', wire 22
+ 118,   6,  23  ! Plane X', wire 23
+ 119,   6,  24  ! Plane X', wire 24
+ 120,   6,  25  ! Plane X', wire 25
+ 121,   6,  26  ! Plane X', wire 26
+ 122,   6,  27  ! Plane X', wire 27
+ 123,   6,  28  ! Plane X', wire 28
+ 124,   6,  29  ! Plane X', wire 29
+ 125,   6,  30  ! Plane X', wire 30
+ 126,   6,  31  ! Plane X', wire 31
+ 127,   6,  32  ! Plane X', wire 32
+
+SLOT=7
+REFINDEX=0
+   0,   6,  33  ! Plane X', wire 33
+   1,   6,  34  ! Plane X', wire 34
+   2,   6,  35  ! Plane X', wire 35
+   3,   6,  36  ! Plane X', wire 36
+   4,   6,  37  ! Plane X', wire 37
+   5,   6,  38  ! Plane X', wire 38
+   6,   6,  39  ! Plane X', wire 39
+   7,   6,  40  ! Plane X', wire 40
+   8,   6,  41  ! Plane X', wire 41
+   9,   6,  42  ! Plane X', wire 42
+  10,   6,  43  ! Plane X', wire 43
+  11,   6,  44  ! Plane X', wire 44
+  12,   6,  45  ! Plane X', wire 45
+  13,   6,  46  ! Plane X', wire 46
+  14,   6,  47  ! Plane X', wire 47
+  15,   6,  48  ! Plane X', wire 48
+  16,   6,  49  ! Plane X', wire 49
+  17,   6,  50  ! Plane X', wire 50
+  18,   6,  51  ! Plane X', wire 51
+  19,   6,  52  ! Plane X', wire 52
+  20,   6,  53  ! Plane X', wire 53
+  21,   6,  54  ! Plane X', wire 54
+  22,   6,  55  ! Plane X', wire 55
+  23,   6,  56  ! Plane X', wire 56
+  24,   6,  57  ! Plane X', wire 57
+  25,   6,  58  ! Plane X', wire 58
+  26,   6,  59  ! Plane X', wire 59
+  27,   6,  60  ! Plane X', wire 60
+  28,   6,  61  ! Plane X', wire 61
+  29,   6,  62  ! Plane X', wire 62
+  30,   6,  63  ! Plane X', wire 63
+  31,   6,  64  ! Plane X', wire 64
+  32,   6,  65  ! Plane X', wire 65
+  33,   6,  66  ! Plane X', wire 66
+  34,   6,  67  ! Plane X', wire 67
+  35,   6,  68  ! Plane X', wire 68
+  36,   6,  69  ! Plane X', wire 69
+  37,   6,  70  ! Plane X', wire 70
+  38,   6,  71  ! Plane X', wire 71
+  39,   6,  72  ! Plane X', wire 72
+  40,   6,  73  ! Plane X', wire 73
+  41,   6,  74  ! Plane X', wire 74
+  42,   6,  75  ! Plane X', wire 75
+  43,   6,  76  ! Plane X', wire 76
+  44,   6,  77  ! Plane X', wire 77
+  45,   6,  78  ! Plane X', wire 78
+  46,   6,  79  ! Plane X', wire 79
+  47,   6,  80  ! Plane X', wire 80
+  48,   6,  81  ! Plane X', wire 81
+  49,   6,  82  ! Plane X', wire 82
+  50,   6,  83  ! Plane X', wire 83
+  51,   6,  84  ! Plane X', wire 84
+  52,   6,  85  ! Plane X', wire 85
+  53,   6,  86  ! Plane X', wire 86
+  54,   6,  87  ! Plane X', wire 87
+  55,   6,  88  ! Plane X', wire 88
+  56,   6,  89  ! Plane X', wire 89
+  57,   6,  90  ! Plane X', wire 90
+  58,   6,  91  ! Plane X', wire 91
+  59,   6,  92  ! Plane X', wire 92
+  60,   6,  93  ! Plane X', wire 93
+  61,   6,  94  ! Plane X', wire 94
+  62,   6,  95  ! Plane X', wire 95
+  63,   6,  96  ! Plane X', wire 96
+  64,   6,  97  ! Plane X', wire 97
+  65,   6,  98  ! Plane X', wire 98
+  66,   6,  99  ! Plane X', wire 99
+  67,   6, 100  ! Plane X', wire 100
+  68,   6, 101  ! Plane X', wire 101
+  69,   6, 102  ! Plane X', wire 102
+  70,   6, 103  ! Plane X', wire 103
+  71,   6, 104  ! Plane X', wire 104
+  72,   6, 105  ! Plane X', wire 105
+  73,   6, 106  ! Plane X', wire 106
+  74,   6, 107  ! Plane X', wire 107
+  75,   6, 108  ! Plane X', wire 108
+  76,   6, 109  ! Plane X', wire 109
+  77,   6, 110  ! Plane X', wire 110
+  78,   6, 111  ! Plane X', wire 111
+  79,   6, 112  ! Plane X', wire 112
+
+SLOT=8
+REFINDEX=0
+  64,   2,   1  ! Plane Y, wire 1
+  65,   2,   2  ! Plane Y, wire 2
+  66,   2,   3  ! Plane Y, wire 3
+  67,   2,   4  ! Plane Y, wire 4
+  68,   2,   5  ! Plane Y, wire 5
+  69,   2,   6  ! Plane Y, wire 6
+  70,   2,   7  ! Plane Y, wire 7
+  71,   2,   8  ! Plane Y, wire 8
+  72,   2,   9  ! Plane Y, wire 9
+  73,   2,  10  ! Plane Y, wire 10
+  74,   2,  11  ! Plane Y, wire 11
+  75,   2,  12  ! Plane Y, wire 12
+  76,   2,  13  ! Plane Y, wire 13
+  80,   2,  14  ! Plane Y, wire 14
+  81,   2,  15  ! Plane Y, wire 15
+  82,   2,  16  ! Plane Y, wire 16
+  83,   2,  17  ! Plane Y, wire 17
+  84,   2,  18  ! Plane Y, wire 18
+  85,   2,  19  ! Plane Y, wire 19
+  86,   2,  20  ! Plane Y, wire 20
+  87,   2,  21  ! Plane Y, wire 21
+  88,   2,  22  ! Plane Y, wire 22
+  89,   2,  23  ! Plane Y, wire 23
+  90,   2,  24  ! Plane Y, wire 24
+  91,   2,  25  ! Plane Y, wire 25
+  92,   2,  26  ! Plane Y, wire 26
+  96,   2,  27  ! Plane Y, wire 27
+  97,   2,  28  ! Plane Y, wire 28
+  98,   2,  29  ! Plane Y, wire 29
+  99,   2,  30  ! Plane Y, wire 30
+ 100,   2,  31  ! Plane Y, wire 31
+ 101,   2,  32  ! Plane Y, wire 32
+ 102,   2,  33  ! Plane Y, wire 33
+ 103,   2,  34  ! Plane Y, wire 34
+ 104,   2,  35  ! Plane Y, wire 35
+ 105,   2,  36  ! Plane Y, wire 36
+ 106,   2,  37  ! Plane Y, wire 37
+ 107,   2,  38  ! Plane Y, wire 38
+ 108,   2,  39  ! Plane Y, wire 39
+ 112,   2,  40  ! Plane Y, wire 40
+ 113,   2,  41  ! Plane Y, wire 41
+ 114,   2,  42  ! Plane Y, wire 42
+ 115,   2,  43  ! Plane Y, wire 43
+ 116,   2,  44  ! Plane Y, wire 44
+ 117,   2,  45  ! Plane Y, wire 45
+ 118,   2,  46  ! Plane Y, wire 46
+ 119,   2,  47  ! Plane Y, wire 47
+ 120,   2,  48  ! Plane Y, wire 48
+ 121,   2,  49  ! Plane Y, wire 49
+ 122,   2,  50  ! Plane Y, wire 50
+ 123,   2,  51  ! Plane Y, wire 51
+ 124,   2,  52  ! Plane Y, wire 52
+
+SLOT=10
+REFINDEX=0
+ 127,1000,   0,   2
+   0,   5,   1  ! Plane Y', wire 1
+   1,   5,   2  ! Plane Y', wire 2
+   2,   5,   3  ! Plane Y', wire 3
+   3,   5,   4  ! Plane Y', wire 4
+   4,   5,   5  ! Plane Y', wire 5
+   5,   5,   6  ! Plane Y', wire 6
+   6,   5,   7  ! Plane Y', wire 7
+   7,   5,   8  ! Plane Y', wire 8
+   8,   5,   9  ! Plane Y', wire 9
+   9,   5,  10  ! Plane Y', wire 10
+  10,   5,  11  ! Plane Y', wire 11
+  11,   5,  12  ! Plane Y', wire 12
+  12,   5,  13  ! Plane Y', wire 13
+  16,   5,  14  ! Plane Y', wire 14
+  17,   5,  15  ! Plane Y', wire 15
+  18,   5,  16  ! Plane Y', wire 16
+  19,   5,  17  ! Plane Y', wire 17
+  20,   5,  18  ! Plane Y', wire 18
+  21,   5,  19  ! Plane Y', wire 19
+  22,   5,  20  ! Plane Y', wire 20
+  23,   5,  21  ! Plane Y', wire 21
+  24,   5,  22  ! Plane Y', wire 22
+  25,   5,  23  ! Plane Y', wire 23
+  26,   5,  24  ! Plane Y', wire 24
+  27,   5,  25  ! Plane Y', wire 25
+  28,   5,  26  ! Plane Y', wire 26
+  32,   5,  27  ! Plane Y', wire 27
+  33,   5,  28  ! Plane Y', wire 28
+  34,   5,  29  ! Plane Y', wire 29
+  35,   5,  30  ! Plane Y', wire 30
+  36,   5,  31  ! Plane Y', wire 31
+  37,   5,  32  ! Plane Y', wire 32
+  38,   5,  33  ! Plane Y', wire 33
+  39,   5,  34  ! Plane Y', wire 34
+  40,   5,  35  ! Plane Y', wire 35
+  41,   5,  36  ! Plane Y', wire 36
+  42,   5,  37  ! Plane Y', wire 37
+  43,   5,  38  ! Plane Y', wire 38
+  44,   5,  39  ! Plane Y', wire 39
+  48,   5,  40  ! Plane Y', wire 40
+  49,   5,  41  ! Plane Y', wire 41
+  50,   5,  42  ! Plane Y', wire 42
+  51,   5,  43  ! Plane Y', wire 43
+  52,   5,  44  ! Plane Y', wire 44
+  53,   5,  45  ! Plane Y', wire 45
+  54,   5,  46  ! Plane Y', wire 46
+  55,   5,  47  ! Plane Y', wire 47
+  56,   5,  48  ! Plane Y', wire 48
+  57,   5,  49  ! Plane Y', wire 49
+  58,   5,  50  ! Plane Y', wire 50
+  59,   5,  51  ! Plane Y', wire 51
+  60,   5,  52  ! Plane Y', wire 52
+
+SLOT=16
+REFINDEX=0
+  96,   9,   1  ! Plane U, wire 1
+  97,   9,   2  ! Plane U, wire 2
+  98,   9,   3  ! Plane U, wire 3
+  99,   9,   4  ! Plane U, wire 4
+ 100,   9,   5  ! Plane U, wire 5
+ 101,   9,   6  ! Plane U, wire 6
+ 102,   9,   7  ! Plane U, wire 7
+ 103,   9,   8  ! Plane U, wire 8
+ 104,   9,   9  ! Plane U, wire 9
+ 105,   9,  10  ! Plane U, wire 10
+ 106,   9,  11  ! Plane U, wire 11
+ 107,   9,  12  ! Plane U, wire 12
+ 108,   9,  13  ! Plane U, wire 13
+ 109,   9,  14  ! Plane U, wire 14
+ 110,   7, 113  ! Plane X, wire 113
+ 112,   9,  15  ! Plane U, wire 15
+ 113,   9,  16  ! Plane U, wire 16
+ 114,   9,  17  ! Plane U, wire 17
+ 115,   9,  18  ! Plane U, wire 18
+ 116,   9,  19  ! Plane U, wire 19
+ 117,   9,  20  ! Plane U, wire 20
+ 118,   9,  21  ! Plane U, wire 21
+ 119,   9,  22  ! Plane U, wire 22
+ 120,   9,  23  ! Plane U, wire 23
+ 121,   9,  24  ! Plane U, wire 24
+ 122,   9,  25  ! Plane U, wire 25
+ 123,   9,  26  ! Plane U, wire 26
+ 124,   9,  27  ! Plane U, wire 27
+ 125,   9,  28  ! Plane U, wire 28
+ 126,   9,  29  ! Plane U, wire 29
+
+SLOT=14
+REFINDEX=0
+   0,   9,  30  ! Plane U, wire 30
+   1,   9,  31  ! Plane U, wire 31
+   2,   9,  32  ! Plane U, wire 32
+   3,   9,  33  ! Plane U, wire 33
+   4,   9,  34  ! Plane U, wire 34
+   5,   9,  35  ! Plane U, wire 35
+   6,   9,  36  ! Plane U, wire 36
+   7,   9,  37  ! Plane U, wire 37
+   8,   9,  38  ! Plane U, wire 38
+   9,   9,  39  ! Plane U, wire 39
+  10,   9,  40  ! Plane U, wire 40
+  11,   9,  41  ! Plane U, wire 41
+  12,   9,  42  ! Plane U, wire 42
+  13,   9,  43  ! Plane U, wire 43
+  14,   9,  44  ! Plane U, wire 44
+  15,   9,  45  ! Plane U, wire 45
+  32,   9,  46  ! Plane U, wire 46
+  33,   9,  47  ! Plane U, wire 47
+  34,   9,  48  ! Plane U, wire 48
+  35,   9,  49  ! Plane U, wire 49
+  36,   9,  50  ! Plane U, wire 50
+  37,   9,  51  ! Plane U, wire 51
+  38,   9,  52  ! Plane U, wire 52
+  39,   9,  53  ! Plane U, wire 53
+  40,   9,  54  ! Plane U, wire 54
+  41,   9,  55  ! Plane U, wire 55
+  42,   9,  56  ! Plane U, wire 56
+  43,   9,  57  ! Plane U, wire 57
+  44,   9,  58  ! Plane U, wire 58
+  45,   9,  59  ! Plane U, wire 59
+  46,   9,  60  ! Plane U, wire 60
+  48,   9,  61  ! Plane U, wire 61
+  49,   9,  62  ! Plane U, wire 62
+  50,   9,  63  ! Plane U, wire 63
+  51,   9,  64  ! Plane U, wire 64
+  52,   9,  65  ! Plane U, wire 65
+  53,   9,  66  ! Plane U, wire 66
+  54,   9,  67  ! Plane U, wire 67
+  55,   9,  68  ! Plane U, wire 68
+  56,   9,  69  ! Plane U, wire 69
+  57,   9,  70  ! Plane U, wire 70
+  58,   9,  71  ! Plane U, wire 71
+  59,   9,  72  ! Plane U, wire 72
+  60,   9,  73  ! Plane U, wire 73
+  61,   9,  74  ! Plane U, wire 74
+  62,   9,  75  ! Plane U, wire 75
+  63,   9,  76  ! Plane U, wire 76
+  64,   9,  77  ! Plane U, wire 77
+  65,   9,  78  ! Plane U, wire 78
+  66,   9,  79  ! Plane U, wire 79
+  67,   9,  80  ! Plane U, wire 80
+  68,   9,  81  ! Plane U, wire 81
+  69,   9,  82  ! Plane U, wire 82
+  70,   9,  83  ! Plane U, wire 83
+  71,   9,  84  ! Plane U, wire 84
+  72,   9,  85  ! Plane U, wire 85
+  73,   9,  86  ! Plane U, wire 86
+  74,   9,  87  ! Plane U, wire 87
+  75,   9,  88  ! Plane U, wire 88
+  76,   9,  89  ! Plane U, wire 89
+  77,   9,  90  ! Plane U, wire 90
+  78,   9,  91  ! Plane U, wire 91
+  80,   9,  92  ! Plane U, wire 92
+  81,   9,  93  ! Plane U, wire 93
+  82,   9,  94  ! Plane U, wire 94
+  83,   9,  95  ! Plane U, wire 95
+  84,   9,  96  ! Plane U, wire 96
+  85,   9,  97  ! Plane U, wire 97
+  86,   9,  98  ! Plane U, wire 98
+  87,   9,  99  ! Plane U, wire 99
+  88,   9, 100  ! Plane U, wire 100
+  89,   9, 101  ! Plane U, wire 101
+  90,   9, 102  ! Plane U, wire 102
+  91,   9, 103  ! Plane U, wire 103
+  92,   9, 104  ! Plane U, wire 104
+  93,   9, 105  ! Plane U, wire 105
+  94,   9, 106  ! Plane U, wire 106
+  95,   9, 107  ! Plane U, wire 107
+
+SLOT=16
+REFINDEX=0
+  80,  10,   1  ! Plane V, wire 1
+  81,  10,   2  ! Plane V, wire 2
+  82,  10,   3  ! Plane V, wire 3
+  83,  10,   4  ! Plane V, wire 4
+  84,  10,   5  ! Plane V, wire 5
+  85,  10,   6  ! Plane V, wire 6
+  86,  10,   7  ! Plane V, wire 7
+  87,  10,   8  ! Plane V, wire 8
+  88,  10,   9  ! Plane V, wire 9
+  89,  10,  10  ! Plane V, wire 10
+  90,  10,  11  ! Plane V, wire 11
+  91,  10,  12  ! Plane V, wire 12
+  92,  10,  13  ! Plane V, wire 13
+  93,  10,  14  ! Plane V, wire 14
+  94,  12, 113  ! Plane X', wire 113
+
+SLOT=14
+REFINDEX=0
+  96,  10,  15  ! Plane V, wire 15
+  97,  10,  16  ! Plane V, wire 16
+  98,  10,  17  ! Plane V, wire 17
+  99,  10,  18  ! Plane V, wire 18
+ 100,  10,  19  ! Plane V, wire 19
+ 101,  10,  20  ! Plane V, wire 20
+ 102,  10,  21  ! Plane V, wire 21
+ 103,  10,  22  ! Plane V, wire 22
+ 104,  10,  23  ! Plane V, wire 23
+ 105,  10,  24  ! Plane V, wire 24
+ 106,  10,  25  ! Plane V, wire 25
+ 107,  10,  26  ! Plane V, wire 26
+ 108,  10,  27  ! Plane V, wire 27
+ 109,  10,  28  ! Plane V, wire 28
+ 110,  10,  29  ! Plane V, wire 29
+ 112,  10,  30  ! Plane V, wire 30
+ 113,  10,  31  ! Plane V, wire 31
+ 114,  10,  32  ! Plane V, wire 32
+ 115,  10,  33  ! Plane V, wire 33
+ 116,  10,  34  ! Plane V, wire 34
+ 117,  10,  35  ! Plane V, wire 35
+ 118,  10,  36  ! Plane V, wire 36
+ 119,  10,  37  ! Plane V, wire 37
+ 120,  10,  38  ! Plane V, wire 38
+ 121,  10,  39  ! Plane V, wire 39
+ 122,  10,  40  ! Plane V, wire 40
+ 123,  10,  41  ! Plane V, wire 41
+ 124,  10,  42  ! Plane V, wire 42
+ 125,  10,  43  ! Plane V, wire 43
+ 126,  10,  44  ! Plane V, wire 44
+ 127,  10,  45  ! Plane V, wire 45
+
+SLOT=17
+REFINDEX=0
+ 127,1000,   0,   3
+   0,  10,  46  ! Plane V, wire 46
+   1,  10,  47  ! Plane V, wire 47
+   2,  10,  48  ! Plane V, wire 48
+   3,  10,  49  ! Plane V, wire 49
+   4,  10,  50  ! Plane V, wire 50
+   5,  10,  51  ! Plane V, wire 51
+   6,  10,  52  ! Plane V, wire 52
+   7,  10,  53  ! Plane V, wire 53
+   8,  10,  54  ! Plane V, wire 54
+   9,  10,  55  ! Plane V, wire 55
+  10,  10,  56  ! Plane V, wire 56
+  11,  10,  57  ! Plane V, wire 57
+  12,  10,  58  ! Plane V, wire 58
+  13,  10,  59  ! Plane V, wire 59
+  14,  10,  60  ! Plane V, wire 60
+  16,  10,  61  ! Plane V, wire 61
+  17,  10,  62  ! Plane V, wire 62
+  18,  10,  63  ! Plane V, wire 63
+  19,  10,  64  ! Plane V, wire 64
+  20,  10,  65  ! Plane V, wire 65
+  21,  10,  66  ! Plane V, wire 66
+  22,  10,  67  ! Plane V, wire 67
+  23,  10,  68  ! Plane V, wire 68
+  24,  10,  69  ! Plane V, wire 69
+  25,  10,  70  ! Plane V, wire 70
+  26,  10,  71  ! Plane V, wire 71
+  27,  10,  72  ! Plane V, wire 72
+  28,  10,  73  ! Plane V, wire 73
+  29,  10,  74  ! Plane V, wire 74
+  30,  10,  75  ! Plane V, wire 75
+  31,  10,  76  ! Plane V, wire 76
+  32,  10,  77  ! Plane V, wire 77
+  33,  10,  78  ! Plane V, wire 78
+  34,  10,  79  ! Plane V, wire 79
+  35,  10,  80  ! Plane V, wire 80
+  36,  10,  81  ! Plane V, wire 81
+  37,  10,  82  ! Plane V, wire 82
+  38,  10,  83  ! Plane V, wire 83
+  39,  10,  84  ! Plane V, wire 84
+  40,  10,  85  ! Plane V, wire 85
+  41,  10,  86  ! Plane V, wire 86
+  42,  10,  87  ! Plane V, wire 87
+  43,  10,  88  ! Plane V, wire 88
+  44,  10,  89  ! Plane V, wire 89
+  45,  10,  90  ! Plane V, wire 90
+  46,  10,  91  ! Plane V, wire 91
+  48,  10,  92  ! Plane V, wire 92
+  49,  10,  93  ! Plane V, wire 93
+  50,  10,  94  ! Plane V, wire 94
+  51,  10,  95  ! Plane V, wire 95
+  52,  10,  96  ! Plane V, wire 96
+  53,  10,  97  ! Plane V, wire 97
+  54,  10,  98  ! Plane V, wire 98
+  55,  10,  99  ! Plane V, wire 99
+  56,  10, 100  ! Plane V, wire 100
+  57,  10, 101  ! Plane V, wire 101
+  58,  10, 102  ! Plane V, wire 102
+  59,  10, 103  ! Plane V, wire 103
+  60,  10, 104  ! Plane V, wire 104
+  61,  10, 105  ! Plane V, wire 105
+  62,  10, 106  ! Plane V, wire 106
+  63,  10, 107  ! Plane V, wire 107
+
+SLOT=13
+REFINDEX=0
+   0,   7,   1  ! Plane X, wire 1
+   1,   7,   2  ! Plane X, wire 2
+   2,   7,   3  ! Plane X, wire 3
+   3,   7,   4  ! Plane X, wire 4
+   4,   7,   5  ! Plane X, wire 5
+   5,   7,   6  ! Plane X, wire 6
+   6,   7,   7  ! Plane X, wire 7
+   7,   7,   8  ! Plane X, wire 8
+   8,   7,   9  ! Plane X, wire 9
+   9,   7,  10  ! Plane X, wire 10
+  10,   7,  11  ! Plane X, wire 11
+  11,   7,  12  ! Plane X, wire 12
+  12,   7,  13  ! Plane X, wire 13
+  13,   7,  14  ! Plane X, wire 14
+  14,   7,  15  ! Plane X, wire 15
+  15,   7,  16  ! Plane X, wire 16
+  16,   7,  17  ! Plane X, wire 17
+  17,   7,  18  ! Plane X, wire 18
+  18,   7,  19  ! Plane X, wire 19
+  19,   7,  20  ! Plane X, wire 20
+  20,   7,  21  ! Plane X, wire 21
+  21,   7,  22  ! Plane X, wire 22
+  22,   7,  23  ! Plane X, wire 23
+  23,   7,  24  ! Plane X, wire 24
+  24,   7,  25  ! Plane X, wire 25
+  25,   7,  26  ! Plane X, wire 26
+  26,   7,  27  ! Plane X, wire 27
+  27,   7,  28  ! Plane X, wire 28
+  28,   7,  29  ! Plane X, wire 29
+  29,   7,  30  ! Plane X, wire 30
+  30,   7,  31  ! Plane X, wire 31
+  31,   7,  32  ! Plane X, wire 32
+  32,   7,  33  ! Plane X, wire 33
+  33,   7,  34  ! Plane X, wire 34
+  34,   7,  35  ! Plane X, wire 35
+  35,   7,  36  ! Plane X, wire 36
+  36,   7,  37  ! Plane X, wire 37
+  37,   7,  38  ! Plane X, wire 38
+  38,   7,  39  ! Plane X, wire 39
+  39,   7,  40  ! Plane X, wire 40
+  40,   7,  41  ! Plane X, wire 41
+  41,   7,  42  ! Plane X, wire 42
+  42,   7,  43  ! Plane X, wire 43
+  43,   7,  44  ! Plane X, wire 44
+  44,   7,  45  ! Plane X, wire 45
+  45,   7,  46  ! Plane X, wire 46
+  46,   7,  47  ! Plane X, wire 47
+  47,   7,  48  ! Plane X, wire 48
+  48,   7,  49  ! Plane X, wire 49
+  49,   7,  50  ! Plane X, wire 50
+  50,   7,  51  ! Plane X, wire 51
+  51,   7,  52  ! Plane X, wire 52
+  52,   7,  53  ! Plane X, wire 53
+  53,   7,  54  ! Plane X, wire 54
+  54,   7,  55  ! Plane X, wire 55
+  55,   7,  56  ! Plane X, wire 56
+  56,   7,  57  ! Plane X, wire 57
+  57,   7,  58  ! Plane X, wire 58
+  58,   7,  59  ! Plane X, wire 59
+  59,   7,  60  ! Plane X, wire 60
+  60,   7,  61  ! Plane X, wire 61
+  61,   7,  62  ! Plane X, wire 62
+  62,   7,  63  ! Plane X, wire 63
+  63,   7,  64  ! Plane X, wire 64
+  64,   7,  65  ! Plane X, wire 65
+  65,   7,  66  ! Plane X, wire 66
+  66,   7,  67  ! Plane X, wire 67
+  67,   7,  68  ! Plane X, wire 68
+  68,   7,  69  ! Plane X, wire 69
+  69,   7,  70  ! Plane X, wire 70
+  70,   7,  71  ! Plane X, wire 71
+  71,   7,  72  ! Plane X, wire 72
+  72,   7,  73  ! Plane X, wire 73
+  73,   7,  74  ! Plane X, wire 74
+  74,   7,  75  ! Plane X, wire 75
+  75,   7,  76  ! Plane X, wire 76
+  76,   7,  77  ! Plane X, wire 77
+  77,   7,  78  ! Plane X, wire 78
+  78,   7,  79  ! Plane X, wire 79
+  79,   7,  80  ! Plane X, wire 80
+  80,   7,  81  ! Plane X, wire 81
+  81,   7,  82  ! Plane X, wire 82
+  82,   7,  83  ! Plane X, wire 83
+  83,   7,  84  ! Plane X, wire 84
+  84,   7,  85  ! Plane X, wire 85
+  85,   7,  86  ! Plane X, wire 86
+  86,   7,  87  ! Plane X, wire 87
+  87,   7,  88  ! Plane X, wire 88
+  88,   7,  89  ! Plane X, wire 89
+  89,   7,  90  ! Plane X, wire 90
+  90,   7,  91  ! Plane X, wire 91
+  91,   7,  92  ! Plane X, wire 92
+  92,   7,  93  ! Plane X, wire 93
+  93,   7,  94  ! Plane X, wire 94
+  94,   7,  95  ! Plane X, wire 95
+  95,   7,  96  ! Plane X, wire 96
+  96,   7,  97  ! Plane X, wire 97
+  97,   7,  98  ! Plane X, wire 98
+  98,   7,  99  ! Plane X, wire 99
+  99,   7, 100  ! Plane X, wire 100
+ 100,   7, 101  ! Plane X, wire 101
+ 101,   7, 102  ! Plane X, wire 102
+ 102,   7, 103  ! Plane X, wire 103
+ 103,   7, 104  ! Plane X, wire 104
+ 104,   7, 105  ! Plane X, wire 105
+ 105,   7, 106  ! Plane X, wire 106
+ 106,   7, 107  ! Plane X, wire 107
+ 107,   7, 108  ! Plane X, wire 108
+ 108,   7, 109  ! Plane X, wire 109
+ 109,   7, 110  ! Plane X, wire 110
+ 110,   7, 111  ! Plane X, wire 111
+ 111,   7, 112  ! Plane X, wire 112
+ 112,  12,   1  ! Plane X', wire 1
+ 113,  12,   2  ! Plane X', wire 2
+ 114,  12,   3  ! Plane X', wire 3
+ 115,  12,   4  ! Plane X', wire 4
+ 116,  12,   5  ! Plane X', wire 5
+ 117,  12,   6  ! Plane X', wire 6
+ 118,  12,   7  ! Plane X', wire 7
+ 119,  12,   8  ! Plane X', wire 8
+ 120,  12,   9  ! Plane X', wire 9
+ 121,  12,  10  ! Plane X', wire 10
+ 122,  12,  11  ! Plane X', wire 11
+ 123,  12,  12  ! Plane X', wire 12
+ 124,  12,  13  ! Plane X', wire 13
+ 125,  12,  14  ! Plane X', wire 14
+ 126,  12,  15  ! Plane X', wire 15
+ 127,  12,  16  ! Plane X', wire 16
+
+SLOT=14
+REFINDEX=0
+  16,  12,  17  ! Plane X', wire 17
+  17,  12,  18  ! Plane X', wire 18
+  18,  12,  19  ! Plane X', wire 19
+  19,  12,  20  ! Plane X', wire 20
+  20,  12,  21  ! Plane X', wire 21
+  21,  12,  22  ! Plane X', wire 22
+  22,  12,  23  ! Plane X', wire 23
+  23,  12,  24  ! Plane X', wire 24
+  24,  12,  25  ! Plane X', wire 25
+  25,  12,  26  ! Plane X', wire 26
+  26,  12,  27  ! Plane X', wire 27
+  27,  12,  28  ! Plane X', wire 28
+  28,  12,  29  ! Plane X', wire 29
+  29,  12,  30  ! Plane X', wire 30
+  30,  12,  31  ! Plane X', wire 31
+  31,  12,  32  ! Plane X', wire 32
+
+SLOT=16
+REFINDEX=0
+   0,  12,  33  ! Plane X', wire 33
+   1,  12,  34  ! Plane X', wire 34
+   2,  12,  35  ! Plane X', wire 35
+   3,  12,  36  ! Plane X', wire 36
+   4,  12,  37  ! Plane X', wire 37
+   5,  12,  38  ! Plane X', wire 38
+   6,  12,  39  ! Plane X', wire 39
+   7,  12,  40  ! Plane X', wire 40
+   8,  12,  41  ! Plane X', wire 41
+   9,  12,  42  ! Plane X', wire 42
+  10,  12,  43  ! Plane X', wire 43
+  11,  12,  44  ! Plane X', wire 44
+  12,  12,  45  ! Plane X', wire 45
+  13,  12,  46  ! Plane X', wire 46
+  14,  12,  47  ! Plane X', wire 47
+  15,  12,  48  ! Plane X', wire 48
+  16,  12,  49  ! Plane X', wire 49
+  17,  12,  50  ! Plane X', wire 50
+  18,  12,  51  ! Plane X', wire 51
+  19,  12,  52  ! Plane X', wire 52
+  20,  12,  53  ! Plane X', wire 53
+  21,  12,  54  ! Plane X', wire 54
+  22,  12,  55  ! Plane X', wire 55
+  23,  12,  56  ! Plane X', wire 56
+  24,  12,  57  ! Plane X', wire 57
+  25,  12,  58  ! Plane X', wire 58
+  26,  12,  59  ! Plane X', wire 59
+  27,  12,  60  ! Plane X', wire 60
+  28,  12,  61  ! Plane X', wire 61
+  29,  12,  62  ! Plane X', wire 62
+  30,  12,  63  ! Plane X', wire 63
+  31,  12,  64  ! Plane X', wire 64
+  32,  12,  65  ! Plane X', wire 65
+  33,  12,  66  ! Plane X', wire 66
+  34,  12,  67  ! Plane X', wire 67
+  35,  12,  68  ! Plane X', wire 68
+  36,  12,  69  ! Plane X', wire 69
+  37,  12,  70  ! Plane X', wire 70
+  38,  12,  71  ! Plane X', wire 71
+  39,  12,  72  ! Plane X', wire 72
+  40,  12,  73  ! Plane X', wire 73
+  41,  12,  74  ! Plane X', wire 74
+  42,  12,  75  ! Plane X', wire 75
+  43,  12,  76  ! Plane X', wire 76
+  44,  12,  77  ! Plane X', wire 77
+  45,  12,  78  ! Plane X', wire 78
+  46,  12,  79  ! Plane X', wire 79
+  47,  12,  80  ! Plane X', wire 80
+  48,  12,  81  ! Plane X', wire 81
+  49,  12,  82  ! Plane X', wire 82
+  50,  12,  83  ! Plane X', wire 83
+  51,  12,  84  ! Plane X', wire 84
+  52,  12,  85  ! Plane X', wire 85
+  53,  12,  86  ! Plane X', wire 86
+  54,  12,  87  ! Plane X', wire 87
+  55,  12,  88  ! Plane X', wire 88
+  56,  12,  89  ! Plane X', wire 89
+  57,  12,  90  ! Plane X', wire 90
+  58,  12,  91  ! Plane X', wire 91
+  59,  12,  92  ! Plane X', wire 92
+  60,  12,  93  ! Plane X', wire 93
+  61,  12,  94  ! Plane X', wire 94
+  62,  12,  95  ! Plane X', wire 95
+  63,  12,  96  ! Plane X', wire 96
+  64,  12,  97  ! Plane X', wire 97
+  65,  12,  98  ! Plane X', wire 98
+  66,  12,  99  ! Plane X', wire 99
+  67,  12, 100  ! Plane X', wire 100
+  68,  12, 101  ! Plane X', wire 101
+  69,  12, 102  ! Plane X', wire 102
+  70,  12, 103  ! Plane X', wire 103
+  71,  12, 104  ! Plane X', wire 104
+  72,  12, 105  ! Plane X', wire 105
+  73,  12, 106  ! Plane X', wire 106
+  74,  12, 107  ! Plane X', wire 107
+  75,  12, 108  ! Plane X', wire 108
+  76,  12, 109  ! Plane X', wire 109
+  77,  12, 110  ! Plane X', wire 110
+  78,  12, 111  ! Plane X', wire 111
+  79,  12, 112  ! Plane X', wire 112
+
+SLOT=17
+REFINDEX=0
+  64,   8,   1  ! Plane Y, wire 1
+  65,   8,   2  ! Plane Y, wire 2
+  66,   8,   3  ! Plane Y, wire 3
+  67,   8,   4  ! Plane Y, wire 4
+  68,   8,   5  ! Plane Y, wire 5
+  69,   8,   6  ! Plane Y, wire 6
+  70,   8,   7  ! Plane Y, wire 7
+  71,   8,   8  ! Plane Y, wire 8
+  72,   8,   9  ! Plane Y, wire 9
+  73,   8,  10  ! Plane Y, wire 10
+  74,   8,  11  ! Plane Y, wire 11
+  75,   8,  12  ! Plane Y, wire 12
+  76,   8,  13  ! Plane Y, wire 13
+  80,   8,  14  ! Plane Y, wire 14
+  81,   8,  15  ! Plane Y, wire 15
+  82,   8,  16  ! Plane Y, wire 16
+  83,   8,  17  ! Plane Y, wire 17
+  84,   8,  18  ! Plane Y, wire 18
+  85,   8,  19  ! Plane Y, wire 19
+  86,   8,  20  ! Plane Y, wire 20
+  87,   8,  21  ! Plane Y, wire 21
+  88,   8,  22  ! Plane Y, wire 22
+  89,   8,  23  ! Plane Y, wire 23
+  90,   8,  24  ! Plane Y, wire 24
+  91,   8,  25  ! Plane Y, wire 25
+  92,   8,  26  ! Plane Y, wire 26
+  96,   8,  27  ! Plane Y, wire 27
+  97,   8,  28  ! Plane Y, wire 28
+  98,   8,  29  ! Plane Y, wire 29
+  99,   8,  30  ! Plane Y, wire 30
+ 100,   8,  31  ! Plane Y, wire 31
+ 101,   8,  32  ! Plane Y, wire 32
+ 102,   8,  33  ! Plane Y, wire 33
+ 103,   8,  34  ! Plane Y, wire 34
+ 104,   8,  35  ! Plane Y, wire 35
+ 105,   8,  36  ! Plane Y, wire 36
+ 106,   8,  37  ! Plane Y, wire 37
+ 107,   8,  38  ! Plane Y, wire 38
+ 108,   8,  39  ! Plane Y, wire 39
+ 112,   8,  40  ! Plane Y, wire 40
+ 113,   8,  41  ! Plane Y, wire 41
+ 114,   8,  42  ! Plane Y, wire 42
+ 115,   8,  43  ! Plane Y, wire 43
+ 116,   8,  44  ! Plane Y, wire 44
+ 117,   8,  45  ! Plane Y, wire 45
+ 118,   8,  46  ! Plane Y, wire 46
+ 119,   8,  47  ! Plane Y, wire 47
+ 120,   8,  48  ! Plane Y, wire 48
+ 121,   8,  49  ! Plane Y, wire 49
+ 122,   8,  50  ! Plane Y, wire 50
+ 123,   8,  51  ! Plane Y, wire 51
+ 124,   8,  52  ! Plane Y, wire 52
+
+SLOT=10
+REFINDEX=0
+ 127,1000,   0,   1
+  64,  11,   1  ! Plane Y', wire 1
+  65,  11,   2  ! Plane Y', wire 2
+  66,  11,   3  ! Plane Y', wire 3
+  67,  11,   4  ! Plane Y', wire 4
+  68,  11,   5  ! Plane Y', wire 5
+  69,  11,   6  ! Plane Y', wire 6
+  70,  11,   7  ! Plane Y', wire 7
+  71,  11,   8  ! Plane Y', wire 8
+  72,  11,   9  ! Plane Y', wire 9
+  73,  11,  10  ! Plane Y', wire 10
+  74,  11,  11  ! Plane Y', wire 11
+  75,  11,  12  ! Plane Y', wire 12
+  76,  11,  13  ! Plane Y', wire 13
+  80,  11,  14  ! Plane Y', wire 14
+  81,  11,  15  ! Plane Y', wire 15
+  82,  11,  16  ! Plane Y', wire 16
+  83,  11,  17  ! Plane Y', wire 17
+  84,  11,  18  ! Plane Y', wire 18
+  85,  11,  19  ! Plane Y', wire 19
+  86,  11,  20  ! Plane Y', wire 20
+  87,  11,  21  ! Plane Y', wire 21
+  88,  11,  22  ! Plane Y', wire 22
+  89,  11,  23  ! Plane Y', wire 23
+  90,  11,  24  ! Plane Y', wire 24
+  91,  11,  25  ! Plane Y', wire 25
+  92,  11,  26  ! Plane Y', wire 26
+  96,  11,  27  ! Plane Y', wire 27
+  97,  11,  28  ! Plane Y', wire 28
+  98,  11,  29  ! Plane Y', wire 29
+  99,  11,  30  ! Plane Y', wire 30
+ 100,  11,  31  ! Plane Y', wire 31
+ 101,  11,  32  ! Plane Y', wire 32
+ 102,  11,  33  ! Plane Y', wire 33
+ 103,  11,  34  ! Plane Y', wire 34
+ 104,  11,  35  ! Plane Y', wire 35
+ 105,  11,  36  ! Plane Y', wire 36
+ 106,  11,  37  ! Plane Y', wire 37
+ 107,  11,  38  ! Plane Y', wire 38
+ 108,  11,  39  ! Plane Y', wire 39
+ 112,  11,  40  ! Plane Y', wire 40
+ 113,  11,  41  ! Plane Y', wire 41
+ 114,  11,  42  ! Plane Y', wire 42
+ 115,  11,  43  ! Plane Y', wire 43
+ 116,  11,  44  ! Plane Y', wire 44
+ 117,  11,  45  ! Plane Y', wire 45
+ 118,  11,  46  ! Plane Y', wire 46
+ 119,  11,  47  ! Plane Y', wire 47
+ 120,  11,  48  ! Plane Y', wire 48
+ 121,  11,  49  ! Plane Y', wire 49
+ 122,  11,  50  ! Plane Y', wire 50
+ 123,  11,  51  ! Plane Y', wire 51
+ 124,  11,  52  ! Plane Y', wire 52
+
+
+DETECTOR=13
+
+ROC=11
+
+SLOT=8
+   0,   1,   1,   0  ! h1x01A+
+   1,   1,   2,   0  ! h1x02A+
+   2,   1,   3,   0  ! h1x03A+
+   3,   1,   4,   0  ! h1x04A+
+   4,   1,   5,   0  ! h1x05A+
+   5,   1,   6,   0  ! h1x06A+
+   6,   1,   7,   0  ! h1x07A+
+   7,   1,   8,   0  ! h1x08A+
+   8,   1,   9,   0  ! h1x09A+
+   9,   1,  10,   0  ! h1x10A+
+  10,   1,  11,   0  ! h1x11A+
+  11,   1,  12,   0  ! h1x12A+
+  12,   1,  13,   0  ! h1x13A+
+  13,   1,  14,   0  ! h1x14A+
+  14,   1,  15,   0  ! h1x15A+
+  15,   1,  16,   0  ! h1x16A+
+
+SLOT=9
+   0,   1,   1,   1  ! h1x01A-
+   1,   1,   2,   1  ! h1x02A-
+   2,   1,   3,   1  ! h1x03A-
+   3,   1,   4,   1  ! h1x04A-
+   4,   1,   5,   1  ! h1x05A-
+   5,   1,   6,   1  ! h1x06A-
+   6,   1,   7,   1  ! h1x07A-
+   7,   1,   8,   1  ! h1x08A-
+   8,   1,   9,   1  ! h1x09A-
+   9,   1,  10,   1  ! h1x10A-
+  10,   1,  11,   1  ! h1x11A-
+  11,   1,  12,   1  ! h1x12A-
+  12,   1,  13,   1  ! h1x13A-
+  13,   1,  14,   1  ! h1x14A-
+  14,   1,  15,   1  ! h1x15A-
+  15,   1,  16,   1  ! h1x16A-
+
+SLOT=10
+   0,   2,   1,   0  ! h1y01A+
+   1,   2,   2,   0  ! h1y02A+
+   2,   2,   3,   0  ! h1y03A+
+   3,   2,   4,   0  ! h1y04A+
+   4,   2,   5,   0  ! h1y05A+
+   5,   2,   6,   0  ! h1y06A+
+   6,   2,   7,   0  ! h1y07A+
+   7,   2,   8,   0  ! h1y08A+
+   8,   2,   9,   0  ! h1y09A+
+   9,   2,  10,   0  ! h1y10A+
+  10,   2,   1,   1  ! h1y01A-
+  11,   2,   2,   1  ! h1y02A-
+  12,   2,   3,   1  ! h1y03A-
+  13,   2,   4,   1  ! h1y04A-
+  14,   2,   5,   1  ! h1y05A-
+  15,   2,   6,   1  ! h1y06A-
+
+SLOT=13
+   0,   2,   7,   1  ! h1y07A-
+   1,   2,   8,   1  ! h1y08A-
+   2,   2,   9,   1  ! h1y09A-
+   3,   2,  10,   1  ! h1y10A-
+   4,   3,   1,   0  ! h2x01A+
+   5,   3,   2,   0  ! h2x02A+
+   6,   3,   3,   0  ! h2x03A+
+   7,   3,   4,   0  ! h2x04A+
+   8,   3,   5,   0  ! h2x05A+
+   9,   3,   6,   0  ! h2x06A+
+  10,   3,   7,   0  ! h2x07A+
+  11,   3,   8,   0  ! h2x08A+
+  12,   3,   9,   0  ! h2x09A+
+  13,   3,  10,   0  ! h2x10A+
+  14,   3,  11,   0  ! h2x11A+
+  15,   3,  12,   0  ! h2x12A+
+
+SLOT=14
+   0,   3,  13,   0  ! h2x13A+
+   1,   3,  14,   0  ! h2x14A+
+   2,   3,  15,   0  ! h2x15A+
+   3,   3,  16,   0  ! h2x16A+
+   4,   3,   1,   1  ! h2x01A-
+   5,   3,   2,   1  ! h2x02A-
+   6,   3,   3,   1  ! h2x03A-
+   7,   3,   4,   1  ! h2x04A-
+   8,   3,   5,   1  ! h2x05A-
+   9,   3,   6,   1  ! h2x06A-
+  10,   3,   7,   1  ! h2x07A-
+  11,   3,   8,   1  ! h2x08A-
+  12,   3,   9,   1  ! h2x09A-
+  13,   3,  10,   1  ! h2x10A-
+  14,   3,  11,   1  ! h2x11A-
+  15,   3,  12,   1  ! h2x12A-
+
+SLOT=15
+   0,   3,  13,   1  ! h2x13A-
+   1,   3,  14,   1  ! h2x14A-
+   2,   3,  15,   1  ! h2x15A-
+   3,   3,  16,   1  ! h2x16A-
+   4,   4,   1,   0  ! h2y01A+
+   5,   4,   2,   0  ! h2y02A+
+   6,   4,   3,   0  ! h2y03A+
+   7,   4,   4,   0  ! h2y04A+
+   8,   4,   5,   0  ! h2y05A+
+   9,   4,   6,   0  ! h2y06A+
+  10,   4,   7,   0  ! h2y07A+
+  11,   4,   8,   0  ! h2y08A+
+  12,   4,   9,   0  ! h2y09A+
+  13,   4,  10,   0  ! h2y10A+
+  14,   4,   1,   1  ! h2y01A-
+  15,   4,   2,   1  ! h2y02A-
+
+SLOT=16
+   0,   4,   3,   1  ! h2y03A-
+   1,   4,   4,   1  ! h2y04A-
+   2,   4,   5,   1  ! h2y05A-
+   3,   4,   6,   1  ! h2y06A-
+   4,   4,   7,   1  ! h2y07A-
+   5,   4,   8,   1  ! h2y08A-
+   6,   4,   9,   1  ! h2y09A-
+   7,   4,  10,   1  ! h2y10A-
+
+SLOT=20
+REFINDEX=0
+ 127,1000,   0,   0
+   0,   1,   1,   2  ! h1x01T+
+   1,   1,   3,   2  ! h1x03T+
+   2,   1,   5,   2  ! h1x05T+
+   3,   1,   7,   2  ! h1x07T+
+   4,   1,   2,   2  ! h1x02T+
+   5,   1,   4,   2  ! h1x04T+
+   6,   1,   6,   2  ! h1x06T+
+   7,   1,   8,   2  ! h1x08T+
+   8,   1,   9,   2  ! h1x09T+
+   9,   1,  11,   2  ! h1x11T+
+  10,   1,  13,   2  ! h1x13T+
+  11,   1,  15,   2  ! h1x15T+
+  12,   1,  10,   2  ! h1x10T+
+  13,   1,  12,   2  ! h1x12T+
+  14,   1,  14,   2  ! h1x14T+
+  15,   1,  16,   2  ! h1x16T+
+  16,   1,   1,   3  ! h1x01T-
+  17,   1,   3,   3  ! h1x03T-
+  18,   1,   5,   3  ! h1x05T-
+  19,   1,   7,   3  ! h1x07T-
+  20,   1,   2,   3  ! h1x02T-
+  21,   1,   4,   3  ! h1x04T-
+  22,   1,   6,   3  ! h1x06T-
+  23,   1,   8,   3  ! h1x08T-
+  24,   1,   9,   3  ! h1x09T-
+  25,   1,  11,   3  ! h1x11T-
+  26,   1,  13,   3  ! h1x13T-
+  27,   1,  15,   3  ! h1x15T-
+  28,   1,  10,   3  ! h1x10T-
+  29,   1,  12,   3  ! h1x12T-
+  30,   1,  14,   3  ! h1x14T-
+  31,   1,  16,   3  ! h1x16T-
+  32,   2,   1,   2  ! h1y01T+
+  33,   2,   3,   2  ! h1y03T+
+  34,   2,   5,   2  ! h1y05T+
+  35,   2,   7,   2  ! h1y07T+
+  36,   2,   2,   2  ! h1y02T+
+  37,   2,   4,   2  ! h1y04T+
+  38,   2,   6,   2  ! h1y06T+
+  39,   2,   8,   2  ! h1y08T+
+  40,   2,   9,   2  ! h1y09T+
+  44,   2,  10,   2  ! h1y10T+
+  48,   2,   1,   3  ! h1y01T-
+  49,   2,   3,   3  ! h1y03T-
+  50,   2,   5,   3  ! h1y05T-
+  51,   2,   7,   3  ! h1y07T-
+  52,   2,   2,   3  ! h1y02T-
+  53,   2,   4,   3  ! h1y04T-
+  54,   2,   6,   3  ! h1y06T-
+  55,   2,   8,   3  ! h1y08T-
+  56,   2,   9,   3  ! h1y09T-
+  60,   2,  10,   3  ! h1y10T-
+  64,   3,   1,   2  ! h2x01T+
+  65,   3,   3,   2  ! h2x03T+
+  66,   3,   5,   2  ! h2x05T+
+  67,   3,   7,   2  ! h2x07T+
+  68,   3,   2,   2  ! h2x02T+
+  69,   3,   4,   2  ! h2x04T+
+  70,   3,   6,   2  ! h2x06T+
+  71,   3,   8,   2  ! h2x08T+
+  72,   3,   9,   2  ! h2x09T+
+  73,   3,  11,   2  ! h2x11T+
+  74,   3,  13,   2  ! h2x13T+
+  75,   3,  15,   2  ! h2x15T+
+  76,   3,  10,   2  ! h2x10T+
+  77,   3,  12,   2  ! h2x12T+
+  78,   3,  14,   2  ! h2x14T+
+  79,   3,  16,   2  ! h2x16T+
+  80,   3,   1,   3  ! h2x01T-
+  81,   3,   3,   3  ! h2x03T-
+  82,   3,   5,   3  ! h2x05T-
+  83,   3,   7,   3  ! h2x07T-
+  84,   3,   2,   3  ! h2x02T-
+  85,   3,   4,   3  ! h2x04T-
+  86,   3,   6,   3  ! h2x06T-
+  87,   3,   8,   3  ! h2x08T-
+  88,   3,   9,   3  ! h2x09T-
+  89,   3,  11,   3  ! h2x11T-
+  90,   3,  13,   3  ! h2x13T-
+  91,   3,  15,   3  ! h2x15T-
+  92,   3,  10,   3  ! h2x10T-
+  93,   3,  12,   3  ! h2x12T-
+  94,   3,  14,   3  ! h2x14T-
+  95,   3,  16,   3  ! h2x16T-
+  96,   4,   1,   2  ! h2y01T+
+  97,   4,   3,   2  ! h2y03T+
+  98,   4,   5,   2  ! h2y05T+
+  99,   4,   7,   2  ! h2y07T+
+ 100,   4,   2,   2  ! h2y02T+
+ 101,   4,   4,   2  ! h2y04T+
+ 102,   4,   6,   2  ! h2y06T+
+ 103,   4,   8,   2  ! h2y08T+
+ 104,   4,   9,   2  ! h2y09T+
+ 108,   4,  10,   2  ! h2y10T+
+ 112,   4,   1,   3  ! h2y01T-
+ 113,   4,   3,   3  ! h2y03T-
+ 114,   4,   5,   3  ! h2y05T-
+ 115,   4,   7,   3  ! h2y07T-
+ 116,   4,   2,   3  ! h2y02T-
+ 117,   4,   4,   3  ! h2y04T-
+ 118,   4,   6,   3  ! h2y06T-
+ 119,   4,   8,   3  ! h2y08T-
+ 120,   4,   9,   3  ! h2y09T-
+ 124,   4,  10,   3  ! h2y10T-
+DETECTOR=14
+
+ROC=11
+
+SLOT=7
+  14,   1,   1,   0  ! hCER01
+  15,   1,   2,   0  ! hCER02
+
+
+DETECTOR=15
+
+ROC=11
+
+SLOT=3
+   0,   1,   1,   0  ! hA01+
+   1,   1,   2,   0  ! hA02+
+   2,   1,   3,   0  ! hA03+
+   3,   1,   4,   0  ! hA04+
+   4,   1,   5,   0  ! hA05+
+   5,   1,   6,   0  ! hA06+
+   6,   1,   7,   0  ! hA07+
+   7,   1,   8,   0  ! hA08+
+   8,   1,   9,   0  ! hA09+
+   9,   1,  10,   0  ! hA10+
+  10,   1,  11,   0  ! hA11+
+  11,   1,  12,   0  ! hA12+
+  12,   1,  13,   0  ! hA13+
+  13,   1,   1,   1  ! hA01-
+  14,   1,   2,   1  ! hA02-
+  15,   1,   3,   1  ! hA03-
+
+SLOT=4
+   0,   1,   4,   1  ! hA04-
+   1,   1,   5,   1  ! hA05-
+   2,   1,   6,   1  ! hA06-
+   3,   1,   7,   1  ! hA07-
+   4,   1,   8,   1  ! hA08-
+   5,   1,   9,   1  ! hA09-
+   6,   1,  10,   1  ! hA10-
+   7,   1,  11,   1  ! hA11-
+   8,   1,  12,   1  ! hA12-
+   9,   1,  13,   1  ! hA13-
+  10,   2,   1,   0  ! hB01+
+  11,   2,   2,   0  ! hB02+
+  12,   2,   3,   0  ! hB03+
+  13,   2,   4,   0  ! hB04+
+  14,   2,   5,   0  ! hB05+
+  15,   2,   6,   0  ! hB06+
+
+SLOT=5
+   0,   2,   7,   0  ! hB07+
+   1,   2,   8,   0  ! hB08+
+   2,   2,   9,   0  ! hB09+
+   3,   2,  10,   0  ! hB10+
+   4,   2,  11,   0  ! hB11+
+   5,   2,  12,   0  ! hB12+
+   6,   2,  13,   0  ! hB13+
+   7,   2,   1,   1  ! hB01-
+   8,   2,   2,   1  ! hB02-
+   9,   2,   3,   1  ! hB03-
+  10,   2,   4,   1  ! hB04-
+  11,   2,   5,   1  ! hB05-
+  12,   2,   6,   1  ! hB06-
+  13,   2,   7,   1  ! hB07-
+  14,   2,   8,   1  ! hB08-
+  15,   2,   9,   1  ! hB09-
+
+SLOT=6
+   0,   2,  10,   1  ! hB10-
+   1,   2,  11,   1  ! hB11-
+   2,   2,  12,   1  ! hB12-
+   3,   2,  13,   1  ! hB13-
+   4,   3,   1,   0  ! hC01+
+   5,   3,   2,   0  ! hC02+
+   6,   3,   3,   0  ! hC03+
+   7,   3,   4,   0  ! hC04+
+   8,   3,   5,   0  ! hC05+
+   9,   3,   6,   0  ! hC06+
+  10,   3,   7,   0  ! hC07+
+  11,   3,   8,   0  ! hC08+
+  12,   3,   9,   0  ! hC09+
+  13,   3,  10,   0  ! hC10+
+  14,   3,  11,   0  ! hC11+
+  15,   3,  12,   0  ! hC12+
+
+SLOT=7
+   0,   3,  13,   0  ! hC13+
+   1,   4,   1,   0  ! hD01+
+   2,   4,   2,   0  ! hD02+
+   3,   4,   3,   0  ! hD03+
+   4,   4,   4,   0  ! hD04+
+   5,   4,   5,   0  ! hD05+
+   6,   4,   6,   0  ! hD06+
+   7,   4,   7,   0  ! hD07+
+   8,   4,   8,   0  ! hD08+
+   9,   4,   9,   0  ! hD09+
+  10,   4,  10,   0  ! hD10+
+  11,   4,  11,   0  ! hD11+
+  12,   4,  12,   0  ! hD12+
+  13,   4,  13,   0  ! hD13+
diff --git a/MAPS/HMS/DETEC/hraster_simple.map b/MAPS/HMS/DETEC/hraster_simple.map
new file mode 100644
index 00000000..5f27fa71
--- /dev/null
+++ b/MAPS/HMS/DETEC/hraster_simple.map
@@ -0,0 +1,18 @@
+!HMS:
+! THMS_ID=10    ADC,TDC
+
+! Plane = 1 >> ADC Only
+! Plane = 2 >> TDC Only
+
+detector=10
+
+ROC=1
+
+!F250 module
+SLOT=18
+! chan    plane     bar    sig
+     12,      1,      1,     0!  FR-XA
+     13,      1,      2,     0!  FR-XB
+     14,      1,      3,     0!  FR-YA
+     15,      1,      4,     0!  FR-YB
+
diff --git a/MAPS/HMS/DETEC/htrig.map b/MAPS/HMS/DETEC/htrig.map
index 215b7804..679c33f7 100644
--- a/MAPS/HMS/DETEC/htrig.map
+++ b/MAPS/HMS/DETEC/htrig.map
@@ -4,8 +4,7 @@
 ! Plane = 1 >> ADC Only
 ! Plane = 2 >> TDC Only
 
-
-detector=5
+detector=10
 
 ROC=1
 
@@ -45,4 +44,20 @@ SLOT=2
 SLOT=20
 ! D1
 ! chan    plane     bar    sig
-     127,     2,     17      1!  hT2
+     127,     2,     17,      1!  hT2
+
+ROC=3
+
+!CAEN1190 module
+SLOT=5
+! chan    plane     bar    sig
+     111,     2,     18,      1!  hDCREF1
+SLOT=8
+! chan    plane     bar    sig
+     127,     2,     19,      1!  hDCREF2
+SLOT=10
+! chan    plane     bar    sig
+     127,     2,     20,      1!  hDCREF3
+SLOT=17
+! chan    plane     bar    sig
+     127,     2,     21,      1!  hDCREF4
\ No newline at end of file
diff --git a/MAPS/SHMS/DETEC/paero.map b/MAPS/SHMS/DETEC/paero.map
new file mode 100644
index 00000000..86e3d37e
--- /dev/null
+++ b/MAPS/SHMS/DETEC/paero.map
@@ -0,0 +1,24 @@
+! PAERO_ID=25      ::  ::,ADC+,ADC-
+
+
+DETECTOR=25
+
+ROC=2
+
+SLOT=10
+  10,   1,   1,   0  ! pAER01+
+  11,   1,   2,   0  ! pAER02+
+  12,   1,   3,   0  ! pAER03+
+  13,   1,   4,   0  ! pAER04+
+  14,   1,   5,   0  ! pAER05+
+  15,   1,   6,   0  ! pAER06+
+
+SLOT=13
+   0,   1,   7,   0  ! pAER07+
+   1,   1,   1,   1  ! pAER01-
+   2,   1,   2,   1  ! pAER02-
+   3,   1,   3,   1  ! pAER03-
+   4,   1,   4,   1  ! pAER04-
+   5,   1,   5,   1  ! pAER05-
+   6,   1,   6,   1  ! pAER06-
+   7,   1,   7,   1  ! pAER07-
diff --git a/MAPS/SHMS/DETEC/paero_ptrig.map b/MAPS/SHMS/DETEC/paero_ptrig.map
new file mode 100644
index 00000000..4371a2f3
--- /dev/null
+++ b/MAPS/SHMS/DETEC/paero_ptrig.map
@@ -0,0 +1,83 @@
+! TSHMS_ID=20      ::  ::,ADC,TDC
+! PAERO_ID=25      ::  ::,ADC,TDC
+
+
+DETECTOR=20
+
+ROC=2
+
+SLOT=14
+   0,   1,   1,   0  ! pAERSUM
+   1,   1,   2,   0  ! pHGCSUM
+   2,   1,   3,   0  ! pNGCSUM
+
+SLOT=20
+  15,   2,   1,   1  ! pT1
+
+SLOT=19
+  31,   2,   2,   1  ! pT2
+  32,   2,   3,   1  ! p1X
+  33,   2,   4,   1  ! p1Y
+  34,   2,   5,   1  ! p2X
+  35,   2,   6,   1  ! p2Y
+  36,   2,   7,   1  ! p1T
+  37,   2,   8,   1  ! p2T
+  38,   2,   9,   1  ! pT3
+  39,   2,  10,   1  ! pAERSUM
+  40,   2,  11,   1  ! pHGCSUM
+  41,   2,  12,   1  ! pNGCSUM
+
+ROC=6
+
+SLOT=6
+  79,   2,  13,   1  ! pDCREF1
+
+SLOT=7
+  79,   2,  14,   1  ! pDCREF2
+
+SLOT=8
+  79,   2,  15,   1  ! pDCREF3
+
+SLOT=9
+  79,   2,  16,   1  ! pDCREF4
+
+SLOT=10
+  79,   2,  17,   1  ! pDCREF5
+
+SLOT=11
+  47,   2,  18,   1  ! pDCREF6
+
+SLOT=12
+  47,   2,  19,   1  ! pDCREF7
+
+SLOT=13
+  47,   2,  20,   1  ! pDCREF8
+
+SLOT=14
+  15,   2,  21,   1  ! pDCREF9
+
+SLOT=15
+  47,   2,  22,   1  ! pDCREF10
+
+
+DETECTOR=25
+
+ROC=2
+
+SLOT=10
+  10,   1,   1,   0  ! pAER01+
+  11,   1,   2,   0  ! pAER02+
+  12,   1,   3,   0  ! pAER03+
+  13,   1,   4,   0  ! pAER04+
+  14,   1,   5,   0  ! pAER05+
+  15,   1,   6,   0  ! pAER06+
+
+SLOT=13
+   0,   1,   7,   0  ! pAER07+
+   1,   1,   1,   1  ! pAER01-
+   2,   1,   2,   1  ! pAER02-
+   3,   1,   3,   1  ! pAER03-
+   4,   1,   4,   1  ! pAER04-
+   5,   1,   5,   1  ! pAER05-
+   6,   1,   6,   1  ! pAER06-
+   7,   1,   7,   1  ! pAER07-
diff --git a/MAPS/SHMS/DETEC/pcal.map b/MAPS/SHMS/DETEC/pcal.map
index e833bfba..96f05754 100644
--- a/MAPS/SHMS/DETEC/pcal.map
+++ b/MAPS/SHMS/DETEC/pcal.map
@@ -1,291 +1,290 @@
-!SHMS
-! SCAL_ID=26              ADC
+! PCAL_ID=26       ::  ADC
+
+
+DETECTOR=26
 
 ROC=4
-detector=26
 
-!F250 modules
 SLOT=3
-! chan   plane    row      sig
-0, 1, 1, 0
-1, 1, 2, 0
-2, 1, 3, 0
-3, 1, 4, 0
-4, 1, 5, 0
-5, 1, 6, 0
-6, 1, 7, 0
-7, 1, 8, 0
-8, 1, 9, 0
-9, 1, 10, 0
-10, 1, 11, 0
-11, 1, 12, 0
-12, 1, 13, 0
-13, 1, 14, 0
+   0,   1,   1,   0  ! pPRSH1+
+   1,   1,   2,   0  ! pPRSH2+
+   2,   1,   3,   0  ! pPRSH3+
+   3,   1,   4,   0  ! pPRSH4+
+   4,   1,   5,   0  ! pPRSH5+
+   5,   1,   6,   0  ! pPRSH6+
+   6,   1,   7,   0  ! pPRSH7+
+   7,   1,   8,   0  ! pPRSH8+
+   8,   1,   9,   0  ! pPRSH9+
+   9,   1,  10,   0  ! pPRSH10+
+  10,   1,  11,   0  ! pPRSH11+
+  11,   1,  12,   0  ! pPRSH12+
+  12,   1,  13,   0  ! pPRSH13+
+  13,   1,  14,   0  ! pPRSH14+
+
 SLOT=4
-! chan   plane    row      sig
-0, 1, 1, 1
-1, 1, 2, 1
-2, 1, 3, 1
-3, 1, 4, 1
-4, 1, 5, 1
-5, 1, 6, 1
-6, 1, 7, 1
-7, 1, 8, 1
-8, 1, 9, 1
-9, 1, 10, 1
-10, 1, 11, 1
-11, 1, 12, 1
-12, 1, 13, 1
-13, 1, 14, 1
+   0,   1,   1,   1  ! pPRSH1-
+   1,   1,   2,   1  ! pPRSH2-
+   2,   1,   3,   1  ! pPRSH3-
+   3,   1,   4,   1  ! pPRSH4-
+   4,   1,   5,   1  ! pPRSH5-
+   5,   1,   6,   1  ! pPRSH6-
+   6,   1,   7,   1  ! pPRSH7-
+   7,   1,   8,   1  ! pPRSH8-
+   8,   1,   9,   1  ! pPRSH9-
+   9,   1,  10,   1  ! pPRSH10-
+  10,   1,  11,   1  ! pPRSH11-
+  11,   1,  12,   1  ! pPRSH12-
+  12,   1,  13,   1  ! pPRSH13-
+  13,   1,  14,   1  ! pPRSH14-
+
 SLOT=5
-! chan   plane    row      sig
-0, 2, 1, 0 ! Row 1, Column 1
-1, 2, 2, 0 ! Row 2, Column 1
-2, 2, 3, 0 ! Row 3, Column 1
-3, 2, 4, 0 ! Row 4, Column 1
-4, 2, 5, 0 ! Row 5, Column 1
-5, 2, 6, 0 ! Row 6, Column 1
-6, 2, 7, 0 ! Row 7, Column 1
-7, 2, 8, 0 ! Row 8, Column 1
-8, 2, 9, 0 ! Row 9, Column 1
-9, 2, 10, 0 ! Row 10, Column 1
-10, 2, 11, 0 ! Row 11, Column 1
-11, 2, 12, 0 ! Row 12, Column 1
-12, 2, 13, 0 ! Row 13, Column 1
-13, 2, 14, 0 ! Row 14, Column 1
-14, 2, 15, 0 ! Row 15, Column 1
-15, 2, 16, 0 ! Row 16, Column 1
+   0,   2,   1,   0  ! Row 1, Column 1
+   1,   2,   2,   0  ! Row 2, Column 1
+   2,   2,   3,   0  ! Row 3, Column 1
+   3,   2,   4,   0  ! Row 4, Column 1
+   4,   2,   5,   0  ! Row 5, Column 1
+   5,   2,   6,   0  ! Row 6, Column 1
+   6,   2,   7,   0  ! Row 7, Column 1
+   7,   2,   8,   0  ! Row 8, Column 1
+   8,   2,   9,   0  ! Row 9, Column 1
+   9,   2,  10,   0  ! Row 10, Column 1
+  10,   2,  11,   0  ! Row 11, Column 1
+  11,   2,  12,   0  ! Row 12, Column 1
+  12,   2,  13,   0  ! Row 13, Column 1
+  13,   2,  14,   0  ! Row 14, Column 1
+  14,   2,  15,   0  ! Row 15, Column 1
+  15,   2,  16,   0  ! Row 16, Column 1
+
 SLOT=6
-! chan   plane    row      sig
-0, 2, 17, 0 ! Row 1, Column 2
-1, 2, 18, 0 ! Row 2, Column 2
-2, 2, 19, 0 ! Row 3, Column 2
-3, 2, 20, 0 ! Row 4, Column 2
-4, 2, 21, 0 ! Row 5, Column 2
-5, 2, 22, 0 ! Row 6, Column 2
-6, 2, 23, 0 ! Row 7, Column 2
-7, 2, 24, 0 ! Row 8, Column 2
-8, 2, 25, 0 ! Row 9, Column 2
-9, 2, 26, 0 ! Row 10, Column 2
-10, 2, 27, 0 ! Row 11, Column 2
-11, 2, 28, 0 ! Row 12, Column 2
-12, 2, 29, 0 ! Row 13, Column 2
-13, 2, 30, 0 ! Row 14, Column 2
-14, 2, 31, 0 ! Row 15, Column 2
-15, 2, 32, 0 ! Row 16, Column 2
+   0,   2,  17,   0  ! Row 1, Column 2
+   1,   2,  18,   0  ! Row 2, Column 2
+   2,   2,  19,   0  ! Row 3, Column 2
+   3,   2,  20,   0  ! Row 4, Column 2
+   4,   2,  21,   0  ! Row 5, Column 2
+   5,   2,  22,   0  ! Row 6, Column 2
+   6,   2,  23,   0  ! Row 7, Column 2
+   7,   2,  24,   0  ! Row 8, Column 2
+   8,   2,  25,   0  ! Row 9, Column 2
+   9,   2,  26,   0  ! Row 10, Column 2
+  10,   2,  27,   0  ! Row 11, Column 2
+  11,   2,  28,   0  ! Row 12, Column 2
+  12,   2,  29,   0  ! Row 13, Column 2
+  13,   2,  30,   0  ! Row 14, Column 2
+  14,   2,  31,   0  ! Row 15, Column 2
+  15,   2,  32,   0  ! Row 16, Column 2
+
 SLOT=7
-! chan   plane    row      sig
-0, 2, 33, 0 ! Row 1, Column 3
-1, 2, 34, 0 ! Row 2, Column 3
-2, 2, 35, 0 ! Row 3, Column 3
-3, 2, 36, 0 ! Row 4, Column 3
-4, 2, 37, 0 ! Row 5, Column 3
-5, 2, 38, 0 ! Row 6, Column 3
-6, 2, 39, 0 ! Row 7, Column 3
-7, 2, 40, 0 ! Row 8, Column 3
-8, 2, 41, 0 ! Row 9, Column 3
-9, 2, 42, 0 ! Row 10, Column 3
-10, 2, 43, 0 ! Row 11, Column 3
-11, 2, 44, 0 ! Row 12, Column 3
-12, 2, 45, 0 ! Row 13, Column 3
-13, 2, 46, 0 ! Row 14, Column 3
-14, 2, 47, 0 ! Row 15, Column 3
-15, 2, 48, 0 ! Row 16, Column 3
+   0,   2,  33,   0  ! Row 1, Column 3
+   1,   2,  34,   0  ! Row 2, Column 3
+   2,   2,  35,   0  ! Row 3, Column 3
+   3,   2,  36,   0  ! Row 4, Column 3
+   4,   2,  37,   0  ! Row 5, Column 3
+   5,   2,  38,   0  ! Row 6, Column 3
+   6,   2,  39,   0  ! Row 7, Column 3
+   7,   2,  40,   0  ! Row 8, Column 3
+   8,   2,  41,   0  ! Row 9, Column 3
+   9,   2,  42,   0  ! Row 10, Column 3
+  10,   2,  43,   0  ! Row 11, Column 3
+  11,   2,  44,   0  ! Row 12, Column 3
+  12,   2,  45,   0  ! Row 13, Column 3
+  13,   2,  46,   0  ! Row 14, Column 3
+  14,   2,  47,   0  ! Row 15, Column 3
+  15,   2,  48,   0  ! Row 16, Column 3
+
 SLOT=8
-! chan   plane    row      sig
-0, 2, 49, 0 ! Row 1, Column 4
-1, 2, 50, 0 ! Row 2, Column 4
-2, 2, 51, 0 ! Row 3, Column 4
-3, 2, 52, 0 ! Row 4, Column 4
-4, 2, 53, 0 ! Row 5, Column 4
-5, 2, 54, 0 ! Row 6, Column 4
-6, 2, 55, 0 ! Row 7, Column 4
-7, 2, 56, 0 ! Row 8, Column 4
-8, 2, 57, 0 ! Row 9, Column 4
-9, 2, 58, 0 ! Row 10, Column 4
-10, 2, 59, 0 ! Row 11, Column 4
-11, 2, 60, 0 ! Row 12, Column 4
-12, 2, 61, 0 ! Row 13, Column 4
-13, 2, 62, 0 ! Row 14, Column 4
-14, 2, 63, 0 ! Row 15, Column 4
-15, 2, 64, 0 ! Row 16, Column 4
+   0,   2,  49,   0  ! Row 1, Column 4
+   1,   2,  50,   0  ! Row 2, Column 4
+   2,   2,  51,   0  ! Row 3, Column 4
+   3,   2,  52,   0  ! Row 4, Column 4
+   4,   2,  53,   0  ! Row 5, Column 4
+   5,   2,  54,   0  ! Row 6, Column 4
+   6,   2,  55,   0  ! Row 7, Column 4
+   7,   2,  56,   0  ! Row 8, Column 4
+   8,   2,  57,   0  ! Row 9, Column 4
+   9,   2,  58,   0  ! Row 10, Column 4
+  10,   2,  59,   0  ! Row 11, Column 4
+  11,   2,  60,   0  ! Row 12, Column 4
+  12,   2,  61,   0  ! Row 13, Column 4
+  13,   2,  62,   0  ! Row 14, Column 4
+  14,   2,  63,   0  ! Row 15, Column 4
+  15,   2,  64,   0  ! Row 16, Column 4
+
 SLOT=9
-! chan   plane    row      sig
-0, 2, 65, 0 ! Row 1, Column 5
-1, 2, 66, 0 ! Row 2, Column 5
-2, 2, 67, 0 ! Row 3, Column 5
-3, 2, 68, 0 ! Row 4, Column 5
-4, 2, 69, 0 ! Row 5, Column 5
-5, 2, 70, 0 ! Row 6, Column 5
-6, 2, 71, 0 ! Row 7, Column 5
-7, 2, 72, 0 ! Row 8, Column 5
-8, 2, 73, 0 ! Row 9, Column 5
-9, 2, 74, 0 ! Row 10, Column 5
-10, 2, 75, 0 ! Row 11, Column 5
-11, 2, 76, 0 ! Row 12, Column 5
-12, 2, 77, 0 ! Row 13, Column 5
-13, 2, 78, 0 ! Row 14, Column 5
-14, 2, 79, 0 ! Row 15, Column 5
-15, 2, 80, 0 ! Row 16, Column 5
+   0,   2,  65,   0  ! Row 1, Column 5
+   1,   2,  66,   0  ! Row 2, Column 5
+   2,   2,  67,   0  ! Row 3, Column 5
+   3,   2,  68,   0  ! Row 4, Column 5
+   4,   2,  69,   0  ! Row 5, Column 5
+   5,   2,  70,   0  ! Row 6, Column 5
+   6,   2,  71,   0  ! Row 7, Column 5
+   7,   2,  72,   0  ! Row 8, Column 5
+   8,   2,  73,   0  ! Row 9, Column 5
+   9,   2,  74,   0  ! Row 10, Column 5
+  10,   2,  75,   0  ! Row 11, Column 5
+  11,   2,  76,   0  ! Row 12, Column 5
+  12,   2,  77,   0  ! Row 13, Column 5
+  13,   2,  78,   0  ! Row 14, Column 5
+  14,   2,  79,   0  ! Row 15, Column 5
+  15,   2,  80,   0  ! Row 16, Column 5
+
 SLOT=10
-! chan   plane    row      sig
-0, 2, 81, 0 ! Row 1, Column 6
-1, 2, 82, 0 ! Row 2, Column 6
-2, 2, 83, 0 ! Row 3, Column 6
-3, 2, 84, 0 ! Row 4, Column 6
-4, 2, 85, 0 ! Row 5, Column 6
-5, 2, 86, 0 ! Row 6, Column 6
-6, 2, 87, 0 ! Row 7, Column 6
-7, 2, 88, 0 ! Row 8, Column 6
-8, 2, 89, 0 ! Row 9, Column 6
-9, 2, 90, 0 ! Row 10, Column 6
-10, 2, 91, 0 ! Row 11, Column 6
-11, 2, 92, 0 ! Row 12, Column 6
-12, 2, 93, 0 ! Row 13, Column 6
-13, 2, 94, 0 ! Row 14, Column 6
-14, 2, 95, 0 ! Row 15, Column 6
-15, 2, 96, 0 ! Row 16, Column 6
+   0,   2,  81,   0  ! Row 1, Column 6
+   1,   2,  82,   0  ! Row 2, Column 6
+   2,   2,  83,   0  ! Row 3, Column 6
+   3,   2,  84,   0  ! Row 4, Column 6
+   4,   2,  85,   0  ! Row 5, Column 6
+   5,   2,  86,   0  ! Row 6, Column 6
+   6,   2,  87,   0  ! Row 7, Column 6
+   7,   2,  88,   0  ! Row 8, Column 6
+   8,   2,  89,   0  ! Row 9, Column 6
+   9,   2,  90,   0  ! Row 10, Column 6
+  10,   2,  91,   0  ! Row 11, Column 6
+  11,   2,  92,   0  ! Row 12, Column 6
+  12,   2,  93,   0  ! Row 13, Column 6
+  13,   2,  94,   0  ! Row 14, Column 6
+  14,   2,  95,   0  ! Row 15, Column 6
+  15,   2,  96,   0  ! Row 16, Column 6
+
 SLOT=13
-! chan   plane    row      sig
-0, 2, 97, 0 ! Row 1, Column 7
-1, 2, 98, 0 ! Row 2, Column 7
-2, 2, 99, 0 ! Row 3, Column 7
-3, 2, 100, 0 ! Row 4, Column 7
-4, 2, 101, 0 ! Row 5, Column 7
-5, 2, 102, 0 ! Row 6, Column 7
-6, 2, 103, 0 ! Row 7, Column 7
-7, 2, 104, 0 ! Row 8, Column 7
-8, 2, 105, 0 ! Row 9, Column 7
-9, 2, 106, 0 ! Row 10, Column 7
-10, 2, 107, 0 ! Row 11, Column 7
-11, 2, 108, 0 ! Row 12, Column 7
-12, 2, 109, 0 ! Row 13, Column 7
-13, 2, 110, 0 ! Row 14, Column 7
-14, 2, 111, 0 ! Row 15, Column 7
-15, 2, 112, 0 ! Row 16, Column 7
+   0,   2,  97,   0  ! Row 1, Column 7
+   1,   2,  98,   0  ! Row 2, Column 7
+   2,   2,  99,   0  ! Row 3, Column 7
+   3,   2, 100,   0  ! Row 4, Column 7
+   4,   2, 101,   0  ! Row 5, Column 7
+   5,   2, 102,   0  ! Row 6, Column 7
+   6,   2, 103,   0  ! Row 7, Column 7
+   7,   2, 104,   0  ! Row 8, Column 7
+   8,   2, 105,   0  ! Row 9, Column 7
+   9,   2, 106,   0  ! Row 10, Column 7
+  10,   2, 107,   0  ! Row 11, Column 7
+  11,   2, 108,   0  ! Row 12, Column 7
+  12,   2, 109,   0  ! Row 13, Column 7
+  13,   2, 110,   0  ! Row 14, Column 7
+  14,   2, 111,   0  ! Row 15, Column 7
+  15,   2, 112,   0  ! Row 16, Column 7
+
 SLOT=14
-! chan   plane    row      sig
-0, 2, 113, 0 ! Row 1, Column 8
-1, 2, 114, 0 ! Row 2, Column 8
-2, 2, 115, 0 ! Row 3, Column 8
-3, 2, 116, 0 ! Row 4, Column 8
-4, 2, 117, 0 ! Row 5, Column 8
-5, 2, 118, 0 ! Row 6, Column 8
-6, 2, 119, 0 ! Row 7, Column 8
-7, 2, 120, 0 ! Row 8, Column 8
-8, 2, 121, 0 ! Row 9, Column 8
-9, 2, 122, 0 ! Row 10, Column 8
-10, 2, 123, 0 ! Row 11, Column 8
-11, 2, 124, 0 ! Row 12, Column 8
-12, 2, 125, 0 ! Row 13, Column 8
-13, 2, 126, 0 ! Row 14, Column 8
-14, 2, 127, 0 ! Row 15, Column 8
-15, 2, 128, 0 ! Row 16, Column 8
+   0,   2, 113,   0  ! Row 1, Column 8
+   1,   2, 114,   0  ! Row 2, Column 8
+   2,   2, 115,   0  ! Row 3, Column 8
+   3,   2, 116,   0  ! Row 4, Column 8
+   4,   2, 117,   0  ! Row 5, Column 8
+   5,   2, 118,   0  ! Row 6, Column 8
+   6,   2, 119,   0  ! Row 7, Column 8
+   7,   2, 120,   0  ! Row 8, Column 8
+   8,   2, 121,   0  ! Row 9, Column 8
+   9,   2, 122,   0  ! Row 10, Column 8
+  10,   2, 123,   0  ! Row 11, Column 8
+  11,   2, 124,   0  ! Row 12, Column 8
+  12,   2, 125,   0  ! Row 13, Column 8
+  13,   2, 126,   0  ! Row 14, Column 8
+  14,   2, 127,   0  ! Row 15, Column 8
+  15,   2, 128,   0  ! Row 16, Column 8
+
 SLOT=15
-! chan   plane    row      sig
-0, 2, 129, 0 ! Row 1, Column 9
-1, 2, 130, 0 ! Row 2, Column 9
-2, 2, 131, 0 ! Row 3, Column 9
-3, 2, 132, 0 ! Row 4, Column 9
-4, 2, 133, 0 ! Row 5, Column 9
-5, 2, 134, 0 ! Row 6, Column 9
-6, 2, 135, 0 ! Row 7, Column 9
-7, 2, 136, 0 ! Row 8, Column 9
-8, 2, 137, 0 ! Row 9, Column 9
-9, 2, 138, 0 ! Row 10, Column 9
-10, 2, 139, 0 ! Row 11, Column 9
-11, 2, 140, 0 ! Row 12, Column 9
-12, 2, 141, 0 ! Row 13, Column 9
-13, 2, 142, 0 ! Row 14, Column 9
-14, 2, 143, 0 ! Row 15, Column 9
-15, 2, 144, 0 ! Row 16, Column 9
+   0,   2, 129,   0  ! Row 1, Column 9
+   1,   2, 130,   0  ! Row 2, Column 9
+   2,   2, 131,   0  ! Row 3, Column 9
+   3,   2, 132,   0  ! Row 4, Column 9
+   4,   2, 133,   0  ! Row 5, Column 9
+   5,   2, 134,   0  ! Row 6, Column 9
+   6,   2, 135,   0  ! Row 7, Column 9
+   7,   2, 136,   0  ! Row 8, Column 9
+   8,   2, 137,   0  ! Row 9, Column 9
+   9,   2, 138,   0  ! Row 10, Column 9
+  10,   2, 139,   0  ! Row 11, Column 9
+  11,   2, 140,   0  ! Row 12, Column 9
+  12,   2, 141,   0  ! Row 13, Column 9
+  13,   2, 142,   0  ! Row 14, Column 9
+  14,   2, 143,   0  ! Row 15, Column 9
+  15,   2, 144,   0  ! Row 16, Column 9
+
 SLOT=16
-! chan   plane    row      sig
-0, 2, 145, 0 ! Row 1, Column 10
-1, 2, 146, 0 ! Row 2, Column 10
-2, 2, 147, 0 ! Row 3, Column 10
-3, 2, 148, 0 ! Row 4, Column 10
-4, 2, 149, 0 ! Row 5, Column 10
-5, 2, 150, 0 ! Row 6, Column 10
-6, 2, 151, 0 ! Row 7, Column 10
-7, 2, 152, 0 ! Row 8, Column 10
-8, 2, 153, 0 ! Row 9, Column 10
-9, 2, 154, 0 ! Row 10, Column 10
-10, 2, 155, 0 ! Row 11, Column 10
-11, 2, 156, 0 ! Row 12, Column 10
-12, 2, 157, 0 ! Row 13, Column 10
-13, 2, 158, 0 ! Row 14, Column 10
-14, 2, 159, 0 ! Row 15, Column 10
-15, 2, 160, 0 ! Row 16, Column 10
+   0,   2, 145,   0  ! Row 1, Column 10
+   1,   2, 146,   0  ! Row 2, Column 10
+   2,   2, 147,   0  ! Row 3, Column 10
+   3,   2, 148,   0  ! Row 4, Column 10
+   4,   2, 149,   0  ! Row 5, Column 10
+   5,   2, 150,   0  ! Row 6, Column 10
+   6,   2, 151,   0  ! Row 7, Column 10
+   7,   2, 152,   0  ! Row 8, Column 10
+   8,   2, 153,   0  ! Row 9, Column 10
+   9,   2, 154,   0  ! Row 10, Column 10
+  10,   2, 155,   0  ! Row 11, Column 10
+  11,   2, 156,   0  ! Row 12, Column 10
+  12,   2, 157,   0  ! Row 13, Column 10
+  13,   2, 158,   0  ! Row 14, Column 10
+  14,   2, 159,   0  ! Row 15, Column 10
+  15,   2, 160,   0  ! Row 16, Column 10
+
 SLOT=17
-! chan   plane    row      sig
-0, 2, 161, 0 ! Row 1, Column 11
-1, 2, 162, 0 ! Row 2, Column 11
-2, 2, 163, 0 ! Row 3, Column 11
-3, 2, 164, 0 ! Row 4, Column 11
-4, 2, 165, 0 ! Row 5, Column 11
-5, 2, 166, 0 ! Row 6, Column 11
-6, 2, 167, 0 ! Row 7, Column 11
-7, 2, 168, 0 ! Row 8, Column 11
-8, 2, 169, 0 ! Row 9, Column 11
-9, 2, 170, 0 ! Row 10, Column 11
-10, 2, 171, 0 ! Row 11, Column 11
-11, 2, 172, 0 ! Row 12, Column 11
-12, 2, 173, 0 ! Row 13, Column 11
-13, 2, 174, 0 ! Row 14, Column 11
-14, 2, 175, 0 ! Row 15, Column 11
-15, 2, 176, 0 ! Row 16, Column 11
+   0,   2, 161,   0  ! Row 1, Column 11
+   1,   2, 162,   0  ! Row 2, Column 11
+   2,   2, 163,   0  ! Row 3, Column 11
+   3,   2, 164,   0  ! Row 4, Column 11
+   4,   2, 165,   0  ! Row 5, Column 11
+   5,   2, 166,   0  ! Row 6, Column 11
+   6,   2, 167,   0  ! Row 7, Column 11
+   7,   2, 168,   0  ! Row 8, Column 11
+   8,   2, 169,   0  ! Row 9, Column 11
+   9,   2, 170,   0  ! Row 10, Column 11
+  10,   2, 171,   0  ! Row 11, Column 11
+  11,   2, 172,   0  ! Row 12, Column 11
+  12,   2, 173,   0  ! Row 13, Column 11
+  13,   2, 174,   0  ! Row 14, Column 11
+  14,   2, 175,   0  ! Row 15, Column 11
+  15,   2, 176,   0  ! Row 16, Column 11
+
 SLOT=18
-! chan   plane    row      sig
-0, 2, 177, 0 ! Row 1, Column 12
-1, 2, 178, 0 ! Row 2, Column 12
-2, 2, 179, 0 ! Row 3, Column 12
-3, 2, 180, 0 ! Row 4, Column 12
-4, 2, 181, 0 ! Row 5, Column 12
-5, 2, 182, 0 ! Row 6, Column 12
-6, 2, 183, 0 ! Row 7, Column 12
-7, 2, 184, 0 ! Row 8, Column 12
-8, 2, 185, 0 ! Row 9, Column 12
-9, 2, 186, 0 ! Row 10, Column 12
-10, 2, 187, 0 ! Row 11, Column 12
-11, 2, 188, 0 ! Row 12, Column 12
-12, 2, 189, 0 ! Row 13, Column 12
-13, 2, 190, 0 ! Row 14, Column 12
-14, 2, 191, 0 ! Row 15, Column 12
-15, 2, 192, 0 ! Row 16, Column 12
+   0,   2, 177,   0  ! Row 1, Column 12
+   1,   2, 178,   0  ! Row 2, Column 12
+   2,   2, 179,   0  ! Row 3, Column 12
+   3,   2, 180,   0  ! Row 4, Column 12
+   4,   2, 181,   0  ! Row 5, Column 12
+   5,   2, 182,   0  ! Row 6, Column 12
+   6,   2, 183,   0  ! Row 7, Column 12
+   7,   2, 184,   0  ! Row 8, Column 12
+   8,   2, 185,   0  ! Row 9, Column 12
+   9,   2, 186,   0  ! Row 10, Column 12
+  10,   2, 187,   0  ! Row 11, Column 12
+  11,   2, 188,   0  ! Row 12, Column 12
+  12,   2, 189,   0  ! Row 13, Column 12
+  13,   2, 190,   0  ! Row 14, Column 12
+  14,   2, 191,   0  ! Row 15, Column 12
+  15,   2, 192,   0  ! Row 16, Column 12
+
 SLOT=19
-! chan   plane    row      sig
-0, 2, 193, 0 ! Row 1, Column 13
-1, 2, 194, 0 ! Row 2, Column 13
-2, 2, 195, 0 ! Row 3, Column 13
-3, 2, 196, 0 ! Row 4, Column 13
-4, 2, 197, 0 ! Row 5, Column 13
-5, 2, 198, 0 ! Row 6, Column 13
-6, 2, 199, 0 ! Row 7, Column 13
-7, 2, 200, 0 ! Row 8, Column 13
-8, 2, 201, 0 ! Row 9, Column 13
-9, 2, 202, 0 ! Row 10, Column 13
-10, 2, 203, 0 ! Row 11, Column 13
-11, 2, 204, 0 ! Row 12, Column 13
-12, 2, 205, 0 ! Row 13, Column 13
-13, 2, 206, 0 ! Row 14, Column 13
-14, 2, 207, 0 ! Row 15, Column 13
-15, 2, 208, 0 ! Row 16, Column 13
+   0,   2, 193,   0  ! Row 1, Column 13
+   1,   2, 194,   0  ! Row 2, Column 13
+   2,   2, 195,   0  ! Row 3, Column 13
+   3,   2, 196,   0  ! Row 4, Column 13
+   4,   2, 197,   0  ! Row 5, Column 13
+   5,   2, 198,   0  ! Row 6, Column 13
+   6,   2, 199,   0  ! Row 7, Column 13
+   7,   2, 200,   0  ! Row 8, Column 13
+   8,   2, 201,   0  ! Row 9, Column 13
+   9,   2, 202,   0  ! Row 10, Column 13
+  10,   2, 203,   0  ! Row 11, Column 13
+  11,   2, 204,   0  ! Row 12, Column 13
+  12,   2, 205,   0  ! Row 13, Column 13
+  13,   2, 206,   0  ! Row 14, Column 13
+  14,   2, 207,   0  ! Row 15, Column 13
+  15,   2, 208,   0  ! Row 16, Column 13
+
 SLOT=20
-! chan   plane    row      sig
-0, 2, 209, 0 ! Row 1, Column 14
-1, 2, 210, 0 ! Row 2, Column 14
-2, 2, 211, 0 ! Row 3, Column 14
-3, 2, 212, 0 ! Row 4, Column 14
-4, 2, 213, 0 ! Row 5, Column 14
-5, 2, 214, 0 ! Row 6, Column 14
-6, 2, 215, 0 ! Row 7, Column 14
-7, 2, 216, 0 ! Row 8, Column 14
-8, 2, 217, 0 ! Row 9, Column 14
-9, 2, 218, 0 ! Row 10, Column 14
-10, 2, 219, 0 ! Row 11, Column 14
-11, 2, 220, 0 ! Row 12, Column 14
-12, 2, 221, 0 ! Row 13, Column 14
-13, 2, 222, 0 ! Row 14, Column 14
-14, 2, 223, 0 ! Row 15, Column 14
-15, 2, 224, 0 ! Row 16, Column 14
\ No newline at end of file
+   0,   2, 209,   0  ! Row 1, Column 14
+   1,   2, 210,   0  ! Row 2, Column 14
+   2,   2, 211,   0  ! Row 3, Column 14
+   3,   2, 212,   0  ! Row 4, Column 14
+   4,   2, 213,   0  ! Row 5, Column 14
+   5,   2, 214,   0  ! Row 6, Column 14
+   6,   2, 215,   0  ! Row 7, Column 14
+   7,   2, 216,   0  ! Row 8, Column 14
+   8,   2, 217,   0  ! Row 9, Column 14
+   9,   2, 218,   0  ! Row 10, Column 14
+  10,   2, 219,   0  ! Row 11, Column 14
+  11,   2, 220,   0  ! Row 12, Column 14
+  12,   2, 221,   0  ! Row 13, Column 14
+  13,   2, 222,   0  ! Row 14, Column 14
+  14,   2, 223,   0  ! Row 15, Column 14
+  15,   2, 224,   0  ! Row 16, Column 14
diff --git a/MAPS/SHMS/DETEC/pdc.map b/MAPS/SHMS/DETEC/pdc.map
index 1125f423..fec250e4 100644
--- a/MAPS/SHMS/DETEC/pdc.map
+++ b/MAPS/SHMS/DETEC/pdc.map
@@ -1,1232 +1,1337 @@
-!SHMS:
-! PDC_ID=21               TDC
+! PDC_ID=22        ::  TDC
+
+
+DETECTOR=22  ! SHMS chambers
 
 ROC=6
-detector=21 ! SHMS chambers
 
-! Caen 1190 VME Modules >> DC1
 SLOT=9
-77,1,1 ! Plane U, wire 1
-76,1,2 ! Plane U, wire 2
-75,1,3 ! Plane U, wire 3
-74,1,4 ! Plane U, wire 4
-73,1,5 ! Plane U, wire 5
-72,1,6 ! Plane U, wire 6
-71,1,7 ! Plane U, wire 7
-70,1,8 ! Plane U, wire 8
-69,1,9 ! Plane U, wire 9
-68,1,10 ! Plane U, wire 10
-67,1,11 ! Plane U, wire 11
-66,1,12 ! Plane U, wire 12
-65,1,13 ! Plane U, wire 13
-64,1,14 ! Plane U, wire 14
+REFCHAN=79
+  78,   1,   1  ! DC1, Plane U, wire 1
+  77,   1,   2  ! DC1, Plane U, wire 2
+  76,   1,   3  ! DC1, Plane U, wire 3
+  75,   1,   4  ! DC1, Plane U, wire 4
+  74,   1,   5  ! DC1, Plane U, wire 5
+  73,   1,   6  ! DC1, Plane U, wire 6
+  72,   1,   7  ! DC1, Plane U, wire 7
+  71,   1,   8  ! DC1, Plane U, wire 8
+  70,   1,   9  ! DC1, Plane U, wire 9
+  69,   1,  10  ! DC1, Plane U, wire 10
+  68,   1,  11  ! DC1, Plane U, wire 11
+  67,   1,  12  ! DC1, Plane U, wire 12
+  66,   1,  13  ! DC1, Plane U, wire 13
+  65,   1,  14  ! DC1, Plane U, wire 14
+  64,   1,  15  ! DC1, Plane U, wire 15
+
 SLOT=7
-31,1,15 ! Plane U, wire 15
-30,1,16 ! Plane U, wire 16
-29,1,17 ! Plane U, wire 17
-28,1,18 ! Plane U, wire 18
-27,1,19 ! Plane U, wire 19
-26,1,20 ! Plane U, wire 20
-25,1,21 ! Plane U, wire 21
-24,1,22 ! Plane U, wire 22
-23,1,23 ! Plane U, wire 23
-22,1,24 ! Plane U, wire 24
-21,1,25 ! Plane U, wire 25
-20,1,26 ! Plane U, wire 26
-19,1,27 ! Plane U, wire 27
-18,1,28 ! Plane U, wire 28
-17,1,29 ! Plane U, wire 29
-16,1,30 ! Plane U, wire 30
+REFCHAN=79
+  31,   1,  16  ! DC1, Plane U, wire 16
+  30,   1,  17  ! DC1, Plane U, wire 17
+  29,   1,  18  ! DC1, Plane U, wire 18
+  28,   1,  19  ! DC1, Plane U, wire 19
+  27,   1,  20  ! DC1, Plane U, wire 20
+  26,   1,  21  ! DC1, Plane U, wire 21
+  25,   1,  22  ! DC1, Plane U, wire 22
+  24,   1,  23  ! DC1, Plane U, wire 23
+  23,   1,  24  ! DC1, Plane U, wire 24
+  22,   1,  25  ! DC1, Plane U, wire 25
+  21,   1,  26  ! DC1, Plane U, wire 26
+  20,   1,  27  ! DC1, Plane U, wire 27
+  19,   1,  28  ! DC1, Plane U, wire 28
+  18,   1,  29  ! DC1, Plane U, wire 29
+  17,   1,  30  ! DC1, Plane U, wire 30
+  16,   1,  31  ! DC1, Plane U, wire 31
+
 SLOT=6
-95,1,31 ! Plane U, wire 31
-94,1,32 ! Plane U, wire 32
-93,1,33 ! Plane U, wire 33
-92,1,34 ! Plane U, wire 34
-91,1,35 ! Plane U, wire 35
-90,1,36 ! Plane U, wire 36
-89,1,37 ! Plane U, wire 37
-88,1,38 ! Plane U, wire 38
-87,1,39 ! Plane U, wire 39
-86,1,40 ! Plane U, wire 40
-85,1,41 ! Plane U, wire 41
-84,1,42 ! Plane U, wire 42
-83,1,43 ! Plane U, wire 43
-82,1,44 ! Plane U, wire 44
-81,1,45 ! Plane U, wire 45
-80,1,46 ! Plane U, wire 46
-31,1,47 ! Plane U, wire 47
-30,1,48 ! Plane U, wire 48
-29,1,49 ! Plane U, wire 49
-28,1,50 ! Plane U, wire 50
-27,1,51 ! Plane U, wire 51
-26,1,52 ! Plane U, wire 52
-25,1,53 ! Plane U, wire 53
-24,1,54 ! Plane U, wire 54
-23,1,55 ! Plane U, wire 55
-22,1,56 ! Plane U, wire 56
-21,1,57 ! Plane U, wire 57
-20,1,58 ! Plane U, wire 58
-19,1,59 ! Plane U, wire 59
-18,1,60 ! Plane U, wire 60
-17,1,61 ! Plane U, wire 61
-16,1,62 ! Plane U, wire 62
+REFCHAN=79
+  95,   1,  32  ! DC1, Plane U, wire 32
+  94,   1,  33  ! DC1, Plane U, wire 33
+  93,   1,  34  ! DC1, Plane U, wire 34
+  92,   1,  35  ! DC1, Plane U, wire 35
+  91,   1,  36  ! DC1, Plane U, wire 36
+  90,   1,  37  ! DC1, Plane U, wire 37
+  89,   1,  38  ! DC1, Plane U, wire 38
+  88,   1,  39  ! DC1, Plane U, wire 39
+  87,   1,  40  ! DC1, Plane U, wire 40
+  86,   1,  41  ! DC1, Plane U, wire 41
+  85,   1,  42  ! DC1, Plane U, wire 42
+  84,   1,  43  ! DC1, Plane U, wire 43
+  83,   1,  44  ! DC1, Plane U, wire 44
+  82,   1,  45  ! DC1, Plane U, wire 45
+  81,   1,  46  ! DC1, Plane U, wire 46
+  80,   1,  47  ! DC1, Plane U, wire 47
+  31,   1,  48  ! DC1, Plane U, wire 48
+  30,   1,  49  ! DC1, Plane U, wire 49
+  29,   1,  50  ! DC1, Plane U, wire 50
+  28,   1,  51  ! DC1, Plane U, wire 51
+  27,   1,  52  ! DC1, Plane U, wire 52
+  26,   1,  53  ! DC1, Plane U, wire 53
+  25,   1,  54  ! DC1, Plane U, wire 54
+  24,   1,  55  ! DC1, Plane U, wire 55
+  23,   1,  56  ! DC1, Plane U, wire 56
+  22,   1,  57  ! DC1, Plane U, wire 57
+  21,   1,  58  ! DC1, Plane U, wire 58
+  20,   1,  59  ! DC1, Plane U, wire 59
+  19,   1,  60  ! DC1, Plane U, wire 60
+  18,   1,  61  ! DC1, Plane U, wire 61
+  17,   1,  62  ! DC1, Plane U, wire 62
+  16,   1,  63  ! DC1, Plane U, wire 63
+
 SLOT=8
-112,1,63 ! Plane U, wire 63
-113,1,64 ! Plane U, wire 64
-114,1,65 ! Plane U, wire 65
-115,1,66 ! Plane U, wire 66
-116,1,67 ! Plane U, wire 67
-117,1,68 ! Plane U, wire 68
-118,1,69 ! Plane U, wire 69
-119,1,70 ! Plane U, wire 70
-120,1,71 ! Plane U, wire 71
-121,1,72 ! Plane U, wire 72
-122,1,73 ! Plane U, wire 73
-123,1,74 ! Plane U, wire 74
-124,1,75 ! Plane U, wire 75
-125,1,76 ! Plane U, wire 76
-126,1,77 ! Plane U, wire 77
-127,1,78 ! Plane U, wire 78
-48,1,79 ! Plane U, wire 79
-49,1,80 ! Plane U, wire 80
-50,1,81 ! Plane U, wire 81
-51,1,82 ! Plane U, wire 82
-52,1,83 ! Plane U, wire 83
-53,1,84 ! Plane U, wire 84
-54,1,85 ! Plane U, wire 85
-55,1,86 ! Plane U, wire 86
-56,1,87 ! Plane U, wire 87
-57,1,88 ! Plane U, wire 88
-58,1,89 ! Plane U, wire 89
-59,1,90 ! Plane U, wire 90
-60,1,91 ! Plane U, wire 91
-61,1,92 ! Plane U, wire 92
-62,1,93 ! Plane U, wire 93
+REFCHAN=79
+ 112,   1,  64  ! DC1, Plane U, wire 64
+ 113,   1,  65  ! DC1, Plane U, wire 65
+ 114,   1,  66  ! DC1, Plane U, wire 66
+ 115,   1,  67  ! DC1, Plane U, wire 67
+ 116,   1,  68  ! DC1, Plane U, wire 68
+ 117,   1,  69  ! DC1, Plane U, wire 69
+ 118,   1,  70  ! DC1, Plane U, wire 70
+ 119,   1,  71  ! DC1, Plane U, wire 71
+ 120,   1,  72  ! DC1, Plane U, wire 72
+ 121,   1,  73  ! DC1, Plane U, wire 73
+ 122,   1,  74  ! DC1, Plane U, wire 74
+ 123,   1,  75  ! DC1, Plane U, wire 75
+ 124,   1,  76  ! DC1, Plane U, wire 76
+ 125,   1,  77  ! DC1, Plane U, wire 77
+ 126,   1,  78  ! DC1, Plane U, wire 78
+ 127,   1,  79  ! DC1, Plane U, wire 79
+  48,   1,  80  ! DC1, Plane U, wire 80
+  49,   1,  81  ! DC1, Plane U, wire 81
+  50,   1,  82  ! DC1, Plane U, wire 82
+  51,   1,  83  ! DC1, Plane U, wire 83
+  52,   1,  84  ! DC1, Plane U, wire 84
+  53,   1,  85  ! DC1, Plane U, wire 85
+  54,   1,  86  ! DC1, Plane U, wire 86
+  55,   1,  87  ! DC1, Plane U, wire 87
+  56,   1,  88  ! DC1, Plane U, wire 88
+  57,   1,  89  ! DC1, Plane U, wire 89
+  58,   1,  90  ! DC1, Plane U, wire 90
+  59,   1,  91  ! DC1, Plane U, wire 91
+  60,   1,  92  ! DC1, Plane U, wire 92
+  61,   1,  93  ! DC1, Plane U, wire 93
+  62,   1,  94  ! DC1, Plane U, wire 94
+  63,   1,  95  ! DC1, Plane U, wire 95
+
 SLOT=9
-78,1,94 ! Plane U, wire 94
-112,1,95 ! Plane U, wire 95
-113,1,96 ! Plane U, wire 96
-114,1,97 ! Plane U, wire 97
-115,1,98 ! Plane U, wire 98
-116,1,99 ! Plane U, wire 99
-117,1,100 ! Plane U, wire 100
-118,1,101 ! Plane U, wire 101
-119,1,102 ! Plane U, wire 102
-120,1,103 ! Plane U, wire 103
-121,1,104 ! Plane U, wire 104
-122,1,105 ! Plane U, wire 105
-123,1,106 ! Plane U, wire 106
+REFCHAN=79
+ 112,   1,  96  ! DC1, Plane U, wire 96
+ 113,   1,  97  ! DC1, Plane U, wire 97
+ 114,   1,  98  ! DC1, Plane U, wire 98
+ 115,   1,  99  ! DC1, Plane U, wire 99
+ 116,   1, 100  ! DC1, Plane U, wire 100
+ 117,   1, 101  ! DC1, Plane U, wire 101
+ 118,   1, 102  ! DC1, Plane U, wire 102
+ 119,   1, 103  ! DC1, Plane U, wire 103
+ 120,   1, 104  ! DC1, Plane U, wire 104
+ 121,   1, 105  ! DC1, Plane U, wire 105
+ 122,   1, 106  ! DC1, Plane U, wire 106
+ 123,   1, 107  ! DC1, Plane U, wire 107
+
 SLOT=8
-74,2,1 ! Plane U', wire 1
-73,2,2 ! Plane U', wire 2
-72,2,3 ! Plane U', wire 3
-71,2,4 ! Plane U', wire 4
-70,2,5 ! Plane U', wire 5
-69,2,6 ! Plane U', wire 6
-68,2,7 ! Plane U', wire 7
-67,2,8 ! Plane U', wire 8
-66,2,9 ! Plane U', wire 9
-65,2,10 ! Plane U', wire 10
-64,2,11 ! Plane U', wire 11
+REFCHAN=79
+  75,   2,   1  ! DC1, Plane U', wire 1
+  74,   2,   2  ! DC1, Plane U', wire 2
+  73,   2,   3  ! DC1, Plane U', wire 3
+  72,   2,   4  ! DC1, Plane U', wire 4
+  71,   2,   5  ! DC1, Plane U', wire 5
+  70,   2,   6  ! DC1, Plane U', wire 6
+  69,   2,   7  ! DC1, Plane U', wire 7
+  68,   2,   8  ! DC1, Plane U', wire 8
+  67,   2,   9  ! DC1, Plane U', wire 9
+  66,   2,  10  ! DC1, Plane U', wire 10
+  65,   2,  11  ! DC1, Plane U', wire 11
+  64,   2,  12  ! DC1, Plane U', wire 12
+
 SLOT=6
-127,2,12 ! Plane U', wire 12
-126,2,13 ! Plane U', wire 13
-125,2,14 ! Plane U', wire 14
-124,2,15 ! Plane U', wire 15
-123,2,16 ! Plane U', wire 16
-122,2,17 ! Plane U', wire 17
-121,2,18 ! Plane U', wire 18
-120,2,19 ! Plane U', wire 19
-119,2,20 ! Plane U', wire 20
-118,2,21 ! Plane U', wire 21
-117,2,22 ! Plane U', wire 22
-116,2,23 ! Plane U', wire 23
-115,2,24 ! Plane U', wire 24
-114,2,25 ! Plane U', wire 25
-113,2,26 ! Plane U', wire 26
-112,2,27 ! Plane U', wire 27
-47,2,28 ! Plane U', wire 28
-46,2,29 ! Plane U', wire 29
-45,2,30 ! Plane U', wire 30
-44,2,31 ! Plane U', wire 31
-43,2,32 ! Plane U', wire 32
-42,2,33 ! Plane U', wire 33
-41,2,34 ! Plane U', wire 34
-40,2,35 ! Plane U', wire 35
-39,2,36 ! Plane U', wire 36
-38,2,37 ! Plane U', wire 37
-37,2,38 ! Plane U', wire 38
-36,2,39 ! Plane U', wire 39
-35,2,40 ! Plane U', wire 40
-34,2,41 ! Plane U', wire 41
-33,2,42 ! Plane U', wire 42
-SLOT=8
-75,2,43 ! Plane U', wire 43
+REFCHAN=79
+ 127,   2,  13  ! DC1, Plane U', wire 13
+ 126,   2,  14  ! DC1, Plane U', wire 14
+ 125,   2,  15  ! DC1, Plane U', wire 15
+ 124,   2,  16  ! DC1, Plane U', wire 16
+ 123,   2,  17  ! DC1, Plane U', wire 17
+ 122,   2,  18  ! DC1, Plane U', wire 18
+ 121,   2,  19  ! DC1, Plane U', wire 19
+ 120,   2,  20  ! DC1, Plane U', wire 20
+ 119,   2,  21  ! DC1, Plane U', wire 21
+ 118,   2,  22  ! DC1, Plane U', wire 22
+ 117,   2,  23  ! DC1, Plane U', wire 23
+ 116,   2,  24  ! DC1, Plane U', wire 24
+ 115,   2,  25  ! DC1, Plane U', wire 25
+ 114,   2,  26  ! DC1, Plane U', wire 26
+ 113,   2,  27  ! DC1, Plane U', wire 27
+ 112,   2,  28  ! DC1, Plane U', wire 28
+  47,   2,  29  ! DC1, Plane U', wire 29
+  46,   2,  30  ! DC1, Plane U', wire 30
+  45,   2,  31  ! DC1, Plane U', wire 31
+  44,   2,  32  ! DC1, Plane U', wire 32
+  43,   2,  33  ! DC1, Plane U', wire 33
+  42,   2,  34  ! DC1, Plane U', wire 34
+  41,   2,  35  ! DC1, Plane U', wire 35
+  40,   2,  36  ! DC1, Plane U', wire 36
+  39,   2,  37  ! DC1, Plane U', wire 37
+  38,   2,  38  ! DC1, Plane U', wire 38
+  37,   2,  39  ! DC1, Plane U', wire 39
+  36,   2,  40  ! DC1, Plane U', wire 40
+  35,   2,  41  ! DC1, Plane U', wire 41
+  34,   2,  42  ! DC1, Plane U', wire 42
+  33,   2,  43  ! DC1, Plane U', wire 43
+  32,   2,  44  ! DC1, Plane U', wire 44
+
 SLOT=9
-0,2,44 ! Plane U', wire 44
-1,2,45 ! Plane U', wire 45
-2,2,46 ! Plane U', wire 46
-3,2,47 ! Plane U', wire 47
-4,2,48 ! Plane U', wire 48
-5,2,49 ! Plane U', wire 49
-6,2,50 ! Plane U', wire 50
-7,2,51 ! Plane U', wire 51
-8,2,52 ! Plane U', wire 52
-9,2,53 ! Plane U', wire 53
-10,2,54 ! Plane U', wire 54
-11,2,55 ! Plane U', wire 55
-12,2,56 ! Plane U', wire 56
-13,2,57 ! Plane U', wire 57
-14,2,58 ! Plane U', wire 58
-15,2,59 ! Plane U', wire 59
+REFCHAN=79
+   0,   2,  45  ! DC1, Plane U', wire 45
+   1,   2,  46  ! DC1, Plane U', wire 46
+   2,   2,  47  ! DC1, Plane U', wire 47
+   3,   2,  48  ! DC1, Plane U', wire 48
+   4,   2,  49  ! DC1, Plane U', wire 49
+   5,   2,  50  ! DC1, Plane U', wire 50
+   6,   2,  51  ! DC1, Plane U', wire 51
+   7,   2,  52  ! DC1, Plane U', wire 52
+   8,   2,  53  ! DC1, Plane U', wire 53
+   9,   2,  54  ! DC1, Plane U', wire 54
+  10,   2,  55  ! DC1, Plane U', wire 55
+  11,   2,  56  ! DC1, Plane U', wire 56
+  12,   2,  57  ! DC1, Plane U', wire 57
+  13,   2,  58  ! DC1, Plane U', wire 58
+  14,   2,  59  ! DC1, Plane U', wire 59
+  15,   2,  60  ! DC1, Plane U', wire 60
+
 SLOT=8
-96,2,60 ! Plane U', wire 60
-97,2,61 ! Plane U', wire 61
-98,2,62 ! Plane U', wire 62
-99,2,63 ! Plane U', wire 63
-100,2,64 ! Plane U', wire 64
-101,2,65 ! Plane U', wire 65
-102,2,66 ! Plane U', wire 66
-103,2,67 ! Plane U', wire 67
-104,2,68 ! Plane U', wire 68
-105,2,69 ! Plane U', wire 69
-106,2,70 ! Plane U', wire 70
-107,2,71 ! Plane U', wire 71
-108,2,72 ! Plane U', wire 72
-109,2,73 ! Plane U', wire 73
-110,2,74 ! Plane U', wire 74
-111,2,75 ! Plane U', wire 75
+REFCHAN=79
+  96,   2,  61  ! DC1, Plane U', wire 61
+  97,   2,  62  ! DC1, Plane U', wire 62
+  98,   2,  63  ! DC1, Plane U', wire 63
+  99,   2,  64  ! DC1, Plane U', wire 64
+ 100,   2,  65  ! DC1, Plane U', wire 65
+ 101,   2,  66  ! DC1, Plane U', wire 66
+ 102,   2,  67  ! DC1, Plane U', wire 67
+ 103,   2,  68  ! DC1, Plane U', wire 68
+ 104,   2,  69  ! DC1, Plane U', wire 69
+ 105,   2,  70  ! DC1, Plane U', wire 70
+ 106,   2,  71  ! DC1, Plane U', wire 71
+ 107,   2,  72  ! DC1, Plane U', wire 72
+ 108,   2,  73  ! DC1, Plane U', wire 73
+ 109,   2,  74  ! DC1, Plane U', wire 74
+ 110,   2,  75  ! DC1, Plane U', wire 75
+ 111,   2,  76  ! DC1, Plane U', wire 76
+
 SLOT=10
-80,2,76 ! Plane U', wire 76
-81,2,77 ! Plane U', wire 77
-82,2,78 ! Plane U', wire 78
-83,2,79 ! Plane U', wire 79
-84,2,80 ! Plane U', wire 80
-85,2,81 ! Plane U', wire 81
-86,2,82 ! Plane U', wire 82
-87,2,83 ! Plane U', wire 83
-88,2,84 ! Plane U', wire 84
-89,2,85 ! Plane U', wire 85
-90,2,86 ! Plane U', wire 86
-91,2,87 ! Plane U', wire 87
-92,2,88 ! Plane U', wire 88
-93,2,89 ! Plane U', wire 89
-94,2,90 ! Plane U', wire 90
-95,2,91 ! Plane U', wire 91
-16,2,92 ! Plane U', wire 92
-17,2,93 ! Plane U', wire 93
-18,2,94 ! Plane U', wire 94
-19,2,95 ! Plane U', wire 95
-20,2,96 ! Plane U', wire 96
-21,2,97 ! Plane U', wire 97
-22,2,98 ! Plane U', wire 98
-23,2,99 ! Plane U', wire 99
-24,2,100 ! Plane U', wire 100
-25,2,101 ! Plane U', wire 101
-26,2,102 ! Plane U', wire 102
-27,2,103 ! Plane U', wire 103
-28,2,104 ! Plane U', wire 104
-29,2,105 ! Plane U', wire 105
-30,2,106 ! Plane U', wire 106
+REFCHAN=79
+  80,   2,  77  ! DC1, Plane U', wire 77
+  81,   2,  78  ! DC1, Plane U', wire 78
+  82,   2,  79  ! DC1, Plane U', wire 79
+  83,   2,  80  ! DC1, Plane U', wire 80
+  84,   2,  81  ! DC1, Plane U', wire 81
+  85,   2,  82  ! DC1, Plane U', wire 82
+  86,   2,  83  ! DC1, Plane U', wire 83
+  87,   2,  84  ! DC1, Plane U', wire 84
+  88,   2,  85  ! DC1, Plane U', wire 85
+  89,   2,  86  ! DC1, Plane U', wire 86
+  90,   2,  87  ! DC1, Plane U', wire 87
+  91,   2,  88  ! DC1, Plane U', wire 88
+  92,   2,  89  ! DC1, Plane U', wire 89
+  93,   2,  90  ! DC1, Plane U', wire 90
+  94,   2,  91  ! DC1, Plane U', wire 91
+  95,   2,  92  ! DC1, Plane U', wire 92
+  16,   2,  93  ! DC1, Plane U', wire 93
+  17,   2,  94  ! DC1, Plane U', wire 94
+  18,   2,  95  ! DC1, Plane U', wire 95
+  19,   2,  96  ! DC1, Plane U', wire 96
+  20,   2,  97  ! DC1, Plane U', wire 97
+  21,   2,  98  ! DC1, Plane U', wire 98
+  22,   2,  99  ! DC1, Plane U', wire 99
+  23,   2, 100  ! DC1, Plane U', wire 100
+  24,   2, 101  ! DC1, Plane U', wire 101
+  25,   2, 102  ! DC1, Plane U', wire 102
+  26,   2, 103  ! DC1, Plane U', wire 103
+  27,   2, 104  ! DC1, Plane U', wire 104
+  28,   2, 105  ! DC1, Plane U', wire 105
+  29,   2, 106  ! DC1, Plane U', wire 106
+  30,   2, 107  ! DC1, Plane U', wire 107
+
 SLOT=9
-45,5,1 ! Plane V, wire 1
-44,5,2 ! Plane V, wire 2
-43,5,3 ! Plane V, wire 3
-42,5,4 ! Plane V, wire 4
-41,5,5 ! Plane V, wire 5
-40,5,6 ! Plane V, wire 6
-39,5,7 ! Plane V, wire 7
-38,5,8 ! Plane V, wire 8
-37,5,9 ! Plane V, wire 9
-36,5,10 ! Plane V, wire 10
-35,5,11 ! Plane V, wire 11
-34,5,12 ! Plane V, wire 12
-33,5,13 ! Plane V, wire 13
-32,5,14 ! Plane V, wire 14
+REFCHAN=79
+  46,   5,   1  ! DC1, Plane V, wire 1
+  45,   5,   2  ! DC1, Plane V, wire 2
+  44,   5,   3  ! DC1, Plane V, wire 3
+  43,   5,   4  ! DC1, Plane V, wire 4
+  42,   5,   5  ! DC1, Plane V, wire 5
+  41,   5,   6  ! DC1, Plane V, wire 6
+  40,   5,   7  ! DC1, Plane V, wire 7
+  39,   5,   8  ! DC1, Plane V, wire 8
+  38,   5,   9  ! DC1, Plane V, wire 9
+  37,   5,  10  ! DC1, Plane V, wire 10
+  36,   5,  11  ! DC1, Plane V, wire 11
+  35,   5,  12  ! DC1, Plane V, wire 12
+  34,   5,  13  ! DC1, Plane V, wire 13
+  33,   5,  14  ! DC1, Plane V, wire 14
+  32,   5,  15  ! DC1, Plane V, wire 15
+
 SLOT=8
-31,5,15 ! Plane V, wire 15
-30,5,16 ! Plane V, wire 16
-29,5,17 ! Plane V, wire 17
-28,5,18 ! Plane V, wire 18
-27,5,19 ! Plane V, wire 19
-26,5,20 ! Plane V, wire 20
-25,5,21 ! Plane V, wire 21
-24,5,22 ! Plane V, wire 22
-23,5,23 ! Plane V, wire 23
-22,5,24 ! Plane V, wire 24
-21,5,25 ! Plane V, wire 25
-20,5,26 ! Plane V, wire 26
-19,5,27 ! Plane V, wire 27
-18,5,28 ! Plane V, wire 28
-17,5,29 ! Plane V, wire 29
-16,5,30 ! Plane V, wire 30
+REFCHAN=79
+  31,   5,  16  ! DC1, Plane V, wire 16
+  30,   5,  17  ! DC1, Plane V, wire 17
+  29,   5,  18  ! DC1, Plane V, wire 18
+  28,   5,  19  ! DC1, Plane V, wire 19
+  27,   5,  20  ! DC1, Plane V, wire 20
+  26,   5,  21  ! DC1, Plane V, wire 21
+  25,   5,  22  ! DC1, Plane V, wire 22
+  24,   5,  23  ! DC1, Plane V, wire 23
+  23,   5,  24  ! DC1, Plane V, wire 24
+  22,   5,  25  ! DC1, Plane V, wire 25
+  21,   5,  26  ! DC1, Plane V, wire 26
+  20,   5,  27  ! DC1, Plane V, wire 27
+  19,   5,  28  ! DC1, Plane V, wire 28
+  18,   5,  29  ! DC1, Plane V, wire 29
+  17,   5,  30  ! DC1, Plane V, wire 30
+  16,   5,  31  ! DC1, Plane V, wire 31
+
 SLOT=10
-15,5,31 ! Plane V, wire 31
-14,5,32 ! Plane V, wire 32
-13,5,33 ! Plane V, wire 33
-12,5,34 ! Plane V, wire 34
-11,5,35 ! Plane V, wire 35
-10,5,36 ! Plane V, wire 36
-9,5,37 ! Plane V, wire 37
-8,5,38 ! Plane V, wire 38
-7,5,39 ! Plane V, wire 39
-6,5,40 ! Plane V, wire 40
-5,5,41 ! Plane V, wire 41
-4,5,42 ! Plane V, wire 42
-3,5,43 ! Plane V, wire 43
-2,5,44 ! Plane V, wire 44
-1,5,45 ! Plane V, wire 45
-0,5,46 ! Plane V, wire 46
+REFCHAN=79
+  15,   5,  32  ! DC1, Plane V, wire 32
+  14,   5,  33  ! DC1, Plane V, wire 33
+  13,   5,  34  ! DC1, Plane V, wire 34
+  12,   5,  35  ! DC1, Plane V, wire 35
+  11,   5,  36  ! DC1, Plane V, wire 36
+  10,   5,  37  ! DC1, Plane V, wire 37
+   9,   5,  38  ! DC1, Plane V, wire 38
+   8,   5,  39  ! DC1, Plane V, wire 39
+   7,   5,  40  ! DC1, Plane V, wire 40
+   6,   5,  41  ! DC1, Plane V, wire 41
+   5,   5,  42  ! DC1, Plane V, wire 42
+   4,   5,  43  ! DC1, Plane V, wire 43
+   3,   5,  44  ! DC1, Plane V, wire 44
+   2,   5,  45  ! DC1, Plane V, wire 45
+   1,   5,  46  ! DC1, Plane V, wire 46
+   0,   5,  47  ! DC1, Plane V, wire 47
+
 SLOT=9
-63,5,47 ! Plane V, wire 47
-62,5,48 ! Plane V, wire 48
-61,5,49 ! Plane V, wire 49
-60,5,50 ! Plane V, wire 50
-59,5,51 ! Plane V, wire 51
-58,5,52 ! Plane V, wire 52
-57,5,53 ! Plane V, wire 53
-56,5,54 ! Plane V, wire 54
-55,5,55 ! Plane V, wire 55
-54,5,56 ! Plane V, wire 56
-53,5,57 ! Plane V, wire 57
-52,5,58 ! Plane V, wire 58
-51,5,59 ! Plane V, wire 59
-50,5,60 ! Plane V, wire 60
-49,5,61 ! Plane V, wire 61
-48,5,62 ! Plane V, wire 62
+REFCHAN=79
+  63,   5,  48  ! DC1, Plane V, wire 48
+  62,   5,  49  ! DC1, Plane V, wire 49
+  61,   5,  50  ! DC1, Plane V, wire 50
+  60,   5,  51  ! DC1, Plane V, wire 51
+  59,   5,  52  ! DC1, Plane V, wire 52
+  58,   5,  53  ! DC1, Plane V, wire 53
+  57,   5,  54  ! DC1, Plane V, wire 54
+  56,   5,  55  ! DC1, Plane V, wire 55
+  55,   5,  56  ! DC1, Plane V, wire 56
+  54,   5,  57  ! DC1, Plane V, wire 57
+  53,   5,  58  ! DC1, Plane V, wire 58
+  52,   5,  59  ! DC1, Plane V, wire 59
+  51,   5,  60  ! DC1, Plane V, wire 60
+  50,   5,  61  ! DC1, Plane V, wire 61
+  49,   5,  62  ! DC1, Plane V, wire 62
+  48,   5,  63  ! DC1, Plane V, wire 63
+
 SLOT=7
-32,5,63 ! Plane V, wire 63
-33,5,64 ! Plane V, wire 64
-34,5,65 ! Plane V, wire 65
-35,5,66 ! Plane V, wire 66
-36,5,67 ! Plane V, wire 67
-37,5,68 ! Plane V, wire 68
-38,5,69 ! Plane V, wire 69
-39,5,70 ! Plane V, wire 70
-40,5,71 ! Plane V, wire 71
-41,5,72 ! Plane V, wire 72
-42,5,73 ! Plane V, wire 73
-43,5,74 ! Plane V, wire 74
-44,5,75 ! Plane V, wire 75
-45,5,76 ! Plane V, wire 76
-46,5,77 ! Plane V, wire 77
-47,5,78 ! Plane V, wire 78
-96,5,79 ! Plane V, wire 79
-97,5,80 ! Plane V, wire 80
-98,5,81 ! Plane V, wire 81
-99,5,82 ! Plane V, wire 82
-100,5,83 ! Plane V, wire 83
-101,5,84 ! Plane V, wire 84
-102,5,85 ! Plane V, wire 85
-103,5,86 ! Plane V, wire 86
-104,5,87 ! Plane V, wire 87
-105,5,88 ! Plane V, wire 88
-106,5,89 ! Plane V, wire 89
-107,5,90 ! Plane V, wire 90
-108,5,91 ! Plane V, wire 91
-109,5,92 ! Plane V, wire 92
-110,5,93 ! Plane V, wire 93
-111,5,94 ! Plane V, wire 94
-64,5,95 ! Plane V, wire 95
-65,5,96 ! Plane V, wire 96
-66,5,97 ! Plane V, wire 97
-67,5,98 ! Plane V, wire 98
-68,5,99 ! Plane V, wire 99
-69,5,100 ! Plane V, wire 100
-70,5,101 ! Plane V, wire 101
-71,5,102 ! Plane V, wire 102
-72,5,103 ! Plane V, wire 103
-73,5,104 ! Plane V, wire 104
-74,5,105 ! Plane V, wire 105
-SLOT=9
-46,5,106 ! Plane V, wire 106
+REFCHAN=79
+  32,   5,  64  ! DC1, Plane V, wire 64
+  33,   5,  65  ! DC1, Plane V, wire 65
+  34,   5,  66  ! DC1, Plane V, wire 66
+  35,   5,  67  ! DC1, Plane V, wire 67
+  36,   5,  68  ! DC1, Plane V, wire 68
+  37,   5,  69  ! DC1, Plane V, wire 69
+  38,   5,  70  ! DC1, Plane V, wire 70
+  39,   5,  71  ! DC1, Plane V, wire 71
+  40,   5,  72  ! DC1, Plane V, wire 72
+  41,   5,  73  ! DC1, Plane V, wire 73
+  42,   5,  74  ! DC1, Plane V, wire 74
+  43,   5,  75  ! DC1, Plane V, wire 75
+  44,   5,  76  ! DC1, Plane V, wire 76
+  45,   5,  77  ! DC1, Plane V, wire 77
+  46,   5,  78  ! DC1, Plane V, wire 78
+  47,   5,  79  ! DC1, Plane V, wire 79
+  96,   5,  80  ! DC1, Plane V, wire 80
+  97,   5,  81  ! DC1, Plane V, wire 81
+  98,   5,  82  ! DC1, Plane V, wire 82
+  99,   5,  83  ! DC1, Plane V, wire 83
+ 100,   5,  84  ! DC1, Plane V, wire 84
+ 101,   5,  85  ! DC1, Plane V, wire 85
+ 102,   5,  86  ! DC1, Plane V, wire 86
+ 103,   5,  87  ! DC1, Plane V, wire 87
+ 104,   5,  88  ! DC1, Plane V, wire 88
+ 105,   5,  89  ! DC1, Plane V, wire 89
+ 106,   5,  90  ! DC1, Plane V, wire 90
+ 107,   5,  91  ! DC1, Plane V, wire 91
+ 108,   5,  92  ! DC1, Plane V, wire 92
+ 109,   5,  93  ! DC1, Plane V, wire 93
+ 110,   5,  94  ! DC1, Plane V, wire 94
+ 111,   5,  95  ! DC1, Plane V, wire 95
+  64,   5,  96  ! DC1, Plane V, wire 96
+  65,   5,  97  ! DC1, Plane V, wire 97
+  66,   5,  98  ! DC1, Plane V, wire 98
+  67,   5,  99  ! DC1, Plane V, wire 99
+  68,   5, 100  ! DC1, Plane V, wire 100
+  69,   5, 101  ! DC1, Plane V, wire 101
+  70,   5, 102  ! DC1, Plane V, wire 102
+  71,   5, 103  ! DC1, Plane V, wire 103
+  72,   5, 104  ! DC1, Plane V, wire 104
+  73,   5, 105  ! DC1, Plane V, wire 105
+  74,   5, 106  ! DC1, Plane V, wire 106
+  75,   5, 107  ! DC1, Plane V, wire 107
+
 SLOT=10
-74,6,1 ! Plane V', wire 1
-73,6,2 ! Plane V', wire 2
-72,6,3 ! Plane V', wire 3
-71,6,4 ! Plane V', wire 4
-70,6,5 ! Plane V', wire 5
-69,6,6 ! Plane V', wire 6
-68,6,7 ! Plane V', wire 7
-67,6,8 ! Plane V', wire 8
-66,6,9 ! Plane V', wire 9
-65,6,10 ! Plane V', wire 10
-64,6,11 ! Plane V', wire 11
-47,6,12 ! Plane V', wire 12
-46,6,13 ! Plane V', wire 13
-45,6,14 ! Plane V', wire 14
-44,6,15 ! Plane V', wire 15
-43,6,16 ! Plane V', wire 16
-42,6,17 ! Plane V', wire 17
-41,6,18 ! Plane V', wire 18
-40,6,19 ! Plane V', wire 19
-39,6,20 ! Plane V', wire 20
-38,6,21 ! Plane V', wire 21
-37,6,22 ! Plane V', wire 22
-36,6,23 ! Plane V', wire 23
-35,6,24 ! Plane V', wire 24
-34,6,25 ! Plane V', wire 25
-33,6,26 ! Plane V', wire 26
-32,6,27 ! Plane V', wire 27
+REFCHAN=79
+  75,   6,   1  ! DC1, Plane V', wire 1
+  74,   6,   2  ! DC1, Plane V', wire 2
+  73,   6,   3  ! DC1, Plane V', wire 3
+  72,   6,   4  ! DC1, Plane V', wire 4
+  71,   6,   5  ! DC1, Plane V', wire 5
+  70,   6,   6  ! DC1, Plane V', wire 6
+  69,   6,   7  ! DC1, Plane V', wire 7
+  68,   6,   8  ! DC1, Plane V', wire 8
+  67,   6,   9  ! DC1, Plane V', wire 9
+  66,   6,  10  ! DC1, Plane V', wire 10
+  65,   6,  11  ! DC1, Plane V', wire 11
+  64,   6,  12  ! DC1, Plane V', wire 12
+  47,   6,  13  ! DC1, Plane V', wire 13
+  46,   6,  14  ! DC1, Plane V', wire 14
+  45,   6,  15  ! DC1, Plane V', wire 15
+  44,   6,  16  ! DC1, Plane V', wire 16
+  43,   6,  17  ! DC1, Plane V', wire 17
+  42,   6,  18  ! DC1, Plane V', wire 18
+  41,   6,  19  ! DC1, Plane V', wire 19
+  40,   6,  20  ! DC1, Plane V', wire 20
+  39,   6,  21  ! DC1, Plane V', wire 21
+  38,   6,  22  ! DC1, Plane V', wire 22
+  37,   6,  23  ! DC1, Plane V', wire 23
+  36,   6,  24  ! DC1, Plane V', wire 24
+  35,   6,  25  ! DC1, Plane V', wire 25
+  34,   6,  26  ! DC1, Plane V', wire 26
+  33,   6,  27  ! DC1, Plane V', wire 27
+  32,   6,  28  ! DC1, Plane V', wire 28
+
 SLOT=9
-111,6,28 ! Plane V', wire 28
-110,6,29 ! Plane V', wire 29
-109,6,30 ! Plane V', wire 30
-108,6,31 ! Plane V', wire 31
-107,6,32 ! Plane V', wire 32
-106,6,33 ! Plane V', wire 33
-105,6,34 ! Plane V', wire 34
-104,6,35 ! Plane V', wire 35
-103,6,36 ! Plane V', wire 36
-102,6,37 ! Plane V', wire 37
-101,6,38 ! Plane V', wire 38
-100,6,39 ! Plane V', wire 39
-99,6,40 ! Plane V', wire 40
-98,6,41 ! Plane V', wire 41
-97,6,42 ! Plane V', wire 42
-96,6,43 ! Plane V', wire 43
+REFCHAN=79
+ 111,   6,  29  ! DC1, Plane V', wire 29
+ 110,   6,  30  ! DC1, Plane V', wire 30
+ 109,   6,  31  ! DC1, Plane V', wire 31
+ 108,   6,  32  ! DC1, Plane V', wire 32
+ 107,   6,  33  ! DC1, Plane V', wire 33
+ 106,   6,  34  ! DC1, Plane V', wire 34
+ 105,   6,  35  ! DC1, Plane V', wire 35
+ 104,   6,  36  ! DC1, Plane V', wire 36
+ 103,   6,  37  ! DC1, Plane V', wire 37
+ 102,   6,  38  ! DC1, Plane V', wire 38
+ 101,   6,  39  ! DC1, Plane V', wire 39
+ 100,   6,  40  ! DC1, Plane V', wire 40
+  99,   6,  41  ! DC1, Plane V', wire 41
+  98,   6,  42  ! DC1, Plane V', wire 42
+  97,   6,  43  ! DC1, Plane V', wire 43
+  96,   6,  44  ! DC1, Plane V', wire 44
+
 SLOT=8
-80,6,44 ! Plane V', wire 44
-81,6,45 ! Plane V', wire 45
-82,6,46 ! Plane V', wire 46
-83,6,47 ! Plane V', wire 47
-84,6,48 ! Plane V', wire 48
-85,6,49 ! Plane V', wire 49
-86,6,50 ! Plane V', wire 50
-87,6,51 ! Plane V', wire 51
-88,6,52 ! Plane V', wire 52
-89,6,53 ! Plane V', wire 53
-90,6,54 ! Plane V', wire 54
-91,6,55 ! Plane V', wire 55
-92,6,56 ! Plane V', wire 56
-93,6,57 ! Plane V', wire 57
-94,6,58 ! Plane V', wire 58
-95,6,59 ! Plane V', wire 59
+REFCHAN=79
+  80,   6,  45  ! DC1, Plane V', wire 45
+  81,   6,  46  ! DC1, Plane V', wire 46
+  82,   6,  47  ! DC1, Plane V', wire 47
+  83,   6,  48  ! DC1, Plane V', wire 48
+  84,   6,  49  ! DC1, Plane V', wire 49
+  85,   6,  50  ! DC1, Plane V', wire 50
+  86,   6,  51  ! DC1, Plane V', wire 51
+  87,   6,  52  ! DC1, Plane V', wire 52
+  88,   6,  53  ! DC1, Plane V', wire 53
+  89,   6,  54  ! DC1, Plane V', wire 54
+  90,   6,  55  ! DC1, Plane V', wire 55
+  91,   6,  56  ! DC1, Plane V', wire 56
+  92,   6,  57  ! DC1, Plane V', wire 57
+  93,   6,  58  ! DC1, Plane V', wire 58
+  94,   6,  59  ! DC1, Plane V', wire 59
+  95,   6,  60  ! DC1, Plane V', wire 60
+
 SLOT=7
-112,6,60 ! Plane V', wire 60
-113,6,61 ! Plane V', wire 61
-114,6,62 ! Plane V', wire 62
-115,6,63 ! Plane V', wire 63
-116,6,64 ! Plane V', wire 64
-117,6,65 ! Plane V', wire 65
-118,6,66 ! Plane V', wire 66
-119,6,67 ! Plane V', wire 67
-120,6,68 ! Plane V', wire 68
-121,6,69 ! Plane V', wire 69
-122,6,70 ! Plane V', wire 70
-123,6,71 ! Plane V', wire 71
-124,6,72 ! Plane V', wire 72
-125,6,73 ! Plane V', wire 73
-126,6,74 ! Plane V', wire 74
-127,6,75 ! Plane V', wire 75
-80,6,76 ! Plane V', wire 76
-81,6,77 ! Plane V', wire 77
-82,6,78 ! Plane V', wire 78
-83,6,79 ! Plane V', wire 79
-84,6,80 ! Plane V', wire 80
-85,6,81 ! Plane V', wire 81
-86,6,82 ! Plane V', wire 82
-87,6,83 ! Plane V', wire 83
-88,6,84 ! Plane V', wire 84
-89,6,85 ! Plane V', wire 85
-90,6,86 ! Plane V', wire 86
-91,6,87 ! Plane V', wire 87
-92,6,88 ! Plane V', wire 88
-93,6,89 ! Plane V', wire 89
-94,6,90 ! Plane V', wire 90
-95,6,91 ! Plane V', wire 91
+REFCHAN=79
+ 112,   6,  61  ! DC1, Plane V', wire 61
+ 113,   6,  62  ! DC1, Plane V', wire 62
+ 114,   6,  63  ! DC1, Plane V', wire 63
+ 115,   6,  64  ! DC1, Plane V', wire 64
+ 116,   6,  65  ! DC1, Plane V', wire 65
+ 117,   6,  66  ! DC1, Plane V', wire 66
+ 118,   6,  67  ! DC1, Plane V', wire 67
+ 119,   6,  68  ! DC1, Plane V', wire 68
+ 120,   6,  69  ! DC1, Plane V', wire 69
+ 121,   6,  70  ! DC1, Plane V', wire 70
+ 122,   6,  71  ! DC1, Plane V', wire 71
+ 123,   6,  72  ! DC1, Plane V', wire 72
+ 124,   6,  73  ! DC1, Plane V', wire 73
+ 125,   6,  74  ! DC1, Plane V', wire 74
+ 126,   6,  75  ! DC1, Plane V', wire 75
+ 127,   6,  76  ! DC1, Plane V', wire 76
+  80,   6,  77  ! DC1, Plane V', wire 77
+  81,   6,  78  ! DC1, Plane V', wire 78
+  82,   6,  79  ! DC1, Plane V', wire 79
+  83,   6,  80  ! DC1, Plane V', wire 80
+  84,   6,  81  ! DC1, Plane V', wire 81
+  85,   6,  82  ! DC1, Plane V', wire 82
+  86,   6,  83  ! DC1, Plane V', wire 83
+  87,   6,  84  ! DC1, Plane V', wire 84
+  88,   6,  85  ! DC1, Plane V', wire 85
+  89,   6,  86  ! DC1, Plane V', wire 86
+  90,   6,  87  ! DC1, Plane V', wire 87
+  91,   6,  88  ! DC1, Plane V', wire 88
+  92,   6,  89  ! DC1, Plane V', wire 89
+  93,   6,  90  ! DC1, Plane V', wire 90
+  94,   6,  91  ! DC1, Plane V', wire 91
+  95,   6,  92  ! DC1, Plane V', wire 92
+
 SLOT=6
-64,6,92 ! Plane V', wire 92
-65,6,93 ! Plane V', wire 93
-66,6,94 ! Plane V', wire 94
-67,6,95 ! Plane V', wire 95
-68,6,96 ! Plane V', wire 96
-69,6,97 ! Plane V', wire 97
-70,6,98 ! Plane V', wire 98
-71,6,99 ! Plane V', wire 99
-72,6,100 ! Plane V', wire 100
-73,6,101 ! Plane V', wire 101
-74,6,102 ! Plane V', wire 102
-75,6,103 ! Plane V', wire 103
-76,6,104 ! Plane V', wire 104
-77,6,105 ! Plane V', wire 105
-SLOT=10
-75,6,106 ! Plane V', wire 106
+REFCHAN=79
+  64,   6,  93  ! DC1, Plane V', wire 93
+  65,   6,  94  ! DC1, Plane V', wire 94
+  66,   6,  95  ! DC1, Plane V', wire 95
+  67,   6,  96  ! DC1, Plane V', wire 96
+  68,   6,  97  ! DC1, Plane V', wire 97
+  69,   6,  98  ! DC1, Plane V', wire 98
+  70,   6,  99  ! DC1, Plane V', wire 99
+  71,   6, 100  ! DC1, Plane V', wire 100
+  72,   6, 101  ! DC1, Plane V', wire 101
+  73,   6, 102  ! DC1, Plane V', wire 102
+  74,   6, 103  ! DC1, Plane V', wire 103
+  75,   6, 104  ! DC1, Plane V', wire 104
+  76,   6, 105  ! DC1, Plane V', wire 105
+  77,   6, 106  ! DC1, Plane V', wire 106
+  78,   6, 107  ! DC1, Plane V', wire 107
+
 SLOT=8
-14,3,1 ! Plane X, wire 1
-13,3,2 ! Plane X, wire 2
-12,3,3 ! Plane X, wire 3
-11,3,4 ! Plane X, wire 4
-10,3,5 ! Plane X, wire 5
-9,3,6 ! Plane X, wire 6
-8,3,7 ! Plane X, wire 7
-7,3,8 ! Plane X, wire 8
-6,3,9 ! Plane X, wire 9
-5,3,10 ! Plane X, wire 10
-4,3,11 ! Plane X, wire 11
-3,3,12 ! Plane X, wire 12
-2,3,13 ! Plane X, wire 13
-1,3,14 ! Plane X, wire 14
-0,3,15 ! Plane X, wire 15
+REFCHAN=79
+  15,   3,   1  ! DC1, Plane X, wire 1
+  14,   3,   2  ! DC1, Plane X, wire 2
+  13,   3,   3  ! DC1, Plane X, wire 3
+  12,   3,   4  ! DC1, Plane X, wire 4
+  11,   3,   5  ! DC1, Plane X, wire 5
+  10,   3,   6  ! DC1, Plane X, wire 6
+   9,   3,   7  ! DC1, Plane X, wire 7
+   8,   3,   8  ! DC1, Plane X, wire 8
+   7,   3,   9  ! DC1, Plane X, wire 9
+   6,   3,  10  ! DC1, Plane X, wire 10
+   5,   3,  11  ! DC1, Plane X, wire 11
+   4,   3,  12  ! DC1, Plane X, wire 12
+   3,   3,  13  ! DC1, Plane X, wire 13
+   2,   3,  14  ! DC1, Plane X, wire 14
+   1,   3,  15  ! DC1, Plane X, wire 15
+   0,   3,  16  ! DC1, Plane X, wire 16
+
 SLOT=7
-63,3,16 ! Plane X, wire 16
-62,3,17 ! Plane X, wire 17
-61,3,18 ! Plane X, wire 18
-60,3,19 ! Plane X, wire 19
-59,3,20 ! Plane X, wire 20
-58,3,21 ! Plane X, wire 21
-57,3,22 ! Plane X, wire 22
-56,3,23 ! Plane X, wire 23
-55,3,24 ! Plane X, wire 24
-54,3,25 ! Plane X, wire 25
-53,3,26 ! Plane X, wire 26
-52,3,27 ! Plane X, wire 27
-51,3,28 ! Plane X, wire 28
-50,3,29 ! Plane X, wire 29
-49,3,30 ! Plane X, wire 30
-48,3,31 ! Plane X, wire 31
+REFCHAN=79
+  63,   3,  17  ! DC1, Plane X, wire 17
+  62,   3,  18  ! DC1, Plane X, wire 18
+  61,   3,  19  ! DC1, Plane X, wire 19
+  60,   3,  20  ! DC1, Plane X, wire 20
+  59,   3,  21  ! DC1, Plane X, wire 21
+  58,   3,  22  ! DC1, Plane X, wire 22
+  57,   3,  23  ! DC1, Plane X, wire 23
+  56,   3,  24  ! DC1, Plane X, wire 24
+  55,   3,  25  ! DC1, Plane X, wire 25
+  54,   3,  26  ! DC1, Plane X, wire 26
+  53,   3,  27  ! DC1, Plane X, wire 27
+  52,   3,  28  ! DC1, Plane X, wire 28
+  51,   3,  29  ! DC1, Plane X, wire 29
+  50,   3,  30  ! DC1, Plane X, wire 30
+  49,   3,  31  ! DC1, Plane X, wire 31
+  48,   3,  32  ! DC1, Plane X, wire 32
+
 SLOT=6
-63,3,32 ! Plane X, wire 32
-62,3,33 ! Plane X, wire 33
-61,3,34 ! Plane X, wire 34
-60,3,35 ! Plane X, wire 35
-59,3,36 ! Plane X, wire 36
-58,3,37 ! Plane X, wire 37
-57,3,38 ! Plane X, wire 38
-56,3,39 ! Plane X, wire 39
-55,3,40 ! Plane X, wire 40
-54,3,41 ! Plane X, wire 41
-53,3,42 ! Plane X, wire 42
-52,3,43 ! Plane X, wire 43
-51,3,44 ! Plane X, wire 44
-50,3,45 ! Plane X, wire 45
-49,3,46 ! Plane X, wire 46
-SLOT=8
-15,3,47 ! Plane X, wire 47
+REFCHAN=79
+  63,   3,  33  ! DC1, Plane X, wire 33
+  62,   3,  34  ! DC1, Plane X, wire 34
+  61,   3,  35  ! DC1, Plane X, wire 35
+  60,   3,  36  ! DC1, Plane X, wire 36
+  59,   3,  37  ! DC1, Plane X, wire 37
+  58,   3,  38  ! DC1, Plane X, wire 38
+  57,   3,  39  ! DC1, Plane X, wire 39
+  56,   3,  40  ! DC1, Plane X, wire 40
+  55,   3,  41  ! DC1, Plane X, wire 41
+  54,   3,  42  ! DC1, Plane X, wire 42
+  53,   3,  43  ! DC1, Plane X, wire 43
+  52,   3,  44  ! DC1, Plane X, wire 44
+  51,   3,  45  ! DC1, Plane X, wire 45
+  50,   3,  46  ! DC1, Plane X, wire 46
+  49,   3,  47  ! DC1, Plane X, wire 47
+  48,   3,  48  ! DC1, Plane X, wire 48
+
 SLOT=10
-48,3,48 ! Plane X, wire 48
-49,3,49 ! Plane X, wire 49
-50,3,50 ! Plane X, wire 50
-51,3,51 ! Plane X, wire 51
-52,3,52 ! Plane X, wire 52
-53,3,53 ! Plane X, wire 53
-54,3,54 ! Plane X, wire 54
-55,3,55 ! Plane X, wire 55
-56,3,56 ! Plane X, wire 56
-57,3,57 ! Plane X, wire 57
-58,3,58 ! Plane X, wire 58
-59,3,59 ! Plane X, wire 59
-60,3,60 ! Plane X, wire 60
-61,3,61 ! Plane X, wire 61
-62,3,62 ! Plane X, wire 62
-63,3,63 ! Plane X, wire 63
+REFCHAN=79
+  48,   3,  49  ! DC1, Plane X, wire 49
+  49,   3,  50  ! DC1, Plane X, wire 50
+  50,   3,  51  ! DC1, Plane X, wire 51
+  51,   3,  52  ! DC1, Plane X, wire 52
+  52,   3,  53  ! DC1, Plane X, wire 53
+  53,   3,  54  ! DC1, Plane X, wire 54
+  54,   3,  55  ! DC1, Plane X, wire 55
+  55,   3,  56  ! DC1, Plane X, wire 56
+  56,   3,  57  ! DC1, Plane X, wire 57
+  57,   3,  58  ! DC1, Plane X, wire 58
+  58,   3,  59  ! DC1, Plane X, wire 59
+  59,   3,  60  ! DC1, Plane X, wire 60
+  60,   3,  61  ! DC1, Plane X, wire 61
+  61,   3,  62  ! DC1, Plane X, wire 62
+  62,   3,  63  ! DC1, Plane X, wire 63
+  63,   3,  64  ! DC1, Plane X, wire 64
+
 SLOT=9
-80,3,64 ! Plane X, wire 64
-81,3,65 ! Plane X, wire 65
-82,3,66 ! Plane X, wire 66
-83,3,67 ! Plane X, wire 67
-84,3,68 ! Plane X, wire 68
-85,3,69 ! Plane X, wire 69
-86,3,70 ! Plane X, wire 70
-87,3,71 ! Plane X, wire 71
-88,3,72 ! Plane X, wire 72
-89,3,73 ! Plane X, wire 73
-90,3,74 ! Plane X, wire 74
-91,3,75 ! Plane X, wire 75
-92,3,76 ! Plane X, wire 76
-93,3,77 ! Plane X, wire 77
-94,3,78 ! Plane X, wire 78
-29,4,1 ! Plane X', wire 1
-28,4,2 ! Plane X', wire 2
-27,4,3 ! Plane X', wire 3
-26,4,4 ! Plane X', wire 4
-25,4,5 ! Plane X', wire 5
-24,4,6 ! Plane X', wire 6
-23,4,7 ! Plane X', wire 7
-22,4,8 ! Plane X', wire 8
-21,4,9 ! Plane X', wire 9
-20,4,10 ! Plane X', wire 10
-19,4,11 ! Plane X', wire 11
-18,4,12 ! Plane X', wire 12
-17,4,13 ! Plane X', wire 13
-16,4,14 ! Plane X', wire 14
+REFCHAN=79
+  80,   3,  65  ! DC1, Plane X, wire 65
+  81,   3,  66  ! DC1, Plane X, wire 66
+  82,   3,  67  ! DC1, Plane X, wire 67
+  83,   3,  68  ! DC1, Plane X, wire 68
+  84,   3,  69  ! DC1, Plane X, wire 69
+  85,   3,  70  ! DC1, Plane X, wire 70
+  86,   3,  71  ! DC1, Plane X, wire 71
+  87,   3,  72  ! DC1, Plane X, wire 72
+  88,   3,  73  ! DC1, Plane X, wire 73
+  89,   3,  74  ! DC1, Plane X, wire 74
+  90,   3,  75  ! DC1, Plane X, wire 75
+  91,   3,  76  ! DC1, Plane X, wire 76
+  92,   3,  77  ! DC1, Plane X, wire 77
+  93,   3,  78  ! DC1, Plane X, wire 78
+  94,   3,  79  ! DC1, Plane X, wire 79
+  30,   4,   1  ! DC1, Plane X', wire 1
+  29,   4,   2  ! DC1, Plane X', wire 2
+  28,   4,   3  ! DC1, Plane X', wire 3
+  27,   4,   4  ! DC1, Plane X', wire 4
+  26,   4,   5  ! DC1, Plane X', wire 5
+  25,   4,   6  ! DC1, Plane X', wire 6
+  24,   4,   7  ! DC1, Plane X', wire 7
+  23,   4,   8  ! DC1, Plane X', wire 8
+  22,   4,   9  ! DC1, Plane X', wire 9
+  21,   4,  10  ! DC1, Plane X', wire 10
+  20,   4,  11  ! DC1, Plane X', wire 11
+  19,   4,  12  ! DC1, Plane X', wire 12
+  18,   4,  13  ! DC1, Plane X', wire 13
+  17,   4,  14  ! DC1, Plane X', wire 14
+  16,   4,  15  ! DC1, Plane X', wire 15
+
 SLOT=8
-47,4,15 ! Plane X', wire 15
-46,4,16 ! Plane X', wire 16
-45,4,17 ! Plane X', wire 17
-44,4,18 ! Plane X', wire 18
-43,4,19 ! Plane X', wire 19
-42,4,20 ! Plane X', wire 20
-41,4,21 ! Plane X', wire 21
-40,4,22 ! Plane X', wire 22
-39,4,23 ! Plane X', wire 23
-38,4,24 ! Plane X', wire 24
-37,4,25 ! Plane X', wire 25
-36,4,26 ! Plane X', wire 26
-35,4,27 ! Plane X', wire 27
-34,4,28 ! Plane X', wire 28
-33,4,29 ! Plane X', wire 29
-32,4,30 ! Plane X', wire 30
+REFCHAN=79
+  47,   4,  16  ! DC1, Plane X', wire 16
+  46,   4,  17  ! DC1, Plane X', wire 17
+  45,   4,  18  ! DC1, Plane X', wire 18
+  44,   4,  19  ! DC1, Plane X', wire 19
+  43,   4,  20  ! DC1, Plane X', wire 20
+  42,   4,  21  ! DC1, Plane X', wire 21
+  41,   4,  22  ! DC1, Plane X', wire 22
+  40,   4,  23  ! DC1, Plane X', wire 23
+  39,   4,  24  ! DC1, Plane X', wire 24
+  38,   4,  25  ! DC1, Plane X', wire 25
+  37,   4,  26  ! DC1, Plane X', wire 26
+  36,   4,  27  ! DC1, Plane X', wire 27
+  35,   4,  28  ! DC1, Plane X', wire 28
+  34,   4,  29  ! DC1, Plane X', wire 29
+  33,   4,  30  ! DC1, Plane X', wire 30
+  32,   4,  31  ! DC1, Plane X', wire 31
+
 SLOT=7
-0,4,31 ! Plane X', wire 31
-1,4,32 ! Plane X', wire 32
-2,4,33 ! Plane X', wire 33
-3,4,34 ! Plane X', wire 34
-4,4,35 ! Plane X', wire 35
-5,4,36 ! Plane X', wire 36
-6,4,37 ! Plane X', wire 37
-7,4,38 ! Plane X', wire 38
-8,4,39 ! Plane X', wire 39
-9,4,40 ! Plane X', wire 40
-10,4,41 ! Plane X', wire 41
-11,4,42 ! Plane X', wire 42
-12,4,43 ! Plane X', wire 43
-13,4,44 ! Plane X', wire 44
-14,4,45 ! Plane X', wire 45
-15,4,46 ! Plane X', wire 46
-SLOT=6
-96,4,47 ! Plane X', wire 47
-97,4,48 ! Plane X', wire 48
-98,4,49 ! Plane X', wire 49
-99,4,50 ! Plane X', wire 50
-100,4,51 ! Plane X', wire 51
-101,4,52 ! Plane X', wire 52
-102,4,53 ! Plane X', wire 53
-103,4,54 ! Plane X', wire 54
-104,4,55 ! Plane X', wire 55
-105,4,56 ! Plane X', wire 56
-106,4,57 ! Plane X', wire 57
-107,4,58 ! Plane X', wire 58
-108,4,59 ! Plane X', wire 59
-109,4,60 ! Plane X', wire 60
-110,4,61 ! Plane X', wire 61
-111,4,62 ! Plane X', wire 62
-0,4,63 ! Plane X', wire 63
-1,4,64 ! Plane X', wire 64
-2,4,65 ! Plane X', wire 65
-3,4,66 ! Plane X', wire 66
-4,4,67 ! Plane X', wire 67
-5,4,68 ! Plane X', wire 68
-6,4,69 ! Plane X', wire 69
-7,4,70 ! Plane X', wire 70
-8,4,71 ! Plane X', wire 71
-9,4,72 ! Plane X', wire 72
-10,4,73 ! Plane X', wire 73
-11,4,74 ! Plane X', wire 74
-12,4,75 ! Plane X', wire 75
-13,4,76 ! Plane X', wire 76
-14,4,77 ! Plane X', wire 77
-SLOT=9
-30,4,78 ! Plane X', wire 78
+REFCHAN=79
+   0,   4,  32  ! DC1, Plane X', wire 32
+   1,   4,  33  ! DC1, Plane X', wire 33
+   2,   4,  34  ! DC1, Plane X', wire 34
+   3,   4,  35  ! DC1, Plane X', wire 35
+   4,   4,  36  ! DC1, Plane X', wire 36
+   5,   4,  37  ! DC1, Plane X', wire 37
+   6,   4,  38  ! DC1, Plane X', wire 38
+   7,   4,  39  ! DC1, Plane X', wire 39
+   8,   4,  40  ! DC1, Plane X', wire 40
+   9,   4,  41  ! DC1, Plane X', wire 41
+  10,   4,  42  ! DC1, Plane X', wire 42
+  11,   4,  43  ! DC1, Plane X', wire 43
+  12,   4,  44  ! DC1, Plane X', wire 44
+  13,   4,  45  ! DC1, Plane X', wire 45
+  14,   4,  46  ! DC1, Plane X', wire 46
+  15,   4,  47  ! DC1, Plane X', wire 47
 
+SLOT=6
+REFCHAN=79
+  96,   4,  48  ! DC1, Plane X', wire 48
+  97,   4,  49  ! DC1, Plane X', wire 49
+  98,   4,  50  ! DC1, Plane X', wire 50
+  99,   4,  51  ! DC1, Plane X', wire 51
+ 100,   4,  52  ! DC1, Plane X', wire 52
+ 101,   4,  53  ! DC1, Plane X', wire 53
+ 102,   4,  54  ! DC1, Plane X', wire 54
+ 103,   4,  55  ! DC1, Plane X', wire 55
+ 104,   4,  56  ! DC1, Plane X', wire 56
+ 105,   4,  57  ! DC1, Plane X', wire 57
+ 106,   4,  58  ! DC1, Plane X', wire 58
+ 107,   4,  59  ! DC1, Plane X', wire 59
+ 108,   4,  60  ! DC1, Plane X', wire 60
+ 109,   4,  61  ! DC1, Plane X', wire 61
+ 110,   4,  62  ! DC1, Plane X', wire 62
+ 111,   4,  63  ! DC1, Plane X', wire 63
+   0,   4,  64  ! DC1, Plane X', wire 64
+   1,   4,  65  ! DC1, Plane X', wire 65
+   2,   4,  66  ! DC1, Plane X', wire 66
+   3,   4,  67  ! DC1, Plane X', wire 67
+   4,   4,  68  ! DC1, Plane X', wire 68
+   5,   4,  69  ! DC1, Plane X', wire 69
+   6,   4,  70  ! DC1, Plane X', wire 70
+   7,   4,  71  ! DC1, Plane X', wire 71
+   8,   4,  72  ! DC1, Plane X', wire 72
+   9,   4,  73  ! DC1, Plane X', wire 73
+  10,   4,  74  ! DC1, Plane X', wire 74
+  11,   4,  75  ! DC1, Plane X', wire 75
+  12,   4,  76  ! DC1, Plane X', wire 76
+  13,   4,  77  ! DC1, Plane X', wire 77
+  14,   4,  78  ! DC1, Plane X', wire 78
+  15,   4,  79  ! DC1, Plane X', wire 79
 
-! Caen 1190 VME Modules >> DC2
 SLOT=14
-45,12,1 ! Plane U, wire 1
-44,12,2 ! Plane U, wire 2
-43,12,3 ! Plane U, wire 3
-42,12,4 ! Plane U, wire 4
-41,12,5 ! Plane U, wire 5
-40,12,6 ! Plane U, wire 6
-39,12,7 ! Plane U, wire 7
-38,12,8 ! Plane U, wire 8
-37,12,9 ! Plane U, wire 9
-36,12,10 ! Plane U, wire 10
-35,12,11 ! Plane U, wire 11
-34,12,12 ! Plane U, wire 12
-33,12,13 ! Plane U, wire 13
-32,12,14 ! Plane U, wire 14
+REFCHAN=15
+  46,  12,   1  ! DC2, Plane U, wire 1
+  45,  12,   2  ! DC2, Plane U, wire 2
+  44,  12,   3  ! DC2, Plane U, wire 3
+  43,  12,   4  ! DC2, Plane U, wire 4
+  42,  12,   5  ! DC2, Plane U, wire 5
+  41,  12,   6  ! DC2, Plane U, wire 6
+  40,  12,   7  ! DC2, Plane U, wire 7
+  39,  12,   8  ! DC2, Plane U, wire 8
+  38,  12,   9  ! DC2, Plane U, wire 9
+  37,  12,  10  ! DC2, Plane U, wire 10
+  36,  12,  11  ! DC2, Plane U, wire 11
+  35,  12,  12  ! DC2, Plane U, wire 12
+  34,  12,  13  ! DC2, Plane U, wire 13
+  33,  12,  14  ! DC2, Plane U, wire 14
+  32,  12,  15  ! DC2, Plane U, wire 15
+
 SLOT=11
-127,12,15 ! Plane U, wire 15
-126,12,16 ! Plane U, wire 16
-125,12,17 ! Plane U, wire 17
-124,12,18 ! Plane U, wire 18
-123,12,19 ! Plane U, wire 19
-122,12,20 ! Plane U, wire 20
-121,12,21 ! Plane U, wire 21
-120,12,22 ! Plane U, wire 22
-119,12,23 ! Plane U, wire 23
-118,12,24 ! Plane U, wire 24
-117,12,25 ! Plane U, wire 25
-116,12,26 ! Plane U, wire 26
-115,12,27 ! Plane U, wire 27
-114,12,28 ! Plane U, wire 28
-113,12,29 ! Plane U, wire 29
-112,12,30 ! Plane U, wire 30
-63,12,31 ! Plane U, wire 31
-62,12,32 ! Plane U, wire 32
-61,12,33 ! Plane U, wire 33
-60,12,34 ! Plane U, wire 34
-59,12,35 ! Plane U, wire 35
-58,12,36 ! Plane U, wire 36
-57,12,37 ! Plane U, wire 37
-56,12,38 ! Plane U, wire 38
-55,12,39 ! Plane U, wire 39
-54,12,40 ! Plane U, wire 40
-53,12,41 ! Plane U, wire 41
-52,12,42 ! Plane U, wire 42
-51,12,43 ! Plane U, wire 43
-50,12,44 ! Plane U, wire 44
-49,12,45 ! Plane U, wire 45
-48,12,46 ! Plane U, wire 46
+REFCHAN=47
+ 127,  12,  16  ! DC2, Plane U, wire 16
+ 126,  12,  17  ! DC2, Plane U, wire 17
+ 125,  12,  18  ! DC2, Plane U, wire 18
+ 124,  12,  19  ! DC2, Plane U, wire 19
+ 123,  12,  20  ! DC2, Plane U, wire 20
+ 122,  12,  21  ! DC2, Plane U, wire 21
+ 121,  12,  22  ! DC2, Plane U, wire 22
+ 120,  12,  23  ! DC2, Plane U, wire 23
+ 119,  12,  24  ! DC2, Plane U, wire 24
+ 118,  12,  25  ! DC2, Plane U, wire 25
+ 117,  12,  26  ! DC2, Plane U, wire 26
+ 116,  12,  27  ! DC2, Plane U, wire 27
+ 115,  12,  28  ! DC2, Plane U, wire 28
+ 114,  12,  29  ! DC2, Plane U, wire 29
+ 113,  12,  30  ! DC2, Plane U, wire 30
+ 112,  12,  31  ! DC2, Plane U, wire 31
+  63,  12,  32  ! DC2, Plane U, wire 32
+  62,  12,  33  ! DC2, Plane U, wire 33
+  61,  12,  34  ! DC2, Plane U, wire 34
+  60,  12,  35  ! DC2, Plane U, wire 35
+  59,  12,  36  ! DC2, Plane U, wire 36
+  58,  12,  37  ! DC2, Plane U, wire 37
+  57,  12,  38  ! DC2, Plane U, wire 38
+  56,  12,  39  ! DC2, Plane U, wire 39
+  55,  12,  40  ! DC2, Plane U, wire 40
+  54,  12,  41  ! DC2, Plane U, wire 41
+  53,  12,  42  ! DC2, Plane U, wire 42
+  52,  12,  43  ! DC2, Plane U, wire 43
+  51,  12,  44  ! DC2, Plane U, wire 44
+  50,  12,  45  ! DC2, Plane U, wire 45
+  49,  12,  46  ! DC2, Plane U, wire 46
+  48,  12,  47  ! DC2, Plane U, wire 47
+
 SLOT=10
-127,12,47 ! Plane U, wire 47
-126,12,48 ! Plane U, wire 48
-125,12,49 ! Plane U, wire 49
-124,12,50 ! Plane U, wire 50
-123,12,51 ! Plane U, wire 51
-122,12,52 ! Plane U, wire 52
-121,12,53 ! Plane U, wire 53
-120,12,54 ! Plane U, wire 54
-119,12,55 ! Plane U, wire 55
-118,12,56 ! Plane U, wire 56
-117,12,57 ! Plane U, wire 57
-116,12,58 ! Plane U, wire 58
-115,12,59 ! Plane U, wire 59
-114,12,60 ! Plane U, wire 60
-113,12,61 ! Plane U, wire 61
-112,12,62 ! Plane U, wire 62
+REFCHAN=79
+ 127,  12,  48  ! DC2, Plane U, wire 48
+ 126,  12,  49  ! DC2, Plane U, wire 49
+ 125,  12,  50  ! DC2, Plane U, wire 50
+ 124,  12,  51  ! DC2, Plane U, wire 51
+ 123,  12,  52  ! DC2, Plane U, wire 52
+ 122,  12,  53  ! DC2, Plane U, wire 53
+ 121,  12,  54  ! DC2, Plane U, wire 54
+ 120,  12,  55  ! DC2, Plane U, wire 55
+ 119,  12,  56  ! DC2, Plane U, wire 56
+ 118,  12,  57  ! DC2, Plane U, wire 57
+ 117,  12,  58  ! DC2, Plane U, wire 58
+ 116,  12,  59  ! DC2, Plane U, wire 59
+ 115,  12,  60  ! DC2, Plane U, wire 60
+ 114,  12,  61  ! DC2, Plane U, wire 61
+ 113,  12,  62  ! DC2, Plane U, wire 62
+ 112,  12,  63  ! DC2, Plane U, wire 63
+
 SLOT=13
-80,12,63 ! Plane U, wire 63
-81,12,64 ! Plane U, wire 64
-82,12,65 ! Plane U, wire 65
-83,12,66 ! Plane U, wire 66
-84,12,67 ! Plane U, wire 67
-85,12,68 ! Plane U, wire 68
-86,12,69 ! Plane U, wire 69
-87,12,70 ! Plane U, wire 70
-88,12,71 ! Plane U, wire 71
-89,12,72 ! Plane U, wire 72
-90,12,73 ! Plane U, wire 73
-91,12,74 ! Plane U, wire 74
-92,12,75 ! Plane U, wire 75
-93,12,76 ! Plane U, wire 76
-94,12,77 ! Plane U, wire 77
-95,12,78 ! Plane U, wire 78
-16,12,79 ! Plane U, wire 79
-17,12,80 ! Plane U, wire 80
-18,12,81 ! Plane U, wire 81
-19,12,82 ! Plane U, wire 82
-20,12,83 ! Plane U, wire 83
-21,12,84 ! Plane U, wire 84
-22,12,85 ! Plane U, wire 85
-23,12,86 ! Plane U, wire 86
-24,12,87 ! Plane U, wire 87
-25,12,88 ! Plane U, wire 88
-26,12,89 ! Plane U, wire 89
-27,12,90 ! Plane U, wire 90
-28,12,91 ! Plane U, wire 91
-29,12,92 ! Plane U, wire 92
-30,12,93 ! Plane U, wire 93
+REFCHAN=47
+  80,  12,  64  ! DC2, Plane U, wire 64
+  81,  12,  65  ! DC2, Plane U, wire 65
+  82,  12,  66  ! DC2, Plane U, wire 66
+  83,  12,  67  ! DC2, Plane U, wire 67
+  84,  12,  68  ! DC2, Plane U, wire 68
+  85,  12,  69  ! DC2, Plane U, wire 69
+  86,  12,  70  ! DC2, Plane U, wire 70
+  87,  12,  71  ! DC2, Plane U, wire 71
+  88,  12,  72  ! DC2, Plane U, wire 72
+  89,  12,  73  ! DC2, Plane U, wire 73
+  90,  12,  74  ! DC2, Plane U, wire 74
+  91,  12,  75  ! DC2, Plane U, wire 75
+  92,  12,  76  ! DC2, Plane U, wire 76
+  93,  12,  77  ! DC2, Plane U, wire 77
+  94,  12,  78  ! DC2, Plane U, wire 78
+  95,  12,  79  ! DC2, Plane U, wire 79
+  16,  12,  80  ! DC2, Plane U, wire 80
+  17,  12,  81  ! DC2, Plane U, wire 81
+  18,  12,  82  ! DC2, Plane U, wire 82
+  19,  12,  83  ! DC2, Plane U, wire 83
+  20,  12,  84  ! DC2, Plane U, wire 84
+  21,  12,  85  ! DC2, Plane U, wire 85
+  22,  12,  86  ! DC2, Plane U, wire 86
+  23,  12,  87  ! DC2, Plane U, wire 87
+  24,  12,  88  ! DC2, Plane U, wire 88
+  25,  12,  89  ! DC2, Plane U, wire 89
+  26,  12,  90  ! DC2, Plane U, wire 90
+  27,  12,  91  ! DC2, Plane U, wire 91
+  28,  12,  92  ! DC2, Plane U, wire 92
+  29,  12,  93  ! DC2, Plane U, wire 93
+  30,  12,  94  ! DC2, Plane U, wire 94
+  31,  12,  95  ! DC2, Plane U, wire 95
+
 SLOT=14
-46,12,94 ! Plane U, wire 94
-80,12,95 ! Plane U, wire 95
-81,12,96 ! Plane U, wire 96
-82,12,97 ! Plane U, wire 97
-83,12,98 ! Plane U, wire 98
-84,12,99 ! Plane U, wire 99
-85,12,100 ! Plane U, wire 100
-86,12,101 ! Plane U, wire 101
-87,12,102 ! Plane U, wire 102
-88,12,103 ! Plane U, wire 103
-89,12,104 ! Plane U, wire 104
-90,12,105 ! Plane U, wire 105
-91,12,106 ! Plane U, wire 106
+REFCHAN=15
+  80,  12,  96  ! DC2, Plane U, wire 96
+  81,  12,  97  ! DC2, Plane U, wire 97
+  82,  12,  98  ! DC2, Plane U, wire 98
+  83,  12,  99  ! DC2, Plane U, wire 99
+  84,  12, 100  ! DC2, Plane U, wire 100
+  85,  12, 101  ! DC2, Plane U, wire 101
+  86,  12, 102  ! DC2, Plane U, wire 102
+  87,  12, 103  ! DC2, Plane U, wire 103
+  88,  12, 104  ! DC2, Plane U, wire 104
+  89,  12, 105  ! DC2, Plane U, wire 105
+  90,  12, 106  ! DC2, Plane U, wire 106
+  91,  12, 107  ! DC2, Plane U, wire 107
+
 SLOT=13
-42,11,1 ! Plane U', wire 1
-41,11,2 ! Plane U', wire 2
-40,11,3 ! Plane U', wire 3
-39,11,4 ! Plane U', wire 4
-38,11,5 ! Plane U', wire 5
-37,11,6 ! Plane U', wire 6
-36,11,7 ! Plane U', wire 7
-35,11,8 ! Plane U', wire 8
-34,11,9 ! Plane U', wire 9
-33,11,10 ! Plane U', wire 10
-32,11,11 ! Plane U', wire 11
+REFCHAN=47
+  43,  11,   1  ! DC2, Plane U', wire 1
+  42,  11,   2  ! DC2, Plane U', wire 2
+  41,  11,   3  ! DC2, Plane U', wire 3
+  40,  11,   4  ! DC2, Plane U', wire 4
+  39,  11,   5  ! DC2, Plane U', wire 5
+  38,  11,   6  ! DC2, Plane U', wire 6
+  37,  11,   7  ! DC2, Plane U', wire 7
+  36,  11,   8  ! DC2, Plane U', wire 8
+  35,  11,   9  ! DC2, Plane U', wire 9
+  34,  11,  10  ! DC2, Plane U', wire 10
+  33,  11,  11  ! DC2, Plane U', wire 11
+  32,  11,  12  ! DC2, Plane U', wire 12
+
 SLOT=11
-95,11,12 ! Plane U', wire 12
-94,11,13 ! Plane U', wire 13
-93,11,14 ! Plane U', wire 14
-92,11,15 ! Plane U', wire 15
-91,11,16 ! Plane U', wire 16
-90,11,17 ! Plane U', wire 17
-89,11,18 ! Plane U', wire 18
-88,11,19 ! Plane U', wire 19
-87,11,20 ! Plane U', wire 20
-86,11,21 ! Plane U', wire 21
-85,11,22 ! Plane U', wire 22
-84,11,23 ! Plane U', wire 23
-83,11,24 ! Plane U', wire 24
-82,11,25 ! Plane U', wire 25
-81,11,26 ! Plane U', wire 26
-80,11,27 ! Plane U', wire 27
-15,11,28 ! Plane U', wire 28
-14,11,29 ! Plane U', wire 29
-13,11,30 ! Plane U', wire 30
-12,11,31 ! Plane U', wire 31
-11,11,32 ! Plane U', wire 32
-10,11,33 ! Plane U', wire 33
-9,11,34 ! Plane U', wire 34
-8,11,35 ! Plane U', wire 35
-7,11,36 ! Plane U', wire 36
-6,11,37 ! Plane U', wire 37
-5,11,38 ! Plane U', wire 38
-4,11,39 ! Plane U', wire 39
-3,11,40 ! Plane U', wire 40
-2,11,41 ! Plane U', wire 41
-1,11,42 ! Plane U', wire 42
+REFCHAN=47
+  95,  11,  13  ! DC2, Plane U', wire 13
+  94,  11,  14  ! DC2, Plane U', wire 14
+  93,  11,  15  ! DC2, Plane U', wire 15
+  92,  11,  16  ! DC2, Plane U', wire 16
+  91,  11,  17  ! DC2, Plane U', wire 17
+  90,  11,  18  ! DC2, Plane U', wire 18
+  89,  11,  19  ! DC2, Plane U', wire 19
+  88,  11,  20  ! DC2, Plane U', wire 20
+  87,  11,  21  ! DC2, Plane U', wire 21
+  86,  11,  22  ! DC2, Plane U', wire 22
+  85,  11,  23  ! DC2, Plane U', wire 23
+  84,  11,  24  ! DC2, Plane U', wire 24
+  83,  11,  25  ! DC2, Plane U', wire 25
+  82,  11,  26  ! DC2, Plane U', wire 26
+  81,  11,  27  ! DC2, Plane U', wire 27
+  80,  11,  28  ! DC2, Plane U', wire 28
+  15,  11,  29  ! DC2, Plane U', wire 29
+  14,  11,  30  ! DC2, Plane U', wire 30
+  13,  11,  31  ! DC2, Plane U', wire 31
+  12,  11,  32  ! DC2, Plane U', wire 32
+  11,  11,  33  ! DC2, Plane U', wire 33
+  10,  11,  34  ! DC2, Plane U', wire 34
+   9,  11,  35  ! DC2, Plane U', wire 35
+   8,  11,  36  ! DC2, Plane U', wire 36
+   7,  11,  37  ! DC2, Plane U', wire 37
+   6,  11,  38  ! DC2, Plane U', wire 38
+   5,  11,  39  ! DC2, Plane U', wire 39
+   4,  11,  40  ! DC2, Plane U', wire 40
+   3,  11,  41  ! DC2, Plane U', wire 41
+   2,  11,  42  ! DC2, Plane U', wire 42
+   1,  11,  43  ! DC2, Plane U', wire 43
+   0,  11,  44  ! DC2, Plane U', wire 44
+
 SLOT=13
-43,11,43 ! Plane U', wire 43
-96,11,44 ! Plane U', wire 44
-97,11,45 ! Plane U', wire 45
-98,11,46 ! Plane U', wire 46
-99,11,47 ! Plane U', wire 47
-100,11,48 ! Plane U', wire 48
-101,11,49 ! Plane U', wire 49
-102,11,50 ! Plane U', wire 50
-103,11,51 ! Plane U', wire 51
-104,11,52 ! Plane U', wire 52
-105,11,53 ! Plane U', wire 53
-106,11,54 ! Plane U', wire 54
-107,11,55 ! Plane U', wire 55
-108,11,56 ! Plane U', wire 56
-109,11,57 ! Plane U', wire 57
-110,11,58 ! Plane U', wire 58
-111,11,59 ! Plane U', wire 59
-64,11,60 ! Plane U', wire 60
-65,11,61 ! Plane U', wire 61
-66,11,62 ! Plane U', wire 62
-67,11,63 ! Plane U', wire 63
-68,11,64 ! Plane U', wire 64
-69,11,65 ! Plane U', wire 65
-70,11,66 ! Plane U', wire 66
-71,11,67 ! Plane U', wire 67
-72,11,68 ! Plane U', wire 68
-73,11,69 ! Plane U', wire 69
-74,11,70 ! Plane U', wire 70
-75,11,71 ! Plane U', wire 71
-76,11,72 ! Plane U', wire 72
-77,11,73 ! Plane U', wire 73
-78,11,74 ! Plane U', wire 74
-79,11,75 ! Plane U', wire 75
+REFCHAN=47
+  96,  11,  45  ! DC2, Plane U', wire 45
+  97,  11,  46  ! DC2, Plane U', wire 46
+  98,  11,  47  ! DC2, Plane U', wire 47
+  99,  11,  48  ! DC2, Plane U', wire 48
+ 100,  11,  49  ! DC2, Plane U', wire 49
+ 101,  11,  50  ! DC2, Plane U', wire 50
+ 102,  11,  51  ! DC2, Plane U', wire 51
+ 103,  11,  52  ! DC2, Plane U', wire 52
+ 104,  11,  53  ! DC2, Plane U', wire 53
+ 105,  11,  54  ! DC2, Plane U', wire 54
+ 106,  11,  55  ! DC2, Plane U', wire 55
+ 107,  11,  56  ! DC2, Plane U', wire 56
+ 108,  11,  57  ! DC2, Plane U', wire 57
+ 109,  11,  58  ! DC2, Plane U', wire 58
+ 110,  11,  59  ! DC2, Plane U', wire 59
+ 111,  11,  60  ! DC2, Plane U', wire 60
+  64,  11,  61  ! DC2, Plane U', wire 61
+  65,  11,  62  ! DC2, Plane U', wire 62
+  66,  11,  63  ! DC2, Plane U', wire 63
+  67,  11,  64  ! DC2, Plane U', wire 64
+  68,  11,  65  ! DC2, Plane U', wire 65
+  69,  11,  66  ! DC2, Plane U', wire 66
+  70,  11,  67  ! DC2, Plane U', wire 67
+  71,  11,  68  ! DC2, Plane U', wire 68
+  72,  11,  69  ! DC2, Plane U', wire 69
+  73,  11,  70  ! DC2, Plane U', wire 70
+  74,  11,  71  ! DC2, Plane U', wire 71
+  75,  11,  72  ! DC2, Plane U', wire 72
+  76,  11,  73  ! DC2, Plane U', wire 73
+  77,  11,  74  ! DC2, Plane U', wire 74
+  78,  11,  75  ! DC2, Plane U', wire 75
+  79,  11,  76  ! DC2, Plane U', wire 76
+
 SLOT=15
-48,11,76 ! Plane U', wire 76
-49,11,77 ! Plane U', wire 77
-50,11,78 ! Plane U', wire 78
-51,11,79 ! Plane U', wire 79
-52,11,80 ! Plane U', wire 80
-53,11,81 ! Plane U', wire 81
-54,11,82 ! Plane U', wire 82
-55,11,83 ! Plane U', wire 83
-56,11,84 ! Plane U', wire 84
-57,11,85 ! Plane U', wire 85
-58,11,86 ! Plane U', wire 86
-59,11,87 ! Plane U', wire 87
-60,11,88 ! Plane U', wire 88
-61,11,89 ! Plane U', wire 89
-62,11,90 ! Plane U', wire 90
-63,11,91 ! Plane U', wire 91
+REFCHAN=47
+  48,  11,  77  ! DC2, Plane U', wire 77
+  49,  11,  78  ! DC2, Plane U', wire 78
+  50,  11,  79  ! DC2, Plane U', wire 79
+  51,  11,  80  ! DC2, Plane U', wire 80
+  52,  11,  81  ! DC2, Plane U', wire 81
+  53,  11,  82  ! DC2, Plane U', wire 82
+  54,  11,  83  ! DC2, Plane U', wire 83
+  55,  11,  84  ! DC2, Plane U', wire 84
+  56,  11,  85  ! DC2, Plane U', wire 85
+  57,  11,  86  ! DC2, Plane U', wire 86
+  58,  11,  87  ! DC2, Plane U', wire 87
+  59,  11,  88  ! DC2, Plane U', wire 88
+  60,  11,  89  ! DC2, Plane U', wire 89
+  61,  11,  90  ! DC2, Plane U', wire 90
+  62,  11,  91  ! DC2, Plane U', wire 91
+  63,  11,  92  ! DC2, Plane U', wire 92
+
 SLOT=14
-112,11,92 ! Plane U', wire 92
-113,11,93 ! Plane U', wire 93
-114,11,94 ! Plane U', wire 94
-115,11,95 ! Plane U', wire 95
-116,11,96 ! Plane U', wire 96
-117,11,97 ! Plane U', wire 97
-118,11,98 ! Plane U', wire 98
-119,11,99 ! Plane U', wire 99
-120,11,100 ! Plane U', wire 100
-121,11,101 ! Plane U', wire 101
-122,11,102 ! Plane U', wire 102
-123,11,103 ! Plane U', wire 103
-124,11,104 ! Plane U', wire 104
-125,11,105 ! Plane U', wire 105
-126,11,106 ! Plane U', wire 106
-13,8,1 ! Plane V, wire 1
-12,8,2 ! Plane V, wire 2
-11,8,3 ! Plane V, wire 3
-10,8,4 ! Plane V, wire 4
-9,8,5 ! Plane V, wire 5
-8,8,6 ! Plane V, wire 6
-7,8,7 ! Plane V, wire 7
-6,8,8 ! Plane V, wire 8
-5,8,9 ! Plane V, wire 9
-4,8,10 ! Plane V, wire 10
-3,8,11 ! Plane V, wire 11
-2,8,12 ! Plane V, wire 12
-1,8,13 ! Plane V, wire 13
-0,8,14 ! Plane V, wire 14
+REFCHAN=15
+ 112,  11,  93  ! DC2, Plane U', wire 93
+ 113,  11,  94  ! DC2, Plane U', wire 94
+ 114,  11,  95  ! DC2, Plane U', wire 95
+ 115,  11,  96  ! DC2, Plane U', wire 96
+ 116,  11,  97  ! DC2, Plane U', wire 97
+ 117,  11,  98  ! DC2, Plane U', wire 98
+ 118,  11,  99  ! DC2, Plane U', wire 99
+ 119,  11, 100  ! DC2, Plane U', wire 100
+ 120,  11, 101  ! DC2, Plane U', wire 101
+ 121,  11, 102  ! DC2, Plane U', wire 102
+ 122,  11, 103  ! DC2, Plane U', wire 103
+ 123,  11, 104  ! DC2, Plane U', wire 104
+ 124,  11, 105  ! DC2, Plane U', wire 105
+ 125,  11, 106  ! DC2, Plane U', wire 106
+ 126,  11, 107  ! DC2, Plane U', wire 107
+  14,   8,   1  ! DC2, Plane V, wire 1
+  13,   8,   2  ! DC2, Plane V, wire 2
+  12,   8,   3  ! DC2, Plane V, wire 3
+  11,   8,   4  ! DC2, Plane V, wire 4
+  10,   8,   5  ! DC2, Plane V, wire 5
+   9,   8,   6  ! DC2, Plane V, wire 6
+   8,   8,   7  ! DC2, Plane V, wire 7
+   7,   8,   8  ! DC2, Plane V, wire 8
+   6,   8,   9  ! DC2, Plane V, wire 9
+   5,   8,  10  ! DC2, Plane V, wire 10
+   4,   8,  11  ! DC2, Plane V, wire 11
+   3,   8,  12  ! DC2, Plane V, wire 12
+   2,   8,  13  ! DC2, Plane V, wire 13
+   1,   8,  14  ! DC2, Plane V, wire 14
+   0,   8,  15  ! DC2, Plane V, wire 15
+
 SLOT=12
-127,8,15 ! Plane V, wire 15
-126,8,16 ! Plane V, wire 16
-125,8,17 ! Plane V, wire 17
-124,8,18 ! Plane V, wire 18
-123,8,19 ! Plane V, wire 19
-122,8,20 ! Plane V, wire 20
-121,8,21 ! Plane V, wire 21
-120,8,22 ! Plane V, wire 22
-119,8,23 ! Plane V, wire 23
-118,8,24 ! Plane V, wire 24
-117,8,25 ! Plane V, wire 25
-116,8,26 ! Plane V, wire 26
-115,8,27 ! Plane V, wire 27
-114,8,28 ! Plane V, wire 28
-113,8,29 ! Plane V, wire 29
-112,8,30 ! Plane V, wire 30
+REFCHAN=47
+ 127,   8,  16  ! DC2, Plane V, wire 16
+ 126,   8,  17  ! DC2, Plane V, wire 17
+ 125,   8,  18  ! DC2, Plane V, wire 18
+ 124,   8,  19  ! DC2, Plane V, wire 19
+ 123,   8,  20  ! DC2, Plane V, wire 20
+ 122,   8,  21  ! DC2, Plane V, wire 21
+ 121,   8,  22  ! DC2, Plane V, wire 22
+ 120,   8,  23  ! DC2, Plane V, wire 23
+ 119,   8,  24  ! DC2, Plane V, wire 24
+ 118,   8,  25  ! DC2, Plane V, wire 25
+ 117,   8,  26  ! DC2, Plane V, wire 26
+ 116,   8,  27  ! DC2, Plane V, wire 27
+ 115,   8,  28  ! DC2, Plane V, wire 28
+ 114,   8,  29  ! DC2, Plane V, wire 29
+ 113,   8,  30  ! DC2, Plane V, wire 30
+ 112,   8,  31  ! DC2, Plane V, wire 31
+
 SLOT=14
-111,8,31 ! Plane V, wire 31
-110,8,32 ! Plane V, wire 32
-109,8,33 ! Plane V, wire 33
-108,8,34 ! Plane V, wire 34
-107,8,35 ! Plane V, wire 35
-106,8,36 ! Plane V, wire 36
-105,8,37 ! Plane V, wire 37
-104,8,38 ! Plane V, wire 38
-103,8,39 ! Plane V, wire 39
-102,8,40 ! Plane V, wire 40
-101,8,41 ! Plane V, wire 41
-100,8,42 ! Plane V, wire 42
-99,8,43 ! Plane V, wire 43
-98,8,44 ! Plane V, wire 44
-97,8,45 ! Plane V, wire 45
-96,8,46 ! Plane V, wire 46
-31,8,47 ! Plane V, wire 47
-30,8,48 ! Plane V, wire 48
-29,8,49 ! Plane V, wire 49
-28,8,50 ! Plane V, wire 50
-27,8,51 ! Plane V, wire 51
-26,8,52 ! Plane V, wire 52
-25,8,53 ! Plane V, wire 53
-24,8,54 ! Plane V, wire 54
-23,8,55 ! Plane V, wire 55
-22,8,56 ! Plane V, wire 56
-21,8,57 ! Plane V, wire 57
-20,8,58 ! Plane V, wire 58
-19,8,59 ! Plane V, wire 59
-18,8,60 ! Plane V, wire 60
-17,8,61 ! Plane V, wire 61
-16,8,62 ! Plane V, wire 62
+REFCHAN=15
+ 111,   8,  32  ! DC2, Plane V, wire 32
+ 110,   8,  33  ! DC2, Plane V, wire 33
+ 109,   8,  34  ! DC2, Plane V, wire 34
+ 108,   8,  35  ! DC2, Plane V, wire 35
+ 107,   8,  36  ! DC2, Plane V, wire 36
+ 106,   8,  37  ! DC2, Plane V, wire 37
+ 105,   8,  38  ! DC2, Plane V, wire 38
+ 104,   8,  39  ! DC2, Plane V, wire 39
+ 103,   8,  40  ! DC2, Plane V, wire 40
+ 102,   8,  41  ! DC2, Plane V, wire 41
+ 101,   8,  42  ! DC2, Plane V, wire 42
+ 100,   8,  43  ! DC2, Plane V, wire 43
+  99,   8,  44  ! DC2, Plane V, wire 44
+  98,   8,  45  ! DC2, Plane V, wire 45
+  97,   8,  46  ! DC2, Plane V, wire 46
+  96,   8,  47  ! DC2, Plane V, wire 47
+  31,   8,  48  ! DC2, Plane V, wire 48
+  30,   8,  49  ! DC2, Plane V, wire 49
+  29,   8,  50  ! DC2, Plane V, wire 50
+  28,   8,  51  ! DC2, Plane V, wire 51
+  27,   8,  52  ! DC2, Plane V, wire 52
+  26,   8,  53  ! DC2, Plane V, wire 53
+  25,   8,  54  ! DC2, Plane V, wire 54
+  24,   8,  55  ! DC2, Plane V, wire 55
+  23,   8,  56  ! DC2, Plane V, wire 56
+  22,   8,  57  ! DC2, Plane V, wire 57
+  21,   8,  58  ! DC2, Plane V, wire 58
+  20,   8,  59  ! DC2, Plane V, wire 59
+  19,   8,  60  ! DC2, Plane V, wire 60
+  18,   8,  61  ! DC2, Plane V, wire 61
+  17,   8,  62  ! DC2, Plane V, wire 62
+  16,   8,  63  ! DC2, Plane V, wire 63
+
 SLOT=12
-0,8,63 ! Plane V, wire 63
-1,8,64 ! Plane V, wire 64
-2,8,65 ! Plane V, wire 65
-3,8,66 ! Plane V, wire 66
-4,8,67 ! Plane V, wire 67
-5,8,68 ! Plane V, wire 68
-6,8,69 ! Plane V, wire 69
-7,8,70 ! Plane V, wire 70
-8,8,71 ! Plane V, wire 71
-9,8,72 ! Plane V, wire 72
-10,8,73 ! Plane V, wire 73
-11,8,74 ! Plane V, wire 74
-12,8,75 ! Plane V, wire 75
-13,8,76 ! Plane V, wire 76
-14,8,77 ! Plane V, wire 77
-15,8,78 ! Plane V, wire 78
-64,8,79 ! Plane V, wire 79
-65,8,80 ! Plane V, wire 80
-66,8,81 ! Plane V, wire 81
-67,8,82 ! Plane V, wire 82
-68,8,83 ! Plane V, wire 83
-69,8,84 ! Plane V, wire 84
-70,8,85 ! Plane V, wire 85
-71,8,86 ! Plane V, wire 86
-72,8,87 ! Plane V, wire 87
-73,8,88 ! Plane V, wire 88
-74,8,89 ! Plane V, wire 89
-75,8,90 ! Plane V, wire 90
-76,8,91 ! Plane V, wire 91
-77,8,92 ! Plane V, wire 92
-78,8,93 ! Plane V, wire 93
-79,8,94 ! Plane V, wire 94
-32,8,95 ! Plane V, wire 95
-33,8,96 ! Plane V, wire 96
-34,8,97 ! Plane V, wire 97
-35,8,98 ! Plane V, wire 98
-36,8,99 ! Plane V, wire 99
-37,8,100 ! Plane V, wire 100
-38,8,101 ! Plane V, wire 101
-39,8,102 ! Plane V, wire 102
-40,8,103 ! Plane V, wire 103
-41,8,104 ! Plane V, wire 104
-42,8,105 ! Plane V, wire 105
-SLOT=14
-14,8,106 ! Plane V, wire 106
+REFCHAN=47
+   0,   8,  64  ! DC2, Plane V, wire 64
+   1,   8,  65  ! DC2, Plane V, wire 65
+   2,   8,  66  ! DC2, Plane V, wire 66
+   3,   8,  67  ! DC2, Plane V, wire 67
+   4,   8,  68  ! DC2, Plane V, wire 68
+   5,   8,  69  ! DC2, Plane V, wire 69
+   6,   8,  70  ! DC2, Plane V, wire 70
+   7,   8,  71  ! DC2, Plane V, wire 71
+   8,   8,  72  ! DC2, Plane V, wire 72
+   9,   8,  73  ! DC2, Plane V, wire 73
+  10,   8,  74  ! DC2, Plane V, wire 74
+  11,   8,  75  ! DC2, Plane V, wire 75
+  12,   8,  76  ! DC2, Plane V, wire 76
+  13,   8,  77  ! DC2, Plane V, wire 77
+  14,   8,  78  ! DC2, Plane V, wire 78
+  15,   8,  79  ! DC2, Plane V, wire 79
+  64,   8,  80  ! DC2, Plane V, wire 80
+  65,   8,  81  ! DC2, Plane V, wire 81
+  66,   8,  82  ! DC2, Plane V, wire 82
+  67,   8,  83  ! DC2, Plane V, wire 83
+  68,   8,  84  ! DC2, Plane V, wire 84
+  69,   8,  85  ! DC2, Plane V, wire 85
+  70,   8,  86  ! DC2, Plane V, wire 86
+  71,   8,  87  ! DC2, Plane V, wire 87
+  72,   8,  88  ! DC2, Plane V, wire 88
+  73,   8,  89  ! DC2, Plane V, wire 89
+  74,   8,  90  ! DC2, Plane V, wire 90
+  75,   8,  91  ! DC2, Plane V, wire 91
+  76,   8,  92  ! DC2, Plane V, wire 92
+  77,   8,  93  ! DC2, Plane V, wire 93
+  78,   8,  94  ! DC2, Plane V, wire 94
+  79,   8,  95  ! DC2, Plane V, wire 95
+  32,   8,  96  ! DC2, Plane V, wire 96
+  33,   8,  97  ! DC2, Plane V, wire 97
+  34,   8,  98  ! DC2, Plane V, wire 98
+  35,   8,  99  ! DC2, Plane V, wire 99
+  36,   8, 100  ! DC2, Plane V, wire 100
+  37,   8, 101  ! DC2, Plane V, wire 101
+  38,   8, 102  ! DC2, Plane V, wire 102
+  39,   8, 103  ! DC2, Plane V, wire 103
+  40,   8, 104  ! DC2, Plane V, wire 104
+  41,   8, 105  ! DC2, Plane V, wire 105
+  42,   8, 106  ! DC2, Plane V, wire 106
+  43,   8, 107  ! DC2, Plane V, wire 107
+
 SLOT=15
-42,7,1 ! Plane V', wire 1
-41,7,2 ! Plane V', wire 2
-40,7,3 ! Plane V', wire 3
-39,7,4 ! Plane V', wire 4
-38,7,5 ! Plane V', wire 5
-37,7,6 ! Plane V', wire 6
-36,7,7 ! Plane V', wire 7
-35,7,8 ! Plane V', wire 8
-34,7,9 ! Plane V', wire 9
-33,7,10 ! Plane V', wire 10
-32,7,11 ! Plane V', wire 11
-15,7,12 ! Plane V', wire 12
-14,7,13 ! Plane V', wire 13
-13,7,14 ! Plane V', wire 14
-12,7,15 ! Plane V', wire 15
-11,7,16 ! Plane V', wire 16
-10,7,17 ! Plane V', wire 17
-9,7,18 ! Plane V', wire 18
-8,7,19 ! Plane V', wire 19
-7,7,20 ! Plane V', wire 20
-6,7,21 ! Plane V', wire 21
-5,7,22 ! Plane V', wire 22
-4,7,23 ! Plane V', wire 23
-3,7,24 ! Plane V', wire 24
-2,7,25 ! Plane V', wire 25
-1,7,26 ! Plane V', wire 26
-0,7,27 ! Plane V', wire 27
+REFCHAN=47
+  43,   7,   1  ! DC2, Plane V', wire 1
+  42,   7,   2  ! DC2, Plane V', wire 2
+  41,   7,   3  ! DC2, Plane V', wire 3
+  40,   7,   4  ! DC2, Plane V', wire 4
+  39,   7,   5  ! DC2, Plane V', wire 5
+  38,   7,   6  ! DC2, Plane V', wire 6
+  37,   7,   7  ! DC2, Plane V', wire 7
+  36,   7,   8  ! DC2, Plane V', wire 8
+  35,   7,   9  ! DC2, Plane V', wire 9
+  34,   7,  10  ! DC2, Plane V', wire 10
+  33,   7,  11  ! DC2, Plane V', wire 11
+  32,   7,  12  ! DC2, Plane V', wire 12
+  15,   7,  13  ! DC2, Plane V', wire 13
+  14,   7,  14  ! DC2, Plane V', wire 14
+  13,   7,  15  ! DC2, Plane V', wire 15
+  12,   7,  16  ! DC2, Plane V', wire 16
+  11,   7,  17  ! DC2, Plane V', wire 17
+  10,   7,  18  ! DC2, Plane V', wire 18
+   9,   7,  19  ! DC2, Plane V', wire 19
+   8,   7,  20  ! DC2, Plane V', wire 20
+   7,   7,  21  ! DC2, Plane V', wire 21
+   6,   7,  22  ! DC2, Plane V', wire 22
+   5,   7,  23  ! DC2, Plane V', wire 23
+   4,   7,  24  ! DC2, Plane V', wire 24
+   3,   7,  25  ! DC2, Plane V', wire 25
+   2,   7,  26  ! DC2, Plane V', wire 26
+   1,   7,  27  ! DC2, Plane V', wire 27
+   0,   7,  28  ! DC2, Plane V', wire 28
+
 SLOT=14
-79,7,28 ! Plane V', wire 28
-78,7,29 ! Plane V', wire 29
-77,7,30 ! Plane V', wire 30
-76,7,31 ! Plane V', wire 31
-75,7,32 ! Plane V', wire 32
-74,7,33 ! Plane V', wire 33
-73,7,34 ! Plane V', wire 34
-72,7,35 ! Plane V', wire 35
-71,7,36 ! Plane V', wire 36
-70,7,37 ! Plane V', wire 37
-69,7,38 ! Plane V', wire 38
-68,7,39 ! Plane V', wire 39
-67,7,40 ! Plane V', wire 40
-66,7,41 ! Plane V', wire 41
-65,7,42 ! Plane V', wire 42
-64,7,43 ! Plane V', wire 43
+REFCHAN=15
+  79,   7,  29  ! DC2, Plane V', wire 29
+  78,   7,  30  ! DC2, Plane V', wire 30
+  77,   7,  31  ! DC2, Plane V', wire 31
+  76,   7,  32  ! DC2, Plane V', wire 32
+  75,   7,  33  ! DC2, Plane V', wire 33
+  74,   7,  34  ! DC2, Plane V', wire 34
+  73,   7,  35  ! DC2, Plane V', wire 35
+  72,   7,  36  ! DC2, Plane V', wire 36
+  71,   7,  37  ! DC2, Plane V', wire 37
+  70,   7,  38  ! DC2, Plane V', wire 38
+  69,   7,  39  ! DC2, Plane V', wire 39
+  68,   7,  40  ! DC2, Plane V', wire 40
+  67,   7,  41  ! DC2, Plane V', wire 41
+  66,   7,  42  ! DC2, Plane V', wire 42
+  65,   7,  43  ! DC2, Plane V', wire 43
+  64,   7,  44  ! DC2, Plane V', wire 44
+
 SLOT=13
-48,7,44 ! Plane V', wire 44
-49,7,45 ! Plane V', wire 45
-50,7,46 ! Plane V', wire 46
-51,7,47 ! Plane V', wire 47
-52,7,48 ! Plane V', wire 48
-53,7,49 ! Plane V', wire 49
-54,7,50 ! Plane V', wire 50
-55,7,51 ! Plane V', wire 51
-56,7,52 ! Plane V', wire 52
-57,7,53 ! Plane V', wire 53
-58,7,54 ! Plane V', wire 54
-59,7,55 ! Plane V', wire 55
-60,7,56 ! Plane V', wire 56
-61,7,57 ! Plane V', wire 57
-62,7,58 ! Plane V', wire 58
-63,7,59 ! Plane V', wire 59
+REFCHAN=47
+  48,   7,  45  ! DC2, Plane V', wire 45
+  49,   7,  46  ! DC2, Plane V', wire 46
+  50,   7,  47  ! DC2, Plane V', wire 47
+  51,   7,  48  ! DC2, Plane V', wire 48
+  52,   7,  49  ! DC2, Plane V', wire 49
+  53,   7,  50  ! DC2, Plane V', wire 50
+  54,   7,  51  ! DC2, Plane V', wire 51
+  55,   7,  52  ! DC2, Plane V', wire 52
+  56,   7,  53  ! DC2, Plane V', wire 53
+  57,   7,  54  ! DC2, Plane V', wire 54
+  58,   7,  55  ! DC2, Plane V', wire 55
+  59,   7,  56  ! DC2, Plane V', wire 56
+  60,   7,  57  ! DC2, Plane V', wire 57
+  61,   7,  58  ! DC2, Plane V', wire 58
+  62,   7,  59  ! DC2, Plane V', wire 59
+  63,   7,  60  ! DC2, Plane V', wire 60
+
 SLOT=12
-80,7,60 ! Plane V', wire 60
-81,7,61 ! Plane V', wire 61
-82,7,62 ! Plane V', wire 62
-83,7,63 ! Plane V', wire 63
-84,7,64 ! Plane V', wire 64
-85,7,65 ! Plane V', wire 65
-86,7,66 ! Plane V', wire 66
-87,7,67 ! Plane V', wire 67
-88,7,68 ! Plane V', wire 68
-89,7,69 ! Plane V', wire 69
-90,7,70 ! Plane V', wire 70
-91,7,71 ! Plane V', wire 71
-92,7,72 ! Plane V', wire 72
-93,7,73 ! Plane V', wire 73
-94,7,74 ! Plane V', wire 74
-95,7,75 ! Plane V', wire 75
-48,7,76 ! Plane V', wire 76
-49,7,77 ! Plane V', wire 77
-50,7,78 ! Plane V', wire 78
-51,7,79 ! Plane V', wire 79
-52,7,80 ! Plane V', wire 80
-53,7,81 ! Plane V', wire 81
-54,7,82 ! Plane V', wire 82
-55,7,83 ! Plane V', wire 83
-56,7,84 ! Plane V', wire 84
-57,7,85 ! Plane V', wire 85
-58,7,86 ! Plane V', wire 86
-59,7,87 ! Plane V', wire 87
-60,7,88 ! Plane V', wire 88
-61,7,89 ! Plane V', wire 89
-62,7,90 ! Plane V', wire 90
-63,7,91 ! Plane V', wire 91
+REFCHAN=47
+  80,   7,  61  ! DC2, Plane V', wire 61
+  81,   7,  62  ! DC2, Plane V', wire 62
+  82,   7,  63  ! DC2, Plane V', wire 63
+  83,   7,  64  ! DC2, Plane V', wire 64
+  84,   7,  65  ! DC2, Plane V', wire 65
+  85,   7,  66  ! DC2, Plane V', wire 66
+  86,   7,  67  ! DC2, Plane V', wire 67
+  87,   7,  68  ! DC2, Plane V', wire 68
+  88,   7,  69  ! DC2, Plane V', wire 69
+  89,   7,  70  ! DC2, Plane V', wire 70
+  90,   7,  71  ! DC2, Plane V', wire 71
+  91,   7,  72  ! DC2, Plane V', wire 72
+  92,   7,  73  ! DC2, Plane V', wire 73
+  93,   7,  74  ! DC2, Plane V', wire 74
+  94,   7,  75  ! DC2, Plane V', wire 75
+  95,   7,  76  ! DC2, Plane V', wire 76
+  48,   7,  77  ! DC2, Plane V', wire 77
+  49,   7,  78  ! DC2, Plane V', wire 78
+  50,   7,  79  ! DC2, Plane V', wire 79
+  51,   7,  80  ! DC2, Plane V', wire 80
+  52,   7,  81  ! DC2, Plane V', wire 81
+  53,   7,  82  ! DC2, Plane V', wire 82
+  54,   7,  83  ! DC2, Plane V', wire 83
+  55,   7,  84  ! DC2, Plane V', wire 84
+  56,   7,  85  ! DC2, Plane V', wire 85
+  57,   7,  86  ! DC2, Plane V', wire 86
+  58,   7,  87  ! DC2, Plane V', wire 87
+  59,   7,  88  ! DC2, Plane V', wire 88
+  60,   7,  89  ! DC2, Plane V', wire 89
+  61,   7,  90  ! DC2, Plane V', wire 90
+  62,   7,  91  ! DC2, Plane V', wire 91
+  63,   7,  92  ! DC2, Plane V', wire 92
+
 SLOT=11
-32,7,92 ! Plane V', wire 92
-33,7,93 ! Plane V', wire 93
-34,7,94 ! Plane V', wire 94
-35,7,95 ! Plane V', wire 95
-36,7,96 ! Plane V', wire 96
-37,7,97 ! Plane V', wire 97
-38,7,98 ! Plane V', wire 98
-39,7,99 ! Plane V', wire 99
-40,7,100 ! Plane V', wire 100
-41,7,101 ! Plane V', wire 101
-42,7,102 ! Plane V', wire 102
-43,7,103 ! Plane V', wire 103
-44,7,104 ! Plane V', wire 104
-45,7,105 ! Plane V', wire 105
-SLOT=15
-43,7,106 ! Plane V', wire 106
+REFCHAN=47
+  32,   7,  93  ! DC2, Plane V', wire 93
+  33,   7,  94  ! DC2, Plane V', wire 94
+  34,   7,  95  ! DC2, Plane V', wire 95
+  35,   7,  96  ! DC2, Plane V', wire 96
+  36,   7,  97  ! DC2, Plane V', wire 97
+  37,   7,  98  ! DC2, Plane V', wire 98
+  38,   7,  99  ! DC2, Plane V', wire 99
+  39,   7, 100  ! DC2, Plane V', wire 100
+  40,   7, 101  ! DC2, Plane V', wire 101
+  41,   7, 102  ! DC2, Plane V', wire 102
+  42,   7, 103  ! DC2, Plane V', wire 103
+  43,   7, 104  ! DC2, Plane V', wire 104
+  44,   7, 105  ! DC2, Plane V', wire 105
+  45,   7, 106  ! DC2, Plane V', wire 106
+  46,   7, 107  ! DC2, Plane V', wire 107
+
 SLOT=12
-110,10,1 ! Plane X, wire 1
-109,10,2 ! Plane X, wire 2
-108,10,3 ! Plane X, wire 3
-107,10,4 ! Plane X, wire 4
-106,10,5 ! Plane X, wire 5
-105,10,6 ! Plane X, wire 6
-104,10,7 ! Plane X, wire 7
-103,10,8 ! Plane X, wire 8
-102,10,9 ! Plane X, wire 9
-101,10,10 ! Plane X, wire 10
-100,10,11 ! Plane X, wire 11
-99,10,12 ! Plane X, wire 12
-98,10,13 ! Plane X, wire 13
-97,10,14 ! Plane X, wire 14
-96,10,15 ! Plane X, wire 15
-31,10,16 ! Plane X, wire 16
-30,10,17 ! Plane X, wire 17
-29,10,18 ! Plane X, wire 18
-28,10,19 ! Plane X, wire 19
-27,10,20 ! Plane X, wire 20
-26,10,21 ! Plane X, wire 21
-25,10,22 ! Plane X, wire 22
-24,10,23 ! Plane X, wire 23
-23,10,24 ! Plane X, wire 24
-22,10,25 ! Plane X, wire 25
-21,10,26 ! Plane X, wire 26
-20,10,27 ! Plane X, wire 27
-19,10,28 ! Plane X, wire 28
-18,10,29 ! Plane X, wire 29
-17,10,30 ! Plane X, wire 30
-16,10,31 ! Plane X, wire 31
+REFCHAN=47
+ 111,  10,   1  ! DC2, Plane X, wire 1
+ 110,  10,   2  ! DC2, Plane X, wire 2
+ 109,  10,   3  ! DC2, Plane X, wire 3
+ 108,  10,   4  ! DC2, Plane X, wire 4
+ 107,  10,   5  ! DC2, Plane X, wire 5
+ 106,  10,   6  ! DC2, Plane X, wire 6
+ 105,  10,   7  ! DC2, Plane X, wire 7
+ 104,  10,   8  ! DC2, Plane X, wire 8
+ 103,  10,   9  ! DC2, Plane X, wire 9
+ 102,  10,  10  ! DC2, Plane X, wire 10
+ 101,  10,  11  ! DC2, Plane X, wire 11
+ 100,  10,  12  ! DC2, Plane X, wire 12
+  99,  10,  13  ! DC2, Plane X, wire 13
+  98,  10,  14  ! DC2, Plane X, wire 14
+  97,  10,  15  ! DC2, Plane X, wire 15
+  96,  10,  16  ! DC2, Plane X, wire 16
+  31,  10,  17  ! DC2, Plane X, wire 17
+  30,  10,  18  ! DC2, Plane X, wire 18
+  29,  10,  19  ! DC2, Plane X, wire 19
+  28,  10,  20  ! DC2, Plane X, wire 20
+  27,  10,  21  ! DC2, Plane X, wire 21
+  26,  10,  22  ! DC2, Plane X, wire 22
+  25,  10,  23  ! DC2, Plane X, wire 23
+  24,  10,  24  ! DC2, Plane X, wire 24
+  23,  10,  25  ! DC2, Plane X, wire 25
+  22,  10,  26  ! DC2, Plane X, wire 26
+  21,  10,  27  ! DC2, Plane X, wire 27
+  20,  10,  28  ! DC2, Plane X, wire 28
+  19,  10,  29  ! DC2, Plane X, wire 29
+  18,  10,  30  ! DC2, Plane X, wire 30
+  17,  10,  31  ! DC2, Plane X, wire 31
+  16,  10,  32  ! DC2, Plane X, wire 32
+
 SLOT=11
-31,10,32 ! Plane X, wire 32
-30,10,33 ! Plane X, wire 33
-29,10,34 ! Plane X, wire 34
-28,10,35 ! Plane X, wire 35
-27,10,36 ! Plane X, wire 36
-26,10,37 ! Plane X, wire 37
-25,10,38 ! Plane X, wire 38
-24,10,39 ! Plane X, wire 39
-23,10,40 ! Plane X, wire 40
-22,10,41 ! Plane X, wire 41
-21,10,42 ! Plane X, wire 42
-20,10,43 ! Plane X, wire 43
-19,10,44 ! Plane X, wire 44
-18,10,45 ! Plane X, wire 45
-17,10,46 ! Plane X, wire 46
-SLOT=12
-111,10,47 ! Plane X, wire 47
+REFCHAN=47
+  31,  10,  33  ! DC2, Plane X, wire 33
+  30,  10,  34  ! DC2, Plane X, wire 34
+  29,  10,  35  ! DC2, Plane X, wire 35
+  28,  10,  36  ! DC2, Plane X, wire 36
+  27,  10,  37  ! DC2, Plane X, wire 37
+  26,  10,  38  ! DC2, Plane X, wire 38
+  25,  10,  39  ! DC2, Plane X, wire 39
+  24,  10,  40  ! DC2, Plane X, wire 40
+  23,  10,  41  ! DC2, Plane X, wire 41
+  22,  10,  42  ! DC2, Plane X, wire 42
+  21,  10,  43  ! DC2, Plane X, wire 43
+  20,  10,  44  ! DC2, Plane X, wire 44
+  19,  10,  45  ! DC2, Plane X, wire 45
+  18,  10,  46  ! DC2, Plane X, wire 46
+  17,  10,  47  ! DC2, Plane X, wire 47
+  16,  10,  48  ! DC2, Plane X, wire 48
+
 SLOT=15
-16,10,48 ! Plane X, wire 48
-17,10,49 ! Plane X, wire 49
-18,10,50 ! Plane X, wire 50
-19,10,51 ! Plane X, wire 51
-20,10,52 ! Plane X, wire 52
-21,10,53 ! Plane X, wire 53
-22,10,54 ! Plane X, wire 54
-23,10,55 ! Plane X, wire 55
-24,10,56 ! Plane X, wire 56
-25,10,57 ! Plane X, wire 57
-26,10,58 ! Plane X, wire 58
-27,10,59 ! Plane X, wire 59
-28,10,60 ! Plane X, wire 60
-29,10,61 ! Plane X, wire 61
-30,10,62 ! Plane X, wire 62
-31,10,63 ! Plane X, wire 63
+REFCHAN=47
+  16,  10,  49  ! DC2, Plane X, wire 49
+  17,  10,  50  ! DC2, Plane X, wire 50
+  18,  10,  51  ! DC2, Plane X, wire 51
+  19,  10,  52  ! DC2, Plane X, wire 52
+  20,  10,  53  ! DC2, Plane X, wire 53
+  21,  10,  54  ! DC2, Plane X, wire 54
+  22,  10,  55  ! DC2, Plane X, wire 55
+  23,  10,  56  ! DC2, Plane X, wire 56
+  24,  10,  57  ! DC2, Plane X, wire 57
+  25,  10,  58  ! DC2, Plane X, wire 58
+  26,  10,  59  ! DC2, Plane X, wire 59
+  27,  10,  60  ! DC2, Plane X, wire 60
+  28,  10,  61  ! DC2, Plane X, wire 61
+  29,  10,  62  ! DC2, Plane X, wire 62
+  30,  10,  63  ! DC2, Plane X, wire 63
+  31,  10,  64  ! DC2, Plane X, wire 64
+
 SLOT=14
-48,10,64 ! Plane X, wire 64
-49,10,65 ! Plane X, wire 65
-50,10,66 ! Plane X, wire 66
-51,10,67 ! Plane X, wire 67
-52,10,68 ! Plane X, wire 68
-53,10,69 ! Plane X, wire 69
-54,10,70 ! Plane X, wire 70
-55,10,71 ! Plane X, wire 71
-56,10,72 ! Plane X, wire 72
-57,10,73 ! Plane X, wire 73
-58,10,74 ! Plane X, wire 74
-59,10,75 ! Plane X, wire 75
-60,10,76 ! Plane X, wire 76
-61,10,77 ! Plane X, wire 77
-62,10,78 ! Plane X, wire 78
+REFCHAN=15
+  48,  10,  65  ! DC2, Plane X, wire 65
+  49,  10,  66  ! DC2, Plane X, wire 66
+  50,  10,  67  ! DC2, Plane X, wire 67
+  51,  10,  68  ! DC2, Plane X, wire 68
+  52,  10,  69  ! DC2, Plane X, wire 69
+  53,  10,  70  ! DC2, Plane X, wire 70
+  54,  10,  71  ! DC2, Plane X, wire 71
+  55,  10,  72  ! DC2, Plane X, wire 72
+  56,  10,  73  ! DC2, Plane X, wire 73
+  57,  10,  74  ! DC2, Plane X, wire 74
+  58,  10,  75  ! DC2, Plane X, wire 75
+  59,  10,  76  ! DC2, Plane X, wire 76
+  60,  10,  77  ! DC2, Plane X, wire 77
+  61,  10,  78  ! DC2, Plane X, wire 78
+  62,  10,  79  ! DC2, Plane X, wire 79
+
 SLOT=13
-125,9,1 ! Plane X', wire 1
-124,9,2 ! Plane X', wire 2
-123,9,3 ! Plane X', wire 3
-122,9,4 ! Plane X', wire 4
-121,9,5 ! Plane X', wire 5
-120,9,6 ! Plane X', wire 6
-119,9,7 ! Plane X', wire 7
-118,9,8 ! Plane X', wire 8
-117,9,9 ! Plane X', wire 9
-116,9,10 ! Plane X', wire 10
-115,9,11 ! Plane X', wire 11
-114,9,12 ! Plane X', wire 12
-113,9,13 ! Plane X', wire 13
-112,9,14 ! Plane X', wire 14
-15,9,15 ! Plane X', wire 15
-14,9,16 ! Plane X', wire 16
-13,9,17 ! Plane X', wire 17
-12,9,18 ! Plane X', wire 18
-11,9,19 ! Plane X', wire 19
-10,9,20 ! Plane X', wire 20
-9,9,21 ! Plane X', wire 21
-8,9,22 ! Plane X', wire 22
-7,9,23 ! Plane X', wire 23
-6,9,24 ! Plane X', wire 24
-5,9,25 ! Plane X', wire 25
-4,9,26 ! Plane X', wire 26
-3,9,27 ! Plane X', wire 27
-2,9,28 ! Plane X', wire 28
-1,9,29 ! Plane X', wire 29
-0,9,30 ! Plane X', wire 30
+REFCHAN=47
+ 126,   9,   1  ! DC2, Plane X', wire 1
+ 125,   9,   2  ! DC2, Plane X', wire 2
+ 124,   9,   3  ! DC2, Plane X', wire 3
+ 123,   9,   4  ! DC2, Plane X', wire 4
+ 122,   9,   5  ! DC2, Plane X', wire 5
+ 121,   9,   6  ! DC2, Plane X', wire 6
+ 120,   9,   7  ! DC2, Plane X', wire 7
+ 119,   9,   8  ! DC2, Plane X', wire 8
+ 118,   9,   9  ! DC2, Plane X', wire 9
+ 117,   9,  10  ! DC2, Plane X', wire 10
+ 116,   9,  11  ! DC2, Plane X', wire 11
+ 115,   9,  12  ! DC2, Plane X', wire 12
+ 114,   9,  13  ! DC2, Plane X', wire 13
+ 113,   9,  14  ! DC2, Plane X', wire 14
+ 112,   9,  15  ! DC2, Plane X', wire 15
+  15,   9,  16  ! DC2, Plane X', wire 16
+  14,   9,  17  ! DC2, Plane X', wire 17
+  13,   9,  18  ! DC2, Plane X', wire 18
+  12,   9,  19  ! DC2, Plane X', wire 19
+  11,   9,  20  ! DC2, Plane X', wire 20
+  10,   9,  21  ! DC2, Plane X', wire 21
+   9,   9,  22  ! DC2, Plane X', wire 22
+   8,   9,  23  ! DC2, Plane X', wire 23
+   7,   9,  24  ! DC2, Plane X', wire 24
+   6,   9,  25  ! DC2, Plane X', wire 25
+   5,   9,  26  ! DC2, Plane X', wire 26
+   4,   9,  27  ! DC2, Plane X', wire 27
+   3,   9,  28  ! DC2, Plane X', wire 28
+   2,   9,  29  ! DC2, Plane X', wire 29
+   1,   9,  30  ! DC2, Plane X', wire 30
+   0,   9,  31  ! DC2, Plane X', wire 31
+
 SLOT=11
-96,9,31 ! Plane X', wire 31
-97,9,32 ! Plane X', wire 32
-98,9,33 ! Plane X', wire 33
-99,9,34 ! Plane X', wire 34
-100,9,35 ! Plane X', wire 35
-101,9,36 ! Plane X', wire 36
-102,9,37 ! Plane X', wire 37
-103,9,38 ! Plane X', wire 38
-104,9,39 ! Plane X', wire 39
-105,9,40 ! Plane X', wire 40
-106,9,41 ! Plane X', wire 41
-107,9,42 ! Plane X', wire 42
-108,9,43 ! Plane X', wire 43
-109,9,44 ! Plane X', wire 44
-110,9,45 ! Plane X', wire 45
-111,9,46 ! Plane X', wire 46
-64,9,47 ! Plane X', wire 47
-65,9,48 ! Plane X', wire 48
-66,9,49 ! Plane X', wire 49
-67,9,50 ! Plane X', wire 50
-68,9,51 ! Plane X', wire 51
-69,9,52 ! Plane X', wire 52
-70,9,53 ! Plane X', wire 53
-71,9,54 ! Plane X', wire 54
-72,9,55 ! Plane X', wire 55
-73,9,56 ! Plane X', wire 56
-74,9,57 ! Plane X', wire 57
-75,9,58 ! Plane X', wire 58
-76,9,59 ! Plane X', wire 59
-77,9,60 ! Plane X', wire 60
-78,9,61 ! Plane X', wire 61
-79,9,62 ! Plane X', wire 62
+REFCHAN=47
+  96,   9,  32  ! DC2, Plane X', wire 32
+  97,   9,  33  ! DC2, Plane X', wire 33
+  98,   9,  34  ! DC2, Plane X', wire 34
+  99,   9,  35  ! DC2, Plane X', wire 35
+ 100,   9,  36  ! DC2, Plane X', wire 36
+ 101,   9,  37  ! DC2, Plane X', wire 37
+ 102,   9,  38  ! DC2, Plane X', wire 38
+ 103,   9,  39  ! DC2, Plane X', wire 39
+ 104,   9,  40  ! DC2, Plane X', wire 40
+ 105,   9,  41  ! DC2, Plane X', wire 41
+ 106,   9,  42  ! DC2, Plane X', wire 42
+ 107,   9,  43  ! DC2, Plane X', wire 43
+ 108,   9,  44  ! DC2, Plane X', wire 44
+ 109,   9,  45  ! DC2, Plane X', wire 45
+ 110,   9,  46  ! DC2, Plane X', wire 46
+ 111,   9,  47  ! DC2, Plane X', wire 47
+  64,   9,  48  ! DC2, Plane X', wire 48
+  65,   9,  49  ! DC2, Plane X', wire 49
+  66,   9,  50  ! DC2, Plane X', wire 50
+  67,   9,  51  ! DC2, Plane X', wire 51
+  68,   9,  52  ! DC2, Plane X', wire 52
+  69,   9,  53  ! DC2, Plane X', wire 53
+  70,   9,  54  ! DC2, Plane X', wire 54
+  71,   9,  55  ! DC2, Plane X', wire 55
+  72,   9,  56  ! DC2, Plane X', wire 56
+  73,   9,  57  ! DC2, Plane X', wire 57
+  74,   9,  58  ! DC2, Plane X', wire 58
+  75,   9,  59  ! DC2, Plane X', wire 59
+  76,   9,  60  ! DC2, Plane X', wire 60
+  77,   9,  61  ! DC2, Plane X', wire 61
+  78,   9,  62  ! DC2, Plane X', wire 62
+  79,   9,  63  ! DC2, Plane X', wire 63
+
 SLOT=10
-96,9,63 ! Plane X', wire 63
-97,9,64 ! Plane X', wire 64
-98,9,65 ! Plane X', wire 65
-99,9,66 ! Plane X', wire 66
-100,9,67 ! Plane X', wire 67
-101,9,68 ! Plane X', wire 68
-102,9,69 ! Plane X', wire 69
-103,9,70 ! Plane X', wire 70
-104,9,71 ! Plane X', wire 71
-105,9,72 ! Plane X', wire 72
-106,9,73 ! Plane X', wire 73
-107,9,74 ! Plane X', wire 74
-108,9,75 ! Plane X', wire 75
-109,9,76 ! Plane X', wire 76
-110,9,77 ! Plane X', wire 77
-SLOT=13
-126,9,78 ! Plane X', wire 78
\ No newline at end of file
+REFCHAN=79
+  96,   9,  64  ! DC2, Plane X', wire 64
+  97,   9,  65  ! DC2, Plane X', wire 65
+  98,   9,  66  ! DC2, Plane X', wire 66
+  99,   9,  67  ! DC2, Plane X', wire 67
+ 100,   9,  68  ! DC2, Plane X', wire 68
+ 101,   9,  69  ! DC2, Plane X', wire 69
+ 102,   9,  70  ! DC2, Plane X', wire 70
+ 103,   9,  71  ! DC2, Plane X', wire 71
+ 104,   9,  72  ! DC2, Plane X', wire 72
+ 105,   9,  73  ! DC2, Plane X', wire 73
+ 106,   9,  74  ! DC2, Plane X', wire 74
+ 107,   9,  75  ! DC2, Plane X', wire 75
+ 108,   9,  76  ! DC2, Plane X', wire 76
+ 109,   9,  77  ! DC2, Plane X', wire 77
+ 110,   9,  78  ! DC2, Plane X', wire 78
+ 111,   9,  79  ! DC2, Plane X', wire 79
diff --git a/MAPS/SHMS/DETEC/phgcer.map b/MAPS/SHMS/DETEC/phgcer.map
new file mode 100644
index 00000000..51c53141
--- /dev/null
+++ b/MAPS/SHMS/DETEC/phgcer.map
@@ -0,0 +1,12 @@
+! PHGCER_ID=24       ::  ADC
+
+
+DETECTOR=24
+
+ROC=2
+
+SLOT=13
+   8,   1,   1,   0  ! pHGCER01
+   9,   1,   2,   0  ! pHGCER02
+  10,   1,   3,   0  ! pHGCER03
+  11,   1,   4,   0  ! pHGCER04
diff --git a/MAPS/SHMS/DETEC/phgcer_ptrig.map b/MAPS/SHMS/DETEC/phgcer_ptrig.map
new file mode 100644
index 00000000..b67003d2
--- /dev/null
+++ b/MAPS/SHMS/DETEC/phgcer_ptrig.map
@@ -0,0 +1,71 @@
+! TSHMS_ID=20      ::  ::,ADC,TDC
+! PHGCER_ID=24     ::  ::,ADC,TDC
+
+
+DETECTOR=20
+
+ROC=2
+
+SLOT=14
+   0,   1,   1,   0  ! pAERSUM
+   1,   1,   2,   0  ! pHGCERSUM
+   2,   1,   3,   0  ! pNGCERSUM
+
+SLOT=20
+  15,   2,   1,   1  ! pT1
+
+SLOT=19
+  31,   2,   2,   1  ! pT2
+  32,   2,   3,   1  ! p1X
+  33,   2,   4,   1  ! p1Y
+  34,   2,   5,   1  ! p2X
+  35,   2,   6,   1  ! p2Y
+  36,   2,   7,   1  ! p1T
+  37,   2,   8,   1  ! p2T
+  38,   2,   9,   1  ! pT3
+  39,   2,  10,   1  ! pAERSUM
+  40,   2,  11,   1  ! pHGCERSUM
+  41,   2,  12,   1  ! pNGCERSUM
+
+ROC=6
+
+SLOT=6
+  79,   2,  13,   1  ! pDCREF1
+
+SLOT=7
+  79,   2,  14,   1  ! pDCREF2
+
+SLOT=8
+  79,   2,  15,   1  ! pDCREF3
+
+SLOT=9
+  79,   2,  16,   1  ! pDCREF4
+
+SLOT=10
+  79,   2,  17,   1  ! pDCREF5
+
+SLOT=11
+  47,   2,  18,   1  ! pDCREF6
+
+SLOT=12
+  47,   2,  19,   1  ! pDCREF7
+
+SLOT=13
+  47,   2,  20,   1  ! pDCREF8
+
+SLOT=14
+  15,   2,  21,   1  ! pDCREF9
+
+SLOT=15
+  47,   2,  22,   1  ! pDCREF10
+
+
+DETECTOR=24
+
+ROC=2
+
+SLOT=13
+   8,   1,   1,   0  ! pHGCER01
+   9,   1,   2,   0  ! pHGCER02
+  10,   1,   3,   0  ! pHGCER03
+  11,   1,   4,   0  ! pHGCER04
diff --git a/MAPS/SHMS/DETEC/phodo.map b/MAPS/SHMS/DETEC/phodo.map
new file mode 100644
index 00000000..5a8268fc
--- /dev/null
+++ b/MAPS/SHMS/DETEC/phodo.map
@@ -0,0 +1,274 @@
+! PSCIN_ID=23      ::  ::,ADC+,ADC-,TDC+,TDC-
+
+
+DETECTOR=23
+
+ROC=2
+
+SLOT=3
+   0,   1,   1,   0  ! p1x01A+
+   1,   1,   2,   0  ! p1x02A+
+   2,   1,   3,   0  ! p1x03A+
+   3,   1,   4,   0  ! p1x04A+
+   4,   1,   5,   0  ! p1x05A+
+   5,   1,   6,   0  ! p1x06A+
+   6,   1,   7,   0  ! p1x07A+
+   7,   1,   8,   0  ! p1x08A+
+   8,   1,   9,   0  ! p1x09A+
+   9,   1,  10,   0  ! p1x10A+
+  10,   1,  11,   0  ! p1x11A+
+  11,   1,  12,   0  ! p1x12A+
+  12,   1,  13,   0  ! p1x13A+
+  13,   1,   1,   1  ! p1x01A-
+  14,   1,   2,   1  ! p1x02A-
+  15,   1,   3,   1  ! p1x03A-
+
+SLOT=4
+   0,   1,   4,   1  ! p1x04A-
+   1,   1,   5,   1  ! p1x05A-
+   2,   1,   6,   1  ! p1x06A-
+   3,   1,   7,   1  ! p1x07A-
+   4,   1,   8,   1  ! p1x08A-
+   5,   1,   9,   1  ! p1x09A-
+   6,   1,  10,   1  ! p1x10A-
+   7,   1,  11,   1  ! p1x11A-
+   8,   1,  12,   1  ! p1x12A-
+   9,   1,  13,   1  ! p1x13A-
+  10,   2,   1,   1  ! p1y01A-
+  11,   2,   2,   1  ! p1y02A-
+  12,   2,   3,   1  ! p1y03A-
+  13,   2,   4,   1  ! p1y04A-
+  14,   2,   5,   1  ! p1y05A-
+  15,   2,   6,   1  ! p1y06A-
+
+SLOT=5
+   0,   2,   7,   1  ! p1y07A-
+   1,   2,   8,   1  ! p1y08A-
+   2,   2,   9,   1  ! p1y09A-
+   3,   2,  10,   1  ! p1y10A-
+   4,   2,  11,   1  ! p1y11A-
+   5,   2,  12,   1  ! p1y12A-
+   6,   2,  13,   1  ! p1y13A-
+   7,   2,   1,   0  ! p1y01A+
+   8,   2,   2,   0  ! p1y02A+
+   9,   2,   3,   0  ! p1y03A+
+  10,   2,   4,   0  ! p1y04A+
+  11,   2,   5,   0  ! p1y05A+
+  12,   2,   6,   0  ! p1y06A+
+  13,   2,   7,   0  ! p1y07A+
+  14,   2,   8,   0  ! p1y08A+
+  15,   2,   9,   0  ! p1y09A+
+
+SLOT=6
+   0,   2,  10,   0  ! p1y10A+
+   1,   2,  11,   0  ! p1y11A+
+   2,   2,  12,   0  ! p1y12A+
+   3,   2,  13,   0  ! p1y13A+
+   4,   3,   1,   0  ! p2x01A+
+   5,   3,   2,   0  ! p2x02A+
+   6,   3,   3,   0  ! p2x03A+
+   7,   3,   4,   0  ! p2x04A+
+   8,   3,   5,   0  ! p2x05A+
+   9,   3,   6,   0  ! p2x06A+
+  10,   3,   7,   0  ! p2x07A+
+  11,   3,   8,   0  ! p2x08A+
+  12,   3,   9,   0  ! p2x09A+
+  13,   3,  10,   0  ! p2x10A+
+  14,   3,  11,   0  ! p2x11A+
+  15,   3,  12,   0  ! p2x12A+
+
+SLOT=7
+   0,   3,  13,   0  ! p2x13A+
+   1,   3,  14,   0  ! p2x14A+
+   2,   3,   1,   1  ! p2x01A-
+   3,   3,   2,   1  ! p2x02A-
+   4,   3,   3,   1  ! p2x03A-
+   5,   3,   4,   1  ! p2x04A-
+   6,   3,   5,   1  ! p2x05A-
+   7,   3,   6,   1  ! p2x06A-
+   8,   3,   7,   1  ! p2x07A-
+   9,   3,   8,   1  ! p2x08A-
+  10,   3,   9,   1  ! p2x09A-
+  11,   3,  10,   1  ! p2x10A-
+  12,   3,  11,   1  ! p2x11A-
+  13,   3,  12,   1  ! p2x12A-
+  14,   3,  13,   1  ! p2x13A-
+  15,   3,  14,   1  ! p2x14A-
+
+SLOT=8
+   0,   4,   1,   1  ! p2y01A-
+   1,   4,   2,   1  ! p2y02A-
+   2,   4,   3,   1  ! p2y03A-
+   3,   4,   4,   1  ! p2y04A-
+   4,   4,   5,   1  ! p2y05A-
+   5,   4,   6,   1  ! p2y06A-
+   6,   4,   7,   1  ! p2y07A-
+   7,   4,   8,   1  ! p2y08A-
+   8,   4,   9,   1  ! p2y09A-
+   9,   4,  10,   1  ! p2y10A-
+  10,   4,  11,   1  ! p2y11A-
+  11,   4,  12,   1  ! p2y12A-
+  12,   4,  13,   1  ! p2y13A-
+  13,   4,  14,   1  ! p2y14A-
+  14,   4,  15,   1  ! p2y15A-
+  15,   4,  16,   1  ! p2y16A-
+
+SLOT=9
+   0,   4,  17,   1  ! p2y17A-
+   1,   4,  18,   1  ! p2y18A-
+   2,   4,  19,   1  ! p2y19A-
+   3,   4,  20,   1  ! p2y20A-
+   4,   4,  21,   1  ! p2y21A-
+   5,   4,   1,   0  ! p2y01A+
+   6,   4,   2,   0  ! p2y02A+
+   7,   4,   3,   0  ! p2y03A+
+   8,   4,   4,   0  ! p2y04A+
+   9,   4,   5,   0  ! p2y05A+
+  10,   4,   6,   0  ! p2y06A+
+  11,   4,   7,   0  ! p2y07A+
+  12,   4,   8,   0  ! p2y08A+
+  13,   4,   9,   0  ! p2y09A+
+  14,   4,  10,   0  ! p2y10A+
+  15,   4,  11,   0  ! p2y11A+
+
+SLOT=10
+   0,   4,  12,   0  ! p2y12A+
+   1,   4,  13,   0  ! p2y13A+
+   2,   4,  14,   0  ! p2y14A+
+   3,   4,  15,   0  ! p2y15A+
+   4,   4,  16,   0  ! p2y16A+
+   5,   4,  17,   0  ! p2y17A+
+   6,   4,  18,   0  ! p2y18A+
+   7,   4,  19,   0  ! p2y19A+
+   8,   4,  20,   0  ! p2y20A+
+   9,   4,  21,   0  ! p2y21A+
+
+SLOT=20
+REFINDEX=0
+  15,1000,   0,   0
+   0,   1,   1,   2  ! p1x01T+
+   1,   1,   3,   2  ! p1x03T+
+   2,   1,   5,   2  ! p1x05T+
+   3,   1,   7,   2  ! p1x07T+
+   4,   1,   2,   2  ! p1x02T+
+   5,   1,   4,   2  ! p1x04T+
+   6,   1,   6,   2  ! p1x06T+
+   7,   1,   8,   2  ! p1x08T+
+   8,   1,   9,   2  ! p1x09T+
+   9,   1,  11,   2  ! p1x11T+
+  10,   1,  13,   2  ! p1x13T+
+  12,   1,  10,   2  ! p1x10T+
+  13,   1,  12,   2  ! p1x12T+
+  16,   1,   1,   3  ! p1x01T-
+  17,   1,   3,   3  ! p1x03T-
+  18,   1,   5,   3  ! p1x05T-
+  19,   1,   7,   3  ! p1x07T-
+  20,   1,   2,   3  ! p1x02T-
+  21,   1,   4,   3  ! p1x04T-
+  22,   1,   6,   3  ! p1x06T-
+  23,   1,   8,   3  ! p1x08T-
+  24,   1,   9,   3  ! p1x09T-
+  25,   1,  11,   3  ! p1x11T-
+  26,   1,  13,   3  ! p1x13T-
+  28,   1,  10,   3  ! p1x10T-
+  30,   1,  12,   3  ! p1x12T-
+  32,   2,   1,   3  ! p1y01T-
+  33,   2,   3,   3  ! p1y03T-
+  34,   2,   5,   3  ! p1y05T-
+  35,   2,   7,   3  ! p1y07T-
+  36,   2,   2,   3  ! p1y02T-
+  37,   2,   4,   3  ! p1y04T-
+  38,   2,   6,   3  ! p1y06T-
+  39,   2,   8,   3  ! p1y08T-
+  40,   2,   9,   3  ! p1y09T-
+  41,   2,  11,   3  ! p1y11T-
+  42,   2,  13,   3  ! p1y13T-
+  44,   2,  10,   3  ! p1y10T-
+  45,   2,  12,   3  ! p1y12T-
+  48,   2,   1,   2  ! p1y01T+
+  49,   2,   3,   2  ! p1y03T+
+  50,   2,   5,   2  ! p1y05T+
+  51,   2,   7,   2  ! p1y07T+
+  52,   2,   2,   2  ! p1y02T+
+  53,   2,   4,   2  ! p1y04T+
+  54,   2,   6,   2  ! p1y06T+
+  55,   2,   8,   2  ! p1y08T+
+  56,   2,   9,   2  ! p1y09T+
+  57,   2,  11,   2  ! p1y11T+
+  58,   2,  13,   2  ! p1y13T+
+  60,   2,  10,   2  ! p1y10T+
+  61,   2,  12,   2  ! p1y12T+
+  64,   3,   1,   2  ! p2x01T+
+  65,   3,   3,   2  ! p2x03T+
+  66,   3,   5,   2  ! p2x05T+
+  67,   3,   7,   2  ! p2x07T+
+  68,   3,   2,   2  ! p2x02T+
+  69,   3,   4,   2  ! p2x04T+
+  70,   3,   6,   2  ! p2x06T+
+  71,   3,   8,   2  ! p2x08T+
+  72,   3,   9,   2  ! p2x09T+
+  73,   3,  11,   2  ! p2x11T+
+  74,   3,  13,   2  ! p2x13T+
+  76,   3,  10,   2  ! p2x10T+
+  77,   3,  12,   2  ! p2x12T+
+  78,   3,  14,   2  ! p2x14T+
+  80,   3,   1,   3  ! p2x01T-
+  81,   3,   3,   3  ! p2x03T-
+  82,   3,   5,   3  ! p2x05T-
+  83,   3,   7,   3  ! p2x07T-
+  84,   3,   2,   3  ! p2x02T-
+  85,   3,   4,   3  ! p2x04T-
+  86,   3,   6,   3  ! p2x06T-
+  87,   3,   8,   3  ! p2x08T-
+  88,   3,   9,   3  ! p2x09T-
+  89,   3,  11,   3  ! p2x11T-
+  90,   3,  13,   3  ! p2x13T-
+  92,   3,  10,   3  ! p2x10T-
+  93,   3,  12,   3  ! p2x12T-
+  94,   3,  14,   3  ! p2x14T-
+  96,   4,   1,   3  ! p2y01T-
+  97,   4,   3,   3  ! p2y03T-
+  98,   4,   5,   3  ! p2y05T-
+  99,   4,   7,   3  ! p2y07T-
+ 100,   4,   2,   3  ! p2y02T-
+ 101,   4,   4,   3  ! p2y04T-
+ 102,   4,   6,   3  ! p2y06T-
+ 103,   4,   8,   3  ! p2y08T-
+ 104,   4,   9,   3  ! p2y09T-
+ 105,   4,  11,   3  ! p2y11T-
+ 106,   4,  13,   3  ! p2y13T-
+ 107,   4,  15,   3  ! p2y15T-
+ 108,   4,  10,   3  ! p2y10T-
+ 109,   4,  12,   3  ! p2y12T-
+ 110,   4,  14,   3  ! p2y14T-
+ 111,   4,  16,   3  ! p2y16T-
+ 112,   4,  17,   3  ! p2y17T-
+ 113,   4,  19,   3  ! p2y19T-
+ 114,   4,  21,   3  ! p2y21T-
+ 116,   4,  18,   3  ! p2y18T-
+ 117,   4,  20,   3  ! p2y20T-
+
+SLOT=19
+REFINDEX=0
+  31,1000,   0,   1
+   0,   4,   1,   2  ! p2y01T+
+   1,   4,   3,   2  ! p2y03T+
+   2,   4,   5,   2  ! p2y05T+
+   3,   4,   7,   2  ! p2y07T+
+   4,   4,   2,   2  ! p2y02T+
+   5,   4,   4,   2  ! p2y04T+
+   6,   4,   6,   2  ! p2y06T+
+   7,   4,   8,   2  ! p2y08T+
+   8,   4,   9,   2  ! p2y09T+
+   9,   4,  11,   2  ! p2y11T+
+  10,   4,  13,   2  ! p2y13T+
+  11,   4,  15,   2  ! p2y15T+
+  12,   4,  10,   2  ! p2y10T+
+  13,   4,  12,   2  ! p2y12T+
+  14,   4,  14,   2  ! p2y14T+
+  15,   4,  16,   2  ! p2y16T+
+  16,   4,  17,   2  ! p2y17T+
+  17,   4,  19,   2  ! p2y19T+
+  18,   4,  21,   2  ! p2y21T+
+  20,   4,  18,   2  ! p2y18T+
+  21,   4,  20,   2  ! p2y20T+
diff --git a/MAPS/SHMS/DETEC/phodo_ptrig.map b/MAPS/SHMS/DETEC/phodo_ptrig.map
new file mode 100644
index 00000000..8f82c1e6
--- /dev/null
+++ b/MAPS/SHMS/DETEC/phodo_ptrig.map
@@ -0,0 +1,333 @@
+! TSHMS_ID=20      ::  ADC,TDC
+! PSCIN_ID=23      ::  ,ADC+,ADC-,TDC+,TDC-
+
+
+DETECTOR=20
+
+ROC=2
+
+SLOT=14
+   0,   1,   1,   0  ! pAERSUM
+   1,   1,   2,   0  ! pHGCERSUM
+   2,   1,   3,   0  ! pNGCERSUM
+
+SLOT=20
+  15,   2,   1,   1  ! pT1
+
+SLOT=19
+  31,   2,   2,   1  ! pT2
+  32,   2,   3,   1  ! p1X
+  33,   2,   4,   1  ! p1Y
+  34,   2,   5,   1  ! p2X
+  35,   2,   6,   1  ! p2Y
+  36,   2,   7,   1  ! p1T
+  37,   2,   8,   1  ! p2T
+  38,   2,   9,   1  ! pT3
+  39,   2,  10,   1  ! pAERSUM
+  40,   2,  11,   1  ! pHGCERSUM
+  41,   2,  12,   1  ! pNGCERSUM
+
+ROC=6
+
+SLOT=6
+  79,   2,  13,   1  ! pDCREF1
+
+SLOT=7
+  79,   2,  14,   1  ! pDCREF2
+
+SLOT=8
+  79,   2,  15,   1  ! pDCREF3
+
+SLOT=9
+  79,   2,  16,   1  ! pDCREF4
+
+SLOT=10
+  79,   2,  17,   1  ! pDCREF5
+
+SLOT=11
+  47,   2,  18,   1  ! pDCREF6
+
+SLOT=12
+  47,   2,  19,   1  ! pDCREF7
+
+SLOT=13
+  47,   2,  20,   1  ! pDCREF8
+
+SLOT=14
+  15,   2,  21,   1  ! pDCREF9
+
+SLOT=15
+  47,   2,  22,   1  ! pDCREF10
+
+
+DETECTOR=23
+
+ROC=2
+
+SLOT=3
+   0,   1,   1,   0  ! p1x01A+
+   1,   1,   2,   0  ! p1x02A+
+   2,   1,   3,   0  ! p1x03A+
+   3,   1,   4,   0  ! p1x04A+
+   4,   1,   5,   0  ! p1x05A+
+   5,   1,   6,   0  ! p1x06A+
+   6,   1,   7,   0  ! p1x07A+
+   7,   1,   8,   0  ! p1x08A+
+   8,   1,   9,   0  ! p1x09A+
+   9,   1,  10,   0  ! p1x10A+
+  10,   1,  11,   0  ! p1x11A+
+  11,   1,  12,   0  ! p1x12A+
+  12,   1,  13,   0  ! p1x13A+
+  13,   1,   1,   1  ! p1x01A-
+  14,   1,   2,   1  ! p1x02A-
+  15,   1,   3,   1  ! p1x03A-
+
+SLOT=4
+   0,   1,   4,   1  ! p1x04A-
+   1,   1,   5,   1  ! p1x05A-
+   2,   1,   6,   1  ! p1x06A-
+   3,   1,   7,   1  ! p1x07A-
+   4,   1,   8,   1  ! p1x08A-
+   5,   1,   9,   1  ! p1x09A-
+   6,   1,  10,   1  ! p1x10A-
+   7,   1,  11,   1  ! p1x11A-
+   8,   1,  12,   1  ! p1x12A-
+   9,   1,  13,   1  ! p1x13A-
+  10,   2,   1,   1  ! p1y01A-
+  11,   2,   2,   1  ! p1y02A-
+  12,   2,   3,   1  ! p1y03A-
+  13,   2,   4,   1  ! p1y04A-
+  14,   2,   5,   1  ! p1y05A-
+  15,   2,   6,   1  ! p1y06A-
+
+SLOT=5
+   0,   2,   7,   1  ! p1y07A-
+   1,   2,   8,   1  ! p1y08A-
+   2,   2,   9,   1  ! p1y09A-
+   3,   2,  10,   1  ! p1y10A-
+   4,   2,  11,   1  ! p1y11A-
+   5,   2,  12,   1  ! p1y12A-
+   6,   2,  13,   1  ! p1y13A-
+   7,   2,   1,   0  ! p1y01A+
+   8,   2,   2,   0  ! p1y02A+
+   9,   2,   3,   0  ! p1y03A+
+  10,   2,   4,   0  ! p1y04A+
+  11,   2,   5,   0  ! p1y05A+
+  12,   2,   6,   0  ! p1y06A+
+  13,   2,   7,   0  ! p1y07A+
+  14,   2,   8,   0  ! p1y08A+
+  15,   2,   9,   0  ! p1y09A+
+
+SLOT=6
+   0,   2,  10,   0  ! p1y10A+
+   1,   2,  11,   0  ! p1y11A+
+   2,   2,  12,   0  ! p1y12A+
+   3,   2,  13,   0  ! p1y13A+
+   4,   3,   1,   0  ! p2x01A+
+   5,   3,   2,   0  ! p2x02A+
+   6,   3,   3,   0  ! p2x03A+
+   7,   3,   4,   0  ! p2x04A+
+   8,   3,   5,   0  ! p2x05A+
+   9,   3,   6,   0  ! p2x06A+
+  10,   3,   7,   0  ! p2x07A+
+  11,   3,   8,   0  ! p2x08A+
+  12,   3,   9,   0  ! p2x09A+
+  13,   3,  10,   0  ! p2x10A+
+  14,   3,  11,   0  ! p2x11A+
+  15,   3,  12,   0  ! p2x12A+
+
+SLOT=7
+   0,   3,  13,   0  ! p2x13A+
+   1,   3,  14,   0  ! p2x14A+
+   2,   3,   1,   1  ! p2x01A-
+   3,   3,   2,   1  ! p2x02A-
+   4,   3,   3,   1  ! p2x03A-
+   5,   3,   4,   1  ! p2x04A-
+   6,   3,   5,   1  ! p2x05A-
+   7,   3,   6,   1  ! p2x06A-
+   8,   3,   7,   1  ! p2x07A-
+   9,   3,   8,   1  ! p2x08A-
+  10,   3,   9,   1  ! p2x09A-
+  11,   3,  10,   1  ! p2x10A-
+  12,   3,  11,   1  ! p2x11A-
+  13,   3,  12,   1  ! p2x12A-
+  14,   3,  13,   1  ! p2x13A-
+  15,   3,  14,   1  ! p2x14A-
+
+SLOT=8
+   0,   4,   1,   1  ! p2y01A-
+   1,   4,   2,   1  ! p2y02A-
+   2,   4,   3,   1  ! p2y03A-
+   3,   4,   4,   1  ! p2y04A-
+   4,   4,   5,   1  ! p2y05A-
+   5,   4,   6,   1  ! p2y06A-
+   6,   4,   7,   1  ! p2y07A-
+   7,   4,   8,   1  ! p2y08A-
+   8,   4,   9,   1  ! p2y09A-
+   9,   4,  10,   1  ! p2y10A-
+  10,   4,  11,   1  ! p2y11A-
+  11,   4,  12,   1  ! p2y12A-
+  12,   4,  13,   1  ! p2y13A-
+  13,   4,  14,   1  ! p2y14A-
+  14,   4,  15,   1  ! p2y15A-
+  15,   4,  16,   1  ! p2y16A-
+
+SLOT=9
+   0,   4,  17,   1  ! p2y17A-
+   1,   4,  18,   1  ! p2y18A-
+   2,   4,  19,   1  ! p2y19A-
+   3,   4,  20,   1  ! p2y20A-
+   4,   4,  21,   1  ! p2y21A-
+   5,   4,   1,   0  ! p2y01A+
+   6,   4,   2,   0  ! p2y02A+
+   7,   4,   3,   0  ! p2y03A+
+   8,   4,   4,   0  ! p2y04A+
+   9,   4,   5,   0  ! p2y05A+
+  10,   4,   6,   0  ! p2y06A+
+  11,   4,   7,   0  ! p2y07A+
+  12,   4,   8,   0  ! p2y08A+
+  13,   4,   9,   0  ! p2y09A+
+  14,   4,  10,   0  ! p2y10A+
+  15,   4,  11,   0  ! p2y11A+
+
+SLOT=10
+   0,   4,  12,   0  ! p2y12A+
+   1,   4,  13,   0  ! p2y13A+
+   2,   4,  14,   0  ! p2y14A+
+   3,   4,  15,   0  ! p2y15A+
+   4,   4,  16,   0  ! p2y16A+
+   5,   4,  17,   0  ! p2y17A+
+   6,   4,  18,   0  ! p2y18A+
+   7,   4,  19,   0  ! p2y19A+
+   8,   4,  20,   0  ! p2y20A+
+   9,   4,  21,   0  ! p2y21A+
+
+SLOT=20
+REFINDEX=0
+  15,1000,   0,   0
+   0,   1,   1,   2  ! p1x01T+
+   1,   1,   3,   2  ! p1x03T+
+   2,   1,   5,   2  ! p1x05T+
+   3,   1,   7,   2  ! p1x07T+
+   4,   1,   2,   2  ! p1x02T+
+   5,   1,   4,   2  ! p1x04T+
+   6,   1,   6,   2  ! p1x06T+
+   7,   1,   8,   2  ! p1x08T+
+   8,   1,   9,   2  ! p1x09T+
+   9,   1,  11,   2  ! p1x11T+
+  10,   1,  13,   2  ! p1x13T+
+  12,   1,  10,   2  ! p1x10T+
+  13,   1,  12,   2  ! p1x12T+
+  16,   1,   1,   3  ! p1x01T-
+  17,   1,   3,   3  ! p1x03T-
+  18,   1,   5,   3  ! p1x05T-
+  19,   1,   7,   3  ! p1x07T-
+  20,   1,   2,   3  ! p1x02T-
+  21,   1,   4,   3  ! p1x04T-
+  22,   1,   6,   3  ! p1x06T-
+  23,   1,   8,   3  ! p1x08T-
+  24,   1,   9,   3  ! p1x09T-
+  25,   1,  11,   3  ! p1x11T-
+  26,   1,  13,   3  ! p1x13T-
+  28,   1,  10,   3  ! p1x10T-
+  30,   1,  12,   3  ! p1x12T-
+  32,   2,   1,   3  ! p1y01T-
+  33,   2,   3,   3  ! p1y03T-
+  34,   2,   5,   3  ! p1y05T-
+  35,   2,   7,   3  ! p1y07T-
+  36,   2,   2,   3  ! p1y02T-
+  37,   2,   4,   3  ! p1y04T-
+  38,   2,   6,   3  ! p1y06T-
+  39,   2,   8,   3  ! p1y08T-
+  40,   2,   9,   3  ! p1y09T-
+  41,   2,  11,   3  ! p1y11T-
+  42,   2,  13,   3  ! p1y13T-
+  44,   2,  10,   3  ! p1y10T-
+  45,   2,  12,   3  ! p1y12T-
+  48,   2,   1,   2  ! p1y01T+
+  49,   2,   3,   2  ! p1y03T+
+  50,   2,   5,   2  ! p1y05T+
+  51,   2,   7,   2  ! p1y07T+
+  52,   2,   2,   2  ! p1y02T+
+  53,   2,   4,   2  ! p1y04T+
+  54,   2,   6,   2  ! p1y06T+
+  55,   2,   8,   2  ! p1y08T+
+  56,   2,   9,   2  ! p1y09T+
+  57,   2,  11,   2  ! p1y11T+
+  58,   2,  13,   2  ! p1y13T+
+  60,   2,  10,   2  ! p1y10T+
+  61,   2,  12,   2  ! p1y12T+
+  64,   3,   1,   2  ! p2x01T+
+  65,   3,   3,   2  ! p2x03T+
+  66,   3,   5,   2  ! p2x05T+
+  67,   3,   7,   2  ! p2x07T+
+  68,   3,   2,   2  ! p2x02T+
+  69,   3,   4,   2  ! p2x04T+
+  70,   3,   6,   2  ! p2x06T+
+  71,   3,   8,   2  ! p2x08T+
+  72,   3,   9,   2  ! p2x09T+
+  73,   3,  11,   2  ! p2x11T+
+  74,   3,  13,   2  ! p2x13T+
+  76,   3,  10,   2  ! p2x10T+
+  77,   3,  12,   2  ! p2x12T+
+  78,   3,  14,   2  ! p2x14T+
+  80,   3,   1,   3  ! p2x01T-
+  81,   3,   3,   3  ! p2x03T-
+  82,   3,   5,   3  ! p2x05T-
+  83,   3,   7,   3  ! p2x07T-
+  84,   3,   2,   3  ! p2x02T-
+  85,   3,   4,   3  ! p2x04T-
+  86,   3,   6,   3  ! p2x06T-
+  87,   3,   8,   3  ! p2x08T-
+  88,   3,   9,   3  ! p2x09T-
+  89,   3,  11,   3  ! p2x11T-
+  90,   3,  13,   3  ! p2x13T-
+  92,   3,  10,   3  ! p2x10T-
+  93,   3,  12,   3  ! p2x12T-
+  94,   3,  14,   3  ! p2x14T-
+  96,   4,   1,   3  ! p2y01T-
+  97,   4,   3,   3  ! p2y03T-
+  98,   4,   5,   3  ! p2y05T-
+  99,   4,   7,   3  ! p2y07T-
+ 100,   4,   2,   3  ! p2y02T-
+ 101,   4,   4,   3  ! p2y04T-
+ 102,   4,   6,   3  ! p2y06T-
+ 103,   4,   8,   3  ! p2y08T-
+ 104,   4,   9,   3  ! p2y09T-
+ 105,   4,  11,   3  ! p2y11T-
+ 106,   4,  13,   3  ! p2y13T-
+ 107,   4,  15,   3  ! p2y15T-
+ 108,   4,  10,   3  ! p2y10T-
+ 109,   4,  12,   3  ! p2y12T-
+ 110,   4,  14,   3  ! p2y14T-
+ 111,   4,  16,   3  ! p2y16T-
+ 112,   4,  17,   3  ! p2y17T-
+ 113,   4,  19,   3  ! p2y19T-
+ 114,   4,  21,   3  ! p2y21T-
+ 116,   4,  18,   3  ! p2y18T-
+ 117,   4,  20,   3  ! p2y20T-
+
+SLOT=19
+REFINDEX=0
+  31,1000,   0,   1
+   0,   4,   1,   2  ! p2y01T+
+   1,   4,   3,   2  ! p2y03T+
+   2,   4,   5,   2  ! p2y05T+
+   3,   4,   7,   2  ! p2y07T+
+   4,   4,   2,   2  ! p2y02T+
+   5,   4,   4,   2  ! p2y04T+
+   6,   4,   6,   2  ! p2y06T+
+   7,   4,   8,   2  ! p2y08T+
+   8,   4,   9,   2  ! p2y09T+
+   9,   4,  11,   2  ! p2y11T+
+  10,   4,  13,   2  ! p2y13T+
+  11,   4,  15,   2  ! p2y15T+
+  12,   4,  10,   2  ! p2y10T+
+  13,   4,  12,   2  ! p2y12T+
+  14,   4,  14,   2  ! p2y14T+
+  15,   4,  16,   2  ! p2y16T+
+  16,   4,  17,   2  ! p2y17T+
+  17,   4,  19,   2  ! p2y19T+
+  18,   4,  21,   2  ! p2y21T+
+  20,   4,  18,   2  ! p2y18T+
+  21,   4,  20,   2  ! p2y20T+
diff --git a/MAPS/SHMS/DETEC/pngcer.map b/MAPS/SHMS/DETEC/pngcer.map
new file mode 100644
index 00000000..518adeb5
--- /dev/null
+++ b/MAPS/SHMS/DETEC/pngcer.map
@@ -0,0 +1,12 @@
+! PNGCER_ID=21       ::  ADC
+
+
+DETECTOR=21
+
+ROC=2
+
+SLOT=13
+  12,   1,   1,   0  ! pNGCER01
+  13,   1,   2,   0  ! pNGCER02
+  14,   1,   3,   0  ! pNGCER03
+  15,   1,   4,   0  ! pNGCER04
diff --git a/MAPS/SHMS/DETEC/pngcer_ptrig.map b/MAPS/SHMS/DETEC/pngcer_ptrig.map
new file mode 100644
index 00000000..697bbb6d
--- /dev/null
+++ b/MAPS/SHMS/DETEC/pngcer_ptrig.map
@@ -0,0 +1,71 @@
+! TSHMS_ID=20      ::  ::,ADC,TDC
+! PNGCER_ID=21     ::  ::,ADC,TDC
+
+
+DETECTOR=20
+
+ROC=2
+
+SLOT=14
+   0,   1,   1,   0  ! pAERSUM
+   1,   1,   2,   0  ! pHGCERSUM
+   2,   1,   3,   0  ! pNGCERSUM
+
+SLOT=20
+  15,   2,   1,   1  ! pT1
+
+SLOT=19
+  31,   2,   2,   1  ! pT2
+  32,   2,   3,   1  ! p1X
+  33,   2,   4,   1  ! p1Y
+  34,   2,   5,   1  ! p2X
+  35,   2,   6,   1  ! p2Y
+  36,   2,   7,   1  ! p1T
+  37,   2,   8,   1  ! p2T
+  38,   2,   9,   1  ! pT3
+  39,   2,  10,   1  ! pAERSUM
+  40,   2,  11,   1  ! pHGCERSUM
+  41,   2,  12,   1  ! pNGCERSUM
+
+ROC=6
+
+SLOT=6
+  79,   2,  13,   1  ! pDCREF1
+
+SLOT=7
+  79,   2,  14,   1  ! pDCREF2
+
+SLOT=8
+  79,   2,  15,   1  ! pDCREF3
+
+SLOT=9
+  79,   2,  16,   1  ! pDCREF4
+
+SLOT=10
+  79,   2,  17,   1  ! pDCREF5
+
+SLOT=11
+  47,   2,  18,   1  ! pDCREF6
+
+SLOT=12
+  47,   2,  19,   1  ! pDCREF7
+
+SLOT=13
+  47,   2,  20,   1  ! pDCREF8
+
+SLOT=14
+  15,   2,  21,   1  ! pDCREF9
+
+SLOT=15
+  47,   2,  22,   1  ! pDCREF10
+
+
+DETECTOR=21
+
+ROC=2
+
+SLOT=13
+  12,   1,   1,   0  ! pNGCER01
+  13,   1,   2,   0  ! pNGCER02
+  14,   1,   3,   0  ! pNGCER03
+  15,   1,   4,   0  ! pNGCER04
diff --git a/MAPS/SHMS/DETEC/praster_simple.map b/MAPS/SHMS/DETEC/praster_simple.map
new file mode 100644
index 00000000..b0212c9b
--- /dev/null
+++ b/MAPS/SHMS/DETEC/praster_simple.map
@@ -0,0 +1,18 @@
+!HMS:
+! TSHMS_ID=20    ADC,TDC
+
+! Plane = 1 >> ADC Only
+! Plane = 2 >> TDC Only
+
+detector=20
+
+ROC=2
+
+!F250 module
+SLOT=14
+! chan    plane     bar    sig
+     12,      1,      1,     0!  FR-XA
+     13,      1,      2,     0!  FR-XB
+     14,      1,      3,     0!  FR-YA
+     15,      1,      4,     0!  FR-YB
+
diff --git a/MAPS/SHMS/DETEC/ptrig.map b/MAPS/SHMS/DETEC/ptrig.map
new file mode 100644
index 00000000..22a6a97e
--- /dev/null
+++ b/MAPS/SHMS/DETEC/ptrig.map
@@ -0,0 +1,59 @@
+! TSHMS_ID=20      ::  ADC,TDC
+
+
+DETECTOR=20
+
+ROC=2
+
+SLOT=14
+   0,   1,   1,   0  ! pAERSUM
+   1,   1,   2,   0  ! pHGCERSUM
+   2,   1,   3,   0  ! pNGCERSUM
+
+SLOT=20
+  15,   2,   1,   1  ! pT1
+
+SLOT=19
+  31,   2,   2,   1  ! pT2
+  32,   2,   3,   1  ! p1X
+  33,   2,   4,   1  ! p1Y
+  34,   2,   5,   1  ! p2X
+  35,   2,   6,   1  ! p2Y
+  36,   2,   7,   1  ! p1T
+  37,   2,   8,   1  ! p2T
+  38,   2,   9,   1  ! pT3
+  39,   2,  10,   1  ! pAERSUM
+  40,   2,  11,   1  ! pHGCERSUM
+  41,   2,  12,   1  ! pNGCERSUM
+
+ROC=6
+
+SLOT=6
+  79,   2,  13,   1  ! pDCREF1
+
+SLOT=7
+  79,   2,  14,   1  ! pDCREF2
+
+SLOT=8
+  79,   2,  15,   1  ! pDCREF3
+
+SLOT=9
+  79,   2,  16,   1  ! pDCREF4
+
+SLOT=10
+  79,   2,  17,   1  ! pDCREF5
+
+SLOT=11
+  47,   2,  18,   1  ! pDCREF6
+
+SLOT=12
+  47,   2,  19,   1  ! pDCREF7
+
+SLOT=13
+  47,   2,  20,   1  ! pDCREF8
+
+SLOT=14
+  15,   2,  21,   1  ! pDCREF9
+
+SLOT=15
+  47,   2,  22,   1  ! pDCREF10
diff --git a/MAPS/SHMS/DETEC/shms_stack.map b/MAPS/SHMS/DETEC/shms_stack.map
new file mode 100644
index 00000000..c478db5a
--- /dev/null
+++ b/MAPS/SHMS/DETEC/shms_stack.map
@@ -0,0 +1,2008 @@
+! TSHMS_ID=20      ::  ADC,TDC
+! PNGCER_ID=21     ::  ADC
+! PDC_ID=22        ::  TDC
+! PSCIN_ID=23      ::  ,ADC+,ADC-,TDC+,TDC-
+! PHGCER_ID=24     ::  ADC
+! PAERO_ID=25      ::  ,ADC+,ADC-
+! PCAL_ID=26       ::  ADC
+
+
+DETECTOR=20
+
+ROC=2
+
+SLOT=14
+   0,   1,   1,   0  ! pAERSUM
+   1,   1,   2,   0  ! pHGCERSUM
+   2,   1,   3,   0  ! pNGCERSUM
+
+SLOT=20
+  15,   2,   1,   1  ! pT1
+
+SLOT=19
+  31,   2,   2,   1  ! pT2
+  32,   2,   3,   1  ! p1X
+  33,   2,   4,   1  ! p1Y
+  34,   2,   5,   1  ! p2X
+  35,   2,   6,   1  ! p2Y
+  36,   2,   7,   1  ! p1T
+  37,   2,   8,   1  ! p2T
+  38,   2,   9,   1  ! pT3
+  39,   2,  10,   1  ! pAERSUM
+  40,   2,  11,   1  ! pHGCERSUM
+  41,   2,  12,   1  ! pNGCERSUM
+
+ROC=6
+
+SLOT=6
+  79,   2,  13,   1  ! pDCREF1
+
+SLOT=7
+  79,   2,  14,   1  ! pDCREF2
+
+SLOT=8
+  79,   2,  15,   1  ! pDCREF3
+
+SLOT=9
+  79,   2,  16,   1  ! pDCREF4
+
+SLOT=10
+  79,   2,  17,   1  ! pDCREF5
+
+SLOT=11
+  47,   2,  18,   1  ! pDCREF6
+
+SLOT=12
+  47,   2,  19,   1  ! pDCREF7
+
+SLOT=13
+  47,   2,  20,   1  ! pDCREF8
+
+SLOT=14
+  15,   2,  21,   1  ! pDCREF9
+
+SLOT=15
+  47,   2,  22,   1  ! pDCREF10
+
+
+DETECTOR=21
+
+ROC=2
+
+SLOT=13
+  12,   1,   1,   0  ! pNGCER01
+  13,   1,   2,   0  ! pNGCER02
+  14,   1,   3,   0  ! pNGCER03
+  15,   1,   4,   0  ! pNGCER04
+
+
+DETECTOR=22  ! SHMS chambers
+
+ROC=6
+
+SLOT=9
+REFCHAN=79
+  78,   1,   1  ! DC1, Plane U, wire 1
+  77,   1,   2  ! DC1, Plane U, wire 2
+  76,   1,   3  ! DC1, Plane U, wire 3
+  75,   1,   4  ! DC1, Plane U, wire 4
+  74,   1,   5  ! DC1, Plane U, wire 5
+  73,   1,   6  ! DC1, Plane U, wire 6
+  72,   1,   7  ! DC1, Plane U, wire 7
+  71,   1,   8  ! DC1, Plane U, wire 8
+  70,   1,   9  ! DC1, Plane U, wire 9
+  69,   1,  10  ! DC1, Plane U, wire 10
+  68,   1,  11  ! DC1, Plane U, wire 11
+  67,   1,  12  ! DC1, Plane U, wire 12
+  66,   1,  13  ! DC1, Plane U, wire 13
+  65,   1,  14  ! DC1, Plane U, wire 14
+  64,   1,  15  ! DC1, Plane U, wire 15
+
+SLOT=7
+REFCHAN=79
+  31,   1,  16  ! DC1, Plane U, wire 16
+  30,   1,  17  ! DC1, Plane U, wire 17
+  29,   1,  18  ! DC1, Plane U, wire 18
+  28,   1,  19  ! DC1, Plane U, wire 19
+  27,   1,  20  ! DC1, Plane U, wire 20
+  26,   1,  21  ! DC1, Plane U, wire 21
+  25,   1,  22  ! DC1, Plane U, wire 22
+  24,   1,  23  ! DC1, Plane U, wire 23
+  23,   1,  24  ! DC1, Plane U, wire 24
+  22,   1,  25  ! DC1, Plane U, wire 25
+  21,   1,  26  ! DC1, Plane U, wire 26
+  20,   1,  27  ! DC1, Plane U, wire 27
+  19,   1,  28  ! DC1, Plane U, wire 28
+  18,   1,  29  ! DC1, Plane U, wire 29
+  17,   1,  30  ! DC1, Plane U, wire 30
+  16,   1,  31  ! DC1, Plane U, wire 31
+
+SLOT=6
+REFCHAN=79
+  95,   1,  32  ! DC1, Plane U, wire 32
+  94,   1,  33  ! DC1, Plane U, wire 33
+  93,   1,  34  ! DC1, Plane U, wire 34
+  92,   1,  35  ! DC1, Plane U, wire 35
+  91,   1,  36  ! DC1, Plane U, wire 36
+  90,   1,  37  ! DC1, Plane U, wire 37
+  89,   1,  38  ! DC1, Plane U, wire 38
+  88,   1,  39  ! DC1, Plane U, wire 39
+  87,   1,  40  ! DC1, Plane U, wire 40
+  86,   1,  41  ! DC1, Plane U, wire 41
+  85,   1,  42  ! DC1, Plane U, wire 42
+  84,   1,  43  ! DC1, Plane U, wire 43
+  83,   1,  44  ! DC1, Plane U, wire 44
+  82,   1,  45  ! DC1, Plane U, wire 45
+  81,   1,  46  ! DC1, Plane U, wire 46
+  80,   1,  47  ! DC1, Plane U, wire 47
+  31,   1,  48  ! DC1, Plane U, wire 48
+  30,   1,  49  ! DC1, Plane U, wire 49
+  29,   1,  50  ! DC1, Plane U, wire 50
+  28,   1,  51  ! DC1, Plane U, wire 51
+  27,   1,  52  ! DC1, Plane U, wire 52
+  26,   1,  53  ! DC1, Plane U, wire 53
+  25,   1,  54  ! DC1, Plane U, wire 54
+  24,   1,  55  ! DC1, Plane U, wire 55
+  23,   1,  56  ! DC1, Plane U, wire 56
+  22,   1,  57  ! DC1, Plane U, wire 57
+  21,   1,  58  ! DC1, Plane U, wire 58
+  20,   1,  59  ! DC1, Plane U, wire 59
+  19,   1,  60  ! DC1, Plane U, wire 60
+  18,   1,  61  ! DC1, Plane U, wire 61
+  17,   1,  62  ! DC1, Plane U, wire 62
+  16,   1,  63  ! DC1, Plane U, wire 63
+
+SLOT=8
+REFCHAN=79
+ 112,   1,  64  ! DC1, Plane U, wire 64
+ 113,   1,  65  ! DC1, Plane U, wire 65
+ 114,   1,  66  ! DC1, Plane U, wire 66
+ 115,   1,  67  ! DC1, Plane U, wire 67
+ 116,   1,  68  ! DC1, Plane U, wire 68
+ 117,   1,  69  ! DC1, Plane U, wire 69
+ 118,   1,  70  ! DC1, Plane U, wire 70
+ 119,   1,  71  ! DC1, Plane U, wire 71
+ 120,   1,  72  ! DC1, Plane U, wire 72
+ 121,   1,  73  ! DC1, Plane U, wire 73
+ 122,   1,  74  ! DC1, Plane U, wire 74
+ 123,   1,  75  ! DC1, Plane U, wire 75
+ 124,   1,  76  ! DC1, Plane U, wire 76
+ 125,   1,  77  ! DC1, Plane U, wire 77
+ 126,   1,  78  ! DC1, Plane U, wire 78
+ 127,   1,  79  ! DC1, Plane U, wire 79
+  48,   1,  80  ! DC1, Plane U, wire 80
+  49,   1,  81  ! DC1, Plane U, wire 81
+  50,   1,  82  ! DC1, Plane U, wire 82
+  51,   1,  83  ! DC1, Plane U, wire 83
+  52,   1,  84  ! DC1, Plane U, wire 84
+  53,   1,  85  ! DC1, Plane U, wire 85
+  54,   1,  86  ! DC1, Plane U, wire 86
+  55,   1,  87  ! DC1, Plane U, wire 87
+  56,   1,  88  ! DC1, Plane U, wire 88
+  57,   1,  89  ! DC1, Plane U, wire 89
+  58,   1,  90  ! DC1, Plane U, wire 90
+  59,   1,  91  ! DC1, Plane U, wire 91
+  60,   1,  92  ! DC1, Plane U, wire 92
+  61,   1,  93  ! DC1, Plane U, wire 93
+  62,   1,  94  ! DC1, Plane U, wire 94
+  63,   1,  95  ! DC1, Plane U, wire 95
+
+SLOT=9
+REFCHAN=79
+ 112,   1,  96  ! DC1, Plane U, wire 96
+ 113,   1,  97  ! DC1, Plane U, wire 97
+ 114,   1,  98  ! DC1, Plane U, wire 98
+ 115,   1,  99  ! DC1, Plane U, wire 99
+ 116,   1, 100  ! DC1, Plane U, wire 100
+ 117,   1, 101  ! DC1, Plane U, wire 101
+ 118,   1, 102  ! DC1, Plane U, wire 102
+ 119,   1, 103  ! DC1, Plane U, wire 103
+ 120,   1, 104  ! DC1, Plane U, wire 104
+ 121,   1, 105  ! DC1, Plane U, wire 105
+ 122,   1, 106  ! DC1, Plane U, wire 106
+ 123,   1, 107  ! DC1, Plane U, wire 107
+
+SLOT=8
+REFCHAN=79
+  75,   2,   1  ! DC1, Plane U', wire 1
+  74,   2,   2  ! DC1, Plane U', wire 2
+  73,   2,   3  ! DC1, Plane U', wire 3
+  72,   2,   4  ! DC1, Plane U', wire 4
+  71,   2,   5  ! DC1, Plane U', wire 5
+  70,   2,   6  ! DC1, Plane U', wire 6
+  69,   2,   7  ! DC1, Plane U', wire 7
+  68,   2,   8  ! DC1, Plane U', wire 8
+  67,   2,   9  ! DC1, Plane U', wire 9
+  66,   2,  10  ! DC1, Plane U', wire 10
+  65,   2,  11  ! DC1, Plane U', wire 11
+  64,   2,  12  ! DC1, Plane U', wire 12
+
+SLOT=6
+REFCHAN=79
+ 127,   2,  13  ! DC1, Plane U', wire 13
+ 126,   2,  14  ! DC1, Plane U', wire 14
+ 125,   2,  15  ! DC1, Plane U', wire 15
+ 124,   2,  16  ! DC1, Plane U', wire 16
+ 123,   2,  17  ! DC1, Plane U', wire 17
+ 122,   2,  18  ! DC1, Plane U', wire 18
+ 121,   2,  19  ! DC1, Plane U', wire 19
+ 120,   2,  20  ! DC1, Plane U', wire 20
+ 119,   2,  21  ! DC1, Plane U', wire 21
+ 118,   2,  22  ! DC1, Plane U', wire 22
+ 117,   2,  23  ! DC1, Plane U', wire 23
+ 116,   2,  24  ! DC1, Plane U', wire 24
+ 115,   2,  25  ! DC1, Plane U', wire 25
+ 114,   2,  26  ! DC1, Plane U', wire 26
+ 113,   2,  27  ! DC1, Plane U', wire 27
+ 112,   2,  28  ! DC1, Plane U', wire 28
+  47,   2,  29  ! DC1, Plane U', wire 29
+  46,   2,  30  ! DC1, Plane U', wire 30
+  45,   2,  31  ! DC1, Plane U', wire 31
+  44,   2,  32  ! DC1, Plane U', wire 32
+  43,   2,  33  ! DC1, Plane U', wire 33
+  42,   2,  34  ! DC1, Plane U', wire 34
+  41,   2,  35  ! DC1, Plane U', wire 35
+  40,   2,  36  ! DC1, Plane U', wire 36
+  39,   2,  37  ! DC1, Plane U', wire 37
+  38,   2,  38  ! DC1, Plane U', wire 38
+  37,   2,  39  ! DC1, Plane U', wire 39
+  36,   2,  40  ! DC1, Plane U', wire 40
+  35,   2,  41  ! DC1, Plane U', wire 41
+  34,   2,  42  ! DC1, Plane U', wire 42
+  33,   2,  43  ! DC1, Plane U', wire 43
+  32,   2,  44  ! DC1, Plane U', wire 44
+
+SLOT=9
+REFCHAN=79
+   0,   2,  45  ! DC1, Plane U', wire 45
+   1,   2,  46  ! DC1, Plane U', wire 46
+   2,   2,  47  ! DC1, Plane U', wire 47
+   3,   2,  48  ! DC1, Plane U', wire 48
+   4,   2,  49  ! DC1, Plane U', wire 49
+   5,   2,  50  ! DC1, Plane U', wire 50
+   6,   2,  51  ! DC1, Plane U', wire 51
+   7,   2,  52  ! DC1, Plane U', wire 52
+   8,   2,  53  ! DC1, Plane U', wire 53
+   9,   2,  54  ! DC1, Plane U', wire 54
+  10,   2,  55  ! DC1, Plane U', wire 55
+  11,   2,  56  ! DC1, Plane U', wire 56
+  12,   2,  57  ! DC1, Plane U', wire 57
+  13,   2,  58  ! DC1, Plane U', wire 58
+  14,   2,  59  ! DC1, Plane U', wire 59
+  15,   2,  60  ! DC1, Plane U', wire 60
+
+SLOT=8
+REFCHAN=79
+  96,   2,  61  ! DC1, Plane U', wire 61
+  97,   2,  62  ! DC1, Plane U', wire 62
+  98,   2,  63  ! DC1, Plane U', wire 63
+  99,   2,  64  ! DC1, Plane U', wire 64
+ 100,   2,  65  ! DC1, Plane U', wire 65
+ 101,   2,  66  ! DC1, Plane U', wire 66
+ 102,   2,  67  ! DC1, Plane U', wire 67
+ 103,   2,  68  ! DC1, Plane U', wire 68
+ 104,   2,  69  ! DC1, Plane U', wire 69
+ 105,   2,  70  ! DC1, Plane U', wire 70
+ 106,   2,  71  ! DC1, Plane U', wire 71
+ 107,   2,  72  ! DC1, Plane U', wire 72
+ 108,   2,  73  ! DC1, Plane U', wire 73
+ 109,   2,  74  ! DC1, Plane U', wire 74
+ 110,   2,  75  ! DC1, Plane U', wire 75
+ 111,   2,  76  ! DC1, Plane U', wire 76
+
+SLOT=10
+REFCHAN=79
+  80,   2,  77  ! DC1, Plane U', wire 77
+  81,   2,  78  ! DC1, Plane U', wire 78
+  82,   2,  79  ! DC1, Plane U', wire 79
+  83,   2,  80  ! DC1, Plane U', wire 80
+  84,   2,  81  ! DC1, Plane U', wire 81
+  85,   2,  82  ! DC1, Plane U', wire 82
+  86,   2,  83  ! DC1, Plane U', wire 83
+  87,   2,  84  ! DC1, Plane U', wire 84
+  88,   2,  85  ! DC1, Plane U', wire 85
+  89,   2,  86  ! DC1, Plane U', wire 86
+  90,   2,  87  ! DC1, Plane U', wire 87
+  91,   2,  88  ! DC1, Plane U', wire 88
+  92,   2,  89  ! DC1, Plane U', wire 89
+  93,   2,  90  ! DC1, Plane U', wire 90
+  94,   2,  91  ! DC1, Plane U', wire 91
+  95,   2,  92  ! DC1, Plane U', wire 92
+  16,   2,  93  ! DC1, Plane U', wire 93
+  17,   2,  94  ! DC1, Plane U', wire 94
+  18,   2,  95  ! DC1, Plane U', wire 95
+  19,   2,  96  ! DC1, Plane U', wire 96
+  20,   2,  97  ! DC1, Plane U', wire 97
+  21,   2,  98  ! DC1, Plane U', wire 98
+  22,   2,  99  ! DC1, Plane U', wire 99
+  23,   2, 100  ! DC1, Plane U', wire 100
+  24,   2, 101  ! DC1, Plane U', wire 101
+  25,   2, 102  ! DC1, Plane U', wire 102
+  26,   2, 103  ! DC1, Plane U', wire 103
+  27,   2, 104  ! DC1, Plane U', wire 104
+  28,   2, 105  ! DC1, Plane U', wire 105
+  29,   2, 106  ! DC1, Plane U', wire 106
+  30,   2, 107  ! DC1, Plane U', wire 107
+
+SLOT=9
+REFCHAN=79
+  46,   5,   1  ! DC1, Plane V, wire 1
+  45,   5,   2  ! DC1, Plane V, wire 2
+  44,   5,   3  ! DC1, Plane V, wire 3
+  43,   5,   4  ! DC1, Plane V, wire 4
+  42,   5,   5  ! DC1, Plane V, wire 5
+  41,   5,   6  ! DC1, Plane V, wire 6
+  40,   5,   7  ! DC1, Plane V, wire 7
+  39,   5,   8  ! DC1, Plane V, wire 8
+  38,   5,   9  ! DC1, Plane V, wire 9
+  37,   5,  10  ! DC1, Plane V, wire 10
+  36,   5,  11  ! DC1, Plane V, wire 11
+  35,   5,  12  ! DC1, Plane V, wire 12
+  34,   5,  13  ! DC1, Plane V, wire 13
+  33,   5,  14  ! DC1, Plane V, wire 14
+  32,   5,  15  ! DC1, Plane V, wire 15
+
+SLOT=8
+REFCHAN=79
+  31,   5,  16  ! DC1, Plane V, wire 16
+  30,   5,  17  ! DC1, Plane V, wire 17
+  29,   5,  18  ! DC1, Plane V, wire 18
+  28,   5,  19  ! DC1, Plane V, wire 19
+  27,   5,  20  ! DC1, Plane V, wire 20
+  26,   5,  21  ! DC1, Plane V, wire 21
+  25,   5,  22  ! DC1, Plane V, wire 22
+  24,   5,  23  ! DC1, Plane V, wire 23
+  23,   5,  24  ! DC1, Plane V, wire 24
+  22,   5,  25  ! DC1, Plane V, wire 25
+  21,   5,  26  ! DC1, Plane V, wire 26
+  20,   5,  27  ! DC1, Plane V, wire 27
+  19,   5,  28  ! DC1, Plane V, wire 28
+  18,   5,  29  ! DC1, Plane V, wire 29
+  17,   5,  30  ! DC1, Plane V, wire 30
+  16,   5,  31  ! DC1, Plane V, wire 31
+
+SLOT=10
+REFCHAN=79
+  15,   5,  32  ! DC1, Plane V, wire 32
+  14,   5,  33  ! DC1, Plane V, wire 33
+  13,   5,  34  ! DC1, Plane V, wire 34
+  12,   5,  35  ! DC1, Plane V, wire 35
+  11,   5,  36  ! DC1, Plane V, wire 36
+  10,   5,  37  ! DC1, Plane V, wire 37
+   9,   5,  38  ! DC1, Plane V, wire 38
+   8,   5,  39  ! DC1, Plane V, wire 39
+   7,   5,  40  ! DC1, Plane V, wire 40
+   6,   5,  41  ! DC1, Plane V, wire 41
+   5,   5,  42  ! DC1, Plane V, wire 42
+   4,   5,  43  ! DC1, Plane V, wire 43
+   3,   5,  44  ! DC1, Plane V, wire 44
+   2,   5,  45  ! DC1, Plane V, wire 45
+   1,   5,  46  ! DC1, Plane V, wire 46
+   0,   5,  47  ! DC1, Plane V, wire 47
+
+SLOT=9
+REFCHAN=79
+  63,   5,  48  ! DC1, Plane V, wire 48
+  62,   5,  49  ! DC1, Plane V, wire 49
+  61,   5,  50  ! DC1, Plane V, wire 50
+  60,   5,  51  ! DC1, Plane V, wire 51
+  59,   5,  52  ! DC1, Plane V, wire 52
+  58,   5,  53  ! DC1, Plane V, wire 53
+  57,   5,  54  ! DC1, Plane V, wire 54
+  56,   5,  55  ! DC1, Plane V, wire 55
+  55,   5,  56  ! DC1, Plane V, wire 56
+  54,   5,  57  ! DC1, Plane V, wire 57
+  53,   5,  58  ! DC1, Plane V, wire 58
+  52,   5,  59  ! DC1, Plane V, wire 59
+  51,   5,  60  ! DC1, Plane V, wire 60
+  50,   5,  61  ! DC1, Plane V, wire 61
+  49,   5,  62  ! DC1, Plane V, wire 62
+  48,   5,  63  ! DC1, Plane V, wire 63
+
+SLOT=7
+REFCHAN=79
+  32,   5,  64  ! DC1, Plane V, wire 64
+  33,   5,  65  ! DC1, Plane V, wire 65
+  34,   5,  66  ! DC1, Plane V, wire 66
+  35,   5,  67  ! DC1, Plane V, wire 67
+  36,   5,  68  ! DC1, Plane V, wire 68
+  37,   5,  69  ! DC1, Plane V, wire 69
+  38,   5,  70  ! DC1, Plane V, wire 70
+  39,   5,  71  ! DC1, Plane V, wire 71
+  40,   5,  72  ! DC1, Plane V, wire 72
+  41,   5,  73  ! DC1, Plane V, wire 73
+  42,   5,  74  ! DC1, Plane V, wire 74
+  43,   5,  75  ! DC1, Plane V, wire 75
+  44,   5,  76  ! DC1, Plane V, wire 76
+  45,   5,  77  ! DC1, Plane V, wire 77
+  46,   5,  78  ! DC1, Plane V, wire 78
+  47,   5,  79  ! DC1, Plane V, wire 79
+  96,   5,  80  ! DC1, Plane V, wire 80
+  97,   5,  81  ! DC1, Plane V, wire 81
+  98,   5,  82  ! DC1, Plane V, wire 82
+  99,   5,  83  ! DC1, Plane V, wire 83
+ 100,   5,  84  ! DC1, Plane V, wire 84
+ 101,   5,  85  ! DC1, Plane V, wire 85
+ 102,   5,  86  ! DC1, Plane V, wire 86
+ 103,   5,  87  ! DC1, Plane V, wire 87
+ 104,   5,  88  ! DC1, Plane V, wire 88
+ 105,   5,  89  ! DC1, Plane V, wire 89
+ 106,   5,  90  ! DC1, Plane V, wire 90
+ 107,   5,  91  ! DC1, Plane V, wire 91
+ 108,   5,  92  ! DC1, Plane V, wire 92
+ 109,   5,  93  ! DC1, Plane V, wire 93
+ 110,   5,  94  ! DC1, Plane V, wire 94
+ 111,   5,  95  ! DC1, Plane V, wire 95
+  64,   5,  96  ! DC1, Plane V, wire 96
+  65,   5,  97  ! DC1, Plane V, wire 97
+  66,   5,  98  ! DC1, Plane V, wire 98
+  67,   5,  99  ! DC1, Plane V, wire 99
+  68,   5, 100  ! DC1, Plane V, wire 100
+  69,   5, 101  ! DC1, Plane V, wire 101
+  70,   5, 102  ! DC1, Plane V, wire 102
+  71,   5, 103  ! DC1, Plane V, wire 103
+  72,   5, 104  ! DC1, Plane V, wire 104
+  73,   5, 105  ! DC1, Plane V, wire 105
+  74,   5, 106  ! DC1, Plane V, wire 106
+  75,   5, 107  ! DC1, Plane V, wire 107
+
+SLOT=10
+REFCHAN=79
+  75,   6,   1  ! DC1, Plane V', wire 1
+  74,   6,   2  ! DC1, Plane V', wire 2
+  73,   6,   3  ! DC1, Plane V', wire 3
+  72,   6,   4  ! DC1, Plane V', wire 4
+  71,   6,   5  ! DC1, Plane V', wire 5
+  70,   6,   6  ! DC1, Plane V', wire 6
+  69,   6,   7  ! DC1, Plane V', wire 7
+  68,   6,   8  ! DC1, Plane V', wire 8
+  67,   6,   9  ! DC1, Plane V', wire 9
+  66,   6,  10  ! DC1, Plane V', wire 10
+  65,   6,  11  ! DC1, Plane V', wire 11
+  64,   6,  12  ! DC1, Plane V', wire 12
+  47,   6,  13  ! DC1, Plane V', wire 13
+  46,   6,  14  ! DC1, Plane V', wire 14
+  45,   6,  15  ! DC1, Plane V', wire 15
+  44,   6,  16  ! DC1, Plane V', wire 16
+  43,   6,  17  ! DC1, Plane V', wire 17
+  42,   6,  18  ! DC1, Plane V', wire 18
+  41,   6,  19  ! DC1, Plane V', wire 19
+  40,   6,  20  ! DC1, Plane V', wire 20
+  39,   6,  21  ! DC1, Plane V', wire 21
+  38,   6,  22  ! DC1, Plane V', wire 22
+  37,   6,  23  ! DC1, Plane V', wire 23
+  36,   6,  24  ! DC1, Plane V', wire 24
+  35,   6,  25  ! DC1, Plane V', wire 25
+  34,   6,  26  ! DC1, Plane V', wire 26
+  33,   6,  27  ! DC1, Plane V', wire 27
+  32,   6,  28  ! DC1, Plane V', wire 28
+
+SLOT=9
+REFCHAN=79
+ 111,   6,  29  ! DC1, Plane V', wire 29
+ 110,   6,  30  ! DC1, Plane V', wire 30
+ 109,   6,  31  ! DC1, Plane V', wire 31
+ 108,   6,  32  ! DC1, Plane V', wire 32
+ 107,   6,  33  ! DC1, Plane V', wire 33
+ 106,   6,  34  ! DC1, Plane V', wire 34
+ 105,   6,  35  ! DC1, Plane V', wire 35
+ 104,   6,  36  ! DC1, Plane V', wire 36
+ 103,   6,  37  ! DC1, Plane V', wire 37
+ 102,   6,  38  ! DC1, Plane V', wire 38
+ 101,   6,  39  ! DC1, Plane V', wire 39
+ 100,   6,  40  ! DC1, Plane V', wire 40
+  99,   6,  41  ! DC1, Plane V', wire 41
+  98,   6,  42  ! DC1, Plane V', wire 42
+  97,   6,  43  ! DC1, Plane V', wire 43
+  96,   6,  44  ! DC1, Plane V', wire 44
+
+SLOT=8
+REFCHAN=79
+  80,   6,  45  ! DC1, Plane V', wire 45
+  81,   6,  46  ! DC1, Plane V', wire 46
+  82,   6,  47  ! DC1, Plane V', wire 47
+  83,   6,  48  ! DC1, Plane V', wire 48
+  84,   6,  49  ! DC1, Plane V', wire 49
+  85,   6,  50  ! DC1, Plane V', wire 50
+  86,   6,  51  ! DC1, Plane V', wire 51
+  87,   6,  52  ! DC1, Plane V', wire 52
+  88,   6,  53  ! DC1, Plane V', wire 53
+  89,   6,  54  ! DC1, Plane V', wire 54
+  90,   6,  55  ! DC1, Plane V', wire 55
+  91,   6,  56  ! DC1, Plane V', wire 56
+  92,   6,  57  ! DC1, Plane V', wire 57
+  93,   6,  58  ! DC1, Plane V', wire 58
+  94,   6,  59  ! DC1, Plane V', wire 59
+  95,   6,  60  ! DC1, Plane V', wire 60
+
+SLOT=7
+REFCHAN=79
+ 112,   6,  61  ! DC1, Plane V', wire 61
+ 113,   6,  62  ! DC1, Plane V', wire 62
+ 114,   6,  63  ! DC1, Plane V', wire 63
+ 115,   6,  64  ! DC1, Plane V', wire 64
+ 116,   6,  65  ! DC1, Plane V', wire 65
+ 117,   6,  66  ! DC1, Plane V', wire 66
+ 118,   6,  67  ! DC1, Plane V', wire 67
+ 119,   6,  68  ! DC1, Plane V', wire 68
+ 120,   6,  69  ! DC1, Plane V', wire 69
+ 121,   6,  70  ! DC1, Plane V', wire 70
+ 122,   6,  71  ! DC1, Plane V', wire 71
+ 123,   6,  72  ! DC1, Plane V', wire 72
+ 124,   6,  73  ! DC1, Plane V', wire 73
+ 125,   6,  74  ! DC1, Plane V', wire 74
+ 126,   6,  75  ! DC1, Plane V', wire 75
+ 127,   6,  76  ! DC1, Plane V', wire 76
+  80,   6,  77  ! DC1, Plane V', wire 77
+  81,   6,  78  ! DC1, Plane V', wire 78
+  82,   6,  79  ! DC1, Plane V', wire 79
+  83,   6,  80  ! DC1, Plane V', wire 80
+  84,   6,  81  ! DC1, Plane V', wire 81
+  85,   6,  82  ! DC1, Plane V', wire 82
+  86,   6,  83  ! DC1, Plane V', wire 83
+  87,   6,  84  ! DC1, Plane V', wire 84
+  88,   6,  85  ! DC1, Plane V', wire 85
+  89,   6,  86  ! DC1, Plane V', wire 86
+  90,   6,  87  ! DC1, Plane V', wire 87
+  91,   6,  88  ! DC1, Plane V', wire 88
+  92,   6,  89  ! DC1, Plane V', wire 89
+  93,   6,  90  ! DC1, Plane V', wire 90
+  94,   6,  91  ! DC1, Plane V', wire 91
+  95,   6,  92  ! DC1, Plane V', wire 92
+
+SLOT=6
+REFCHAN=79
+  64,   6,  93  ! DC1, Plane V', wire 93
+  65,   6,  94  ! DC1, Plane V', wire 94
+  66,   6,  95  ! DC1, Plane V', wire 95
+  67,   6,  96  ! DC1, Plane V', wire 96
+  68,   6,  97  ! DC1, Plane V', wire 97
+  69,   6,  98  ! DC1, Plane V', wire 98
+  70,   6,  99  ! DC1, Plane V', wire 99
+  71,   6, 100  ! DC1, Plane V', wire 100
+  72,   6, 101  ! DC1, Plane V', wire 101
+  73,   6, 102  ! DC1, Plane V', wire 102
+  74,   6, 103  ! DC1, Plane V', wire 103
+  75,   6, 104  ! DC1, Plane V', wire 104
+  76,   6, 105  ! DC1, Plane V', wire 105
+  77,   6, 106  ! DC1, Plane V', wire 106
+  78,   6, 107  ! DC1, Plane V', wire 107
+
+SLOT=8
+REFCHAN=79
+  15,   3,   1  ! DC1, Plane X, wire 1
+  14,   3,   2  ! DC1, Plane X, wire 2
+  13,   3,   3  ! DC1, Plane X, wire 3
+  12,   3,   4  ! DC1, Plane X, wire 4
+  11,   3,   5  ! DC1, Plane X, wire 5
+  10,   3,   6  ! DC1, Plane X, wire 6
+   9,   3,   7  ! DC1, Plane X, wire 7
+   8,   3,   8  ! DC1, Plane X, wire 8
+   7,   3,   9  ! DC1, Plane X, wire 9
+   6,   3,  10  ! DC1, Plane X, wire 10
+   5,   3,  11  ! DC1, Plane X, wire 11
+   4,   3,  12  ! DC1, Plane X, wire 12
+   3,   3,  13  ! DC1, Plane X, wire 13
+   2,   3,  14  ! DC1, Plane X, wire 14
+   1,   3,  15  ! DC1, Plane X, wire 15
+   0,   3,  16  ! DC1, Plane X, wire 16
+
+SLOT=7
+REFCHAN=79
+  63,   3,  17  ! DC1, Plane X, wire 17
+  62,   3,  18  ! DC1, Plane X, wire 18
+  61,   3,  19  ! DC1, Plane X, wire 19
+  60,   3,  20  ! DC1, Plane X, wire 20
+  59,   3,  21  ! DC1, Plane X, wire 21
+  58,   3,  22  ! DC1, Plane X, wire 22
+  57,   3,  23  ! DC1, Plane X, wire 23
+  56,   3,  24  ! DC1, Plane X, wire 24
+  55,   3,  25  ! DC1, Plane X, wire 25
+  54,   3,  26  ! DC1, Plane X, wire 26
+  53,   3,  27  ! DC1, Plane X, wire 27
+  52,   3,  28  ! DC1, Plane X, wire 28
+  51,   3,  29  ! DC1, Plane X, wire 29
+  50,   3,  30  ! DC1, Plane X, wire 30
+  49,   3,  31  ! DC1, Plane X, wire 31
+  48,   3,  32  ! DC1, Plane X, wire 32
+
+SLOT=6
+REFCHAN=79
+  63,   3,  33  ! DC1, Plane X, wire 33
+  62,   3,  34  ! DC1, Plane X, wire 34
+  61,   3,  35  ! DC1, Plane X, wire 35
+  60,   3,  36  ! DC1, Plane X, wire 36
+  59,   3,  37  ! DC1, Plane X, wire 37
+  58,   3,  38  ! DC1, Plane X, wire 38
+  57,   3,  39  ! DC1, Plane X, wire 39
+  56,   3,  40  ! DC1, Plane X, wire 40
+  55,   3,  41  ! DC1, Plane X, wire 41
+  54,   3,  42  ! DC1, Plane X, wire 42
+  53,   3,  43  ! DC1, Plane X, wire 43
+  52,   3,  44  ! DC1, Plane X, wire 44
+  51,   3,  45  ! DC1, Plane X, wire 45
+  50,   3,  46  ! DC1, Plane X, wire 46
+  49,   3,  47  ! DC1, Plane X, wire 47
+  48,   3,  48  ! DC1, Plane X, wire 48
+
+SLOT=10
+REFCHAN=79
+  48,   3,  49  ! DC1, Plane X, wire 49
+  49,   3,  50  ! DC1, Plane X, wire 50
+  50,   3,  51  ! DC1, Plane X, wire 51
+  51,   3,  52  ! DC1, Plane X, wire 52
+  52,   3,  53  ! DC1, Plane X, wire 53
+  53,   3,  54  ! DC1, Plane X, wire 54
+  54,   3,  55  ! DC1, Plane X, wire 55
+  55,   3,  56  ! DC1, Plane X, wire 56
+  56,   3,  57  ! DC1, Plane X, wire 57
+  57,   3,  58  ! DC1, Plane X, wire 58
+  58,   3,  59  ! DC1, Plane X, wire 59
+  59,   3,  60  ! DC1, Plane X, wire 60
+  60,   3,  61  ! DC1, Plane X, wire 61
+  61,   3,  62  ! DC1, Plane X, wire 62
+  62,   3,  63  ! DC1, Plane X, wire 63
+  63,   3,  64  ! DC1, Plane X, wire 64
+
+SLOT=9
+REFCHAN=79
+  80,   3,  65  ! DC1, Plane X, wire 65
+  81,   3,  66  ! DC1, Plane X, wire 66
+  82,   3,  67  ! DC1, Plane X, wire 67
+  83,   3,  68  ! DC1, Plane X, wire 68
+  84,   3,  69  ! DC1, Plane X, wire 69
+  85,   3,  70  ! DC1, Plane X, wire 70
+  86,   3,  71  ! DC1, Plane X, wire 71
+  87,   3,  72  ! DC1, Plane X, wire 72
+  88,   3,  73  ! DC1, Plane X, wire 73
+  89,   3,  74  ! DC1, Plane X, wire 74
+  90,   3,  75  ! DC1, Plane X, wire 75
+  91,   3,  76  ! DC1, Plane X, wire 76
+  92,   3,  77  ! DC1, Plane X, wire 77
+  93,   3,  78  ! DC1, Plane X, wire 78
+  94,   3,  79  ! DC1, Plane X, wire 79
+  30,   4,   1  ! DC1, Plane X', wire 1
+  29,   4,   2  ! DC1, Plane X', wire 2
+  28,   4,   3  ! DC1, Plane X', wire 3
+  27,   4,   4  ! DC1, Plane X', wire 4
+  26,   4,   5  ! DC1, Plane X', wire 5
+  25,   4,   6  ! DC1, Plane X', wire 6
+  24,   4,   7  ! DC1, Plane X', wire 7
+  23,   4,   8  ! DC1, Plane X', wire 8
+  22,   4,   9  ! DC1, Plane X', wire 9
+  21,   4,  10  ! DC1, Plane X', wire 10
+  20,   4,  11  ! DC1, Plane X', wire 11
+  19,   4,  12  ! DC1, Plane X', wire 12
+  18,   4,  13  ! DC1, Plane X', wire 13
+  17,   4,  14  ! DC1, Plane X', wire 14
+  16,   4,  15  ! DC1, Plane X', wire 15
+
+SLOT=8
+REFCHAN=79
+  47,   4,  16  ! DC1, Plane X', wire 16
+  46,   4,  17  ! DC1, Plane X', wire 17
+  45,   4,  18  ! DC1, Plane X', wire 18
+  44,   4,  19  ! DC1, Plane X', wire 19
+  43,   4,  20  ! DC1, Plane X', wire 20
+  42,   4,  21  ! DC1, Plane X', wire 21
+  41,   4,  22  ! DC1, Plane X', wire 22
+  40,   4,  23  ! DC1, Plane X', wire 23
+  39,   4,  24  ! DC1, Plane X', wire 24
+  38,   4,  25  ! DC1, Plane X', wire 25
+  37,   4,  26  ! DC1, Plane X', wire 26
+  36,   4,  27  ! DC1, Plane X', wire 27
+  35,   4,  28  ! DC1, Plane X', wire 28
+  34,   4,  29  ! DC1, Plane X', wire 29
+  33,   4,  30  ! DC1, Plane X', wire 30
+  32,   4,  31  ! DC1, Plane X', wire 31
+
+SLOT=7
+REFCHAN=79
+   0,   4,  32  ! DC1, Plane X', wire 32
+   1,   4,  33  ! DC1, Plane X', wire 33
+   2,   4,  34  ! DC1, Plane X', wire 34
+   3,   4,  35  ! DC1, Plane X', wire 35
+   4,   4,  36  ! DC1, Plane X', wire 36
+   5,   4,  37  ! DC1, Plane X', wire 37
+   6,   4,  38  ! DC1, Plane X', wire 38
+   7,   4,  39  ! DC1, Plane X', wire 39
+   8,   4,  40  ! DC1, Plane X', wire 40
+   9,   4,  41  ! DC1, Plane X', wire 41
+  10,   4,  42  ! DC1, Plane X', wire 42
+  11,   4,  43  ! DC1, Plane X', wire 43
+  12,   4,  44  ! DC1, Plane X', wire 44
+  13,   4,  45  ! DC1, Plane X', wire 45
+  14,   4,  46  ! DC1, Plane X', wire 46
+  15,   4,  47  ! DC1, Plane X', wire 47
+
+SLOT=6
+REFCHAN=79
+  96,   4,  48  ! DC1, Plane X', wire 48
+  97,   4,  49  ! DC1, Plane X', wire 49
+  98,   4,  50  ! DC1, Plane X', wire 50
+  99,   4,  51  ! DC1, Plane X', wire 51
+ 100,   4,  52  ! DC1, Plane X', wire 52
+ 101,   4,  53  ! DC1, Plane X', wire 53
+ 102,   4,  54  ! DC1, Plane X', wire 54
+ 103,   4,  55  ! DC1, Plane X', wire 55
+ 104,   4,  56  ! DC1, Plane X', wire 56
+ 105,   4,  57  ! DC1, Plane X', wire 57
+ 106,   4,  58  ! DC1, Plane X', wire 58
+ 107,   4,  59  ! DC1, Plane X', wire 59
+ 108,   4,  60  ! DC1, Plane X', wire 60
+ 109,   4,  61  ! DC1, Plane X', wire 61
+ 110,   4,  62  ! DC1, Plane X', wire 62
+ 111,   4,  63  ! DC1, Plane X', wire 63
+   0,   4,  64  ! DC1, Plane X', wire 64
+   1,   4,  65  ! DC1, Plane X', wire 65
+   2,   4,  66  ! DC1, Plane X', wire 66
+   3,   4,  67  ! DC1, Plane X', wire 67
+   4,   4,  68  ! DC1, Plane X', wire 68
+   5,   4,  69  ! DC1, Plane X', wire 69
+   6,   4,  70  ! DC1, Plane X', wire 70
+   7,   4,  71  ! DC1, Plane X', wire 71
+   8,   4,  72  ! DC1, Plane X', wire 72
+   9,   4,  73  ! DC1, Plane X', wire 73
+  10,   4,  74  ! DC1, Plane X', wire 74
+  11,   4,  75  ! DC1, Plane X', wire 75
+  12,   4,  76  ! DC1, Plane X', wire 76
+  13,   4,  77  ! DC1, Plane X', wire 77
+  14,   4,  78  ! DC1, Plane X', wire 78
+  15,   4,  79  ! DC1, Plane X', wire 79
+
+SLOT=14
+REFCHAN=15
+  46,  12,   1  ! DC2, Plane U, wire 1
+  45,  12,   2  ! DC2, Plane U, wire 2
+  44,  12,   3  ! DC2, Plane U, wire 3
+  43,  12,   4  ! DC2, Plane U, wire 4
+  42,  12,   5  ! DC2, Plane U, wire 5
+  41,  12,   6  ! DC2, Plane U, wire 6
+  40,  12,   7  ! DC2, Plane U, wire 7
+  39,  12,   8  ! DC2, Plane U, wire 8
+  38,  12,   9  ! DC2, Plane U, wire 9
+  37,  12,  10  ! DC2, Plane U, wire 10
+  36,  12,  11  ! DC2, Plane U, wire 11
+  35,  12,  12  ! DC2, Plane U, wire 12
+  34,  12,  13  ! DC2, Plane U, wire 13
+  33,  12,  14  ! DC2, Plane U, wire 14
+  32,  12,  15  ! DC2, Plane U, wire 15
+
+SLOT=11
+REFCHAN=47
+ 127,  12,  16  ! DC2, Plane U, wire 16
+ 126,  12,  17  ! DC2, Plane U, wire 17
+ 125,  12,  18  ! DC2, Plane U, wire 18
+ 124,  12,  19  ! DC2, Plane U, wire 19
+ 123,  12,  20  ! DC2, Plane U, wire 20
+ 122,  12,  21  ! DC2, Plane U, wire 21
+ 121,  12,  22  ! DC2, Plane U, wire 22
+ 120,  12,  23  ! DC2, Plane U, wire 23
+ 119,  12,  24  ! DC2, Plane U, wire 24
+ 118,  12,  25  ! DC2, Plane U, wire 25
+ 117,  12,  26  ! DC2, Plane U, wire 26
+ 116,  12,  27  ! DC2, Plane U, wire 27
+ 115,  12,  28  ! DC2, Plane U, wire 28
+ 114,  12,  29  ! DC2, Plane U, wire 29
+ 113,  12,  30  ! DC2, Plane U, wire 30
+ 112,  12,  31  ! DC2, Plane U, wire 31
+  63,  12,  32  ! DC2, Plane U, wire 32
+  62,  12,  33  ! DC2, Plane U, wire 33
+  61,  12,  34  ! DC2, Plane U, wire 34
+  60,  12,  35  ! DC2, Plane U, wire 35
+  59,  12,  36  ! DC2, Plane U, wire 36
+  58,  12,  37  ! DC2, Plane U, wire 37
+  57,  12,  38  ! DC2, Plane U, wire 38
+  56,  12,  39  ! DC2, Plane U, wire 39
+  55,  12,  40  ! DC2, Plane U, wire 40
+  54,  12,  41  ! DC2, Plane U, wire 41
+  53,  12,  42  ! DC2, Plane U, wire 42
+  52,  12,  43  ! DC2, Plane U, wire 43
+  51,  12,  44  ! DC2, Plane U, wire 44
+  50,  12,  45  ! DC2, Plane U, wire 45
+  49,  12,  46  ! DC2, Plane U, wire 46
+  48,  12,  47  ! DC2, Plane U, wire 47
+
+SLOT=10
+REFCHAN=79
+ 127,  12,  48  ! DC2, Plane U, wire 48
+ 126,  12,  49  ! DC2, Plane U, wire 49
+ 125,  12,  50  ! DC2, Plane U, wire 50
+ 124,  12,  51  ! DC2, Plane U, wire 51
+ 123,  12,  52  ! DC2, Plane U, wire 52
+ 122,  12,  53  ! DC2, Plane U, wire 53
+ 121,  12,  54  ! DC2, Plane U, wire 54
+ 120,  12,  55  ! DC2, Plane U, wire 55
+ 119,  12,  56  ! DC2, Plane U, wire 56
+ 118,  12,  57  ! DC2, Plane U, wire 57
+ 117,  12,  58  ! DC2, Plane U, wire 58
+ 116,  12,  59  ! DC2, Plane U, wire 59
+ 115,  12,  60  ! DC2, Plane U, wire 60
+ 114,  12,  61  ! DC2, Plane U, wire 61
+ 113,  12,  62  ! DC2, Plane U, wire 62
+ 112,  12,  63  ! DC2, Plane U, wire 63
+
+SLOT=13
+REFCHAN=47
+  80,  12,  64  ! DC2, Plane U, wire 64
+  81,  12,  65  ! DC2, Plane U, wire 65
+  82,  12,  66  ! DC2, Plane U, wire 66
+  83,  12,  67  ! DC2, Plane U, wire 67
+  84,  12,  68  ! DC2, Plane U, wire 68
+  85,  12,  69  ! DC2, Plane U, wire 69
+  86,  12,  70  ! DC2, Plane U, wire 70
+  87,  12,  71  ! DC2, Plane U, wire 71
+  88,  12,  72  ! DC2, Plane U, wire 72
+  89,  12,  73  ! DC2, Plane U, wire 73
+  90,  12,  74  ! DC2, Plane U, wire 74
+  91,  12,  75  ! DC2, Plane U, wire 75
+  92,  12,  76  ! DC2, Plane U, wire 76
+  93,  12,  77  ! DC2, Plane U, wire 77
+  94,  12,  78  ! DC2, Plane U, wire 78
+  95,  12,  79  ! DC2, Plane U, wire 79
+  16,  12,  80  ! DC2, Plane U, wire 80
+  17,  12,  81  ! DC2, Plane U, wire 81
+  18,  12,  82  ! DC2, Plane U, wire 82
+  19,  12,  83  ! DC2, Plane U, wire 83
+  20,  12,  84  ! DC2, Plane U, wire 84
+  21,  12,  85  ! DC2, Plane U, wire 85
+  22,  12,  86  ! DC2, Plane U, wire 86
+  23,  12,  87  ! DC2, Plane U, wire 87
+  24,  12,  88  ! DC2, Plane U, wire 88
+  25,  12,  89  ! DC2, Plane U, wire 89
+  26,  12,  90  ! DC2, Plane U, wire 90
+  27,  12,  91  ! DC2, Plane U, wire 91
+  28,  12,  92  ! DC2, Plane U, wire 92
+  29,  12,  93  ! DC2, Plane U, wire 93
+  30,  12,  94  ! DC2, Plane U, wire 94
+  31,  12,  95  ! DC2, Plane U, wire 95
+
+SLOT=14
+REFCHAN=15
+  80,  12,  96  ! DC2, Plane U, wire 96
+  81,  12,  97  ! DC2, Plane U, wire 97
+  82,  12,  98  ! DC2, Plane U, wire 98
+  83,  12,  99  ! DC2, Plane U, wire 99
+  84,  12, 100  ! DC2, Plane U, wire 100
+  85,  12, 101  ! DC2, Plane U, wire 101
+  86,  12, 102  ! DC2, Plane U, wire 102
+  87,  12, 103  ! DC2, Plane U, wire 103
+  88,  12, 104  ! DC2, Plane U, wire 104
+  89,  12, 105  ! DC2, Plane U, wire 105
+  90,  12, 106  ! DC2, Plane U, wire 106
+  91,  12, 107  ! DC2, Plane U, wire 107
+
+SLOT=13
+REFCHAN=47
+  43,  11,   1  ! DC2, Plane U', wire 1
+  42,  11,   2  ! DC2, Plane U', wire 2
+  41,  11,   3  ! DC2, Plane U', wire 3
+  40,  11,   4  ! DC2, Plane U', wire 4
+  39,  11,   5  ! DC2, Plane U', wire 5
+  38,  11,   6  ! DC2, Plane U', wire 6
+  37,  11,   7  ! DC2, Plane U', wire 7
+  36,  11,   8  ! DC2, Plane U', wire 8
+  35,  11,   9  ! DC2, Plane U', wire 9
+  34,  11,  10  ! DC2, Plane U', wire 10
+  33,  11,  11  ! DC2, Plane U', wire 11
+  32,  11,  12  ! DC2, Plane U', wire 12
+
+SLOT=11
+REFCHAN=47
+  95,  11,  13  ! DC2, Plane U', wire 13
+  94,  11,  14  ! DC2, Plane U', wire 14
+  93,  11,  15  ! DC2, Plane U', wire 15
+  92,  11,  16  ! DC2, Plane U', wire 16
+  91,  11,  17  ! DC2, Plane U', wire 17
+  90,  11,  18  ! DC2, Plane U', wire 18
+  89,  11,  19  ! DC2, Plane U', wire 19
+  88,  11,  20  ! DC2, Plane U', wire 20
+  87,  11,  21  ! DC2, Plane U', wire 21
+  86,  11,  22  ! DC2, Plane U', wire 22
+  85,  11,  23  ! DC2, Plane U', wire 23
+  84,  11,  24  ! DC2, Plane U', wire 24
+  83,  11,  25  ! DC2, Plane U', wire 25
+  82,  11,  26  ! DC2, Plane U', wire 26
+  81,  11,  27  ! DC2, Plane U', wire 27
+  80,  11,  28  ! DC2, Plane U', wire 28
+  15,  11,  29  ! DC2, Plane U', wire 29
+  14,  11,  30  ! DC2, Plane U', wire 30
+  13,  11,  31  ! DC2, Plane U', wire 31
+  12,  11,  32  ! DC2, Plane U', wire 32
+  11,  11,  33  ! DC2, Plane U', wire 33
+  10,  11,  34  ! DC2, Plane U', wire 34
+   9,  11,  35  ! DC2, Plane U', wire 35
+   8,  11,  36  ! DC2, Plane U', wire 36
+   7,  11,  37  ! DC2, Plane U', wire 37
+   6,  11,  38  ! DC2, Plane U', wire 38
+   5,  11,  39  ! DC2, Plane U', wire 39
+   4,  11,  40  ! DC2, Plane U', wire 40
+   3,  11,  41  ! DC2, Plane U', wire 41
+   2,  11,  42  ! DC2, Plane U', wire 42
+   1,  11,  43  ! DC2, Plane U', wire 43
+   0,  11,  44  ! DC2, Plane U', wire 44
+
+SLOT=13
+REFCHAN=47
+  96,  11,  45  ! DC2, Plane U', wire 45
+  97,  11,  46  ! DC2, Plane U', wire 46
+  98,  11,  47  ! DC2, Plane U', wire 47
+  99,  11,  48  ! DC2, Plane U', wire 48
+ 100,  11,  49  ! DC2, Plane U', wire 49
+ 101,  11,  50  ! DC2, Plane U', wire 50
+ 102,  11,  51  ! DC2, Plane U', wire 51
+ 103,  11,  52  ! DC2, Plane U', wire 52
+ 104,  11,  53  ! DC2, Plane U', wire 53
+ 105,  11,  54  ! DC2, Plane U', wire 54
+ 106,  11,  55  ! DC2, Plane U', wire 55
+ 107,  11,  56  ! DC2, Plane U', wire 56
+ 108,  11,  57  ! DC2, Plane U', wire 57
+ 109,  11,  58  ! DC2, Plane U', wire 58
+ 110,  11,  59  ! DC2, Plane U', wire 59
+ 111,  11,  60  ! DC2, Plane U', wire 60
+  64,  11,  61  ! DC2, Plane U', wire 61
+  65,  11,  62  ! DC2, Plane U', wire 62
+  66,  11,  63  ! DC2, Plane U', wire 63
+  67,  11,  64  ! DC2, Plane U', wire 64
+  68,  11,  65  ! DC2, Plane U', wire 65
+  69,  11,  66  ! DC2, Plane U', wire 66
+  70,  11,  67  ! DC2, Plane U', wire 67
+  71,  11,  68  ! DC2, Plane U', wire 68
+  72,  11,  69  ! DC2, Plane U', wire 69
+  73,  11,  70  ! DC2, Plane U', wire 70
+  74,  11,  71  ! DC2, Plane U', wire 71
+  75,  11,  72  ! DC2, Plane U', wire 72
+  76,  11,  73  ! DC2, Plane U', wire 73
+  77,  11,  74  ! DC2, Plane U', wire 74
+  78,  11,  75  ! DC2, Plane U', wire 75
+  79,  11,  76  ! DC2, Plane U', wire 76
+
+SLOT=15
+REFCHAN=47
+  48,  11,  77  ! DC2, Plane U', wire 77
+  49,  11,  78  ! DC2, Plane U', wire 78
+  50,  11,  79  ! DC2, Plane U', wire 79
+  51,  11,  80  ! DC2, Plane U', wire 80
+  52,  11,  81  ! DC2, Plane U', wire 81
+  53,  11,  82  ! DC2, Plane U', wire 82
+  54,  11,  83  ! DC2, Plane U', wire 83
+  55,  11,  84  ! DC2, Plane U', wire 84
+  56,  11,  85  ! DC2, Plane U', wire 85
+  57,  11,  86  ! DC2, Plane U', wire 86
+  58,  11,  87  ! DC2, Plane U', wire 87
+  59,  11,  88  ! DC2, Plane U', wire 88
+  60,  11,  89  ! DC2, Plane U', wire 89
+  61,  11,  90  ! DC2, Plane U', wire 90
+  62,  11,  91  ! DC2, Plane U', wire 91
+  63,  11,  92  ! DC2, Plane U', wire 92
+
+SLOT=14
+REFCHAN=15
+ 112,  11,  93  ! DC2, Plane U', wire 93
+ 113,  11,  94  ! DC2, Plane U', wire 94
+ 114,  11,  95  ! DC2, Plane U', wire 95
+ 115,  11,  96  ! DC2, Plane U', wire 96
+ 116,  11,  97  ! DC2, Plane U', wire 97
+ 117,  11,  98  ! DC2, Plane U', wire 98
+ 118,  11,  99  ! DC2, Plane U', wire 99
+ 119,  11, 100  ! DC2, Plane U', wire 100
+ 120,  11, 101  ! DC2, Plane U', wire 101
+ 121,  11, 102  ! DC2, Plane U', wire 102
+ 122,  11, 103  ! DC2, Plane U', wire 103
+ 123,  11, 104  ! DC2, Plane U', wire 104
+ 124,  11, 105  ! DC2, Plane U', wire 105
+ 125,  11, 106  ! DC2, Plane U', wire 106
+ 126,  11, 107  ! DC2, Plane U', wire 107
+  14,   8,   1  ! DC2, Plane V, wire 1
+  13,   8,   2  ! DC2, Plane V, wire 2
+  12,   8,   3  ! DC2, Plane V, wire 3
+  11,   8,   4  ! DC2, Plane V, wire 4
+  10,   8,   5  ! DC2, Plane V, wire 5
+   9,   8,   6  ! DC2, Plane V, wire 6
+   8,   8,   7  ! DC2, Plane V, wire 7
+   7,   8,   8  ! DC2, Plane V, wire 8
+   6,   8,   9  ! DC2, Plane V, wire 9
+   5,   8,  10  ! DC2, Plane V, wire 10
+   4,   8,  11  ! DC2, Plane V, wire 11
+   3,   8,  12  ! DC2, Plane V, wire 12
+   2,   8,  13  ! DC2, Plane V, wire 13
+   1,   8,  14  ! DC2, Plane V, wire 14
+   0,   8,  15  ! DC2, Plane V, wire 15
+
+SLOT=12
+REFCHAN=47
+ 127,   8,  16  ! DC2, Plane V, wire 16
+ 126,   8,  17  ! DC2, Plane V, wire 17
+ 125,   8,  18  ! DC2, Plane V, wire 18
+ 124,   8,  19  ! DC2, Plane V, wire 19
+ 123,   8,  20  ! DC2, Plane V, wire 20
+ 122,   8,  21  ! DC2, Plane V, wire 21
+ 121,   8,  22  ! DC2, Plane V, wire 22
+ 120,   8,  23  ! DC2, Plane V, wire 23
+ 119,   8,  24  ! DC2, Plane V, wire 24
+ 118,   8,  25  ! DC2, Plane V, wire 25
+ 117,   8,  26  ! DC2, Plane V, wire 26
+ 116,   8,  27  ! DC2, Plane V, wire 27
+ 115,   8,  28  ! DC2, Plane V, wire 28
+ 114,   8,  29  ! DC2, Plane V, wire 29
+ 113,   8,  30  ! DC2, Plane V, wire 30
+ 112,   8,  31  ! DC2, Plane V, wire 31
+
+SLOT=14
+REFCHAN=15
+ 111,   8,  32  ! DC2, Plane V, wire 32
+ 110,   8,  33  ! DC2, Plane V, wire 33
+ 109,   8,  34  ! DC2, Plane V, wire 34
+ 108,   8,  35  ! DC2, Plane V, wire 35
+ 107,   8,  36  ! DC2, Plane V, wire 36
+ 106,   8,  37  ! DC2, Plane V, wire 37
+ 105,   8,  38  ! DC2, Plane V, wire 38
+ 104,   8,  39  ! DC2, Plane V, wire 39
+ 103,   8,  40  ! DC2, Plane V, wire 40
+ 102,   8,  41  ! DC2, Plane V, wire 41
+ 101,   8,  42  ! DC2, Plane V, wire 42
+ 100,   8,  43  ! DC2, Plane V, wire 43
+  99,   8,  44  ! DC2, Plane V, wire 44
+  98,   8,  45  ! DC2, Plane V, wire 45
+  97,   8,  46  ! DC2, Plane V, wire 46
+  96,   8,  47  ! DC2, Plane V, wire 47
+  31,   8,  48  ! DC2, Plane V, wire 48
+  30,   8,  49  ! DC2, Plane V, wire 49
+  29,   8,  50  ! DC2, Plane V, wire 50
+  28,   8,  51  ! DC2, Plane V, wire 51
+  27,   8,  52  ! DC2, Plane V, wire 52
+  26,   8,  53  ! DC2, Plane V, wire 53
+  25,   8,  54  ! DC2, Plane V, wire 54
+  24,   8,  55  ! DC2, Plane V, wire 55
+  23,   8,  56  ! DC2, Plane V, wire 56
+  22,   8,  57  ! DC2, Plane V, wire 57
+  21,   8,  58  ! DC2, Plane V, wire 58
+  20,   8,  59  ! DC2, Plane V, wire 59
+  19,   8,  60  ! DC2, Plane V, wire 60
+  18,   8,  61  ! DC2, Plane V, wire 61
+  17,   8,  62  ! DC2, Plane V, wire 62
+  16,   8,  63  ! DC2, Plane V, wire 63
+
+SLOT=12
+REFCHAN=47
+   0,   8,  64  ! DC2, Plane V, wire 64
+   1,   8,  65  ! DC2, Plane V, wire 65
+   2,   8,  66  ! DC2, Plane V, wire 66
+   3,   8,  67  ! DC2, Plane V, wire 67
+   4,   8,  68  ! DC2, Plane V, wire 68
+   5,   8,  69  ! DC2, Plane V, wire 69
+   6,   8,  70  ! DC2, Plane V, wire 70
+   7,   8,  71  ! DC2, Plane V, wire 71
+   8,   8,  72  ! DC2, Plane V, wire 72
+   9,   8,  73  ! DC2, Plane V, wire 73
+  10,   8,  74  ! DC2, Plane V, wire 74
+  11,   8,  75  ! DC2, Plane V, wire 75
+  12,   8,  76  ! DC2, Plane V, wire 76
+  13,   8,  77  ! DC2, Plane V, wire 77
+  14,   8,  78  ! DC2, Plane V, wire 78
+  15,   8,  79  ! DC2, Plane V, wire 79
+  64,   8,  80  ! DC2, Plane V, wire 80
+  65,   8,  81  ! DC2, Plane V, wire 81
+  66,   8,  82  ! DC2, Plane V, wire 82
+  67,   8,  83  ! DC2, Plane V, wire 83
+  68,   8,  84  ! DC2, Plane V, wire 84
+  69,   8,  85  ! DC2, Plane V, wire 85
+  70,   8,  86  ! DC2, Plane V, wire 86
+  71,   8,  87  ! DC2, Plane V, wire 87
+  72,   8,  88  ! DC2, Plane V, wire 88
+  73,   8,  89  ! DC2, Plane V, wire 89
+  74,   8,  90  ! DC2, Plane V, wire 90
+  75,   8,  91  ! DC2, Plane V, wire 91
+  76,   8,  92  ! DC2, Plane V, wire 92
+  77,   8,  93  ! DC2, Plane V, wire 93
+  78,   8,  94  ! DC2, Plane V, wire 94
+  79,   8,  95  ! DC2, Plane V, wire 95
+  32,   8,  96  ! DC2, Plane V, wire 96
+  33,   8,  97  ! DC2, Plane V, wire 97
+  34,   8,  98  ! DC2, Plane V, wire 98
+  35,   8,  99  ! DC2, Plane V, wire 99
+  36,   8, 100  ! DC2, Plane V, wire 100
+  37,   8, 101  ! DC2, Plane V, wire 101
+  38,   8, 102  ! DC2, Plane V, wire 102
+  39,   8, 103  ! DC2, Plane V, wire 103
+  40,   8, 104  ! DC2, Plane V, wire 104
+  41,   8, 105  ! DC2, Plane V, wire 105
+  42,   8, 106  ! DC2, Plane V, wire 106
+  43,   8, 107  ! DC2, Plane V, wire 107
+
+SLOT=15
+REFCHAN=47
+  43,   7,   1  ! DC2, Plane V', wire 1
+  42,   7,   2  ! DC2, Plane V', wire 2
+  41,   7,   3  ! DC2, Plane V', wire 3
+  40,   7,   4  ! DC2, Plane V', wire 4
+  39,   7,   5  ! DC2, Plane V', wire 5
+  38,   7,   6  ! DC2, Plane V', wire 6
+  37,   7,   7  ! DC2, Plane V', wire 7
+  36,   7,   8  ! DC2, Plane V', wire 8
+  35,   7,   9  ! DC2, Plane V', wire 9
+  34,   7,  10  ! DC2, Plane V', wire 10
+  33,   7,  11  ! DC2, Plane V', wire 11
+  32,   7,  12  ! DC2, Plane V', wire 12
+  15,   7,  13  ! DC2, Plane V', wire 13
+  14,   7,  14  ! DC2, Plane V', wire 14
+  13,   7,  15  ! DC2, Plane V', wire 15
+  12,   7,  16  ! DC2, Plane V', wire 16
+  11,   7,  17  ! DC2, Plane V', wire 17
+  10,   7,  18  ! DC2, Plane V', wire 18
+   9,   7,  19  ! DC2, Plane V', wire 19
+   8,   7,  20  ! DC2, Plane V', wire 20
+   7,   7,  21  ! DC2, Plane V', wire 21
+   6,   7,  22  ! DC2, Plane V', wire 22
+   5,   7,  23  ! DC2, Plane V', wire 23
+   4,   7,  24  ! DC2, Plane V', wire 24
+   3,   7,  25  ! DC2, Plane V', wire 25
+   2,   7,  26  ! DC2, Plane V', wire 26
+   1,   7,  27  ! DC2, Plane V', wire 27
+   0,   7,  28  ! DC2, Plane V', wire 28
+
+SLOT=14
+REFCHAN=15
+  79,   7,  29  ! DC2, Plane V', wire 29
+  78,   7,  30  ! DC2, Plane V', wire 30
+  77,   7,  31  ! DC2, Plane V', wire 31
+  76,   7,  32  ! DC2, Plane V', wire 32
+  75,   7,  33  ! DC2, Plane V', wire 33
+  74,   7,  34  ! DC2, Plane V', wire 34
+  73,   7,  35  ! DC2, Plane V', wire 35
+  72,   7,  36  ! DC2, Plane V', wire 36
+  71,   7,  37  ! DC2, Plane V', wire 37
+  70,   7,  38  ! DC2, Plane V', wire 38
+  69,   7,  39  ! DC2, Plane V', wire 39
+  68,   7,  40  ! DC2, Plane V', wire 40
+  67,   7,  41  ! DC2, Plane V', wire 41
+  66,   7,  42  ! DC2, Plane V', wire 42
+  65,   7,  43  ! DC2, Plane V', wire 43
+  64,   7,  44  ! DC2, Plane V', wire 44
+
+SLOT=13
+REFCHAN=47
+  48,   7,  45  ! DC2, Plane V', wire 45
+  49,   7,  46  ! DC2, Plane V', wire 46
+  50,   7,  47  ! DC2, Plane V', wire 47
+  51,   7,  48  ! DC2, Plane V', wire 48
+  52,   7,  49  ! DC2, Plane V', wire 49
+  53,   7,  50  ! DC2, Plane V', wire 50
+  54,   7,  51  ! DC2, Plane V', wire 51
+  55,   7,  52  ! DC2, Plane V', wire 52
+  56,   7,  53  ! DC2, Plane V', wire 53
+  57,   7,  54  ! DC2, Plane V', wire 54
+  58,   7,  55  ! DC2, Plane V', wire 55
+  59,   7,  56  ! DC2, Plane V', wire 56
+  60,   7,  57  ! DC2, Plane V', wire 57
+  61,   7,  58  ! DC2, Plane V', wire 58
+  62,   7,  59  ! DC2, Plane V', wire 59
+  63,   7,  60  ! DC2, Plane V', wire 60
+
+SLOT=12
+REFCHAN=47
+  80,   7,  61  ! DC2, Plane V', wire 61
+  81,   7,  62  ! DC2, Plane V', wire 62
+  82,   7,  63  ! DC2, Plane V', wire 63
+  83,   7,  64  ! DC2, Plane V', wire 64
+  84,   7,  65  ! DC2, Plane V', wire 65
+  85,   7,  66  ! DC2, Plane V', wire 66
+  86,   7,  67  ! DC2, Plane V', wire 67
+  87,   7,  68  ! DC2, Plane V', wire 68
+  88,   7,  69  ! DC2, Plane V', wire 69
+  89,   7,  70  ! DC2, Plane V', wire 70
+  90,   7,  71  ! DC2, Plane V', wire 71
+  91,   7,  72  ! DC2, Plane V', wire 72
+  92,   7,  73  ! DC2, Plane V', wire 73
+  93,   7,  74  ! DC2, Plane V', wire 74
+  94,   7,  75  ! DC2, Plane V', wire 75
+  95,   7,  76  ! DC2, Plane V', wire 76
+  48,   7,  77  ! DC2, Plane V', wire 77
+  49,   7,  78  ! DC2, Plane V', wire 78
+  50,   7,  79  ! DC2, Plane V', wire 79
+  51,   7,  80  ! DC2, Plane V', wire 80
+  52,   7,  81  ! DC2, Plane V', wire 81
+  53,   7,  82  ! DC2, Plane V', wire 82
+  54,   7,  83  ! DC2, Plane V', wire 83
+  55,   7,  84  ! DC2, Plane V', wire 84
+  56,   7,  85  ! DC2, Plane V', wire 85
+  57,   7,  86  ! DC2, Plane V', wire 86
+  58,   7,  87  ! DC2, Plane V', wire 87
+  59,   7,  88  ! DC2, Plane V', wire 88
+  60,   7,  89  ! DC2, Plane V', wire 89
+  61,   7,  90  ! DC2, Plane V', wire 90
+  62,   7,  91  ! DC2, Plane V', wire 91
+  63,   7,  92  ! DC2, Plane V', wire 92
+
+SLOT=11
+REFCHAN=47
+  32,   7,  93  ! DC2, Plane V', wire 93
+  33,   7,  94  ! DC2, Plane V', wire 94
+  34,   7,  95  ! DC2, Plane V', wire 95
+  35,   7,  96  ! DC2, Plane V', wire 96
+  36,   7,  97  ! DC2, Plane V', wire 97
+  37,   7,  98  ! DC2, Plane V', wire 98
+  38,   7,  99  ! DC2, Plane V', wire 99
+  39,   7, 100  ! DC2, Plane V', wire 100
+  40,   7, 101  ! DC2, Plane V', wire 101
+  41,   7, 102  ! DC2, Plane V', wire 102
+  42,   7, 103  ! DC2, Plane V', wire 103
+  43,   7, 104  ! DC2, Plane V', wire 104
+  44,   7, 105  ! DC2, Plane V', wire 105
+  45,   7, 106  ! DC2, Plane V', wire 106
+  46,   7, 107  ! DC2, Plane V', wire 107
+
+SLOT=12
+REFCHAN=47
+ 111,  10,   1  ! DC2, Plane X, wire 1
+ 110,  10,   2  ! DC2, Plane X, wire 2
+ 109,  10,   3  ! DC2, Plane X, wire 3
+ 108,  10,   4  ! DC2, Plane X, wire 4
+ 107,  10,   5  ! DC2, Plane X, wire 5
+ 106,  10,   6  ! DC2, Plane X, wire 6
+ 105,  10,   7  ! DC2, Plane X, wire 7
+ 104,  10,   8  ! DC2, Plane X, wire 8
+ 103,  10,   9  ! DC2, Plane X, wire 9
+ 102,  10,  10  ! DC2, Plane X, wire 10
+ 101,  10,  11  ! DC2, Plane X, wire 11
+ 100,  10,  12  ! DC2, Plane X, wire 12
+  99,  10,  13  ! DC2, Plane X, wire 13
+  98,  10,  14  ! DC2, Plane X, wire 14
+  97,  10,  15  ! DC2, Plane X, wire 15
+  96,  10,  16  ! DC2, Plane X, wire 16
+  31,  10,  17  ! DC2, Plane X, wire 17
+  30,  10,  18  ! DC2, Plane X, wire 18
+  29,  10,  19  ! DC2, Plane X, wire 19
+  28,  10,  20  ! DC2, Plane X, wire 20
+  27,  10,  21  ! DC2, Plane X, wire 21
+  26,  10,  22  ! DC2, Plane X, wire 22
+  25,  10,  23  ! DC2, Plane X, wire 23
+  24,  10,  24  ! DC2, Plane X, wire 24
+  23,  10,  25  ! DC2, Plane X, wire 25
+  22,  10,  26  ! DC2, Plane X, wire 26
+  21,  10,  27  ! DC2, Plane X, wire 27
+  20,  10,  28  ! DC2, Plane X, wire 28
+  19,  10,  29  ! DC2, Plane X, wire 29
+  18,  10,  30  ! DC2, Plane X, wire 30
+  17,  10,  31  ! DC2, Plane X, wire 31
+  16,  10,  32  ! DC2, Plane X, wire 32
+
+SLOT=11
+REFCHAN=47
+  31,  10,  33  ! DC2, Plane X, wire 33
+  30,  10,  34  ! DC2, Plane X, wire 34
+  29,  10,  35  ! DC2, Plane X, wire 35
+  28,  10,  36  ! DC2, Plane X, wire 36
+  27,  10,  37  ! DC2, Plane X, wire 37
+  26,  10,  38  ! DC2, Plane X, wire 38
+  25,  10,  39  ! DC2, Plane X, wire 39
+  24,  10,  40  ! DC2, Plane X, wire 40
+  23,  10,  41  ! DC2, Plane X, wire 41
+  22,  10,  42  ! DC2, Plane X, wire 42
+  21,  10,  43  ! DC2, Plane X, wire 43
+  20,  10,  44  ! DC2, Plane X, wire 44
+  19,  10,  45  ! DC2, Plane X, wire 45
+  18,  10,  46  ! DC2, Plane X, wire 46
+  17,  10,  47  ! DC2, Plane X, wire 47
+  16,  10,  48  ! DC2, Plane X, wire 48
+
+SLOT=15
+REFCHAN=47
+  16,  10,  49  ! DC2, Plane X, wire 49
+  17,  10,  50  ! DC2, Plane X, wire 50
+  18,  10,  51  ! DC2, Plane X, wire 51
+  19,  10,  52  ! DC2, Plane X, wire 52
+  20,  10,  53  ! DC2, Plane X, wire 53
+  21,  10,  54  ! DC2, Plane X, wire 54
+  22,  10,  55  ! DC2, Plane X, wire 55
+  23,  10,  56  ! DC2, Plane X, wire 56
+  24,  10,  57  ! DC2, Plane X, wire 57
+  25,  10,  58  ! DC2, Plane X, wire 58
+  26,  10,  59  ! DC2, Plane X, wire 59
+  27,  10,  60  ! DC2, Plane X, wire 60
+  28,  10,  61  ! DC2, Plane X, wire 61
+  29,  10,  62  ! DC2, Plane X, wire 62
+  30,  10,  63  ! DC2, Plane X, wire 63
+  31,  10,  64  ! DC2, Plane X, wire 64
+
+SLOT=14
+REFCHAN=15
+  48,  10,  65  ! DC2, Plane X, wire 65
+  49,  10,  66  ! DC2, Plane X, wire 66
+  50,  10,  67  ! DC2, Plane X, wire 67
+  51,  10,  68  ! DC2, Plane X, wire 68
+  52,  10,  69  ! DC2, Plane X, wire 69
+  53,  10,  70  ! DC2, Plane X, wire 70
+  54,  10,  71  ! DC2, Plane X, wire 71
+  55,  10,  72  ! DC2, Plane X, wire 72
+  56,  10,  73  ! DC2, Plane X, wire 73
+  57,  10,  74  ! DC2, Plane X, wire 74
+  58,  10,  75  ! DC2, Plane X, wire 75
+  59,  10,  76  ! DC2, Plane X, wire 76
+  60,  10,  77  ! DC2, Plane X, wire 77
+  61,  10,  78  ! DC2, Plane X, wire 78
+  62,  10,  79  ! DC2, Plane X, wire 79
+
+SLOT=13
+REFCHAN=47
+ 126,   9,   1  ! DC2, Plane X', wire 1
+ 125,   9,   2  ! DC2, Plane X', wire 2
+ 124,   9,   3  ! DC2, Plane X', wire 3
+ 123,   9,   4  ! DC2, Plane X', wire 4
+ 122,   9,   5  ! DC2, Plane X', wire 5
+ 121,   9,   6  ! DC2, Plane X', wire 6
+ 120,   9,   7  ! DC2, Plane X', wire 7
+ 119,   9,   8  ! DC2, Plane X', wire 8
+ 118,   9,   9  ! DC2, Plane X', wire 9
+ 117,   9,  10  ! DC2, Plane X', wire 10
+ 116,   9,  11  ! DC2, Plane X', wire 11
+ 115,   9,  12  ! DC2, Plane X', wire 12
+ 114,   9,  13  ! DC2, Plane X', wire 13
+ 113,   9,  14  ! DC2, Plane X', wire 14
+ 112,   9,  15  ! DC2, Plane X', wire 15
+  15,   9,  16  ! DC2, Plane X', wire 16
+  14,   9,  17  ! DC2, Plane X', wire 17
+  13,   9,  18  ! DC2, Plane X', wire 18
+  12,   9,  19  ! DC2, Plane X', wire 19
+  11,   9,  20  ! DC2, Plane X', wire 20
+  10,   9,  21  ! DC2, Plane X', wire 21
+   9,   9,  22  ! DC2, Plane X', wire 22
+   8,   9,  23  ! DC2, Plane X', wire 23
+   7,   9,  24  ! DC2, Plane X', wire 24
+   6,   9,  25  ! DC2, Plane X', wire 25
+   5,   9,  26  ! DC2, Plane X', wire 26
+   4,   9,  27  ! DC2, Plane X', wire 27
+   3,   9,  28  ! DC2, Plane X', wire 28
+   2,   9,  29  ! DC2, Plane X', wire 29
+   1,   9,  30  ! DC2, Plane X', wire 30
+   0,   9,  31  ! DC2, Plane X', wire 31
+
+SLOT=11
+REFCHAN=47
+  96,   9,  32  ! DC2, Plane X', wire 32
+  97,   9,  33  ! DC2, Plane X', wire 33
+  98,   9,  34  ! DC2, Plane X', wire 34
+  99,   9,  35  ! DC2, Plane X', wire 35
+ 100,   9,  36  ! DC2, Plane X', wire 36
+ 101,   9,  37  ! DC2, Plane X', wire 37
+ 102,   9,  38  ! DC2, Plane X', wire 38
+ 103,   9,  39  ! DC2, Plane X', wire 39
+ 104,   9,  40  ! DC2, Plane X', wire 40
+ 105,   9,  41  ! DC2, Plane X', wire 41
+ 106,   9,  42  ! DC2, Plane X', wire 42
+ 107,   9,  43  ! DC2, Plane X', wire 43
+ 108,   9,  44  ! DC2, Plane X', wire 44
+ 109,   9,  45  ! DC2, Plane X', wire 45
+ 110,   9,  46  ! DC2, Plane X', wire 46
+ 111,   9,  47  ! DC2, Plane X', wire 47
+  64,   9,  48  ! DC2, Plane X', wire 48
+  65,   9,  49  ! DC2, Plane X', wire 49
+  66,   9,  50  ! DC2, Plane X', wire 50
+  67,   9,  51  ! DC2, Plane X', wire 51
+  68,   9,  52  ! DC2, Plane X', wire 52
+  69,   9,  53  ! DC2, Plane X', wire 53
+  70,   9,  54  ! DC2, Plane X', wire 54
+  71,   9,  55  ! DC2, Plane X', wire 55
+  72,   9,  56  ! DC2, Plane X', wire 56
+  73,   9,  57  ! DC2, Plane X', wire 57
+  74,   9,  58  ! DC2, Plane X', wire 58
+  75,   9,  59  ! DC2, Plane X', wire 59
+  76,   9,  60  ! DC2, Plane X', wire 60
+  77,   9,  61  ! DC2, Plane X', wire 61
+  78,   9,  62  ! DC2, Plane X', wire 62
+  79,   9,  63  ! DC2, Plane X', wire 63
+
+SLOT=10
+REFCHAN=79
+  96,   9,  64  ! DC2, Plane X', wire 64
+  97,   9,  65  ! DC2, Plane X', wire 65
+  98,   9,  66  ! DC2, Plane X', wire 66
+  99,   9,  67  ! DC2, Plane X', wire 67
+ 100,   9,  68  ! DC2, Plane X', wire 68
+ 101,   9,  69  ! DC2, Plane X', wire 69
+ 102,   9,  70  ! DC2, Plane X', wire 70
+ 103,   9,  71  ! DC2, Plane X', wire 71
+ 104,   9,  72  ! DC2, Plane X', wire 72
+ 105,   9,  73  ! DC2, Plane X', wire 73
+ 106,   9,  74  ! DC2, Plane X', wire 74
+ 107,   9,  75  ! DC2, Plane X', wire 75
+ 108,   9,  76  ! DC2, Plane X', wire 76
+ 109,   9,  77  ! DC2, Plane X', wire 77
+ 110,   9,  78  ! DC2, Plane X', wire 78
+ 111,   9,  79  ! DC2, Plane X', wire 79
+
+
+DETECTOR=23
+
+ROC=2
+
+SLOT=3
+   0,   1,   1,   0  ! p1x01A+
+   1,   1,   2,   0  ! p1x02A+
+   2,   1,   3,   0  ! p1x03A+
+   3,   1,   4,   0  ! p1x04A+
+   4,   1,   5,   0  ! p1x05A+
+   5,   1,   6,   0  ! p1x06A+
+   6,   1,   7,   0  ! p1x07A+
+   7,   1,   8,   0  ! p1x08A+
+   8,   1,   9,   0  ! p1x09A+
+   9,   1,  10,   0  ! p1x10A+
+  10,   1,  11,   0  ! p1x11A+
+  11,   1,  12,   0  ! p1x12A+
+  12,   1,  13,   0  ! p1x13A+
+  13,   1,   1,   1  ! p1x01A-
+  14,   1,   2,   1  ! p1x02A-
+  15,   1,   3,   1  ! p1x03A-
+
+SLOT=4
+   0,   1,   4,   1  ! p1x04A-
+   1,   1,   5,   1  ! p1x05A-
+   2,   1,   6,   1  ! p1x06A-
+   3,   1,   7,   1  ! p1x07A-
+   4,   1,   8,   1  ! p1x08A-
+   5,   1,   9,   1  ! p1x09A-
+   6,   1,  10,   1  ! p1x10A-
+   7,   1,  11,   1  ! p1x11A-
+   8,   1,  12,   1  ! p1x12A-
+   9,   1,  13,   1  ! p1x13A-
+  10,   2,   1,   1  ! p1y01A-
+  11,   2,   2,   1  ! p1y02A-
+  12,   2,   3,   1  ! p1y03A-
+  13,   2,   4,   1  ! p1y04A-
+  14,   2,   5,   1  ! p1y05A-
+  15,   2,   6,   1  ! p1y06A-
+
+SLOT=5
+   0,   2,   7,   1  ! p1y07A-
+   1,   2,   8,   1  ! p1y08A-
+   2,   2,   9,   1  ! p1y09A-
+   3,   2,  10,   1  ! p1y10A-
+   4,   2,  11,   1  ! p1y11A-
+   5,   2,  12,   1  ! p1y12A-
+   6,   2,  13,   1  ! p1y13A-
+   7,   2,   1,   0  ! p1y01A+
+   8,   2,   2,   0  ! p1y02A+
+   9,   2,   3,   0  ! p1y03A+
+  10,   2,   4,   0  ! p1y04A+
+  11,   2,   5,   0  ! p1y05A+
+  12,   2,   6,   0  ! p1y06A+
+  13,   2,   7,   0  ! p1y07A+
+  14,   2,   8,   0  ! p1y08A+
+  15,   2,   9,   0  ! p1y09A+
+
+SLOT=6
+   0,   2,  10,   0  ! p1y10A+
+   1,   2,  11,   0  ! p1y11A+
+   2,   2,  12,   0  ! p1y12A+
+   3,   2,  13,   0  ! p1y13A+
+   4,   3,   1,   0  ! p2x01A+
+   5,   3,   2,   0  ! p2x02A+
+   6,   3,   3,   0  ! p2x03A+
+   7,   3,   4,   0  ! p2x04A+
+   8,   3,   5,   0  ! p2x05A+
+   9,   3,   6,   0  ! p2x06A+
+  10,   3,   7,   0  ! p2x07A+
+  11,   3,   8,   0  ! p2x08A+
+  12,   3,   9,   0  ! p2x09A+
+  13,   3,  10,   0  ! p2x10A+
+  14,   3,  11,   0  ! p2x11A+
+  15,   3,  12,   0  ! p2x12A+
+
+SLOT=7
+   0,   3,  13,   0  ! p2x13A+
+   1,   3,  14,   0  ! p2x14A+
+   2,   3,   1,   1  ! p2x01A-
+   3,   3,   2,   1  ! p2x02A-
+   4,   3,   3,   1  ! p2x03A-
+   5,   3,   4,   1  ! p2x04A-
+   6,   3,   5,   1  ! p2x05A-
+   7,   3,   6,   1  ! p2x06A-
+   8,   3,   7,   1  ! p2x07A-
+   9,   3,   8,   1  ! p2x08A-
+  10,   3,   9,   1  ! p2x09A-
+  11,   3,  10,   1  ! p2x10A-
+  12,   3,  11,   1  ! p2x11A-
+  13,   3,  12,   1  ! p2x12A-
+  14,   3,  13,   1  ! p2x13A-
+  15,   3,  14,   1  ! p2x14A-
+
+SLOT=8
+   0,   4,   1,   1  ! p2y01A-
+   1,   4,   2,   1  ! p2y02A-
+   2,   4,   3,   1  ! p2y03A-
+   3,   4,   4,   1  ! p2y04A-
+   4,   4,   5,   1  ! p2y05A-
+   5,   4,   6,   1  ! p2y06A-
+   6,   4,   7,   1  ! p2y07A-
+   7,   4,   8,   1  ! p2y08A-
+   8,   4,   9,   1  ! p2y09A-
+   9,   4,  10,   1  ! p2y10A-
+  10,   4,  11,   1  ! p2y11A-
+  11,   4,  12,   1  ! p2y12A-
+  12,   4,  13,   1  ! p2y13A-
+  13,   4,  14,   1  ! p2y14A-
+  14,   4,  15,   1  ! p2y15A-
+  15,   4,  16,   1  ! p2y16A-
+
+SLOT=9
+   0,   4,  17,   1  ! p2y17A-
+   1,   4,  18,   1  ! p2y18A-
+   2,   4,  19,   1  ! p2y19A-
+   3,   4,  20,   1  ! p2y20A-
+   4,   4,  21,   1  ! p2y21A-
+   5,   4,   1,   0  ! p2y01A+
+   6,   4,   2,   0  ! p2y02A+
+   7,   4,   3,   0  ! p2y03A+
+   8,   4,   4,   0  ! p2y04A+
+   9,   4,   5,   0  ! p2y05A+
+  10,   4,   6,   0  ! p2y06A+
+  11,   4,   7,   0  ! p2y07A+
+  12,   4,   8,   0  ! p2y08A+
+  13,   4,   9,   0  ! p2y09A+
+  14,   4,  10,   0  ! p2y10A+
+  15,   4,  11,   0  ! p2y11A+
+
+SLOT=10
+   0,   4,  12,   0  ! p2y12A+
+   1,   4,  13,   0  ! p2y13A+
+   2,   4,  14,   0  ! p2y14A+
+   3,   4,  15,   0  ! p2y15A+
+   4,   4,  16,   0  ! p2y16A+
+   5,   4,  17,   0  ! p2y17A+
+   6,   4,  18,   0  ! p2y18A+
+   7,   4,  19,   0  ! p2y19A+
+   8,   4,  20,   0  ! p2y20A+
+   9,   4,  21,   0  ! p2y21A+
+
+SLOT=20
+REFINDEX=0
+  15,1000,   0,   0
+   0,   1,   1,   2  ! p1x01T+
+   1,   1,   3,   2  ! p1x03T+
+   2,   1,   5,   2  ! p1x05T+
+   3,   1,   7,   2  ! p1x07T+
+   4,   1,   2,   2  ! p1x02T+
+   5,   1,   4,   2  ! p1x04T+
+   6,   1,   6,   2  ! p1x06T+
+   7,   1,   8,   2  ! p1x08T+
+   8,   1,   9,   2  ! p1x09T+
+   9,   1,  11,   2  ! p1x11T+
+  10,   1,  13,   2  ! p1x13T+
+  12,   1,  10,   2  ! p1x10T+
+  13,   1,  12,   2  ! p1x12T+
+  16,   1,   1,   3  ! p1x01T-
+  17,   1,   3,   3  ! p1x03T-
+  18,   1,   5,   3  ! p1x05T-
+  19,   1,   7,   3  ! p1x07T-
+  20,   1,   2,   3  ! p1x02T-
+  21,   1,   4,   3  ! p1x04T-
+  22,   1,   6,   3  ! p1x06T-
+  23,   1,   8,   3  ! p1x08T-
+  24,   1,   9,   3  ! p1x09T-
+  25,   1,  11,   3  ! p1x11T-
+  26,   1,  13,   3  ! p1x13T-
+  28,   1,  10,   3  ! p1x10T-
+  30,   1,  12,   3  ! p1x12T-
+  32,   2,   1,   3  ! p1y01T-
+  33,   2,   3,   3  ! p1y03T-
+  34,   2,   5,   3  ! p1y05T-
+  35,   2,   7,   3  ! p1y07T-
+  36,   2,   2,   3  ! p1y02T-
+  37,   2,   4,   3  ! p1y04T-
+  38,   2,   6,   3  ! p1y06T-
+  39,   2,   8,   3  ! p1y08T-
+  40,   2,   9,   3  ! p1y09T-
+  41,   2,  11,   3  ! p1y11T-
+  42,   2,  13,   3  ! p1y13T-
+  44,   2,  10,   3  ! p1y10T-
+  45,   2,  12,   3  ! p1y12T-
+  48,   2,   1,   2  ! p1y01T+
+  49,   2,   3,   2  ! p1y03T+
+  50,   2,   5,   2  ! p1y05T+
+  51,   2,   7,   2  ! p1y07T+
+  52,   2,   2,   2  ! p1y02T+
+  53,   2,   4,   2  ! p1y04T+
+  54,   2,   6,   2  ! p1y06T+
+  55,   2,   8,   2  ! p1y08T+
+  56,   2,   9,   2  ! p1y09T+
+  57,   2,  11,   2  ! p1y11T+
+  58,   2,  13,   2  ! p1y13T+
+  60,   2,  10,   2  ! p1y10T+
+  61,   2,  12,   2  ! p1y12T+
+  64,   3,   1,   2  ! p2x01T+
+  65,   3,   3,   2  ! p2x03T+
+  66,   3,   5,   2  ! p2x05T+
+  67,   3,   7,   2  ! p2x07T+
+  68,   3,   2,   2  ! p2x02T+
+  69,   3,   4,   2  ! p2x04T+
+  70,   3,   6,   2  ! p2x06T+
+  71,   3,   8,   2  ! p2x08T+
+  72,   3,   9,   2  ! p2x09T+
+  73,   3,  11,   2  ! p2x11T+
+  74,   3,  13,   2  ! p2x13T+
+  76,   3,  10,   2  ! p2x10T+
+  77,   3,  12,   2  ! p2x12T+
+  78,   3,  14,   2  ! p2x14T+
+  80,   3,   1,   3  ! p2x01T-
+  81,   3,   3,   3  ! p2x03T-
+  82,   3,   5,   3  ! p2x05T-
+  83,   3,   7,   3  ! p2x07T-
+  84,   3,   2,   3  ! p2x02T-
+  85,   3,   4,   3  ! p2x04T-
+  86,   3,   6,   3  ! p2x06T-
+  87,   3,   8,   3  ! p2x08T-
+  88,   3,   9,   3  ! p2x09T-
+  89,   3,  11,   3  ! p2x11T-
+  90,   3,  13,   3  ! p2x13T-
+  92,   3,  10,   3  ! p2x10T-
+  93,   3,  12,   3  ! p2x12T-
+  94,   3,  14,   3  ! p2x14T-
+  96,   4,   1,   3  ! p2y01T-
+  97,   4,   3,   3  ! p2y03T-
+  98,   4,   5,   3  ! p2y05T-
+  99,   4,   7,   3  ! p2y07T-
+ 100,   4,   2,   3  ! p2y02T-
+ 101,   4,   4,   3  ! p2y04T-
+ 102,   4,   6,   3  ! p2y06T-
+ 103,   4,   8,   3  ! p2y08T-
+ 104,   4,   9,   3  ! p2y09T-
+ 105,   4,  11,   3  ! p2y11T-
+ 106,   4,  13,   3  ! p2y13T-
+ 107,   4,  15,   3  ! p2y15T-
+ 108,   4,  10,   3  ! p2y10T-
+ 109,   4,  12,   3  ! p2y12T-
+ 110,   4,  14,   3  ! p2y14T-
+ 111,   4,  16,   3  ! p2y16T-
+ 112,   4,  17,   3  ! p2y17T-
+ 113,   4,  19,   3  ! p2y19T-
+ 114,   4,  21,   3  ! p2y21T-
+ 116,   4,  18,   3  ! p2y18T-
+ 117,   4,  20,   3  ! p2y20T-
+
+SLOT=19
+REFINDEX=0
+  31,1000,   0,   1
+   0,   4,   1,   2  ! p2y01T+
+   1,   4,   3,   2  ! p2y03T+
+   2,   4,   5,   2  ! p2y05T+
+   3,   4,   7,   2  ! p2y07T+
+   4,   4,   2,   2  ! p2y02T+
+   5,   4,   4,   2  ! p2y04T+
+   6,   4,   6,   2  ! p2y06T+
+   7,   4,   8,   2  ! p2y08T+
+   8,   4,   9,   2  ! p2y09T+
+   9,   4,  11,   2  ! p2y11T+
+  10,   4,  13,   2  ! p2y13T+
+  11,   4,  15,   2  ! p2y15T+
+  12,   4,  10,   2  ! p2y10T+
+  13,   4,  12,   2  ! p2y12T+
+  14,   4,  14,   2  ! p2y14T+
+  15,   4,  16,   2  ! p2y16T+
+  16,   4,  17,   2  ! p2y17T+
+  17,   4,  19,   2  ! p2y19T+
+  18,   4,  21,   2  ! p2y21T+
+  20,   4,  18,   2  ! p2y18T+
+  21,   4,  20,   2  ! p2y20T+
+
+
+DETECTOR=24
+
+ROC=2
+
+SLOT=13
+   8,   1,   1,   0  ! pHGCER01
+   9,   1,   2,   0  ! pHGCER02
+  10,   1,   3,   0  ! pHGCER03
+  11,   1,   4,   0  ! pHGCER04
+
+
+DETECTOR=25
+
+ROC=2
+
+SLOT=10
+  10,   1,   1,   0  ! pAER01+
+  11,   1,   2,   0  ! pAER02+
+  12,   1,   3,   0  ! pAER03+
+  13,   1,   4,   0  ! pAER04+
+  14,   1,   5,   0  ! pAER05+
+  15,   1,   6,   0  ! pAER06+
+
+SLOT=13
+   0,   1,   7,   0  ! pAER07+
+   1,   1,   1,   1  ! pAER01-
+   2,   1,   2,   1  ! pAER02-
+   3,   1,   3,   1  ! pAER03-
+   4,   1,   4,   1  ! pAER04-
+   5,   1,   5,   1  ! pAER05-
+   6,   1,   6,   1  ! pAER06-
+   7,   1,   7,   1  ! pAER07-
+
+
+DETECTOR=26
+
+ROC=4
+
+SLOT=3
+   0,   1,   1,   0  ! pPRSH1+
+   1,   1,   2,   0  ! pPRSH2+
+   2,   1,   3,   0  ! pPRSH3+
+   3,   1,   4,   0  ! pPRSH4+
+   4,   1,   5,   0  ! pPRSH5+
+   5,   1,   6,   0  ! pPRSH6+
+   6,   1,   7,   0  ! pPRSH7+
+   7,   1,   8,   0  ! pPRSH8+
+   8,   1,   9,   0  ! pPRSH9+
+   9,   1,  10,   0  ! pPRSH10+
+  10,   1,  11,   0  ! pPRSH11+
+  11,   1,  12,   0  ! pPRSH12+
+  12,   1,  13,   0  ! pPRSH13+
+  13,   1,  14,   0  ! pPRSH14+
+
+SLOT=4
+   0,   1,   1,   1  ! pPRSH1-
+   1,   1,   2,   1  ! pPRSH2-
+   2,   1,   3,   1  ! pPRSH3-
+   3,   1,   4,   1  ! pPRSH4-
+   4,   1,   5,   1  ! pPRSH5-
+   5,   1,   6,   1  ! pPRSH6-
+   6,   1,   7,   1  ! pPRSH7-
+   7,   1,   8,   1  ! pPRSH8-
+   8,   1,   9,   1  ! pPRSH9-
+   9,   1,  10,   1  ! pPRSH10-
+  10,   1,  11,   1  ! pPRSH11-
+  11,   1,  12,   1  ! pPRSH12-
+  12,   1,  13,   1  ! pPRSH13-
+  13,   1,  14,   1  ! pPRSH14-
+
+SLOT=5
+   0,   2,   1,   0  ! Row 1, Column 1
+   1,   2,   2,   0  ! Row 2, Column 1
+   2,   2,   3,   0  ! Row 3, Column 1
+   3,   2,   4,   0  ! Row 4, Column 1
+   4,   2,   5,   0  ! Row 5, Column 1
+   5,   2,   6,   0  ! Row 6, Column 1
+   6,   2,   7,   0  ! Row 7, Column 1
+   7,   2,   8,   0  ! Row 8, Column 1
+   8,   2,   9,   0  ! Row 9, Column 1
+   9,   2,  10,   0  ! Row 10, Column 1
+  10,   2,  11,   0  ! Row 11, Column 1
+  11,   2,  12,   0  ! Row 12, Column 1
+  12,   2,  13,   0  ! Row 13, Column 1
+  13,   2,  14,   0  ! Row 14, Column 1
+  14,   2,  15,   0  ! Row 15, Column 1
+  15,   2,  16,   0  ! Row 16, Column 1
+
+SLOT=6
+   0,   2,  17,   0  ! Row 1, Column 2
+   1,   2,  18,   0  ! Row 2, Column 2
+   2,   2,  19,   0  ! Row 3, Column 2
+   3,   2,  20,   0  ! Row 4, Column 2
+   4,   2,  21,   0  ! Row 5, Column 2
+   5,   2,  22,   0  ! Row 6, Column 2
+   6,   2,  23,   0  ! Row 7, Column 2
+   7,   2,  24,   0  ! Row 8, Column 2
+   8,   2,  25,   0  ! Row 9, Column 2
+   9,   2,  26,   0  ! Row 10, Column 2
+  10,   2,  27,   0  ! Row 11, Column 2
+  11,   2,  28,   0  ! Row 12, Column 2
+  12,   2,  29,   0  ! Row 13, Column 2
+  13,   2,  30,   0  ! Row 14, Column 2
+  14,   2,  31,   0  ! Row 15, Column 2
+  15,   2,  32,   0  ! Row 16, Column 2
+
+SLOT=7
+   0,   2,  33,   0  ! Row 1, Column 3
+   1,   2,  34,   0  ! Row 2, Column 3
+   2,   2,  35,   0  ! Row 3, Column 3
+   3,   2,  36,   0  ! Row 4, Column 3
+   4,   2,  37,   0  ! Row 5, Column 3
+   5,   2,  38,   0  ! Row 6, Column 3
+   6,   2,  39,   0  ! Row 7, Column 3
+   7,   2,  40,   0  ! Row 8, Column 3
+   8,   2,  41,   0  ! Row 9, Column 3
+   9,   2,  42,   0  ! Row 10, Column 3
+  10,   2,  43,   0  ! Row 11, Column 3
+  11,   2,  44,   0  ! Row 12, Column 3
+  12,   2,  45,   0  ! Row 13, Column 3
+  13,   2,  46,   0  ! Row 14, Column 3
+  14,   2,  47,   0  ! Row 15, Column 3
+  15,   2,  48,   0  ! Row 16, Column 3
+
+SLOT=8
+   0,   2,  49,   0  ! Row 1, Column 4
+   1,   2,  50,   0  ! Row 2, Column 4
+   2,   2,  51,   0  ! Row 3, Column 4
+   3,   2,  52,   0  ! Row 4, Column 4
+   4,   2,  53,   0  ! Row 5, Column 4
+   5,   2,  54,   0  ! Row 6, Column 4
+   6,   2,  55,   0  ! Row 7, Column 4
+   7,   2,  56,   0  ! Row 8, Column 4
+   8,   2,  57,   0  ! Row 9, Column 4
+   9,   2,  58,   0  ! Row 10, Column 4
+  10,   2,  59,   0  ! Row 11, Column 4
+  11,   2,  60,   0  ! Row 12, Column 4
+  12,   2,  61,   0  ! Row 13, Column 4
+  13,   2,  62,   0  ! Row 14, Column 4
+  14,   2,  63,   0  ! Row 15, Column 4
+  15,   2,  64,   0  ! Row 16, Column 4
+
+SLOT=9
+   0,   2,  65,   0  ! Row 1, Column 5
+   1,   2,  66,   0  ! Row 2, Column 5
+   2,   2,  67,   0  ! Row 3, Column 5
+   3,   2,  68,   0  ! Row 4, Column 5
+   4,   2,  69,   0  ! Row 5, Column 5
+   5,   2,  70,   0  ! Row 6, Column 5
+   6,   2,  71,   0  ! Row 7, Column 5
+   7,   2,  72,   0  ! Row 8, Column 5
+   8,   2,  73,   0  ! Row 9, Column 5
+   9,   2,  74,   0  ! Row 10, Column 5
+  10,   2,  75,   0  ! Row 11, Column 5
+  11,   2,  76,   0  ! Row 12, Column 5
+  12,   2,  77,   0  ! Row 13, Column 5
+  13,   2,  78,   0  ! Row 14, Column 5
+  14,   2,  79,   0  ! Row 15, Column 5
+  15,   2,  80,   0  ! Row 16, Column 5
+
+SLOT=10
+   0,   2,  81,   0  ! Row 1, Column 6
+   1,   2,  82,   0  ! Row 2, Column 6
+   2,   2,  83,   0  ! Row 3, Column 6
+   3,   2,  84,   0  ! Row 4, Column 6
+   4,   2,  85,   0  ! Row 5, Column 6
+   5,   2,  86,   0  ! Row 6, Column 6
+   6,   2,  87,   0  ! Row 7, Column 6
+   7,   2,  88,   0  ! Row 8, Column 6
+   8,   2,  89,   0  ! Row 9, Column 6
+   9,   2,  90,   0  ! Row 10, Column 6
+  10,   2,  91,   0  ! Row 11, Column 6
+  11,   2,  92,   0  ! Row 12, Column 6
+  12,   2,  93,   0  ! Row 13, Column 6
+  13,   2,  94,   0  ! Row 14, Column 6
+  14,   2,  95,   0  ! Row 15, Column 6
+  15,   2,  96,   0  ! Row 16, Column 6
+
+SLOT=13
+   0,   2,  97,   0  ! Row 1, Column 7
+   1,   2,  98,   0  ! Row 2, Column 7
+   2,   2,  99,   0  ! Row 3, Column 7
+   3,   2, 100,   0  ! Row 4, Column 7
+   4,   2, 101,   0  ! Row 5, Column 7
+   5,   2, 102,   0  ! Row 6, Column 7
+   6,   2, 103,   0  ! Row 7, Column 7
+   7,   2, 104,   0  ! Row 8, Column 7
+   8,   2, 105,   0  ! Row 9, Column 7
+   9,   2, 106,   0  ! Row 10, Column 7
+  10,   2, 107,   0  ! Row 11, Column 7
+  11,   2, 108,   0  ! Row 12, Column 7
+  12,   2, 109,   0  ! Row 13, Column 7
+  13,   2, 110,   0  ! Row 14, Column 7
+  14,   2, 111,   0  ! Row 15, Column 7
+  15,   2, 112,   0  ! Row 16, Column 7
+
+SLOT=14
+   0,   2, 113,   0  ! Row 1, Column 8
+   1,   2, 114,   0  ! Row 2, Column 8
+   2,   2, 115,   0  ! Row 3, Column 8
+   3,   2, 116,   0  ! Row 4, Column 8
+   4,   2, 117,   0  ! Row 5, Column 8
+   5,   2, 118,   0  ! Row 6, Column 8
+   6,   2, 119,   0  ! Row 7, Column 8
+   7,   2, 120,   0  ! Row 8, Column 8
+   8,   2, 121,   0  ! Row 9, Column 8
+   9,   2, 122,   0  ! Row 10, Column 8
+  10,   2, 123,   0  ! Row 11, Column 8
+  11,   2, 124,   0  ! Row 12, Column 8
+  12,   2, 125,   0  ! Row 13, Column 8
+  13,   2, 126,   0  ! Row 14, Column 8
+  14,   2, 127,   0  ! Row 15, Column 8
+  15,   2, 128,   0  ! Row 16, Column 8
+
+SLOT=15
+   0,   2, 129,   0  ! Row 1, Column 9
+   1,   2, 130,   0  ! Row 2, Column 9
+   2,   2, 131,   0  ! Row 3, Column 9
+   3,   2, 132,   0  ! Row 4, Column 9
+   4,   2, 133,   0  ! Row 5, Column 9
+   5,   2, 134,   0  ! Row 6, Column 9
+   6,   2, 135,   0  ! Row 7, Column 9
+   7,   2, 136,   0  ! Row 8, Column 9
+   8,   2, 137,   0  ! Row 9, Column 9
+   9,   2, 138,   0  ! Row 10, Column 9
+  10,   2, 139,   0  ! Row 11, Column 9
+  11,   2, 140,   0  ! Row 12, Column 9
+  12,   2, 141,   0  ! Row 13, Column 9
+  13,   2, 142,   0  ! Row 14, Column 9
+  14,   2, 143,   0  ! Row 15, Column 9
+  15,   2, 144,   0  ! Row 16, Column 9
+
+SLOT=16
+   0,   2, 145,   0  ! Row 1, Column 10
+   1,   2, 146,   0  ! Row 2, Column 10
+   2,   2, 147,   0  ! Row 3, Column 10
+   3,   2, 148,   0  ! Row 4, Column 10
+   4,   2, 149,   0  ! Row 5, Column 10
+   5,   2, 150,   0  ! Row 6, Column 10
+   6,   2, 151,   0  ! Row 7, Column 10
+   7,   2, 152,   0  ! Row 8, Column 10
+   8,   2, 153,   0  ! Row 9, Column 10
+   9,   2, 154,   0  ! Row 10, Column 10
+  10,   2, 155,   0  ! Row 11, Column 10
+  11,   2, 156,   0  ! Row 12, Column 10
+  12,   2, 157,   0  ! Row 13, Column 10
+  13,   2, 158,   0  ! Row 14, Column 10
+  14,   2, 159,   0  ! Row 15, Column 10
+  15,   2, 160,   0  ! Row 16, Column 10
+
+SLOT=17
+   0,   2, 161,   0  ! Row 1, Column 11
+   1,   2, 162,   0  ! Row 2, Column 11
+   2,   2, 163,   0  ! Row 3, Column 11
+   3,   2, 164,   0  ! Row 4, Column 11
+   4,   2, 165,   0  ! Row 5, Column 11
+   5,   2, 166,   0  ! Row 6, Column 11
+   6,   2, 167,   0  ! Row 7, Column 11
+   7,   2, 168,   0  ! Row 8, Column 11
+   8,   2, 169,   0  ! Row 9, Column 11
+   9,   2, 170,   0  ! Row 10, Column 11
+  10,   2, 171,   0  ! Row 11, Column 11
+  11,   2, 172,   0  ! Row 12, Column 11
+  12,   2, 173,   0  ! Row 13, Column 11
+  13,   2, 174,   0  ! Row 14, Column 11
+  14,   2, 175,   0  ! Row 15, Column 11
+  15,   2, 176,   0  ! Row 16, Column 11
+
+SLOT=18
+   0,   2, 177,   0  ! Row 1, Column 12
+   1,   2, 178,   0  ! Row 2, Column 12
+   2,   2, 179,   0  ! Row 3, Column 12
+   3,   2, 180,   0  ! Row 4, Column 12
+   4,   2, 181,   0  ! Row 5, Column 12
+   5,   2, 182,   0  ! Row 6, Column 12
+   6,   2, 183,   0  ! Row 7, Column 12
+   7,   2, 184,   0  ! Row 8, Column 12
+   8,   2, 185,   0  ! Row 9, Column 12
+   9,   2, 186,   0  ! Row 10, Column 12
+  10,   2, 187,   0  ! Row 11, Column 12
+  11,   2, 188,   0  ! Row 12, Column 12
+  12,   2, 189,   0  ! Row 13, Column 12
+  13,   2, 190,   0  ! Row 14, Column 12
+  14,   2, 191,   0  ! Row 15, Column 12
+  15,   2, 192,   0  ! Row 16, Column 12
+
+SLOT=19
+   0,   2, 193,   0  ! Row 1, Column 13
+   1,   2, 194,   0  ! Row 2, Column 13
+   2,   2, 195,   0  ! Row 3, Column 13
+   3,   2, 196,   0  ! Row 4, Column 13
+   4,   2, 197,   0  ! Row 5, Column 13
+   5,   2, 198,   0  ! Row 6, Column 13
+   6,   2, 199,   0  ! Row 7, Column 13
+   7,   2, 200,   0  ! Row 8, Column 13
+   8,   2, 201,   0  ! Row 9, Column 13
+   9,   2, 202,   0  ! Row 10, Column 13
+  10,   2, 203,   0  ! Row 11, Column 13
+  11,   2, 204,   0  ! Row 12, Column 13
+  12,   2, 205,   0  ! Row 13, Column 13
+  13,   2, 206,   0  ! Row 14, Column 13
+  14,   2, 207,   0  ! Row 15, Column 13
+  15,   2, 208,   0  ! Row 16, Column 13
+
+SLOT=20
+   0,   2, 209,   0  ! Row 1, Column 14
+   1,   2, 210,   0  ! Row 2, Column 14
+   2,   2, 211,   0  ! Row 3, Column 14
+   3,   2, 212,   0  ! Row 4, Column 14
+   4,   2, 213,   0  ! Row 5, Column 14
+   5,   2, 214,   0  ! Row 6, Column 14
+   6,   2, 215,   0  ! Row 7, Column 14
+   7,   2, 216,   0  ! Row 8, Column 14
+   8,   2, 217,   0  ! Row 9, Column 14
+   9,   2, 218,   0  ! Row 10, Column 14
+  10,   2, 219,   0  ! Row 11, Column 14
+  11,   2, 220,   0  ! Row 12, Column 14
+  12,   2, 221,   0  ! Row 13, Column 14
+  13,   2, 222,   0  ! Row 14, Column 14
+  14,   2, 223,   0  ! Row 15, Column 14
+  15,   2, 224,   0  ! Row 16, Column 14
diff --git a/MAPS/db_cratemap.dat b/MAPS/db_cratemap.dat
index 054ca6d7..a8397b04 100644
--- a/MAPS/db_cratemap.dat
+++ b/MAPS/db_cratemap.dat
@@ -18,6 +18,7 @@
   19     250     250
   20     1190    1190
 
+
 ==== Crate 2 type vme Bank Decoding
 # slot  model   bank
   3      250     250
diff --git a/MAPS/make_cratemap.sh b/MAPS/make_cratemap.sh
index e6f96ca6..438d879b 100755
--- a/MAPS/make_cratemap.sh
+++ b/MAPS/make_cratemap.sh
@@ -31,7 +31,7 @@ function ask_proceed {
 	exit
     elif [[ $response = "yes" ]]; then
 	proceed
-    else 
+    else
 	echo; echo "Please respond by specifically typing yes or no"; echo; exit
     fi
 }
diff --git a/MAPS/merge_list.txt b/MAPS/merge_list.txt
index cf0279d5..8fe2023f 100644
--- a/MAPS/merge_list.txt
+++ b/MAPS/merge_list.txt
@@ -1,4 +1,8 @@
-haero.map
-hcal.map
+SHMS/DETEC/ptrig.map
+SHMS/DETEC/pdc.map
+SHMS/DETEC/phodo.map
+SHMS/DETEC/phgcer.map
+SHMS/DETEC/pngcer.map
+SHMS/DETEC/pcal.map
+SHMS/DETEC/paero.map
 
-#hhodo.map
diff --git a/MAPS/merge_maps.py b/MAPS/merge_maps.py
index 6f0fab76..2ab97438 100644
--- a/MAPS/merge_maps.py
+++ b/MAPS/merge_maps.py
@@ -51,9 +51,12 @@ class Slot:
     def __init__(self):
         self.ID = -1
         self.comment = ''
-        self.KWs = {kw: -1 for kw in slotKWs}
+        self.KWs = {}
         self.channels = []
 
+        for kw in slotKWs:
+            self.KWs[kw] = -1
+
     def __str__(self):
         string = 'SLOT={0.ID}'.format(self)
         if self.comment != '':
@@ -84,7 +87,7 @@ class Channel:
         return string
 
 
-if (sys.argv[1] == '-h' or len(sys.argv) != 3):
+if (len(sys.argv) != 3 or sys.argv[1] == '-h'):
     print('Call as:')
     print('  merge_maps.py merge_list.txt outfile.map')
     sys.exit()
@@ -134,7 +137,7 @@ for fileName in fileNames:
 
                 KW =  line[1:i].strip()
                 ID = line[i+4:].split()[0].strip()
-                signal = ','.join(line[i+4:].split()[1:])
+                signal = ','.join(line[i+4:].replace('::', '').split()[1:])
 
                 if KW in header['KWs']:
                     print('Detector keyword `{}` already present!'.format(KW))
@@ -233,8 +236,8 @@ with open(mergedName, 'w') as fo:
     for ID, KW, signals in sorted(zip(
         header['IDs'], header['KWs'], header['signals']
     )):
-        IDString = '{}_ID={}'.format(KW, ID)
-        fo.write('! {:15}  ::  {}\n'.format(IDString, signal))
+        IDString = '{0}_ID={1}'.format(KW, ID)
+        fo.write('! {0:15}  ::  {1}\n'.format(IDString, signals))
 
     # Write detector maps sorted by IDs.
     for ID, KW in sorted(zip(
@@ -242,16 +245,16 @@ with open(mergedName, 'w') as fo:
     )):
         for detector in detectors:
             if detector.ID == ID:
-                fo.write('\n\n{}\n'.format(detector))
+                fo.write('\n\n{0}\n'.format(detector))
 
                 for roc in detector.rocs:
-                    fo.write('\n{}\n'.format(roc))
+                    fo.write('\n{0}\n'.format(roc))
 
                     for slot in roc.slots:
-                        fo.write('\n{}'.format(slot))
+                        fo.write('\n{0}'.format(slot))
 
                         for channel in slot.channels:
-                            fo.write('{}\n'.format(channel))
+                            fo.write('{0}\n'.format(channel))
 
 
 print('\nDone.')
diff --git a/PARAM/HMS/CER/hcer.param b/PARAM/HMS/CER/hcer.param
index a23df2e8..14db2ac6 100644
--- a/PARAM/HMS/CER/hcer.param
+++ b/PARAM/HMS/CER/hcer.param
@@ -1,6 +1,6 @@
 hcer_width = 50, 50
 
-hcer_adc_to_npe = 1/145.0, 1/122.0
+hcer_adc_to_npe = 1/6353., 1/8116.
 
 
 hcer_chi2max = 50.
diff --git a/PARAM/HMS/DC/hdc.param b/PARAM/HMS/DC/hdc.param
deleted file mode 100644
index bfa88fd6..00000000
--- a/PARAM/HMS/DC/hdc.param
+++ /dev/null
@@ -1,33 +0,0 @@
-;---------------------------------------------------------------------
-; HMS_TRACKING
-; CTP parameter file containing all tracking parameters for the HMS
-;----------------------------------------------------------------------
-; sigma of wire chamber resolution for each plane
-      hdc_sigma = 0.020
-                  0.020
-                  0.020
-                  0.020
-                  0.020
-                  0.020
-                  0.020
-                  0.020
-                  0.020
-                  0.020
-                  0.020
-                  0.020
-  hdc_tdc_min_win = -25000,-25000,-25000,-25000,-25000,-25000
-  		    -25000,-25000,-25000,-25000,-25000,-25000
-  hdc_tdc_max_win = 25000,25000,25000,25000,25000,25000
-                    25000,25000,25000,25000,25000,25000
-; hms drift chamber tdc's time per channel
-        hdc_tdc_time_per_channel = -0.10
-; hms zero time for drift chambers	!DECREASING this number moves the hdtime plots to LOWER time.
-   hdc_plane_time_zero = -213.0,-213.0,-213.0,-213.0,-213.0,-213.0
-  		        -213.0,-213.0,-213.0,-213.0,-213.0,-213.0
-
-; Dave Abbott's wire velocity correction
-hdc_wire_velocity = 12.0
-hdc_central_time = 7,9,3,4,6,5
-                   7,5,3,4,6,6
-
-
diff --git a/PARAM/HMS/DC/hdc.pos b/PARAM/HMS/DC/hdc.pos
index fdbf2aed..597ab6a8 100644
--- a/PARAM/HMS/DC/hdc.pos
+++ b/PARAM/HMS/DC/hdc.pos
@@ -1,183 +1,94 @@
-; Number of planes installed in HMS detector setup
-      hdc_num_planes = 12
-; Number of chambers installed in HMS detector setup
-      hdc_num_chambers = 2
-; Names of each wire plane
-;
-; Z positions of various planes in HMS chambers
-; hdc_n_zpos is the surveyed Z position of the center of chamber n.
-      hdc_1_zpos = (-40.611-11.312+0.003)
-      hdc_2_zpos = (+40.611-11.312-0.008)
-      
-      hdc_zpos   = hdc_1_zpos - 3.6000
-                   hdc_1_zpos - 1.8000
-                   hdc_1_zpos - 0.0000
-                   hdc_1_zpos + 1.8000
-                   hdc_1_zpos + 3.6000
-                   hdc_1_zpos + 5.4000
-                   hdc_2_zpos - 3.6000
-                   hdc_2_zpos - 1.8000
-                   hdc_2_zpos - 0.0000
-                   hdc_2_zpos + 1.8000
-                   hdc_2_zpos + 3.6000
-                   hdc_2_zpos + 5.4000
-; Angle alpha of wires in wire chamber planes
-        hdc_alpha_angle =  (90. - 0.071)*raddeg
-                           (0.0 - 0.071)*raddeg
-                           (74.925 - 0.071)*raddeg
-                           (105.075 - 0.071)*raddeg
-                           (0.0 - 0.071)*raddeg
-                           (90.0 - 0.071)*raddeg
-                           (89.90814 - 0.153)*raddeg
-                           (0.01611 - 0.153)*raddeg
-                           (74.85 - 0.153)*raddeg
-                           (105.05 - 0.153)*raddeg
-                           (0.01611 - 0.153)*raddeg
-                           (89.90814 - 0.153)*raddeg
-;        hdc_alpha_angle = ( 90.1541 - 0.071)*raddeg
-;                          ( -0.0408 - 0.071)*raddeg
-;                          ( 75.1267 - 0.071)*raddeg
-;                          (105.1267 - 0.071)*raddeg
-;                          ( -0.0408 - 0.071)*raddeg
-;                          ( 90.1541 - 0.071)*raddeg
-;                          ( 90.1095 - 0.153)*raddeg
-;                          ( -0.0370 - 0.153)*raddeg
-;                          ( 75.0904 - 0.153)*raddeg
-;                          (105.0904 - 0.153)*raddeg
-;                          ( -0.0370 - 0.153)*raddeg
-;                          ( 90.1095 - 0.153)*raddeg
-;
-; Angle beta of wires in wire chamber planes
-      hdc_beta_angle =    -0.041*raddeg
-                          -0.041*raddeg
-                          -0.041*raddeg
-                          -0.041*raddeg
-                          -0.041*raddeg
-                          -0.041*raddeg
-                          +0.054*raddeg
-                          +0.054*raddeg
-                          +0.054*raddeg
-                          +0.054*raddeg
-                          +0.054*raddeg
-                          +0.054*raddeg
-; Angle gamma of wires in wire chamber planes
-      hdc_gamma_angle =   +0.0376*raddeg
-                          +0.0376*raddeg
-                          +0.0376*raddeg
-                          +0.0376*raddeg
-                          +0.0376*raddeg
-                          +0.0376*raddeg
-                          -0.145*raddeg
-                          -0.145*raddeg
-                          -0.145*raddeg
-                          -0.145*raddeg
-                          -0.145*raddeg
-                          -0.145*raddeg
-; Pitch
-      hdc_pitch = 1.000252
-                  1.000252
-                  1.000252
-                  1.000252
-                  1.000252
-                  1.000252
-                  1.000252
-                  1.000252
-                  1.000252
-                  1.000252
-                  1.000252
-                  1.000252
-; Number of wires per plane
-      hdc_nrwire = 113
-                    52
-                   107
-                   107
-                    52
-                   113
-                   113
-                    52
-                   107
-                   107
-                    52
-                   113
-; X,Y position of center of wire chamber
-; increasing dc2 coordinates decreases dpos histograms.
-; new values according to henk and rolf
-      hdc_xcenter = (1.670 - 0.0155 - 0.020)
-                    (2.758 - 0.0155 + 0.040)
-;      hdc_xcenter = (1.670 - 0.0155)
-;                    (2.758 - 0.0155)
-;      hdc_xcenter = 1.670 + 0.15 + 0.0155
-;                    2.758 + 0.16 + 0.0155
-;  Y CENTER CHANGED TO MATCH OPTICS DATA(offset of 1.1 cm in y)
-; new values included according to henk and rolf
-      hdc_ycenter = (1.443 - 0.1699 - 0.0279 - 0.04)
-                    (2.753 - 0.1699 + 0.0279 + 0.04)
-;      hdc_ycenter = (1.443 - 0.1699 - 0.0279 - 0.035)
-;                    (2.753 - 0.1699 + 0.0279 + 0.035)
-;      hdc_ycenter = (1.443 - 0.1699 - 0.0279)
-;                    (2.753 - 0.1699 + 0.0279)
+; CHAMBER POSITION PARAMETERS
 
-;      hdc_ycenter = 0.343 + 1.1 - 0.12 + 0.1699 + 0.0279
-;                    1.653 + 1.1 - 0.22 + 0.1699 - 0.0279
-;      hdc_ycenter = 0.343  THESE ARE THE ORIGINAL Y CENTERS FROM SURVEY DATA
-;                    1.653
-;      hdc_xcenter = 0.0
-;                    1.22
-;      hdc_ycenter = 0.0
-;                    1.24
+; x, y and z position of center for each wire chamber in cm.
+; From SANE with correction from C1768 using 2007 controls.
+hdc_xcenter = 1.6345 - 0.37  ; TODO - final survey
+              2.7825 - 0.40
+hdc_ycenter = 1.2052 - 0.11  ; TODO - final survey
+              2.6510 - 0.06
+hdc_1_zpos = -51.920 - 0.44  ; TODO - final survey
+hdc_2_zpos =  29.291 - 1.76  ; TODO - final survey
 
-; Wire number of center of wire chamber
-; assume 1st wire of 1st dc of a set is closest to edge where counting starts
-       hdc_central_wire = 57.257, 26.240, 54.001, 53.999, 26.760 , 56.743
-                          57.244, 26.242, 53.998, 54.002, 26.758 , 56.756
+; Roll, pitch and yaw for each wire chamber in degrees.
+; From C1768 using 2007 controls.
+pdc_1_roll = 0.155  ; TODO - final survey
+pdc_2_roll = 0.186  ; TODO - final survey
+pdc_1_pitch = 0.080  ; TODO - final survey
+pdc_2_pitch = 0.077  ; TODO - final survey
+pdc_1_yaw = 0.324  ; TODO - final survey
+pdc_2_yaw = 0.118  ; TODO - final survey
 
-;       hdc_central_wire = 57.25, 26.245, 54.0, 54.0, 26.755 , 56.75
-;                          57.24, 26.245, 54.0, 54.0, 26.755 , 56.76
-;       hdc_central_wire = 57.25, 26.25, 54.0, 54.0, 26.75 , 56.75
-;                          57.24, 26.25, 54.0, 54.0, 26.75 , 56.76
-; hdc_chamber_planes    array giving the chamber number for each plane
-      hdc_chamber_planes = 1
-                           1
-                           1
-                           1
-                           1
-                           1
-                           2
-                           2
-                           2
-                           2
-                           2
-                           2
-; The hms readout numbers some planes in reverse order.
-; The following array is a flag on the order number.
-; If hdc_wire_counting(plane) = 0
-;  the wire center is at (wire - hdc_central_wire) * pitch
-; If hdc_wire_counting(plane) = 1
-;  the wire center is at ( hdc_nrwire + 1 - wire - hdc_central_wire) * pitch
-        hdc_wire_counting = 1
-                            1
-                            0
-                            1
-                            0
-                            0
-                            1
-                            1
-                            0
-                            1
-                            0
-                            0
-; The velocity correction is the distance from the center of the wire divided
-; by the velocity of propagation times hdc_drifttime_sign(pln).  +/-1
-; for disc. card at +/- coord. (i.e. top = -x direction, so top readout is +1)
-       hdc_drifttime_sign = -1
-                            -1
-                            -1
-                            -1
-                            -1
-                            -1
-                            -1
-                            -1
-                            -1
-                            -1
-                            -1
-                            -1
+
+; PLANE POSITION PARAMETERS
+
+; Wire number of center of wire chamber for each plane.
+; From SANE.
+hdc_central_wire = 57.257, 26.240, 54.001, 53.999, 26.760 , 56.743
+                   57.244, 26.242, 53.998, 54.002, 26.758 , 56.756
+
+; Distance between wires for each plane in cm.
+; From SANE.
+hdc_pitch = 1.000252, 1.000252, 1.000252, 1.000252, 1.000252, 1.000252
+            1.000252, 1.000252, 1.000252, 1.000252, 1.000252, 1.000252
+
+; Order in which wires are counted in each plane.
+hdc_wire_counting = 1, 1, 0, 1, 0, 0
+                    1, 1, 0, 1, 0, 0
+
+; z position in cm of each plane measured from focal plane.
+; From SANE.
+hdc_zpos = hdc_1_zpos - 3.6
+           hdc_1_zpos - 1.8
+           hdc_1_zpos - 0.0
+           hdc_1_zpos + 1.8
+           hdc_1_zpos + 3.6
+           hdc_1_zpos + 5.4
+           hdc_2_zpos - 3.6
+           hdc_2_zpos - 1.8
+           hdc_2_zpos - 0.0
+           hdc_2_zpos + 1.8
+           hdc_2_zpos + 3.6
+           hdc_2_zpos + 5.4
+
+; Alpha angle of wires for each plane in radians.
+; From SANE.
+hdc_alpha_angle = ( 90.00000 + pdc_1_roll)*raddeg
+                  (  0.00000 + pdc_1_roll)*raddeg
+                  ( 74.92500 + pdc_1_roll)*raddeg
+                  (105.07500 + pdc_1_roll)*raddeg
+                  (  0.00000 + pdc_1_roll)*raddeg
+                  ( 90.00000 + pdc_1_roll)*raddeg
+                  ( 89.90814 + pdc_2_roll)*raddeg
+                  (  0.01611 + pdc_2_roll)*raddeg
+                  ( 74.85000 + pdc_2_roll)*raddeg
+                  (105.05000 + pdc_2_roll)*raddeg
+                  (  0.01611 + pdc_2_roll)*raddeg
+                  ( 89.90814 + pdc_2_roll)*raddeg
+
+; Beta angle of wires for each plane in radians.
+hdc_beta_angle = pdc_1_pitch*raddeg
+                 pdc_1_pitch*raddeg
+                 pdc_1_pitch*raddeg
+                 pdc_1_pitch*raddeg
+                 pdc_1_pitch*raddeg
+                 pdc_1_pitch*raddeg
+                 pdc_2_pitch*raddeg
+                 pdc_2_pitch*raddeg
+                 pdc_2_pitch*raddeg
+                 pdc_2_pitch*raddeg
+                 pdc_2_pitch*raddeg
+                 pdc_2_pitch*raddeg
+
+; Gamma angle of wires for each plane in radians
+hdc_gamma_angle = pdc_1_yaw*raddeg
+                  pdc_1_yaw*raddeg
+                  pdc_1_yaw*raddeg
+                  pdc_1_yaw*raddeg
+                  pdc_1_yaw*raddeg
+                  pdc_1_yaw*raddeg
+                  pdc_2_yaw*raddeg
+                  pdc_2_yaw*raddeg
+                  pdc_2_yaw*raddeg
+                  pdc_2_yaw*raddeg
+                  pdc_2_yaw*raddeg
+                  pdc_2_yaw*raddeg
diff --git a/PARAM/HMS/DC/hdc_offsets.param b/PARAM/HMS/DC/hdc_offsets.param
index a5561b27..759fed95 100644
--- a/PARAM/HMS/DC/hdc_offsets.param
+++ b/PARAM/HMS/DC/hdc_offsets.param
@@ -1,3 +1,5 @@
+; deprecated parameters
+
 ; cable id's for HMS Drift Chambers
 ; array is 113,12 (wires,planes) but most planes have less than 113 wires)
 
@@ -122,4 +124,3 @@ hdc_card_delay =  0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                   0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                   0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                   0, 0
-
diff --git a/PARAM/HMS/DC/hdc_test_stand.param b/PARAM/HMS/DC/hdc_test_stand.param
index 73a7e92d..53fd4445 100644
--- a/PARAM/HMS/DC/hdc_test_stand.param
+++ b/PARAM/HMS/DC/hdc_test_stand.param
@@ -1,17 +1,17 @@
-; Custom parameter file which should loaded when aiming to
-; analyze HMS drift chamber data with no tracking.
+; TEST-STAND PARAMETERS
+; Custom parameter file which should be loaded when aiming to analyze HMS DC
+; data with no tracking.
 
+; Increase HMS TDC window size.
+hdc_tdc_min_win = -50000, -50000, -50000, -50000, -50000, -50000
+                  -50000, -50000, -50000, -50000, -50000, -50000
+hdc_tdc_max_win = 50000, 50000, 50000, 50000, 50000, 50000
+                  50000, 50000, 50000, 50000, 50000, 50000
 
-; Increase HMS TDC window size
-  hdc_tdc_min_win = -50000,-50000,-50000,-50000,-50000,-50000
-  		    -50000,-50000,-50000,-50000,-50000,-50000
-  hdc_tdc_max_win = 50000,50000,50000,50000,50000,50000
-                    50000,50000,50000,50000,50000,50000
-; Remove hodoscope dependence on tracking
-  hsel_using_scin  = 0
-;  hsel_using_prune = 0
-
-;  Adjust HMS DC plane t = 0
-;   hdc_plane_time_zero = 1500.0,1500.0,1500.0,1500.0,1500.0,1500.0
-;  	                 1500.0,1500.0,1500.0,1500.0,1500.0,1500.0
+; Remove hodoscope dependence on tracking.
+hsel_using_scin  = 0
+; hsel_using_prune = 0
 
+; Adjust HMS DC plane t = 0
+; hdc_plane_time_zero = 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0
+;                       1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0
diff --git a/PARAM/HMS/DC/hdc_tracking.param b/PARAM/HMS/DC/hdc_tracking.param
new file mode 100644
index 00000000..9ca0e789
--- /dev/null
+++ b/PARAM/HMS/DC/hdc_tracking.param
@@ -0,0 +1,30 @@
+; TRACKING PARAMETERS
+
+; Sigma of wire chamber resolution for each plane.
+; From SANE.
+hdc_sigma = 0.020, 0.020, 0.020, 0.020, 0.020, 0.020
+            0.020, 0.020, 0.020, 0.020, 0.020, 0.020
+
+; TDC window limits for each plane.
+hdc_tdc_min_win = -14000, -14000, -14000, -14000, -14000, -14000
+                  -14000, -14000, -14000, -14000, -14000, -14000
+hdc_tdc_max_win = -6000, -6000, -6000, -6000, -6000, -6000
+                  -6000, -6000, -6000, -6000, -8000, -6000
+
+; Conversion factor from TDC clicks to ns.
+hdc_tdc_time_per_channel = -0.10
+
+; Zero time correction for each plane in ns that is added to TDC time.
+; From SANE.
+hdc_plane_time_zero = 1297.19, 1299.88, 1309.39, 1305.01, 1299.32, 1306.23
+                      1313.72, 1310.78, 1315.82, 1316.98, 1308.16, 1316.16
+
+; For wire velocity corrections.
+; From SANE.
+hdc_wire_velocity = 12.0
+hdc_central_time = 7, 9, 3, 4, 6, 5
+                   7, 5, 3, 4, 6, 6
+hdc_drifttime_sign = -1, -1, -1, -1, -1, -1
+                     -1, -1, -1, -1, -1, -1
+hdc_fix_lr = 0
+hdc_fix_propcorr = 0
diff --git a/PARAM/HMS/DC/hdeadwires.param b/PARAM/HMS/DC/hdeadwires.param
index 9d8b527e..fc20ebfa 100644
--- a/PARAM/HMS/DC/hdeadwires.param
+++ b/PARAM/HMS/DC/hdeadwires.param
@@ -1,3 +1,5 @@
+; deprecated parameters
+
 ; list of dead wires in the HMS (plane,wire).  Dead means <20% efficiency.
 hdc_num_deadwires = 6
 
diff --git a/PARAM/HMS/DC/hdriftmap.param b/PARAM/HMS/DC/hdriftmap.param
index 6da2063b..76b2da46 100644
--- a/PARAM/HMS/DC/hdriftmap.param
+++ b/PARAM/HMS/DC/hdriftmap.param
@@ -1,175 +1,190 @@
-; Lookup table
-;number of bins in Meek's time to distance lookup table
-hdriftbins=138
-;number of 1st bin in Meek's table in ns
-hdrift1stbin=-24
-;bin size in ns of Meek's table
+; Contains lookup tables for drift time.
+
+; Number of bins in table.
+hdriftbins = 138
+
+; Time of first bin in ns.
+hdrift1stbin = 0
+
+; Bin size in ns.
 hdriftbinsz=2
-hwc1x1fract=0.0000,0.0001,0.0001,0.0002,0.0003,0.0004,0.0004,0.0005
-0.0007,0.0008,0.0010,0.0012,0.0015,0.0020,0.0028,0.0041,0.0060,0.0086
-0.0121,0.0167,0.0230,0.0311,0.0412,0.0529,0.0658,0.0800,0.0951,0.1114
-0.1284,0.1462,0.1645,0.1838,0.2036,0.2241,0.2451,0.2667,0.2884,0.3099
-0.3319,0.3541,0.3764,0.3989,0.4213,0.4438,0.4662,0.4888,0.5113,0.5334
-0.5555,0.5777,0.5996,0.6208,0.6419,0.6628,0.6838,0.7045,0.7245,0.7446
-0.7639,0.7826,0.8007,0.8181,0.8346,0.8500,0.8646,0.8784,0.8910,0.9029
-0.9134,0.9234,0.9324,0.9405,0.9479,0.9547,0.9608,0.9663,0.9712,0.9756
-0.9795,0.9827,0.9854,0.9878,0.9897,0.9912,0.9925,0.9936,0.9945,0.9952
-0.9957,0.9963,0.9967,0.9971,0.9974,0.9977,0.9979,0.9981,0.9983,0.9984
-0.9986,0.9987,0.9989,0.9990,0.9991,0.9992,0.9992,0.9993,0.9994,0.9995
-0.9995,0.9995,0.9996,0.9996,0.9997,0.9997,0.9997,0.9998,0.9998,0.9998
-0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000
-1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-hwc1y1fract=0.0000,0.0001,0.0001,0.0002,0.0002,0.0003,0.0004,0.0005
-0.0005,0.0006,0.0008,0.0009,0.0011,0.0014,0.0019,0.0025,0.0034,0.0048
-0.0071,0.0109,0.0172,0.0263,0.0385,0.0530,0.0697,0.0879,0.1078,0.1289
-0.1506,0.1727,0.1951,0.2180,0.2406,0.2634,0.2863,0.3092,0.3320,0.3544
-0.3769,0.3986,0.4206,0.4421,0.4634,0.4851,0.5059,0.5269,0.5479,0.5685
-0.5889,0.6096,0.6299,0.6503,0.6704,0.6900,0.7097,0.7289,0.7478,0.7663
-0.7846,0.8022,0.8192,0.8357,0.8517,0.8663,0.8803,0.8931,0.9046,0.9149
-0.9246,0.9328,0.9403,0.9471,0.9529,0.9582,0.9630,0.9672,0.9710,0.9745
-0.9777,0.9802,0.9825,0.9845,0.9864,0.9880,0.9894,0.9906,0.9916,0.9924
-0.9933,0.9940,0.9946,0.9951,0.9957,0.9961,0.9965,0.9969,0.9972,0.9975
-0.9978,0.9980,0.9982,0.9984,0.9986,0.9987,0.9989,0.9990,0.9991,0.9992
-0.9993,0.9994,0.9995,0.9995,0.9996,0.9997,0.9997,0.9998,0.9998,0.9998
-0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000,1.0000,1.0000
-1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-hwc1u1fract=0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0001,0.0001
-0.0001,0.0001,0.0002,0.0002,0.0003,0.0006,0.0013,0.0025,0.0043,0.0071
-0.0108,0.0160,0.0239,0.0345,0.0472,0.0618,0.0783,0.0958,0.1143,0.1339
-0.1539,0.1743,0.1957,0.2175,0.2394,0.2614,0.2839,0.3061,0.3280,0.3503
-0.3724,0.3944,0.4163,0.4382,0.4595,0.4808,0.5023,0.5232,0.5442,0.5652
-0.5861,0.6064,0.6270,0.6474,0.6676,0.6880,0.7077,0.7272,0.7464,0.7654
-0.7838,0.8016,0.8187,0.8350,0.8502,0.8644,0.8778,0.8901,0.9014,0.9119
-0.9214,0.9297,0.9374,0.9441,0.9504,0.9559,0.9608,0.9653,0.9693,0.9730
-0.9764,0.9793,0.9818,0.9841,0.9861,0.9877,0.9891,0.9903,0.9914,0.9923
-0.9930,0.9936,0.9942,0.9948,0.9952,0.9957,0.9961,0.9965,0.9968,0.9971
-0.9975,0.9977,0.9979,0.9981,0.9983,0.9985,0.9987,0.9988,0.9990,0.9991
-0.9992,0.9993,0.9994,0.9994,0.9995,0.9996,0.9996,0.9997,0.9997,0.9997
-0.9998,0.9998,0.9998,0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999
-0.9999,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-hwc1v1fract=0.0000,0.0000,0.0000,0.0000,0.0001,0.0001,0.0001,0.0001
-0.0002,0.0002,0.0003,0.0003,0.0004,0.0005,0.0006,0.0009,0.0014,0.0025
-0.0046,0.0087,0.0152,0.0250,0.0373,0.0519,0.0688,0.0872,0.1066,0.1271
-0.1481,0.1695,0.1911,0.2126,0.2344,0.2566,0.2792,0.3017,0.3238,0.3460
-0.3680,0.3900,0.4117,0.4334,0.4545,0.4761,0.4973,0.5184,0.5390,0.5597
-0.5801,0.6006,0.6215,0.6418,0.6621,0.6822,0.7018,0.7213,0.7403,0.7590
-0.7775,0.7958,0.8132,0.8303,0.8465,0.8616,0.8758,0.8885,0.9002,0.9109
-0.9205,0.9291,0.9368,0.9437,0.9498,0.9554,0.9602,0.9650,0.9691,0.9728
-0.9761,0.9791,0.9817,0.9839,0.9859,0.9875,0.9890,0.9901,0.9912,0.9921
-0.9929,0.9936,0.9942,0.9947,0.9952,0.9956,0.9960,0.9964,0.9967,0.9971
-0.9973,0.9976,0.9978,0.9981,0.9982,0.9984,0.9986,0.9988,0.9989,0.9990
-0.9991,0.9992,0.9993,0.9994,0.9995,0.9995,0.9996,0.9997,0.9997,0.9997
-0.9998,0.9998,0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000
-1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-hwc1y2fract=0.0000,0.0000,0.0000,0.0001,0.0001,0.0001,0.0002,0.0002
-0.0003,0.0003,0.0004,0.0005,0.0007,0.0009,0.0012,0.0016,0.0026,0.0043
-0.0073,0.0121,0.0198,0.0299,0.0427,0.0578,0.0749,0.0937,0.1139,0.1347
-0.1561,0.1781,0.2003,0.2230,0.2455,0.2679,0.2901,0.3122,0.3344,0.3568
-0.3789,0.4010,0.4232,0.4450,0.4663,0.4873,0.5085,0.5298,0.5506,0.5714
-0.5921,0.6128,0.6332,0.6529,0.6729,0.6925,0.7119,0.7314,0.7501,0.7685
-0.7863,0.8038,0.8209,0.8371,0.8523,0.8667,0.8800,0.8925,0.9039,0.9140
-0.9230,0.9312,0.9388,0.9456,0.9516,0.9569,0.9617,0.9660,0.9697,0.9732
-0.9763,0.9789,0.9814,0.9835,0.9853,0.9870,0.9884,0.9895,0.9906,0.9915
-0.9923,0.9931,0.9938,0.9944,0.9949,0.9954,0.9959,0.9963,0.9966,0.9970
-0.9973,0.9975,0.9977,0.9980,0.9982,0.9984,0.9986,0.9987,0.9989,0.9990
-0.9992,0.9993,0.9994,0.9995,0.9995,0.9996,0.9997,0.9997,0.9998,0.9998
-0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000
-1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-hwc1x2fract=0.0000,0.0000,0.0001,0.0001,0.0001,0.0002,0.0002,0.0003
-0.0003,0.0004,0.0005,0.0006,0.0007,0.0009,0.0012,0.0018,0.0029,0.0048
-0.0076,0.0120,0.0183,0.0265,0.0369,0.0489,0.0625,0.0771,0.0930,0.1097
-0.1272,0.1458,0.1650,0.1846,0.2051,0.2256,0.2469,0.2688,0.2909,0.3128
-0.3351,0.3573,0.3798,0.4024,0.4247,0.4470,0.4691,0.4913,0.5136,0.5353
-0.5571,0.5792,0.6009,0.6223,0.6434,0.6643,0.6853,0.7060,0.7262,0.7460
-0.7651,0.7841,0.8026,0.8201,0.8363,0.8521,0.8665,0.8803,0.8930,0.9044
-0.9151,0.9247,0.9337,0.9419,0.9492,0.9558,0.9617,0.9671,0.9718,0.9761
-0.9797,0.9828,0.9854,0.9876,0.9895,0.9910,0.9923,0.9933,0.9941,0.9949
-0.9955,0.9959,0.9964,0.9967,0.9971,0.9973,0.9976,0.9978,0.9980,0.9983
-0.9984,0.9986,0.9987,0.9988,0.9990,0.9991,0.9992,0.9993,0.9993,0.9994
-0.9994,0.9995,0.9995,0.9996,0.9996,0.9997,0.9997,0.9997,0.9998,0.9998
-0.9998,0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000
-1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-hwc2x1fract=0.0000,0.0001,0.0002,0.0002,0.0003,0.0003,0.0004,0.0005
-0.0006,0.0007,0.0008,0.0010,0.0012,0.0014,0.0017,0.0022,0.0030,0.0044
-0.0069,0.0107,0.0160,0.0233,0.0321,0.0431,0.0554,0.0692,0.0839,0.1000
-0.1171,0.1348,0.1536,0.1728,0.1927,0.2131,0.2343,0.2559,0.2775,0.2991
-0.3213,0.3438,0.3664,0.3889,0.4113,0.4338,0.4566,0.4789,0.5017,0.5242
-0.5464,0.5681,0.5901,0.6114,0.6331,0.6551,0.6761,0.6973,0.7178,0.7382
-0.7584,0.7776,0.7963,0.8145,0.8318,0.8481,0.8634,0.8775,0.8905,0.9025
-0.9135,0.9234,0.9326,0.9407,0.9478,0.9544,0.9606,0.9659,0.9708,0.9750
-0.9787,0.9819,0.9846,0.9870,0.9890,0.9906,0.9919,0.9930,0.9939,0.9947
-0.9953,0.9959,0.9964,0.9968,0.9971,0.9975,0.9977,0.9979,0.9982,0.9983
-0.9985,0.9986,0.9987,0.9989,0.9990,0.9991,0.9992,0.9993,0.9993,0.9994
-0.9995,0.9995,0.9996,0.9996,0.9997,0.9997,0.9998,0.9998,0.9998,0.9998
-0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000,1.0000
-1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-hwc2y1fract=0.0000,0.0000,0.0001,0.0001,0.0001,0.0001,0.0001,0.0002
-0.0002,0.0003,0.0003,0.0004,0.0005,0.0006,0.0008,0.0011,0.0017,0.0027
-0.0047,0.0083,0.0142,0.0233,0.0356,0.0507,0.0682,0.0876,0.1083,0.1304
-0.1533,0.1769,0.2002,0.2235,0.2469,0.2702,0.2935,0.3167,0.3394,0.3618
-0.3847,0.4074,0.4295,0.4515,0.4733,0.4946,0.5158,0.5368,0.5576,0.5783
-0.5991,0.6201,0.6404,0.6610,0.6811,0.7011,0.7206,0.7397,0.7587,0.7775
-0.7958,0.8131,0.8303,0.8467,0.8624,0.8770,0.8904,0.9028,0.9140,0.9238
-0.9326,0.9404,0.9473,0.9535,0.9591,0.9639,0.9681,0.9719,0.9752,0.9782
-0.9808,0.9831,0.9850,0.9867,0.9881,0.9894,0.9905,0.9916,0.9924,0.9932
-0.9938,0.9944,0.9950,0.9955,0.9959,0.9962,0.9965,0.9969,0.9971,0.9974
-0.9976,0.9978,0.9980,0.9983,0.9984,0.9986,0.9987,0.9988,0.9990,0.9991
-0.9992,0.9993,0.9994,0.9995,0.9995,0.9996,0.9997,0.9997,0.9998,0.9998
-0.9998,0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000
-1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-hwc2u1fract=0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0001,0.0001
-0.0001,0.0001,0.0001,0.0002,0.0002,0.0002,0.0003,0.0004,0.0006,0.0012
-0.0024,0.0052,0.0107,0.0196,0.0320,0.0474,0.0652,0.0852,0.1066,0.1288
-0.1509,0.1737,0.1965,0.2199,0.2431,0.2663,0.2895,0.3123,0.3350,0.3577
-0.3800,0.4019,0.4240,0.4457,0.4668,0.4882,0.5093,0.5302,0.5510,0.5716
-0.5920,0.6121,0.6323,0.6525,0.6723,0.6919,0.7113,0.7306,0.7497,0.7685
-0.7869,0.8046,0.8222,0.8393,0.8555,0.8704,0.8844,0.8973,0.9087,0.9193
-0.9283,0.9363,0.9435,0.9498,0.9553,0.9602,0.9646,0.9686,0.9721,0.9752
-0.9779,0.9804,0.9827,0.9846,0.9863,0.9878,0.9891,0.9902,0.9912,0.9920
-0.9927,0.9933,0.9939,0.9944,0.9949,0.9952,0.9956,0.9959,0.9963,0.9966
-0.9969,0.9972,0.9974,0.9977,0.9979,0.9981,0.9983,0.9984,0.9986,0.9988
-0.9989,0.9990,0.9991,0.9993,0.9994,0.9995,0.9995,0.9996,0.9996,0.9997
-0.9997,0.9998,0.9998,0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999
-0.9999,0.9999,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-hwc2v1fract=0.0000,0.0000,0.0000,0.0000,0.0001,0.0001,0.0001,0.0001
-0.0001,0.0002,0.0002,0.0003,0.0003,0.0004,0.0006,0.0008,0.0012,0.0020
-0.0038,0.0077,0.0148,0.0252,0.0386,0.0549,0.0738,0.0941,0.1152,0.1374
-0.1601,0.1827,0.2055,0.2288,0.2519,0.2750,0.2981,0.3207,0.3434,0.3662
-0.3881,0.4102,0.4315,0.4530,0.4746,0.4960,0.5171,0.5381,0.5585,0.5791
-0.5993,0.6196,0.6395,0.6594,0.6790,0.6989,0.7177,0.7370,0.7558,0.7744
-0.7926,0.8108,0.8278,0.8440,0.8595,0.8745,0.8879,0.9005,0.9115,0.9218
-0.9307,0.9385,0.9454,0.9514,0.9566,0.9614,0.9657,0.9695,0.9730,0.9760
-0.9789,0.9813,0.9834,0.9853,0.9869,0.9883,0.9895,0.9906,0.9915,0.9922
-0.9929,0.9936,0.9941,0.9947,0.9952,0.9955,0.9959,0.9963,0.9967,0.9970
-0.9973,0.9976,0.9978,0.9980,0.9982,0.9984,0.9986,0.9987,0.9989,0.9991
-0.9992,0.9993,0.9994,0.9995,0.9996,0.9996,0.9997,0.9997,0.9998,0.9998
-0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000,1.0000,1.0000
-1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-hwc2y2fract=0.0000,0.0000,0.0000,0.0001,0.0001,0.0001,0.0002,0.0002
-0.0002,0.0003,0.0004,0.0005,0.0006,0.0007,0.0010,0.0014,0.0022,0.0035
-0.0058,0.0097,0.0163,0.0258,0.0382,0.0539,0.0715,0.0912,0.1122,0.1341
-0.1573,0.1803,0.2038,0.2275,0.2514,0.2749,0.2984,0.3215,0.3442,0.3667
-0.3893,0.4112,0.4332,0.4549,0.4767,0.4985,0.5191,0.5403,0.5612,0.5817
-0.6025,0.6231,0.6436,0.6642,0.6839,0.7036,0.7235,0.7427,0.7617,0.7803
-0.7984,0.8159,0.8328,0.8491,0.8645,0.8788,0.8919,0.9043,0.9152,0.9250
-0.9337,0.9414,0.9482,0.9541,0.9595,0.9641,0.9683,0.9721,0.9753,0.9782
-0.9807,0.9829,0.9849,0.9866,0.9881,0.9894,0.9905,0.9914,0.9922,0.9929
-0.9936,0.9942,0.9948,0.9952,0.9956,0.9960,0.9964,0.9967,0.9970,0.9972
-0.9975,0.9977,0.9979,0.9981,0.9983,0.9985,0.9987,0.9988,0.9989,0.9990
-0.9991,0.9993,0.9994,0.9994,0.9995,0.9996,0.9996,0.9997,0.9997,0.9998
-0.9998,0.9998,0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999
-1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-hwc2x2fract=0.0000,0.0001,0.0001,0.0001,0.0002,0.0002,0.0003,0.0003
-0.0004,0.0005,0.0006,0.0007,0.0009,0.0012,0.0016,0.0023,0.0039,0.0064
-0.0100,0.0151,0.0223,0.0316,0.0430,0.0561,0.0707,0.0864,0.1032,0.1212
-0.1397,0.1592,0.1791,0.1996,0.2206,0.2422,0.2638,0.2856,0.3081,0.3308
-0.3534,0.3759,0.3990,0.4214,0.4438,0.4662,0.4885,0.5107,0.5324,0.5543
-0.5762,0.5979,0.6196,0.6411,0.6621,0.6828,0.7033,0.7238,0.7438,0.7632
-0.7824,0.8007,0.8182,0.8352,0.8514,0.8666,0.8806,0.8934,0.9052,0.9160
-0.9256,0.9346,0.9426,0.9498,0.9561,0.9617,0.9670,0.9715,0.9755,0.9790
-0.9820,0.9846,0.9869,0.9888,0.9904,0.9917,0.9929,0.9938,0.9946,0.9952
-0.9958,0.9962,0.9966,0.9970,0.9973,0.9976,0.9978,0.9981,0.9982,0.9984
-0.9986,0.9987,0.9989,0.9990,0.9991,0.9992,0.9993,0.9994,0.9994,0.9995
-0.9996,0.9996,0.9996,0.9997,0.9997,0.9997,0.9998,0.9998,0.9998,0.9998
-0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000
-1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
+
+hwc1x1fract=0.010023,0.02089,0.03447,0.04935,0.06575,0.08402,0.10200,0.12423,0.14634
+0.16998,0.19415,0.21953,0.24499,0.27093,0.29692,0.32473,0.35047,0.37690,0.40394
+0.42992,0.45336,0.47963,0.50230,0.52635,0.54813,0.56996,0.59016,0.61065,0.62920
+0.64844,0.66679,0.68574,0.70162,0.71678,0.73165,0.74483,0.75784,0.77005,0.78160
+0.79268,0.80387,0.81305,0.82177,0.83115,0.83968,0.84812,0.85552,0.86292,0.87007
+0.87706,0.88434,0.89113,0.89715,0.90252,0.90753,0.91275,0.91836,0.92350,0.92778
+0.93198,0.93518,0.93829,0.94140,0.94520,0.94795,0.95106,0.95356,0.95567,0.95854
+0.96048,0.96213,0.96399,0.96629,0.96803,0.96941,0.97074,0.97244,0.97389,0.97466
+0.97571,0.97676,0.97749,0.97846,0.97935,0.98020,0.98072,0.98157,0.98202,0.98270
+0.98359,0.98436,0.98493,0.98529,0.98590,0.98687,0.98719,0.98751,0.98788,0.98816
+0.98917,0.99026,0.99091,0.99143,0.99176,0.99208,0.99244,0.99301,0.99333,0.99366
+0.99402,0.99454,0.99503,0.99527,0.99531,0.99568,0.99584,0.99628,0.99652,0.99677
+0.99701,0.99725,0.99737,0.99762,0.99790,0.99822,0.99838,0.99855,0.99867,0.99891
+0.99907,0.99923,0.99931,0.99947,0.99956,0.99960,0.99968,0.99980,1.00000
+
+hwc1y1fract=0.00162,0.00410,0.00874,0.01608,0.02777,0.04416,0.06347,0.08629,0.11324
+0.14260,0.17061,0.20166,0.23171,0.26391,0.29387,0.32348,0.35131,0.37870,0.40658
+0.43190,0.45648,0.48171,0.50458,0.52625,0.54752,0.56734,0.58701,0.60511,0.62250
+0.63875,0.65587,0.67149,0.68714,0.70098,0.71436,0.72782,0.74135,0.75419,0.76638
+0.77834,0.78985,0.80100,0.81165,0.82198,0.83167,0.84023,0.84957,0.85800,0.86578
+0.87321,0.88071,0.88743,0.89357,0.89954,0.90462,0.90961,0.91417,0.91794,0.92182
+0.92513,0.92877,0.93207,0.93566,0.93877,0.94216,0.94562,0.94850,0.95137,0.95474
+0.95775,0.96064,0.96376,0.96602,0.96842,0.97090,0.97299,0.97496,0.97645,0.97813
+0.97933,0.98064,0.98204,0.98341,0.98401,0.98488,0.98558,0.98621,0.98685,0.98751
+0.98802,0.98878,0.98922,0.98967,0.99009,0.99049,0.99106,0.99173,0.99222,0.99286
+0.99352,0.99381,0.99430,0.99461,0.99477,0.99499,0.99517,0.99523,0.99528,0.99548
+0.99583,0.99607,0.99663,0.99718,0.99747,0.99763,0.99776,0.99800,0.99820,0.99829
+0.99836,0.99871,0.99887,0.99894,0.99907,0.99916,0.99931,0.99936,0.99942,0.99949
+0.99949,0.99962,0.99962,0.99965,0.99971,0.99978,0.99987,0.99991,1.00000
+
+hwc1u1fract=0.00398,0.00892,0.01588,0.02362,0.03275,0.04395,0.05640,0.07043,0.08642
+0.10347,0.12247,0.14388,0.16656,0.18915,0.21351,0.23952,0.26565,0.29077,0.31672
+0.34270,0.36939,0.39584,0.42072,0.44496,0.47035,0.49415,0.51666,0.53922,0.55969
+0.58013,0.60069,0.61901,0.63677,0.65447,0.66982,0.68619,0.70148,0.71571,0.72926
+0.74260,0.75541,0.76681,0.77786,0.78993,0.80021,0.81073,0.82012,0.82911,0.83812
+0.84551,0.85332,0.86080,0.86793,0.87429,0.88118,0.88687,0.89226,0.89759,0.90209
+0.90701,0.91137,0.91670,0.92180,0.92580,0.92990,0.93390,0.93803,0.94165,0.94513
+0.94787,0.95158,0.95499,0.95741,0.95985,0.96233,0.96463,0.96707,0.96931,0.97090
+0.97273,0.97440,0.97599,0.97747,0.97882,0.97985,0.98103,0.98221,0.98303,0.98389
+0.98465,0.98577,0.98642,0.98736,0.98781,0.98819,0.98866,0.98940,0.98990,0.99063
+0.99116,0.99158,0.99211,0.99234,0.99261,0.99305,0.99346,0.99373,0.99390,0.99423
+0.99443,0.99455,0.99473,0.99485,0.99508,0.99526,0.99576,0.99608,0.99655,0.99697
+0.99735,0.99756,0.99773,0.99782,0.99800,0.99835,0.99853,0.99873,0.99888,0.99903
+0.99906,0.99909,0.99912,0.99915,0.99935,0.99953,0.99973,0.99988,1.00000
+
+hwc1v1fract=0.00580,0.01330,0.02203,0.03243,0.04381,0.05702,0.07421,0.09286,0.11261
+0.13579,0.16045,0.18710,0.21364,0.24161,0.27088,0.30018,0.32624,0.35515,0.38228
+0.40902,0.43640,0.46161,0.48598,0.50878,0.53129,0.55264,0.57352,0.59338,0.61242
+0.63096,0.64823,0.66457,0.68041,0.69542,0.70880,0.72317,0.73596,0.74839,0.76118
+0.77281,0.78341,0.79296,0.80242,0.81290,0.82220,0.83093,0.83863,0.84603,0.85294
+0.85970,0.86660,0.87204,0.87795,0.88356,0.88967,0.89455,0.89942,0.90432,0.90858
+0.91280,0.91664,0.92005,0.92365,0.92683,0.93022,0.93348,0.93695,0.94022,0.94346
+0.94627,0.94926,0.95197,0.95433,0.95625,0.95859,0.96087,0.96278,0.96447,0.96642
+0.96833,0.96997,0.97169,0.97304,0.97453,0.97546,0.97664,0.97749,0.97856,0.97943
+0.98019,0.98138,0.98231,0.98332,0.98400,0.98473,0.98527,0.98572,0.98636,0.98684
+0.98766,0.98825,0.98879,0.98929,0.98972,0.99014,0.99025,0.99065,0.99098,0.99129
+0.99180,0.99217,0.99256,0.99273,0.99307,0.99355,0.99380,0.99414,0.99445,0.99459
+0.99501,0.99524,0.99563,0.99577,0.99594,0.99617,0.99648,0.99665,0.99696,0.99715
+0.99732,0.99755,0.99777,0.99828,0.99870,0.99899,0.99935,0.99961,1.00000
+
+hwc1y2fract=0.00133,0.00393,0.00838,0.01486,0.02499,0.03933,0.05745,0.08036,0.10760
+0.13765,0.16835,0.20049,0.23275,0.26415,0.29454,0.32368,0.35300,0.38126,0.40584
+0.43187,0.45559,0.48100,0.50321,0.52668,0.54773,0.56822,0.58772,0.60622,0.62490
+0.64176,0.65784,0.67377,0.68768,0.70234,0.71524,0.72963,0.74249,0.75433,0.76655
+0.77793,0.78810,0.79967,0.81040,0.81961,0.82924,0.83836,0.84769,0.85542,0.86312
+0.87130,0.87810,0.88472,0.89041,0.89579,0.90089,0.90530,0.90948,0.91379,0.91800
+0.92204,0.92606,0.92979,0.93365,0.93736,0.94117,0.94445,0.94829,0.95150,0.95489
+0.95823,0.96139,0.96444,0.96684,0.96943,0.97149,0.97352,0.97578,0.97759,0.97956
+0.98136,0.98272,0.98405,0.98507,0.98581,0.98658,0.98724,0.98803,0.98830,0.98898
+0.98963,0.99015,0.99060,0.99094,0.99148,0.99182,0.99236,0.99311,0.99354,0.99406
+0.99449,0.99478,0.99517,0.99535,0.99564,0.99580,0.99616,0.99634,0.99659,0.99675
+0.99697,0.99715,0.99724,0.99742,0.99747,0.99756,0.99776,0.99794,0.99815,0.99824
+0.99835,0.99844,0.99849,0.99867,0.99887,0.99905,0.99921,0.99934,0.99937,0.99944
+0.99959,0.99971,0.99973,0.99982,0.99982,0.99989,0.99989,0.99993,1.00000
+
+hwc1x2fract=0.00841,0.01726,0.02881,0.04040,0.05336,0.06825,0.08367,0.10129,0.12053
+0.14234,0.16343,0.18757,0.21164,0.23530,0.26214,0.28874,0.31559,0.34235,0.36887
+0.39386,0.41990,0.44565,0.47161,0.49406,0.51773,0.54067,0.56264,0.58417,0.60578
+0.62397,0.64272,0.66180,0.67995,0.69625,0.71319,0.72828,0.74353,0.75794,0.77170
+0.78462,0.79689,0.80856,0.81838,0.82836,0.83863,0.84740,0.85512,0.86289,0.86961
+0.87686,0.88342,0.88921,0.89509,0.89996,0.90571,0.91034,0.91589,0.92100,0.92519
+0.92901,0.93279,0.93625,0.93976,0.94269,0.94555,0.94801,0.95086,0.95255,0.95489
+0.95686,0.95851,0.96080,0.96306,0.96551,0.96708,0.96881,0.97058,0.97183,0.97364
+0.97497,0.97642,0.97767,0.97871,0.97980,0.98060,0.98125,0.98217,0.98330,0.98418
+0.98479,0.98555,0.98624,0.98684,0.98736,0.98801,0.98841,0.98881,0.98905,0.98934
+0.98966,0.98998,0.99042,0.99086,0.99123,0.99171,0.99215,0.99260,0.99304,0.99320
+0.99344,0.99364,0.99372,0.99388,0.99408,0.99433,0.99441,0.99457,0.99497,0.99533
+0.99545,0.99561,0.99585,0.99618,0.99634,0.99658,0.99690,0.99722,0.99759,0.99779
+0.99827,0.99839,0.99851,0.99875,0.99891,0.99907,0.99928,0.99936,1.00000
+
+hwc2x1fract=0.00489,0.01088,0.01743,0.02515,0.03469,0.04551,0.05803,0.07238,0.08804
+0.10482,0.12312,0.14230,0.16288,0.18402,0.20636,0.22862,0.25139,0.27465,0.29794
+0.32047,0.34303,0.36674,0.38892,0.41062,0.43218,0.45276,0.47297,0.49268,0.51171
+0.53078,0.54890,0.56641,0.58346,0.60024,0.61612,0.63105,0.64642,0.66105,0.67572
+0.68937,0.70297,0.71572,0.72826,0.74060,0.75229,0.76376,0.77455,0.78465,0.79466
+0.80490,0.81415,0.82324,0.83128,0.83896,0.84689,0.85404,0.86116,0.86806,0.87427
+0.88051,0.88590,0.89172,0.89708,0.90202,0.90726,0.91166,0.91587,0.92056,0.92494
+0.92916,0.93336,0.93726,0.94074,0.94426,0.94757,0.95091,0.95388,0.95674,0.95971
+0.96235,0.96474,0.96697,0.96907,0.97083,0.97260,0.97442,0.97593,0.97739,0.97885
+0.98012,0.98125,0.98223,0.98310,0.98410,0.98493,0.98575,0.98646,0.98696,0.98754
+0.98841,0.98916,0.98968,0.99022,0.99088,0.99141,0.99191,0.99238,0.99290,0.99325
+0.99366,0.99404,0.99429,0.99464,0.99489,0.99521,0.99543,0.99571,0.99591,0.99620
+0.99650,0.99678,0.99699,0.99718,0.99743,0.99756,0.99776,0.99795,0.99809,0.99834
+0.99851,0.99872,0.99889,0.99902,0.99921,0.99934,0.99957,0.99979,1.00000
+
+hwc2y1fract=0.00221,0.00495,0.00877,0.01359,0.01918,0.02666,0.03473,0.04453,0.05562
+0.06888,0.08430,0.10080,0.11868,0.13789,0.15831,0.17942,0.20056,0.22237,0.24468
+0.26619,0.28820,0.31000,0.33257,0.35403,0.37524,0.39523,0.41537,0.43443,0.45304
+0.47131,0.48902,0.50591,0.52232,0.53901,0.55511,0.57012,0.58441,0.59808,0.61189
+0.62548,0.63822,0.65113,0.66312,0.67418,0.68568,0.69683,0.70825,0.71871,0.72914
+0.73905,0.74884,0.75813,0.76768,0.77716,0.78611,0.79438,0.80331,0.81189,0.82009
+0.82850,0.83629,0.84389,0.85158,0.85900,0.86678,0.87377,0.88068,0.88771,0.89401
+0.90018,0.90600,0.91200,0.91741,0.92284,0.92790,0.93250,0.93698,0.94118,0.94546
+0.94904,0.95186,0.95503,0.95770,0.96039,0.96265,0.96469,0.96642,0.96838,0.97023
+0.97188,0.97330,0.97468,0.97581,0.97715,0.97842,0.97955,0.98063,0.98187,0.98302
+0.98403,0.98500,0.98580,0.98659,0.98742,0.98817,0.98888,0.98961,0.99026,0.99088
+0.99152,0.99212,0.99272,0.99307,0.99355,0.99399,0.99438,0.99471,0.99520,0.99560
+0.99588,0.99628,0.99659,0.99681,0.99707,0.99725,0.99758,0.99785,0.99817,0.99837
+0.99860,0.99886,0.99904,0.99922,0.99943,0.99960,0.99972,0.99985,1.00000
+
+hwc2u1fract=0.00379,0.00830,0.01338,0.01995,0.02761,0.03638,0.04694,0.05922,0.07375
+0.08955,0.10704,0.12618,0.14574,0.16695,0.18863,0.21090,0.23311,0.25590,0.27876
+0.30145,0.32359,0.34586,0.36832,0.38955,0.41039,0.43098,0.45070,0.46956,0.48793
+0.50551,0.52244,0.53887,0.55513,0.57053,0.58600,0.60085,0.61520,0.62895,0.64265
+0.65593,0.66914,0.68230,0.69489,0.70698,0.71870,0.73022,0.74153,0.75262,0.76300
+0.77321,0.78328,0.79281,0.80256,0.81130,0.81985,0.82823,0.83583,0.84322,0.85012
+0.85631,0.86292,0.86858,0.87376,0.87917,0.88455,0.88999,0.89527,0.90022,0.90505
+0.90965,0.91432,0.91881,0.92310,0.92726,0.93122,0.93480,0.93841,0.94194,0.94551
+0.94864,0.95138,0.95435,0.95712,0.95979,0.96205,0.96442,0.96639,0.96824,0.96984
+0.97150,0.97299,0.97440,0.97569,0.97689,0.97784,0.97903,0.98002,0.98118,0.98220
+0.98310,0.98393,0.98465,0.98544,0.98623,0.98704,0.98769,0.98833,0.98891,0.98954
+0.99009,0.99065,0.99102,0.99155,0.99217,0.99258,0.99300,0.99337,0.99373,0.99411
+0.99441,0.99464,0.99498,0.99543,0.99594,0.99647,0.99691,0.99719,0.99749,0.99779
+0.99816,0.99837,0.99859,0.99886,0.99907,0.99933,0.99951,0.99971,1.00000
+
+hwc2v1fract=0.00288,0.00650,0.01128,0.01757,0.02438,0.03290,0.04248,0.05390,0.06736
+0.08262,0.09958,0.11796,0.13723,0.15713,0.17782,0.19995,0.22219,0.24485,0.26757
+0.29009,0.31224,0.33420,0.35570,0.37722,0.39805,0.41826,0.43765,0.45671,0.47523
+0.49369,0.51095,0.52765,0.54328,0.55853,0.57339,0.58869,0.60327,0.61736,0.63120
+0.64387,0.65678,0.66940,0.68187,0.69366,0.70560,0.71742,0.72889,0.74019,0.75072
+0.76101,0.77074,0.78032,0.78953,0.79846,0.80751,0.81551,0.82353,0.83101,0.83786
+0.84461,0.85116,0.85747,0.86350,0.86901,0.87446,0.87982,0.88511,0.89009,0.89497
+0.89970,0.90455,0.90930,0.91405,0.91846,0.92265,0.92678,0.93073,0.93466,0.93813
+0.94127,0.94425,0.94726,0.95006,0.95268,0.95521,0.95755,0.96004,0.96219,0.96412
+0.96592,0.96767,0.96928,0.97076,0.97205,0.97339,0.97469,0.97595,0.97706,0.97811
+0.97917,0.98012,0.98131,0.98230,0.98322,0.98395,0.98476,0.98549,0.98614,0.98663
+0.98723,0.98788,0.98863,0.98916,0.98978,0.99023,0.99081,0.99155,0.99224,0.99273
+0.99325,0.99367,0.99411,0.99448,0.99484,0.99533,0.99590,0.99621,0.99652,0.99691
+0.99741,0.99780,0.99827,0.99853,0.99882,0.99908,0.99943,0.99975,1.00000
+
+hwc2y2fract=0.00160,0.00444,0.01062,0.02252,0.04178,0.06667,0.09457,0.12185,0.14828
+0.17321,0.19657,0.21935,0.24123,0.26183,0.28100,0.29932,0.31591,0.33280,0.34835
+0.36309,0.37696,0.39136,0.40499,0.41801,0.43102,0.44397,0.45626,0.46859,0.48057
+0.49258,0.50376,0.51498,0.52613,0.53714,0.54779,0.55825,0.56813,0.57848,0.58849
+0.59807,0.60775,0.61726,0.62647,0.63596,0.64509,0.65415,0.66298,0.67160,0.68001
+0.68776,0.69576,0.70352,0.71119,0.71877,0.72641,0.73385,0.74144,0.74869,0.75599
+0.76358,0.77097,0.77815,0.78552,0.79244,0.80001,0.80698,0.81437,0.82208,0.83020
+0.83830,0.84634,0.85478,0.86309,0.87142,0.87935,0.88763,0.89541,0.90281,0.90996
+0.91614,0.92222,0.92753,0.93246,0.93710,0.94136,0.94546,0.94895,0.95198,0.95471
+0.95757,0.96005,0.96271,0.96498,0.96713,0.96909,0.97090,0.97241,0.97381,0.97511
+0.97650,0.97790,0.97906,0.98010,0.98125,0.98232,0.98334,0.98436,0.98519,0.98596
+0.98661,0.98723,0.98782,0.98860,0.98924,0.98985,0.99050,0.99123,0.99176,0.99228
+0.99283,0.99333,0.99383,0.99424,0.99473,0.99521,0.99569,0.99610,0.99650,0.99682
+0.99725,0.99755,0.99788,0.99824,0.99860,0.99896,0.99931,0.99969,1.00000
+
+hwc2x2fract=0.00395,0.00888,0.01485,0.02199,0.03022,0.04000,0.05108,0.06378,0.07859
+0.09479,0.11265,0.13127,0.15138,0.17208,0.19378,0.21665,0.24001,0.26354,0.28690
+0.30961,0.33310,0.35610,0.37755,0.39974,0.42105,0.44105,0.46108,0.48066,0.49966
+0.51830,0.53617,0.55306,0.56918,0.58553,0.60128,0.61669,0.63218,0.64669,0.66098
+0.67478,0.68766,0.70075,0.71356,0.72610,0.73756,0.74866,0.75939,0.76957,0.78017
+0.78974,0.79904,0.80810,0.81654,0.82494,0.83299,0.84084,0.84793,0.85505,0.86163
+0.86789,0.87423,0.87983,0.88542,0.89043,0.89547,0.90085,0.90593,0.91055,0.91521
+0.91932,0.92351,0.92783,0.93138,0.93526,0.93878,0.94227,0.94577,0.94897,0.95221
+0.95493,0.95768,0.96030,0.96269,0.96491,0.96710,0.96910,0.97089,0.97257,0.97413
+0.97544,0.97682,0.97818,0.97948,0.98063,0.98176,0.98267,0.98355,0.98439,0.98520
+0.98593,0.98657,0.98725,0.98788,0.98845,0.98911,0.98961,0.99009,0.99048,0.99097
+0.99139,0.99190,0.99219,0.99251,0.99288,0.99319,0.99365,0.99404,0.99445,0.99482
+0.99518,0.99556,0.99586,0.99612,0.99637,0.99667,0.99709,0.99737,0.99761,0.99781
+0.99796,0.99810,0.99829,0.99861,0.99895,0.99915,0.99949,0.99973,1.00000
diff --git a/PARAM/HMS/GEN/hcana.param b/PARAM/HMS/GEN/hcana.param
index d5677d21..da2f2c65 100644
--- a/PARAM/HMS/GEN/hcana.param
+++ b/PARAM/HMS/GEN/hcana.param
@@ -8,13 +8,9 @@ href_nsperchan = 0.1
 href_offset = 0.0
 ;
 
-hhodo_num_planes = 4
-hhodo_plane_names = "1x 1y 2x 2y"
-
 hcal_num_layers = 4
 
 rraster_num_signals = 4
-htofusinginvadc=0
  hcer_tot_pmts = 2
 # Exclusion band width for the calorimeter's fiducial volume.
 hcal_fv_delta = 5.
@@ -29,20 +25,5 @@ hcal_layer_names = "1pr 2ta 3ta 4ta"
 
 haero_num_pairs = 8
 
-# Names of planes so that parameter names can be constructed
-hdc_plane_names = "1x1 1y1 1u1 1v1 1y2 1x2 2x1 2y1 2u1 2v1 2y2 2x2"
-
 # The following were defined in REPLAY.PARAM
 h_recon_coeff_filename =    'DATFILES/hms_recon_coeff.dat'  ;hms optics matrix
-
-# The following are set to zero to replicate historical ENGINE behavior
-# For new analyses they should be set to 1.  If not defined here,
-# hcana will default 1, the new and correct behaviour.
-
-# If 1, Let a hit have different L/R assignment for different space points
-# instead of L/R assignment from first sp it appears in.
-hdc_fix_lr = 0
-# If 1, don't do the the propagation along the wire each time the hit
-# appears in a space point.  (Which means the correction accumulates)
-hdc_fix_propcorr = 0
-
diff --git a/PARAM/HMS/GEN/htracking.param b/PARAM/HMS/GEN/htracking.param
index 99b502a6..3ee7a1ea 100644
--- a/PARAM/HMS/GEN/htracking.param
+++ b/PARAM/HMS/GEN/htracking.param
@@ -1,26 +1,25 @@
-; hms pattern recognition and tracking code parameters
-; hmax_pr_hits is the maximum number of decoded hits allowed in a chamber for
-;              pattern recognition to proceed. This protexts against unusual
-;              kami kaze events which hang the analyzer to a long time.
-;
-        hmax_pr_hits =    35, 35
-; maximum number of possible focal plane tracks, must be <= 20
-        hntracks_max_fp = 10
-; if h_remove_sppt_if_one_y_plane=1 then remove space point if space point
-;    contains only one y plane.
-; Recommend h_remove_sppt_if_one_y_plane=0.  
-        h_remove_sppt_if_one_y_plane=0
-; hminhit(i)   minimum number of hits in each space point (one for each chamber)
-	hmin_hit =     5, 5
-; hmin_combos(i) minimum number of pairs in each space point ( one per chamber)
-; should be 3/3 for 4/6 tracking, and 4/4 for 5/6 tracking (JRA)
-	hmin_combos = 4, 4 
-; hspace_point_criterion(i) minimum separation of distinct space points
-; recommended value for hspace_point_criterion ( based on meeting
-; Feb 2003) 
-       hspace_point_criterion = 1.0, 1.0
+; Maximum number of hits allowed in chambers for pattern recognition to proceed (one for each chamber)
+hmax_pr_hits = 35, 35
+
+; Maximum number of possible focal plane tracks, must be <= 20
+hntracks_max_fp = 10
+
+; Remove space point if space point contains only one y plane (0 recommended)
+h_remove_sppt_if_one_y_plane = 0
+
+; Minimum number of hits in each space point (one per chamber)
+hmin_hit = 4, 4
+
+; Minimum number of pairs in each space point (one per chamber)
+; Should be 3/3 for 4/6 tracking, and 4/4 for 5/6 tracking
+hmin_combos = 3, 3 
+
+; Minimum separation of distinct space points
+hspace_point_criterion = 1.0, 1.0
+
+; Maximum difference between xp returned by stub and expected xp
+hstub_max_xpdiff = .05
 
-        hstub_max_xpdiff = .05
 ;
 ; The following four criteria are applied to the stub fit results at the
 ; focal plane position to link stubs to tracks
@@ -61,8 +60,11 @@
 
 ; hstat_maxchisq          chisquared limit for tracks used to measure hodo. eff.
   hstat_maxchisq = 10.
+; if both hsel_using_scin = 0 and hsel_using_prune = 0 then best chi2 track is used.
 ; hsel_using_scin         uses scintillator for track selection
-  hsel_using_scin = 1
+  hsel_using_scin = 0
+; hsel_using_prune         using prune
+  hsel_using_prune = 0
 ; hstat_slop              distance from center of scin. to count as expecting hit
   hstat_slop = 2.
 ; hstat_mineff            warning level for scin. effic.
diff --git a/PARAM/HMS/HODO/hhodo.param b/PARAM/HMS/HODO/hhodo.param
index 0621446a..27b0e24f 100644
--- a/PARAM/HMS/HODO/hhodo.param
+++ b/PARAM/HMS/HODO/hhodo.param
@@ -1,15 +1,27 @@
-; hstart_time_center  center of allowed time window                             
+hcosmicflag=1
+; for now manually set hte FADC mode
+;  1 == Use the pulse int - pulse ped
+;  2 == Use the sample integral - known ped
+;  3 == Use the sample integral - sample ped
+; if not set then defaults to use the raw pulse integral
+hhodo_adc_mode=1
+; 
+; hhodo_tdc_offset is array of time offsets for all paddles in a plane
+;   to move the tdc to between 0 and 4000 channels.
+  hhodo_tdc_offset = 1120, 1120, 1120, 1120
+;  hhodo_tdc_offset = 1000, 1000, 1000, 1000
+; hstart_time_center  center of allowed time window (ns)
    hstart_time_center = 32.                                                     
 ; hstart_time_slop    1/2 width of time window                                  
-   hstart_time_slop = 25.                                                       
+   hstart_time_slop = 100.                                                       
 ; hscin_tdc_min       minimum tdc value in hms scin                             
-    hscin_tdc_min = 0                                                           
+    hscin_tdc_min = -500                                                           
 ; hscin_tdc_max       maximum allowed tdc value                                 
    hscin_tdc_max = 4000                                                         
 ; hscin_tdc_to_time   scin tdc time per channel                                 
-   hscin_tdc_to_time = 0.0259                                                   
+   hscin_tdc_to_time = 0.1                                                  
 ; tof and you figured out good values
-   htof_tolerance = 3.0
+   htof_tolerance = 50.0
 ;                                                                               
 ; hms_tof_params                                                                
 ; hnum_scin_counters, hhodo_zpos, hhodo_center_coord, hhodo_width               
@@ -17,24 +29,130 @@
 ;    hhodo_pos_coord and hhodo_neg_coord are not yet used                       
 ;                                                                               
      hhodo_slop     =    2.,  2.,  4.,  4.                                      
+;   
+htofusinginvadc=1
 ;                                                                               
-     hhodo_vel_light =  14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-                        14.0,14.8,15.5,15.8                                     
-;                                                                               
+                                                                                
+hhodo_pos_invadc_offset = 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000 
+
+;
+hhodo_neg_invadc_offset = 2.63295,0.592977,0.810207,2.17447
+1.6381,-2.44172,-0.167998,1.613
+2.12397,-1.11413,1.12234,2.70131
+2.23737,-3.22432,-0.0328571,2.88366
+1.84971,-2.55502,-0.325019,2.75559
+1.77137,-1.90664,-0.0557544,1.354
+1.86089,-1.9991,-1.08851,-2.15107
+2.74336,-2.60574,0.388706,3.63254
+1.53963,-1.67298,-1.06672,3.14031
+2.25306,-2.75735,0.900716,2.54422
+1.72962,0.0,-0.000925926,0.0
+0.136985,0.0,-1.90318,0.0
+1.06083,0.0,-4.18178,0.0
+1.92537,0.0,-0.688612,0.0
+1.36458,0.0,0.641606,0.0
+1.95569,0.0,-1.16377,0.0
+ 
+;
+hhodo_pos_invadc_linear = 15.0,15.0,15.0,15.0        
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+hhodo_neg_invadc_linear = 15.0,15.0,15.0,15.0        
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+
+hhodo_pos_invadc_adc =   0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+;
+hhodo_neg_invadc_adc =   0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+;
+     hhodo_vel_light =  15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+ ;                                                                               
       hhodo_pos_sigma = .3,.3,.3,.3,.3,.3,.3,.3                                 
                         .3,.3,.3,.3,.3,.3,.3,.3                                 
                         .3,.3,.3,.3,.3,.3,.3,.3                                 
@@ -53,111 +171,8 @@
                         .3,.3,.3,.3,.3,.3,.3,.3                                 
                         .3,.3,.3,.3,.3,.3,.3,.3                                 
                                                                                 
-  hhodo_pos_minph = 125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                                                                                
-  hhodo_neg_minph = 125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-                    125,135,125,120                                             
-  hhodo_pos_phc_coeff = -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                        -1.45,-1.1,-1.,-1.2                                     
-                                                                                
-  hhodo_neg_phc_coeff = -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                        -1.3,-1.1,-1.2,-1.4                                     
-                                                                                
-                                                                                
-; csa 9/8/98 -- I had to hand-twaddle a few of the values                       
-; based on (relative) offsets of older hhodo.param                              
-                                                                                
-                                                                                
-hhodo_pos_time_offset =   6.7992,   0.0000,  -7.1126,   4.7475
-                         -1.1436,   0.4026,  -0.1443,   8.8108
-                          5.1911,   1.7935,  -7.0357,   7.7590
-                          5.6115,   0.1231,  -4.3477,  12.8552
-                          1.2354,  -6.4896,   8.6617,   9.3857
-                          1.8675,  -0.3651,  -4.7731,   7.9034
-                          6.4738,  -1.0463,   1.1786,   8.9740
-                          4.5395,   2.3368,  -4.4623,   4.5968
-                          2.6241,  -2.4480,  -6.4964,   6.2390
-                          4.2056,   0.0000,  -0.8924,  -1.2482
-                          6.1303,   0.0000,  -7.9503,   0.0000
-                          5.5326,   0.0000,  -0.3564,   0.0000
-                          4.3238,   0.0000,   0.8133,   0.0000
-                          1.7467,   0.0000,   1.9021,   0.0000
-                          4.1333,   0.0000,  -5.4523,   0.0000
-                          0.9416,   0.0000,   1.0158,   0.0000
-hhodo_neg_time_offset =  -2.1515,   0.0000,   2.5771,  11.2323
-                         -1.6547,  -2.2888,  10.1063,  13.3595
-                         -3.8050,  -4.1933,   3.4133,  15.0118
-                          0.7925,  -1.9592,  10.9311,  15.1057
-                         -1.2621,  -4.6538,   2.3474,  10.2752
-                         -2.9459,   1.2711,   9.6479,   7.8567
-                          1.2439,  -3.4946,   3.7283,  10.7897
-                         -4.8205,   1.1743,   8.5908,  11.1753
-                         -6.3324,  -5.2290,   0.2444,  14.7184
-                          1.8168,   0.0000,  11.2387,  15.5869
-                          0.4240,   0.0000,   8.2657,   0.0000
-                         -0.9945,   0.0000,   9.2381,   0.0000
-                         -2.3217,   0.0000,   5.1855,   0.0000
-                         -5.1166,   0.0000,  10.0781,   0.0000
-                          0.2537,   0.0000,   6.2455,   0.0000
-                          7.0554,   0.0000,  12.8714,   0.0000
                                                                                 
+                                                                               
 ;                                                                               
 hhodo_pos_ped_limit = 1000,1000,1000,1000,1000,1000,1000,1000                   
                       1000,1000,1000,1000,1000,1000,1000,1000                   
@@ -175,5 +190,140 @@ hhodo_neg_ped_limit = 1000,1000,1000,1000,1000,1000,1000,1000
                       1000,1000,1000,1000,1000,1000,1000,1000                   
                       1000,1000,1000,1000,1000,1000,1000,1000                   
                       1000,1000,1000,1000,1000,1000,1000,1000                   
-                      1000,1000,1000,1000,1000,1000,1000,1000                   
-                                                                                
+                      1000,1000,1000,1000,1000,1000,1000,1000  
+; new param                 
+hhodo_pos_invadc_offset =   -0.00,   -0.00,   -0.70,   -0.00
+                            -0.00,   -0.00,   -0.31,   -2.63
+                            -0.00,    0.13,   -1.03,   -0.58
+                             1.43,   -0.51,   -0.87,   -0.63
+                             0.60,   -0.75,   -0.66,   -1.54
+                             1.73,   -0.66,   -0.82,   -1.46
+                             0.89,    0.08,   -0.92,   -0.88
+                             2.10,    0.20,   -0.32,   -0.39
+                             0.31,   -0.89,   -1.14,   -2.15
+                            -0.00,   -0.00,   -1.52,   -0.00
+                             0.80,   -0.00,   -0.75,   -0.00
+                            -0.25,   -0.00,   -2.36,   -0.00
+                             0.54,   -0.00,   -0.00,   -0.00
+                             0.47,   -0.00,   -0.00,   -0.00
+                            -0.00,   -0.00,   -0.00,   -0.00
+                            -0.00,   -0.00,   -0.00,   -0.00
+
+hhodo_neg_invadc_offset =   -0.00,   -0.00,   -0.97,   -0.00
+                            -0.00,   -0.00,    0.06,   -2.16
+                            -0.00,   -0.58,   -1.60,   -0.95
+                            -0.09,    0.95,   -0.45,   -0.49
+                            -0.79,   -0.05,    0.21,   -1.82
+                             0.32,   -1.02,   -0.05,   -0.52
+                             0.02,    0.19,    0.90,    3.75
+                            -0.35,    0.35,    0.26,   -1.65
+                            -0.27,   -1.32,    0.33,   -2.44
+                            -1.42,   -0.00,   -1.48,   -0.00
+                             0.14,   -0.00,    0.14,   -0.00
+                             0.24,   -0.00,   -0.06,   -0.00
+                             0.16,   -0.00,   -0.00,   -0.00
+                            -0.83,   -0.00,   -0.00,   -0.00
+                            -0.00,   -0.00,   -0.00,   -0.00
+                            -0.00,   -0.00,   -0.00,   -0.00
+
+hhodo_pos_invadc_linear =   15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            14.56,   15.00,   15.00,   15.00
+                            12.91,   15.00,   15.00,   15.00
+                            12.81,   14.97,   15.00,   15.00
+                            14.29,   15.00,   15.00,   15.00
+                            12.94,   14.21,   14.85,   15.00
+                            13.27,   13.60,   15.00,   15.00
+                            13.44,   15.00,   15.00,   15.00
+                            14.24,   15.00,   15.00,   15.00
+                            13.24,   15.00,   14.33,   15.00
+                            13.20,   15.00,   15.00,   15.00
+                            13.94,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+
+hhodo_neg_invadc_linear =   15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   14.56,   15.00,   15.00
+                            14.55,   14.16,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            13.47,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            14.69,   14.21,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            14.74,   15.00,   15.00,   15.00
+                            14.66,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            13.71,   15.00,   15.00,   15.00
+                            12.33,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+
+hhodo_pos_invadc_adc=    -0.00,    -0.00,   106.88,    -0.00
+                        -0.00,    -0.00,   109.67,   122.91
+                        -0.00,   102.28,   127.88,   117.82
+                       100.32,    76.55,   109.30,   139.97
+                        72.45,    90.73,   111.62,   121.49
+                        59.46,    83.45,   116.54,   123.92
+                        95.04,    91.79,   125.49,   127.74
+                        62.95,    53.50,   113.46,   106.91
+                        78.26,    49.84,   100.37,   141.06
+                        73.52,    -0.00,   101.78,    -0.00
+                        94.23,    -0.00,   129.39,    -0.00
+                        75.59,    -0.00,    94.17,    -0.00
+                        79.87,    -0.00,    -0.00,    -0.00
+                        63.90,    -0.00,    -0.00,    -0.00
+                        -0.00,    -0.00,    -0.00,    -0.00
+                        -0.00,    -0.00,    -0.00,    -0.00
+
+hhodo_neg_invadc_adc=    -0.00,    -0.00,   128.32,    -0.00
+                        -0.00,    -0.00,   113.16,   159.99
+                        -0.00,    68.41,   116.51,   119.18
+                        73.18,    65.95,   112.50,   122.16
+                        96.71,    91.23,    96.00,   103.37
+                        52.93,    87.48,   103.59,   122.65
+                        72.72,    82.28,   118.40,   140.72
+                        76.58,    68.02,   104.25,   120.16
+                        73.69,    98.85,    91.95,   119.78
+                        72.26,    -0.00,    89.16,    -0.00
+                        70.89,    -0.00,   113.44,    -0.00
+                        72.26,    -0.00,   101.96,    -0.00
+                        76.14,    -0.00,    -0.00,    -0.00
+                        36.51,    -0.00,    -0.00,    -0.00
+                        -0.00,    -0.00,    -0.00,    -0.00
+                        -0.00,    -0.00,    -0.00,    -0.00
+
+hhodo_pos_sigma =  100.00,  100.00,    0.28,  100.00
+                   100.00,  100.00,    0.31,    0.47
+                   100.00,    0.27,    0.33,    0.34
+                     0.26,    0.32,    0.35,    0.44
+                     0.30,    0.30,    0.33,    0.51
+                     0.38,    0.28,    0.22,    0.41
+                     0.25,    0.30,    0.32,    0.46
+                     0.35,    0.30,    0.31,    0.34
+                     0.26,    0.25,    0.24,    0.41
+                     0.27,  100.00,    0.27,  100.00
+                     0.25,  100.00,    0.37,  100.00
+                     0.26,  100.00,    0.24,  100.00
+                     0.34,  100.00,  100.00,  100.00
+                     0.37,  100.00,  100.00,  100.00
+                   100.00,  100.00,  100.00,  100.00
+                   100.00,  100.00,  100.00,  100.00
+
+hhodo_neg_sigma =  100.00,  100.00,    0.32,  100.00
+                   100.00,  100.00,    0.33,    0.52
+                   100.00,    0.31,    0.35,    0.31
+                     0.25,    0.30,    0.34,    0.32
+                     0.28,    0.32,    0.27,    0.56
+                     0.36,    0.33,    0.28,    0.31
+                     0.26,    0.31,    0.37,    0.42
+                     0.32,    0.30,    0.28,    0.33
+                     0.24,    0.28,    0.20,    0.44
+                     0.27,  100.00,    0.24,  100.00
+                     0.24,  100.00,    0.29,  100.00
+                     0.25,  100.00,    0.25,  100.00
+                     0.28,  100.00,  100.00,  100.00
+                     0.33,  100.00,  100.00,  100.00
+                   100.00,  100.00,  100.00,  100.00
+                   100.00,  100.00,  100.00,  100.00
diff --git a/PARAM/HMS/HODO/hhodo.pos b/PARAM/HMS/HODO/hhodo.pos
index 2e37fd06..d543d89a 100644
--- a/PARAM/HMS/HODO/hhodo.pos
+++ b/PARAM/HMS/HODO/hhodo.pos
@@ -1,3 +1,7 @@
+
+hhodo_num_planes = 4
+hhodo_plane_names = "1x 1y 2x 2y"
+;
       hpathlength_central = 2500
 ; Z positions of hodoscopes
       hscin_1x_zpos =  (89.14-11.31)
diff --git a/PARAM/HMS/HODO/hhodo_3of4trigger.param b/PARAM/HMS/HODO/hhodo_3of4trigger.param
new file mode 100644
index 00000000..c59e5c44
--- /dev/null
+++ b/PARAM/HMS/HODO/hhodo_3of4trigger.param
@@ -0,0 +1,191 @@
+hcosmicflag=1
+; for now manually set hte FADC mode
+;  1 == Use the pulse int - pulse ped
+;  2 == Use the sample integral - known ped
+;  3 == Use the sample integral - sample ped
+; if not set then defaults to use the raw pulse integral
+hhodo_adc_mode=1
+; 
+; hhodo_tdc_offset is array of time offsets for all paddles in a plane
+;   to move the tdc to between 0 and 4000 channels.
+  hhodo_tdc_offset = 1050, 1050, 1050, 1050
+; hstart_time_center  center of allowed time window (ns)
+   hstart_time_center = 32.                                                     
+; hstart_time_slop    1/2 width of time window                                  
+   hstart_time_slop = 25.                                                       
+; hscin_tdc_min       minimum tdc value in hms scin                             
+    hscin_tdc_min = 0                                                           
+; hscin_tdc_max       maximum allowed tdc value                                 
+   hscin_tdc_max = 4000                                                         
+; hscin_tdc_to_time   scin tdc time per channel                                 
+   hscin_tdc_to_time = 0.1                                                  
+; tof and you figured out good values
+   htof_tolerance = 30.0
+;                                                                               
+; hms_tof_params                                                                
+; hnum_scin_counters, hhodo_zpos, hhodo_center_coord, hhodo_width               
+; are all calculated within h_init_scin                                         
+;    hhodo_pos_coord and hhodo_neg_coord are not yet used                       
+;                                                                               
+     hhodo_slop     =    2.,  2.,  4.,  4.                                      
+;   
+htofusinginvadc=1
+;                                                                               
+                                                                                
+hhodo_pos_invadc_offset =   0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+;
+hhodo_neg_invadc_offset =   0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+;
+hhodo_pos_invadc_linear =   14.0,14.8,15.5,15.8        
+                        14.0,14.8,15.5,15.8      
+                        14.0,14.8,15.5,15.8      
+                        14.0,14.8,15.5,15.8   
+                        14.0,14.8,15.5,15.8   
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8 
+                        14.0,14.8,15.5,15.8 
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8  
+hhodo_neg_invadc_linear =   14.0,14.8,15.5,15.8        
+                        14.0,14.8,15.5,15.8      
+                        14.0,14.8,15.5,15.8      
+                        14.0,14.8,15.5,15.8   
+                        14.0,14.8,15.5,15.8   
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8 
+                        14.0,14.8,15.5,15.8 
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8  
+ 
+hhodo_pos_invadc_adc =   0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+;
+hhodo_neg_invadc_adc =   0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+;
+     hhodo_vel_light =  14.0,14.8,15.5,15.8        
+                        14.0,14.8,15.5,15.8      
+                        14.0,14.8,15.5,15.8      
+                        14.0,14.8,15.5,15.8   
+                        14.0,14.8,15.5,15.8   
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8 
+                        14.0,14.8,15.5,15.8 
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8  
+;                                                                               
+      hhodo_pos_sigma = .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+;                                                                               
+      hhodo_neg_sigma = .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                                                                                
+                                                                                
+                                                                               
+;                                                                               
+hhodo_pos_ped_limit = 1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+;                                                                               
+hhodo_neg_ped_limit = 1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                                                                                
diff --git a/PARAM/HMS/HODO/hhodo_4of4trigger.param b/PARAM/HMS/HODO/hhodo_4of4trigger.param
new file mode 100644
index 00000000..54596af4
--- /dev/null
+++ b/PARAM/HMS/HODO/hhodo_4of4trigger.param
@@ -0,0 +1,191 @@
+hcosmicflag=1
+; for now manually set hte FADC mode
+;  1 == Use the pulse int - pulse ped
+;  2 == Use the sample integral - known ped
+;  3 == Use the sample integral - sample ped
+; if not set then defaults to use the raw pulse integral
+hhodo_adc_mode=1
+; 
+; hhodo_tdc_offset is array of time offsets for all paddles in a plane
+;   to move the tdc to between 0 and 4000 channels.
+  hhodo_tdc_offset = 1280, 1280, 1280, 1290
+; hstart_time_center  center of allowed time window (ns)
+   hstart_time_center = 32.                                                     
+; hstart_time_slop    1/2 width of time window                                  
+   hstart_time_slop = 25.                                                       
+; hscin_tdc_min       minimum tdc value in hms scin                             
+    hscin_tdc_min = 0                                                           
+; hscin_tdc_max       maximum allowed tdc value                                 
+   hscin_tdc_max = 4000                                                         
+; hscin_tdc_to_time   scin tdc time per channel                                 
+   hscin_tdc_to_time = 0.1                                                  
+; tof and you figured out good values
+   htof_tolerance = 30.0
+;                                                                               
+; hms_tof_params                                                                
+; hnum_scin_counters, hhodo_zpos, hhodo_center_coord, hhodo_width               
+; are all calculated within h_init_scin                                         
+;    hhodo_pos_coord and hhodo_neg_coord are not yet used                       
+;                                                                               
+     hhodo_slop     =    2.,  2.,  4.,  4.                                      
+;   
+htofusinginvadc=1
+;                                                                               
+                                                                                
+hhodo_pos_invadc_offset =   0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+;
+hhodo_neg_invadc_offset =   0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+;
+hhodo_pos_invadc_linear =   14.0,14.8,15.5,15.8        
+                        14.0,14.8,15.5,15.8      
+                        14.0,14.8,15.5,15.8      
+                        14.0,14.8,15.5,15.8   
+                        14.0,14.8,15.5,15.8   
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8 
+                        14.0,14.8,15.5,15.8 
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8  
+hhodo_neg_invadc_linear =   14.0,14.8,15.5,15.8        
+                        14.0,14.8,15.5,15.8      
+                        14.0,14.8,15.5,15.8      
+                        14.0,14.8,15.5,15.8   
+                        14.0,14.8,15.5,15.8   
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8 
+                        14.0,14.8,15.5,15.8 
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8  
+ 
+hhodo_pos_invadc_adc =   0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+;
+hhodo_neg_invadc_adc =   0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+;
+     hhodo_vel_light =  14.0,14.8,15.5,15.8        
+                        14.0,14.8,15.5,15.8      
+                        14.0,14.8,15.5,15.8      
+                        14.0,14.8,15.5,15.8   
+                        14.0,14.8,15.5,15.8   
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8 
+                        14.0,14.8,15.5,15.8 
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8
+                        14.0,14.8,15.5,15.8  
+                        14.0,14.8,15.5,15.8  
+;                                                                               
+      hhodo_pos_sigma = .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+;                                                                               
+      hhodo_neg_sigma = .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                        .3,.3,.3,.3,.3,.3,.3,.3                                 
+                                                                                
+                                                                                
+                                                                               
+;                                                                               
+hhodo_pos_ped_limit = 1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+;                                                                               
+hhodo_neg_ped_limit = 1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                      1000,1000,1000,1000,1000,1000,1000,1000                   
+                                                                                
diff --git a/PARAM/HMS/HODO/htofcal.param b/PARAM/HMS/HODO/htofcal.param
new file mode 100644
index 00000000..8ace7125
--- /dev/null
+++ b/PARAM/HMS/HODO/htofcal.param
@@ -0,0 +1,2 @@
+hdumptof=1
+hdumptof_filename="CALIBRATION/hodo_calib/hfort.37"
diff --git a/PARAM/README.md b/PARAM/README.md
new file mode 100644
index 00000000..397425b8
--- /dev/null
+++ b/PARAM/README.md
@@ -0,0 +1,218 @@
+# Notes
+
+## Naming
+
+* `X` stands for spectrometer name:
+    * `h` for HMS
+    * `p` for SHMS
+    * `s` for SOS
+* `Y` stands for plane name.
+* `N` stands for sequential number
+
+## Constants
+
+* `raddeg = 3.14159265/180`
+    * Conversion from degrees to radians.
+    * real
+    * `DBASE/general.param`
+* `cminch = 2.54`
+    * Conversion from inches to cm.
+    * real
+    * `DBASE/general.param`
+
+
+# Tracking
+
+* `Xsel_using_scin = 0`
+    * Use scintillator for track selection.
+    * {0, 1} bool
+    * `THcHallCSpectrometer::fSelUsingScin`
+
+# Drift chambers
+
+## `Xdc.param`
+
+* `Xdc_num_chambers`
+    * Number of drift chambers in detector.
+    * int
+    * `THcDC::fNChambers`
+* `Xdc_num_planes`
+    * Total number of drift chamber planes in detector.
+    * int
+    * `THcDC::fNPlanes`
+* `Xdc_plane_names`
+    * Names of planes.
+    * string
+    * `THcDC::Setup::planenamelist`
+* `Xdc_chamber_planes`
+    * Index of chamber that each plane belongs to. Chamber number starts with 1.
+    * [int]
+    * `THcDC::fNChamber`
+* `Xdc_nrwire`
+    * Number of wires in each plane.
+    * [int]
+    * `THcDC::fNWires`
+
+## `Xdc.pos`
+
+* `Xdc_xcenter`
+    * x position in cm of center for each wire chamber.
+    * [double]
+    * `THcDC::fXCenter`
+* `Xdc_ycenter`
+    * y position in cm of center for each wire chamber.
+    * [double]
+    * `THcDC::fYCenter`
+* `Xdc_N_zpos`
+    * z position in cm of center for each wire chamber.
+    * double
+    * internal only
+* `Xdc_N_roll`
+    * Roll in degrees for each wire chamber. Added to `Xdc_alpha_angle`.
+    * double
+    * internal only
+* `Xdc_N_pitch`
+    * Pitch in degrees for each wire chamber. Added to `Xdc_beta_angle`.
+    * double
+    * internal only
+* `Xdc_N_yaw`
+    * Yaw in degrees for each wire chamber. Added to `Xdc_gamma_angle`.
+    * double
+    * internal only
+
+
+* `Xdc_central_wire`
+    * Wire number of center of wire chamber for each plane. Basically, this is
+      number of imaginary wire, that would cross center of plane. Wire numbers
+      start with 1.
+    * [double]
+    * `THcDC::fCentralWire`
+* `Xdc_pitch`
+    * Distance between wires for each plane in cm.
+    * [double]
+    * `THcDC::fPitch`
+* `Xdc_wire_counting`
+    * Order in which wires are counted in each plane.
+        * `Xdc_wire_counting == 0` : `center = (wire - Xdc_central_wire) * pitch`
+        * `Xdc_wire_counting == 1` : `center = (Xdc_nrwire + 1 - wire -
+           Xdc_central_wire) * pitch`
+    * [{0, 1}]
+    * `THcDC::fWireOrder`
+* `Xdc_zpos`
+    * Position along z in cm of each plane measured from focal plane.
+    * [double]
+    * `THcDC::fZPos`
+* `Xdc_alpha_angle`
+    * Angle $\alpha$ of wires for each plane in radians. Basically the angle of
+      the wires. See also [link][SOS_tracking].
+    * [double]
+    * `THcDC::fAlphaAngle`
+* `Xdc_beta_angle`
+    * Angle $\beta$ of wires for each plane in radians. See also
+      [link][SOS_tracking].
+    * [double]
+    * `THcDC::fBetaAngle`
+* `Xdc_gamma_angle`
+    * Angle $\gamma$ of wires for each plane in radians. See also
+      [link][SOS_tracking].
+    * [double]
+    * `THcDC::fGammaAngle`
+
+[SOS_tracking]: https://hallcweb.jlab.org/DocDB/0008/000812/001/SOS_Tracking.pdf (Tracking in the SOS Spectrometer)
+
+## `Xdc_tracking.param`
+
+* `Xdc_sigma`
+    * Sigma of wire chamber resolution for each plane.
+    * [double]
+    * `THcDC::fSigma`
+* `Xdc_tdc_min_win`
+* TDC window lower limit for each plane.
+    * [int]
+    * `THcDC::fTdcWinMin`
+    * `Xdc_tdc_max_win`
+* TDC window higher limit for each plane.
+    * [int]
+    * `THcDC::fTdcWinMax`
+    * `Xdc_tdc_time_per_channel`
+* Conversion factor from TDC clicks to ns.
+    * CAEN 1190 : 100 ps/click
+    * double
+    * `THcDC::fNSperChan`
+* `Xdc_plane_time_zero`
+    * Zero time correction for each plane in ns that is added to TDC time.
+    * [double]
+    * `THcDC::fPlaneTimeZero`
+* `Xdc_wire_velocity`
+    * Wire velocity.
+    * double
+    * `THcDC::fWireVelocity`
+* `Xdc_central_time`
+    * Used for wire velocity correction in each plane.
+    * [int]
+    * `THcDC::fCentralTime`
+* `Xdc_drifttime_sign`
+    * Used for wire velocity correction in each plane.
+    * [{-1, 1}]
+    * `THcDC::fDriftTimeSign`
+* `Xdc_fix_lr`
+    * Used for wire velocity correction in each plane.
+        * Let hit have different L/R assignment for different space point.
+        * Should be 0 to mimic ENGINE behavior but 1 for more correct behavior.
+    * {0, 1} bool
+    * `THcDC::fFixLR`
+* `Xdc_fix_propcorr`
+    * Used for wire velocity correction in each plane.
+        * Do propagation along wire each time hit appears in a space point.
+    * {0, 1} bool
+    * `THcDC::fFixPropagationCorrection`
+
+### Velocity correction
+
+The velocity correction is the distance from the center of the wire divided by
+the velocity of propagation times Xdc_drifttime_sign(plane). +/-1 for disc. card
+at +/- coord. (i.e. top = -x direction, so top readout is +1)
+
+## `Xdriftmap.param`
+
+Contains lookup table for drift time.
+
+* `Xdriftbins`
+    * Number of bins in table.
+    * int
+    * `THcDriftChamberPlane::ReadDatabase::NumDriftMapBins`
+* `Xdrift1stbin`
+    * Time of first bin in ns.
+    * double
+    * `THcDriftChamberPlane::ReadDatabase::DriftMapFirstBin`
+* `Xdriftbinsz`
+    * Bin size in ns.
+    * double
+    * `THcDriftChamberPlane::ReadDatabase::DriftMapBinSize`
+* `XwcYfract`
+    * Drift time lookup table entries for plane Y.
+    * [double]
+    * `THcDriftChamberPlane::ReadDatabase::DriftMap`
+
+## Deprecated
+
+* `Xdc_num_deadwires`
+    * Number of dead wires in drift chambers (< 20 % efficiency)
+    * int
+* `Xdc_deadwire_plane`
+    * Plane number for each dead wire.
+    * [int]
+* `Xdc_deadwire_num`
+    * Wire number for each dead wire.
+    * [int]
+
+
+* `Xdc_card_no`
+    * Index of connector card for each wire.
+        * Single array for all planes.
+        * Wires start with plane 1, wire 1.
+        * For each plane there must be 'max number of wires' entries.
+    * [int]
+* `Xdc_card_delay`
+    * Cable delays for each connector card.
+    * [int]
diff --git a/PARAM/SHMS/AERO/paero.param b/PARAM/SHMS/AERO/paero.param
new file mode 100644
index 00000000..a469a7b9
--- /dev/null
+++ b/PARAM/SHMS/AERO/paero.param
@@ -0,0 +1,12 @@
+
+
+paero_pos_gain = 1./496.7, 1./467.5, 1./554.3, 1./766.1, 1./412.1, 1./517.9, 1./435.6, 1./500.,
+
+paero_neg_gain = 1./586.8, 1./536.5, 1./690.5, 1./563.1, 1./574.4, 1./432.7, 1./601.5, 1./500.,
+
+     paero_pos_ped_limit =  1000., 1000., 1000., 1000.,
+                            1000., 1000., 1000., 1000.,
+
+     paero_neg_ped_limit =  1000., 1000., 1000., 1000.,
+                            1000., 1000., 1000., 1000.,
+
diff --git a/PARAM/SHMS/CAL/pcal.param b/PARAM/SHMS/CAL/pcal.param
new file mode 100644
index 00000000..cde530b5
--- /dev/null
+++ b/PARAM/SHMS/CAL/pcal.param
@@ -0,0 +1,65 @@
+
+pcal_array = 1
+pcal_layer_names = "pr fly"
+pcal_pr_nr = 14 # Num of rows in preshower
+pcal_num_layers = 1
+pcal_arr_nrows = 16
+pcal_arr_ncolumns = 14
+
+pcal_arr_front_x = 1.0
+pcal_arr_front_y = 1.0
+pcal_arr_front_z = 1.0
+pcal_arr_xstep = 1.0
+pcal_arr_ystep = 1.0
+pcal_arr_zsize = 1.0
+pcal_arr_ped_limit = 1.0
+pcal_arr_cal_const = 1.0
+pcal_arr_gain_cor = 1.0
+
+
+; Exclusion bandwidth for calorimeter fiducial volume.
+pcal_fv_delta = 5
+# Constants for the coordiante correction of the calorimeter energy depositions
+pcal_a_cor = 200.
+pcal_b_cor = 8000.
+pcal_c_cor = 64.36, 64.36	# for positive and negative sides
+pcal_d_cor =  1.66,  1.66
+
+; Parameters copied from HMS
+; Slop in x possitino.  Allowed distance between track and edge of block
+pcal_slop = 7.5 
+
+pcal_pr_thick = 10.0
+; Z Position of from of preshower
+pcal_pr_zpos = 200.0
+
+pcal_pr_left  =  35.0
+pcal_pr_right = -35.0
+pcal_pr_top   = (-69.0-1.4)
+                 (-59.0-1.4)
+                 (-49.0-1.4)
+                 (-39.0-1.4)
+                 (-29.0-1.4)
+                 (-19.0-1.4)
+                 ( -9.0-1.4)
+                 (  1.0-1.4)
+                 ( 11.0-1.4)
+                 ( 21.0-1.4)
+                 ( 31.0-1.4)
+                 ( 41.0-1.4)
+                 ( 51.0-1.4)
+                 ( 61.0-1.4)
+pcal_pos_cal_const =0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,
+        0.001,0.001,0.001,0.001,0.001,0.001
+pcal_neg_cal_const =0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,
+        0.001,0.001,0.001,0.001,0.001,0.001
+pcal_pos_ped_limit=1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,
+	1000,1000,1000,1000
+pcal_neg_ped_limit=1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,
+	1000,1000,1000,1000
+
+pcal_pos_gain_cor=1.0/411.2, 1.0/378.6, 1.0/357.9, 1.0/254.8, 1.0/315.6, 1.0/331.0, 1.0/264.6, 1.0/305.4, 1.0/149.8, 1.0/380.6, 1.0/183.1, 1.0/206.5, 1.0/139.8, 1.0/163.
+pcal_neg_gain_cor=1.0/466.2, 1.0/514.7, 1.0/325.5, 1.0/247.8, 1.0/322.0, 1.0/176.2, 1.0/161.9, 1.0/197.7, 1.0/269.9, 1.0/241.6, 1.0/193.7, 1.0/337.5, 1.0/237.3, 1.0/82.0
+
+pcal_min_peds = 500
+
diff --git a/PARAM/SHMS/DC/pdc.param b/PARAM/SHMS/DC/pdc.param
index 56517a04..767a8946 100644
--- a/PARAM/SHMS/DC/pdc.param
+++ b/PARAM/SHMS/DC/pdc.param
@@ -1,25 +1,19 @@
-;---------------------------------------------------------------------
-; SHMS_TRACKING
-; CTP parameter file containing all tracking parameters for the HMS
-;----------------------------------------------------------------------
+; GENERAL PARAMETERS
 
-; sigma of wire chabmer resolution for each plane
-  pdc_sigma = 0.02, 0.02, 0.02, 0.02, 0.02, 0.02 
-  	      0.02, 0.02, 0.02, 0.02, 0.02, 0.02
+; Number of drift chambers.
+pdc_num_chambers = 2
 
-; tdc window, wide limits for now
-  pdc_tdc_min_win = -55000,-55000,-55000,-55000,-55000,-55000
-  		    -55000,-55000,-55000,-55000,-55000,-55000
-  pdc_tdc_max_win = 55000,55000,55000,55000,55000,55000
-  		    55000,55000,55000,55000,55000,55000
+; Total number of planes.
+pdc_num_planes = 12
 
-; conversion from tdc lciks to ns
-  pdc_tdc_time_per_channel = -0.10 ; CAEN1190 TDC step size = 100ps
+; Names of planes.
+pdc_plane_names = "1u1 1u2 1x1 1x2 1v1 1v2 2v2 2v1 2x2 2x1 2u2 2u1"  ; TODO
 
-; zero time, decreasing moves sdtime plots to lower time
-  pdc_plane_time_zero = 120.0,120.0,120.0,120.0,120.0,120.0
-  		      	120.0,120.0,120.0,120.0,120.0,120.0
+; Chamber index for each plane.
+pdc_chamber_planes = 1, 1, 1, 1, 1, 1
+                     2, 2, 2, 2, 2, 2
 
-; wire velocity
-  pdc_wire_velocity = 13.0
-  pdc_central_time = 1,1,1,1,1,1,1,1,1,1,1,1
+; Number of wires in each plane.
+; Should be 109 and 80, but edge sense wire were not strung.
+pdc_nrwire = 107, 107, 79, 79, 107, 107
+             107, 107, 79, 79, 107, 107
diff --git a/PARAM/SHMS/DC/pdc.param.ori b/PARAM/SHMS/DC/pdc.param.ori
deleted file mode 100644
index 7d1d76cf..00000000
--- a/PARAM/SHMS/DC/pdc.param.ori
+++ /dev/null
@@ -1,14 +0,0 @@
-
-ppartmass = 0.139
-phodo_num_planes = 1
-
-; Scintillator parameters
-pref_npaddles = 6
-pref_nsperchan = 0.1
-pref_offset = 0.0
-
-
-
-
-
-
diff --git a/PARAM/SHMS/DC/pdc.param.ori.dnd b/PARAM/SHMS/DC/pdc.param.ori.dnd
deleted file mode 100644
index 4ba25d48..00000000
--- a/PARAM/SHMS/DC/pdc.param.ori.dnd
+++ /dev/null
@@ -1,377 +0,0 @@
-
-raddeg=3.14159265/180
-
-; Parameters we need to keep THcHallCSpectrometer Happy
-p_recon_coeff_filename = ""
-ptheta_offset = 0.0
-pphi_offset = 0.0
-pdelta_offset = 0.0
-pthetacentral_offset = 0.0
-p_oopcentral_offset = 0.0
-ppcentral_offset = 0.0
-ppcentral = 0.0
-ptheta_lab = 0.0
-ppartmass = 0.139
-phodo_num_planes = 1
-
-; Scintillator parameters
-pref_npaddles = 6
-pref_nsperchan = 0.1
-pref_offset = 0.0
-;
-
-; Number of chambers in test setup
-
-
-  pdc_num_chambers = 2
-  pdc_num_planes = 12
-  pdc_tdc_time_per_channel = -0.10 ; TDC step size  100ps?
-  pdc_wire_velocity = 13.0
-  pdc_central_time = 1,1,1,1,1,1,1,1,1,1,1,1
-  pdc_plane_names = "1u1 1u2 1x1 1x2 1v1 1v2 2v2 2v1 2x2 2x1 2u2 2u1
-  pdc_xcenter = 0.0, 0.0
-  pdc_ycenter = 0.0, 0.0
-; Order in which wires are readout
-  pdc_wire_counting = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-; If pdc_wire_counting(plane) = 0
-;  the wire center is at (wire - pdc_central_wire) * pitch
-; If pdc_wire_counting(plane) = 1
-;  the wire center is at ( pdc_nrwire + 1 - wire - pdc_central_wire) * pitch
-
-; The velocity correction is the distance from the center of the wire divided
-; by the velocity of propagation times pdc_drifttime_sign(pln).  +/-1
-; for disc. card at +/- coord. (i.e. top = -x direction, so top readout is +1)
-;
-; These are guesses taken from the SOS Chambers
-;
-  pdc_drifttime_sign = 1, -1, -1, 1, 1, -1,  1, -1, -1, 1, 1, -1
-;
-; Wire number of center of wire chamber
-; Note the convention : x : low number =  -x , u,v : low number = "-x"
-; x1 and x2, u1 and u2, v1 and v2 are offset by half a cell length
-; assume 1st wire of 1st dc of a set is closest to edge where counting starts
-; (These taken from SOS.  Will be different for SHMS
-      pdc_central_wire = 54.25
-                         53.75
-                         40.25
-                         40.75
-                         54.25
-                         53.75 
-			 53.75
-			 54.25
-			 40.75
-			 40.25
-			 53.75
-			 54.25
-
-; sigma of wire chabmer resolution for each plane
-  pdc_sigma = 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02
-
-; tdc window.  Wide limits for now
-  pdc_tdc_min_win = -55000,-55000,-55000,-55000,-55000,-55000,-55000,-55000,-55000,-55000,-55000,-55000
-  pdc_tdc_max_win = 55000,55000,55000,55000,55000,55000,55000,55000,55000,55000,55000,55000
-; zero time.  Decreasing moves sdtime plots to lower time
-  pdc_plane_time_zero = 120.0,120.0,120.0,120.0,120.0,120.0,120.0,120.0,120.0,120.0,120.0,120.0
-  pdc_chamber_planes = 1,1,1,1,1,1,2,2,2,2,2,2  ;  Chamber # for each plane
-
-
-; pdc_1_zpos = -14.5*2.54
-  pdc_1_zpos = 0    ; Don't try to project to scintillators
-
-; Use geometry of SOS chambers for now
-  pdc_zpos   = pdc_1_zpos - 1.5875
-               pdc_1_zpos - 0.9525
-               pdc_1_zpos - 0.3175
-               pdc_1_zpos + 0.3175
-               pdc_1_zpos + 0.9525
-               pdc_1_zpos + 1.5875
-	       pdc_1_zpos - 1.5875	  
-               pdc_1_zpos - 0.9525
-               pdc_1_zpos - 0.3175
-               pdc_1_zpos + 0.3175
-               pdc_1_zpos + 0.9525
-               pdc_1_zpos + 1.5875
-
-; Angle alpha of wires in wire chamber planes
-  pdc_roll = 0.0 ; SOS chambers had roll as installed
-  pdc_alpha_angle = (30-pdc_roll)*raddeg
-  		    (30-pdc_roll)*raddeg
-  		    (90-pdc_roll)*raddeg
-  		    (90-pdc_roll)*raddeg
-  		    (150-pdc_roll)*raddeg
-  		    (150-pdc_roll)*raddeg
-		    (30-pdc_roll)*raddeg
-  		    (30-pdc_roll)*raddeg
-  		    (90-pdc_roll)*raddeg
-  		    (90-pdc_roll)*raddeg
-  		    (150-pdc_roll)*raddeg
-  		    (150-pdc_roll)*raddeg
-  pdc_beta = 0.0
-  pdc_beta_angle = pdc_beta
-                   pdc_beta
-                   pdc_beta
-                   pdc_beta
-                   pdc_beta
-                   pdc_beta
-		   pdc_beta
-                   pdc_beta
-                   pdc_beta
-                   pdc_beta
-                   pdc_beta
-                   pdc_beta
-
-  pdc_gamma = 0.0
-  pdc_gamma_angle = pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-		    pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-  pdc_pitch = 1.0000
-              1.0000
-              1.0000
-              1.0000
-              1.0000
-              1.0000
-	      1.0000	      
-              1.0000
-              1.0000
-              1.0000
-              1.0000
-              1.0000
-; Number of wires per plane
-      pdc_nrwire = 107
-                   107
-                   79
-                   79
-                   107
-                   107
-		   107
-                   107
-                   79
-                   79
-                   107
-                   107
-
-; Tracking parameters
-
-  pmax_pr_hits = 25, 25
-  pmin_hit = 5, 5
-  pmin_combos = 6, 6
-  pspace_point_criterion = 1.2, 1.2
-
-; The following four criteria are applied to the stub fit results at the
-; focal plane position to link stubs to tracks
-  pntracks_max_fp = 10
-  pxt_track_criterion = 100.0
-  pyt_track_criterion = 2.0
-  pxpt_track_criterion = 1.0
-  pypt_track_criterion = 1.0
-
-  psingle_stub = 1 ; make a track of all single stubs
-                   ; normally 0
-  pSmallAngleApprox = 0 ; No small angle approximation for
-                        ; cosmic ray tests
-
-; Compatibility parameters.  Should be zero to precisely mimic ENGINE
-; behavior, but one for more correct behavior
-pdc_fix_lr = 1 ; Let hit have different L/R assignment for different space point
-pdc_fix_propcorr = 1 ; do propagation along wire each time hit appeears
-                     ; in a space point
-
-; Debugging flags - not all these implemented in hcana
-pdebuglinkstubs = 0 ; Dump link stub results
-pdebugprintrawdc = 0 ; Dump PDC_RAW_DC bank
-pdebugprintdecodeddc = 0 ; Dump PDC_DECODED_DC bank
-pdebugflagpr = 0 ; Dump intermediate pattern recognition results
-pdebugflagstubs= 0 ; Dump stub fit results
-pdebugtrackprint = 0 ; Dump focal plane track fit results
-pdebugstubchisq = 0; Dump chi2 of left-right fits
-
-; Drift map parameters
-pdriftbins = 138
-; Number of 1st bin in table
-pdrift1stbin = -24
-; Bin size in ns
-pdriftbinsz = 2
-; Drift maps simply copied from the SOS chambers
-pwc1u1fract=0.0002,0.0005,0.0009,0.0011,0.0015,0.0018,0.0022,0.0027
-0.0029,0.0033,0.0038,0.0044,0.0048,0.0051,0.0057,0.0070,0.0090,0.0121
-0.0167,0.0217,0.0282,0.0371,0.0467,0.0582,0.0723,0.0873,0.1038,0.1211
-0.1409,0.1609,0.1826,0.2060,0.2302,0.2542,0.2796,0.3043,0.3294,0.3555
-0.3819,0.4085,0.4343,0.4618,0.4890,0.5140,0.5384,0.5635,0.5880,0.6100
-0.6311,0.6522,0.6722,0.6928,0.7120,0.7316,0.7495,0.7684,0.7853,0.8026
-0.8191,0.8334,0.8491,0.8629,0.8771,0.8888,0.8994,0.9089,0.9170,0.9242
-0.9308,0.9364,0.9411,0.9457,0.9496,0.9538,0.9571,0.9602,0.9630,0.9654
-0.9679,0.9698,0.9718,0.9735,0.9750,0.9765,0.9778,0.9791,0.9804,0.9815
-0.9825,0.9833,0.9844,0.9851,0.9855,0.9862,0.9870,0.9874,0.9877,0.9883
-0.9889,0.9893,0.9895,0.9898,0.9901,0.9904,0.9910,0.9918,0.9923,0.9927
-0.9930,0.9935,0.9937,0.9941,0.9943,0.9947,0.9949,0.9952,0.9957,0.9962
-0.9964,0.9966,0.9970,0.9973,0.9975,0.9977,0.9979,0.9982,0.9986,0.9988
-0.9990,0.9991,0.9994,0.9995,0.9998,0.9999,1.0000,1.0000,1.0000,1.0000
-pwc1x1fract=0.0004,0.0006,0.0008,0.0010,0.0012,0.0015,0.0017,0.0021
-0.0025,0.0028,0.0031,0.0033,0.0036,0.0041,0.0045,0.0051,0.0060,0.0075
-0.0104,0.0138,0.0191,0.0265,0.0356,0.0463,0.0596,0.0743,0.0916,0.1114
-0.1316,0.1533,0.1757,0.1988,0.2209,0.2455,0.2689,0.2945,0.3196,0.3437
-0.3697,0.3950,0.4196,0.4448,0.4702,0.4953,0.5186,0.5416,0.5650,0.5877
-0.6099,0.6316,0.6519,0.6719,0.6909,0.7099,0.7277,0.7463,0.7645,0.7821
-0.7979,0.8154,0.8320,0.8477,0.8612,0.8740,0.8865,0.8973,0.9077,0.9161
-0.9234,0.9301,0.9351,0.9406,0.9454,0.9497,0.9531,0.9570,0.9605,0.9631
-0.9660,0.9690,0.9713,0.9728,0.9748,0.9762,0.9775,0.9786,0.9800,0.9807
-0.9818,0.9827,0.9833,0.9843,0.9849,0.9857,0.9861,0.9866,0.9871,0.9877
-0.9883,0.9887,0.9891,0.9895,0.9898,0.9901,0.9907,0.9913,0.9916,0.9918
-0.9921,0.9925,0.9929,0.9931,0.9935,0.9940,0.9944,0.9946,0.9949,0.9952
-0.9956,0.9960,0.9966,0.9968,0.9970,0.9972,0.9974,0.9976,0.9979,0.9980
-0.9984,0.9985,0.9988,0.9990,0.9991,0.9993,0.9996,0.9998,0.9999,1.0000
-pwc1v1fract=0.0002,0.0006,0.0008,0.0011,0.0013,0.0016,0.0019,0.0020
-0.0022,0.0025,0.0030,0.0035,0.0038,0.0042,0.0049,0.0057,0.0076,0.0103
-0.0149,0.0200,0.0273,0.0353,0.0455,0.0574,0.0719,0.0865,0.1045,0.1224
-0.1416,0.1630,0.1844,0.2074,0.2317,0.2555,0.2807,0.3046,0.3298,0.3553
-0.3826,0.4075,0.4316,0.4563,0.4823,0.5065,0.5315,0.5554,0.5781,0.6014
-0.6235,0.6434,0.6643,0.6853,0.7050,0.7238,0.7415,0.7602,0.7787,0.7975
-0.8152,0.8307,0.8456,0.8595,0.8723,0.8851,0.8957,0.9043,0.9126,0.9205
-0.9276,0.9330,0.9383,0.9437,0.9484,0.9521,0.9553,0.9582,0.9607,0.9634
-0.9657,0.9676,0.9701,0.9722,0.9738,0.9755,0.9767,0.9781,0.9794,0.9804
-0.9814,0.9825,0.9835,0.9842,0.9847,0.9853,0.9861,0.9866,0.9871,0.9878
-0.9882,0.9888,0.9891,0.9897,0.9900,0.9903,0.9909,0.9910,0.9917,0.9919
-0.9924,0.9929,0.9937,0.9939,0.9944,0.9948,0.9954,0.9956,0.9961,0.9966
-0.9968,0.9972,0.9974,0.9978,0.9980,0.9981,0.9984,0.9986,0.9989,0.9991
-0.9995,0.9996,0.9998,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-pwc1u2fract=0.0003,0.0004,0.0008,0.0011,0.0015,0.0018,0.0021,0.0024
-0.0027,0.0030,0.0033,0.0037,0.0039,0.0043,0.0046,0.0049,0.0059,0.0073
-0.0094,0.0129,0.0184,0.0267,0.0352,0.0446,0.0563,0.0707,0.0863,0.1030
-0.1206,0.1411,0.1629,0.1845,0.2087,0.2325,0.2578,0.2837,0.3091,0.3357
-0.3606,0.3867,0.4119,0.4362,0.4608,0.4857,0.5099,0.5349,0.5587,0.5814
-0.6047,0.6260,0.6480,0.6685,0.6892,0.7099,0.7282,0.7456,0.7643,0.7812
-0.7988,0.8141,0.8309,0.8454,0.8616,0.8738,0.8847,0.8955,0.9049,0.9133
-0.9199,0.9274,0.9341,0.9399,0.9445,0.9489,0.9529,0.9561,0.9593,0.9620
-0.9645,0.9667,0.9689,0.9701,0.9720,0.9740,0.9756,0.9771,0.9785,0.9796
-0.9808,0.9816,0.9823,0.9832,0.9839,0.9846,0.9854,0.9860,0.9867,0.9874
-0.9876,0.9881,0.9885,0.9889,0.9895,0.9900,0.9902,0.9907,0.9910,0.9916
-0.9919,0.9923,0.9927,0.9930,0.9934,0.9937,0.9942,0.9945,0.9949,0.9953
-0.9957,0.9962,0.9965,0.9968,0.9971,0.9973,0.9976,0.9979,0.9981,0.9984
-0.9986,0.9988,0.9989,0.9993,0.9995,0.9998,0.9999,0.9999,1.0000,1.0000
-pwc1x2fract=0.0002,0.0005,0.0008,0.0011,0.0014,0.0017,0.0021,0.0025
-0.0027,0.0031,0.0032,0.0034,0.0040,0.0045,0.0052,0.0065,0.0083,0.0112
-0.0150,0.0200,0.0264,0.0341,0.0435,0.0560,0.0701,0.0862,0.1027,0.1210
-0.1417,0.1628,0.1833,0.2069,0.2301,0.2547,0.2799,0.3062,0.3314,0.3582
-0.3860,0.4141,0.4390,0.4656,0.4903,0.5161,0.5410,0.5649,0.5874,0.6090
-0.6298,0.6507,0.6721,0.6923,0.7117,0.7312,0.7510,0.7706,0.7881,0.8052
-0.8204,0.8360,0.8525,0.8666,0.8793,0.8906,0.9019,0.9103,0.9194,0.9274
-0.9340,0.9397,0.9442,0.9483,0.9523,0.9557,0.9596,0.9625,0.9653,0.9678
-0.9698,0.9718,0.9732,0.9751,0.9768,0.9782,0.9793,0.9804,0.9813,0.9821
-0.9828,0.9834,0.9842,0.9848,0.9852,0.9857,0.9861,0.9864,0.9872,0.9877
-0.9880,0.9886,0.9889,0.9894,0.9898,0.9903,0.9908,0.9915,0.9921,0.9924
-0.9927,0.9930,0.9935,0.9939,0.9943,0.9945,0.9949,0.9952,0.9957,0.9960
-0.9963,0.9965,0.9967,0.9972,0.9975,0.9979,0.9980,0.9985,0.9987,0.9988
-0.9990,0.9991,0.9992,0.9995,0.9997,1.0000,1.0000,1.0000,1.0000,1.0000
-pwc1v2fract=0.0004,0.0006,0.0008,0.0012,0.0013,0.0016,0.0018,0.0021
-0.0024,0.0027,0.0029,0.0032,0.0036,0.0039,0.0043,0.0049,0.0063,0.0080
-0.0113,0.0155,0.0218,0.0300,0.0397,0.0508,0.0645,0.0793,0.0949,0.1135
-0.1343,0.1560,0.1786,0.2019,0.2250,0.2498,0.2756,0.3011,0.3270,0.3526
-0.3778,0.4042,0.4299,0.4570,0.4821,0.5077,0.5311,0.5540,0.5784,0.6010
-0.6219,0.6429,0.6633,0.6830,0.7023,0.7214,0.7403,0.7590,0.7786,0.7948
-0.8118,0.8288,0.8444,0.8587,0.8725,0.8842,0.8946,0.9044,0.9136,0.9208
-0.9264,0.9323,0.9377,0.9428,0.9472,0.9506,0.9541,0.9576,0.9602,0.9635
-0.9656,0.9675,0.9695,0.9715,0.9732,0.9751,0.9768,0.9777,0.9789,0.9802
-0.9809,0.9819,0.9828,0.9835,0.9841,0.9850,0.9858,0.9863,0.9866,0.9870
-0.9875,0.9880,0.9884,0.9888,0.9894,0.9899,0.9901,0.9905,0.9909,0.9912
-0.9917,0.9919,0.9922,0.9926,0.9931,0.9936,0.9941,0.9945,0.9951,0.9954
-0.9959,0.9962,0.9964,0.9967,0.9969,0.9971,0.9975,0.9978,0.9980,0.9983
-0.9986,0.9988,0.9991,0.9995,0.9998,0.9999,0.9999,0.9999,1.0000,1.0000
-
-pwc2u1fract=0.0002,0.0005,0.0009,0.0011,0.0015,0.0018,0.0022,0.0027
-0.0029,0.0033,0.0038,0.0044,0.0048,0.0051,0.0057,0.0070,0.0090,0.0121
-0.0167,0.0217,0.0282,0.0371,0.0467,0.0582,0.0723,0.0873,0.1038,0.1211
-0.1409,0.1609,0.1826,0.2060,0.2302,0.2542,0.2796,0.3043,0.3294,0.3555
-0.3819,0.4085,0.4343,0.4618,0.4890,0.5140,0.5384,0.5635,0.5880,0.6100
-0.6311,0.6522,0.6722,0.6928,0.7120,0.7316,0.7495,0.7684,0.7853,0.8026
-0.8191,0.8334,0.8491,0.8629,0.8771,0.8888,0.8994,0.9089,0.9170,0.9242
-0.9308,0.9364,0.9411,0.9457,0.9496,0.9538,0.9571,0.9602,0.9630,0.9654
-0.9679,0.9698,0.9718,0.9735,0.9750,0.9765,0.9778,0.9791,0.9804,0.9815
-0.9825,0.9833,0.9844,0.9851,0.9855,0.9862,0.9870,0.9874,0.9877,0.9883
-0.9889,0.9893,0.9895,0.9898,0.9901,0.9904,0.9910,0.9918,0.9923,0.9927
-0.9930,0.9935,0.9937,0.9941,0.9943,0.9947,0.9949,0.9952,0.9957,0.9962
-0.9964,0.9966,0.9970,0.9973,0.9975,0.9977,0.9979,0.9982,0.9986,0.9988
-0.9990,0.9991,0.9994,0.9995,0.9998,0.9999,1.0000,1.0000,1.0000,1.0000
-pwc2x1fract=0.0004,0.0006,0.0008,0.0010,0.0012,0.0015,0.0017,0.0021
-0.0025,0.0028,0.0031,0.0033,0.0036,0.0041,0.0045,0.0051,0.0060,0.0075
-0.0104,0.0138,0.0191,0.0265,0.0356,0.0463,0.0596,0.0743,0.0916,0.1114
-0.1316,0.1533,0.1757,0.1988,0.2209,0.2455,0.2689,0.2945,0.3196,0.3437
-0.3697,0.3950,0.4196,0.4448,0.4702,0.4953,0.5186,0.5416,0.5650,0.5877
-0.6099,0.6316,0.6519,0.6719,0.6909,0.7099,0.7277,0.7463,0.7645,0.7821
-0.7979,0.8154,0.8320,0.8477,0.8612,0.8740,0.8865,0.8973,0.9077,0.9161
-0.9234,0.9301,0.9351,0.9406,0.9454,0.9497,0.9531,0.9570,0.9605,0.9631
-0.9660,0.9690,0.9713,0.9728,0.9748,0.9762,0.9775,0.9786,0.9800,0.9807
-0.9818,0.9827,0.9833,0.9843,0.9849,0.9857,0.9861,0.9866,0.9871,0.9877
-0.9883,0.9887,0.9891,0.9895,0.9898,0.9901,0.9907,0.9913,0.9916,0.9918
-0.9921,0.9925,0.9929,0.9931,0.9935,0.9940,0.9944,0.9946,0.9949,0.9952
-0.9956,0.9960,0.9966,0.9968,0.9970,0.9972,0.9974,0.9976,0.9979,0.9980
-0.9984,0.9985,0.9988,0.9990,0.9991,0.9993,0.9996,0.9998,0.9999,1.0000
-pwc2v1fract=0.0002,0.0006,0.0008,0.0011,0.0013,0.0016,0.0019,0.0020
-0.0022,0.0025,0.0030,0.0035,0.0038,0.0042,0.0049,0.0057,0.0076,0.0103
-0.0149,0.0200,0.0273,0.0353,0.0455,0.0574,0.0719,0.0865,0.1045,0.1224
-0.1416,0.1630,0.1844,0.2074,0.2317,0.2555,0.2807,0.3046,0.3298,0.3553
-0.3826,0.4075,0.4316,0.4563,0.4823,0.5065,0.5315,0.5554,0.5781,0.6014
-0.6235,0.6434,0.6643,0.6853,0.7050,0.7238,0.7415,0.7602,0.7787,0.7975
-0.8152,0.8307,0.8456,0.8595,0.8723,0.8851,0.8957,0.9043,0.9126,0.9205
-0.9276,0.9330,0.9383,0.9437,0.9484,0.9521,0.9553,0.9582,0.9607,0.9634
-0.9657,0.9676,0.9701,0.9722,0.9738,0.9755,0.9767,0.9781,0.9794,0.9804
-0.9814,0.9825,0.9835,0.9842,0.9847,0.9853,0.9861,0.9866,0.9871,0.9878
-0.9882,0.9888,0.9891,0.9897,0.9900,0.9903,0.9909,0.9910,0.9917,0.9919
-0.9924,0.9929,0.9937,0.9939,0.9944,0.9948,0.9954,0.9956,0.9961,0.9966
-0.9968,0.9972,0.9974,0.9978,0.9980,0.9981,0.9984,0.9986,0.9989,0.9991
-0.9995,0.9996,0.9998,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-pwc2u2fract=0.0003,0.0004,0.0008,0.0011,0.0015,0.0018,0.0021,0.0024
-0.0027,0.0030,0.0033,0.0037,0.0039,0.0043,0.0046,0.0049,0.0059,0.0073
-0.0094,0.0129,0.0184,0.0267,0.0352,0.0446,0.0563,0.0707,0.0863,0.1030
-0.1206,0.1411,0.1629,0.1845,0.2087,0.2325,0.2578,0.2837,0.3091,0.3357
-0.3606,0.3867,0.4119,0.4362,0.4608,0.4857,0.5099,0.5349,0.5587,0.5814
-0.6047,0.6260,0.6480,0.6685,0.6892,0.7099,0.7282,0.7456,0.7643,0.7812
-0.7988,0.8141,0.8309,0.8454,0.8616,0.8738,0.8847,0.8955,0.9049,0.9133
-0.9199,0.9274,0.9341,0.9399,0.9445,0.9489,0.9529,0.9561,0.9593,0.9620
-0.9645,0.9667,0.9689,0.9701,0.9720,0.9740,0.9756,0.9771,0.9785,0.9796
-0.9808,0.9816,0.9823,0.9832,0.9839,0.9846,0.9854,0.9860,0.9867,0.9874
-0.9876,0.9881,0.9885,0.9889,0.9895,0.9900,0.9902,0.9907,0.9910,0.9916
-0.9919,0.9923,0.9927,0.9930,0.9934,0.9937,0.9942,0.9945,0.9949,0.9953
-0.9957,0.9962,0.9965,0.9968,0.9971,0.9973,0.9976,0.9979,0.9981,0.9984
-0.9986,0.9988,0.9989,0.9993,0.9995,0.9998,0.9999,0.9999,1.0000,1.0000
-pwc2x2fract=0.0002,0.0005,0.0008,0.0011,0.0014,0.0017,0.0021,0.0025
-0.0027,0.0031,0.0032,0.0034,0.0040,0.0045,0.0052,0.0065,0.0083,0.0112
-0.0150,0.0200,0.0264,0.0341,0.0435,0.0560,0.0701,0.0862,0.1027,0.1210
-0.1417,0.1628,0.1833,0.2069,0.2301,0.2547,0.2799,0.3062,0.3314,0.3582
-0.3860,0.4141,0.4390,0.4656,0.4903,0.5161,0.5410,0.5649,0.5874,0.6090
-0.6298,0.6507,0.6721,0.6923,0.7117,0.7312,0.7510,0.7706,0.7881,0.8052
-0.8204,0.8360,0.8525,0.8666,0.8793,0.8906,0.9019,0.9103,0.9194,0.9274
-0.9340,0.9397,0.9442,0.9483,0.9523,0.9557,0.9596,0.9625,0.9653,0.9678
-0.9698,0.9718,0.9732,0.9751,0.9768,0.9782,0.9793,0.9804,0.9813,0.9821
-0.9828,0.9834,0.9842,0.9848,0.9852,0.9857,0.9861,0.9864,0.9872,0.9877
-0.9880,0.9886,0.9889,0.9894,0.9898,0.9903,0.9908,0.9915,0.9921,0.9924
-0.9927,0.9930,0.9935,0.9939,0.9943,0.9945,0.9949,0.9952,0.9957,0.9960
-0.9963,0.9965,0.9967,0.9972,0.9975,0.9979,0.9980,0.9985,0.9987,0.9988
-0.9990,0.9991,0.9992,0.9995,0.9997,1.0000,1.0000,1.0000,1.0000,1.0000
-pwc2v2fract=0.0004,0.0006,0.0008,0.0012,0.0013,0.0016,0.0018,0.0021
-0.0024,0.0027,0.0029,0.0032,0.0036,0.0039,0.0043,0.0049,0.0063,0.0080
-0.0113,0.0155,0.0218,0.0300,0.0397,0.0508,0.0645,0.0793,0.0949,0.1135
-0.1343,0.1560,0.1786,0.2019,0.2250,0.2498,0.2756,0.3011,0.3270,0.3526
-0.3778,0.4042,0.4299,0.4570,0.4821,0.5077,0.5311,0.5540,0.5784,0.6010
-0.6219,0.6429,0.6633,0.6830,0.7023,0.7214,0.7403,0.7590,0.7786,0.7948
-0.8118,0.8288,0.8444,0.8587,0.8725,0.8842,0.8946,0.9044,0.9136,0.9208
-0.9264,0.9323,0.9377,0.9428,0.9472,0.9506,0.9541,0.9576,0.9602,0.9635
-0.9656,0.9675,0.9695,0.9715,0.9732,0.9751,0.9768,0.9777,0.9789,0.9802
-0.9809,0.9819,0.9828,0.9835,0.9841,0.9850,0.9858,0.9863,0.9866,0.9870
-0.9875,0.9880,0.9884,0.9888,0.9894,0.9899,0.9901,0.9905,0.9909,0.9912
-0.9917,0.9919,0.9922,0.9926,0.9931,0.9936,0.9941,0.9945,0.9951,0.9954
-0.9959,0.9962,0.9964,0.9967,0.9969,0.9971,0.9975,0.9978,0.9980,0.9983
-0.9986,0.9988,0.9991,0.9995,0.9998,0.9999,0.9999,0.9999,1.0000,1.0000
-
-;
-; Not sure why this is here
-; Makes the analyzer happy
-pdc_2_zpos = 0, 0
\ No newline at end of file
diff --git a/PARAM/SHMS/DC/pdc.pos b/PARAM/SHMS/DC/pdc.pos
index 99e5299a..ee065a50 100644
--- a/PARAM/SHMS/DC/pdc.pos
+++ b/PARAM/SHMS/DC/pdc.pos
@@ -1,134 +1,92 @@
-; Number of planes installed in SHMS detector setup
-  pdc_num_planes = 12
-; Number of chambers installed in SHMS detector setup
-  pdc_num_chambers = 2
+; CHAMBER POSITION PARAMETERS
 
+; x, y and z position of center for each wire chamber in cm.
+; From survey C1771.
+pdc_xcenter = -0.036, 0.008  ; TODO - final survey
+pdc_ycenter =  0.019, 0.013  ; TODO - final survey
+pdc_1_zpos = -40 - 0.656  ; TODO - final survey
+pdc_2_zpos =  40 - 0.668  ; TODO - final survey
 
-; Z positions of various planes in SHMS chambers
-; Use geometry of previous SOS chambers for now
+; Roll, pitch and yaw for each wire chamber in degrees.
+; From survey C1771.
+pdc_1_roll = 180.0  ; TODO - survey
+pdc_2_roll = 180.0  ; TODO - survey
+pdc_1_pitch = -0.006  ; TODO - final survey
+pdc_2_pitch =  0.001  ; TODO - final survey
+pdc_1_yaw = -0.006  ; TODO - final survey
+pdc_2_yaw = -0.035  ; TODO - final survey
 
-; pdc_1_zpos = -14.5*2.54
-  pdc_1_zpos = 0 ; Chamber 1, do not try to project to scintillators
-  pdc_2_zpos = 0, 0 ; Chamber 2
 
-; Use geometry of SOS chambers for now
-  pdc_zpos   = pdc_1_zpos - 1.5875
-               pdc_1_zpos - 0.9525
-               pdc_1_zpos - 0.3175
-               pdc_1_zpos + 0.3175
-               pdc_1_zpos + 0.9525
-               pdc_1_zpos + 1.5875
-	       pdc_1_zpos - 1.5875	  
-               pdc_1_zpos - 0.9525
-               pdc_1_zpos - 0.3175
-               pdc_1_zpos + 0.3175
-               pdc_1_zpos + 0.9525
-               pdc_1_zpos + 1.5875
+; PLANE POSITION PARAMETERS
 
-; Angle alpha of wires in wire chamber planes
-  pdc_roll = 0.0 ; SOS chambers had roll as installed
-  pdc_alpha_angle = (30-pdc_roll)*raddeg
-  		    (30-pdc_roll)*raddeg
-  		    (90-pdc_roll)*raddeg
-  		    (90-pdc_roll)*raddeg
-  		    (150-pdc_roll)*raddeg
-  		    (150-pdc_roll)*raddeg
-		    (30-pdc_roll)*raddeg
-  		    (30-pdc_roll)*raddeg
-  		    (90-pdc_roll)*raddeg
-  		    (90-pdc_roll)*raddeg
-  		    (150-pdc_roll)*raddeg
-  		    (150-pdc_roll)*raddeg
+; Wire number of center of wire chamber for each plane.
+; From technical drawings.
+pdc_central_wire = 54.25, 53.75, 40.25, 39.75, 54.25, 53.75
+                   53.75, 54.25, 39.75, 40.25, 53.75, 54.25
 
-  pdc_beta = 0.0
-  pdc_beta_angle = pdc_beta
-                   pdc_beta
-                   pdc_beta
-                   pdc_beta
-                   pdc_beta
-                   pdc_beta
-		   pdc_beta
-                   pdc_beta
-                   pdc_beta
-                   pdc_beta
-                   pdc_beta
-                   pdc_beta
+; Distance between wires for each plane in cm.
+; From technical drawings.
+pdc_pitch = 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
+            1.0, 1.0, 1.0, 1.0, 1.0, 1.0
 
-  pdc_gamma = 0.0
-  pdc_gamma_angle = pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-		    pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-                    pdc_gamma
-  pdc_pitch = 1.0000
-              1.0000
-              1.0000
-              1.0000
-              1.0000
-              1.0000
-	      1.0000	      
-              1.0000
-              1.0000
-              1.0000
-              1.0000
-              1.0000
-; Number of wires per plane
-      pdc_nrwire = 107
-                   107
-                   79
-                   79
-                   107
-                   107
-		   107
-                   107
-                   79
-                   79
-                   107
-                   107
+; Order in which wires are counted in each plane.
+pdc_wire_counting = 0, 0, 0, 0, 0, 0
+                    0, 0, 0, 0, 0, 0
 
-; X,Y position of center of wire chamber
-  pdc_xcenter = 0.0, 0.0
-  pdc_ycenter = 0.0, 0.0
+; z position in cm of each plane measured from focal plane.
+; From technical drawings.
+pdc_zpos = pdc_1_zpos - 0.68701*cminch
+           pdc_1_zpos - 0.43701*cminch
+           pdc_1_zpos - 0.18701*cminch
+           pdc_1_zpos + 0.18701*cminch
+           pdc_1_zpos + 0.43701*cminch
+           pdc_1_zpos + 0.68701*cminch
+           pdc_2_zpos - 0.68701*cminch
+           pdc_2_zpos - 0.43701*cminch
+           pdc_2_zpos - 0.18701*cminch
+           pdc_2_zpos + 0.18701*cminch
+           pdc_2_zpos + 0.43701*cminch
+           pdc_2_zpos + 0.68701*cminch
 
-; Wire number of center of wire chamber
-; Note the convention : x : low number =  -x , u,v : low number = "-x"
-; x1 and x2, u1 and u2, v1 and v2 are offset by half a cell length
-; assume 1st wire of 1st dc of a set is closest to edge where counting starts
-; (These taken from SOS.  Will be different for SHMS
-      pdc_central_wire = 54.25
-                         53.75
-                         40.25
-                         40.75
-                         54.25
-                         53.75 
-			 53.75
-			 54.25
-			 40.75
-			 40.25
-			 53.75
-			 54.25
+; Alpha angle of wires for each plane in radians.
+; From technical drawings.
+pdc_alpha_angle = ( 30 + pdc_1_roll)*raddeg
+                  ( 30 + pdc_1_roll)*raddeg
+                  ( 90 + pdc_1_roll)*raddeg
+                  ( 90 + pdc_1_roll)*raddeg
+                  (150 + pdc_1_roll)*raddeg
+                  (150 + pdc_1_roll)*raddeg
+                  ( 30 + pdc_2_roll)*raddeg
+                  ( 30 + pdc_2_roll)*raddeg
+                  ( 90 + pdc_2_roll)*raddeg
+                  ( 90 + pdc_2_roll)*raddeg
+                  (150 + pdc_2_roll)*raddeg
+                  (150 + pdc_2_roll)*raddeg
 
-;  Chamber # for each plane
-pdc_chamber_planes = 1,1,1,1,1,1,2,2,2,2,2,2  
+; Beta angle of wires for each plane in radians.
+pdc_beta_angle = pdc_1_pitch*raddeg
+                 pdc_1_pitch*raddeg
+                 pdc_1_pitch*raddeg
+                 pdc_1_pitch*raddeg
+                 pdc_1_pitch*raddeg
+                 pdc_1_pitch*raddeg
+                 pdc_2_pitch*raddeg
+                 pdc_2_pitch*raddeg
+                 pdc_2_pitch*raddeg
+                 pdc_2_pitch*raddeg
+                 pdc_2_pitch*raddeg
+                 pdc_2_pitch*raddeg
 
-; Order in which wires are readout
-  pdc_wire_counting = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-; If pdc_wire_counting(plane) = 0
-;  the wire center is at (wire - pdc_central_wire) * pitch
-; If pdc_wire_counting(plane) = 1
-;  the wire center is at ( pdc_nrwire + 1 - wire - pdc_central_wire) * pitch
-
-; The velocity correction is the distance from the center of the wire divided
-; by the velocity of propagation times pdc_drifttime_sign(pln).  +/-1
-; for disc. card at +/- coord. (i.e. top = -x direction, so top readout is +1)
-;
-; These are guesses taken from the SOS Chambers
-;
-  pdc_drifttime_sign = 1, -1, -1, 1, 1, -1,  1, -1, -1, 1, 1, -1
\ No newline at end of file
+; Gamma angle of wires for each plane in radians
+pdc_gamma_angle = pdc_1_yaw*raddeg
+                  pdc_1_yaw*raddeg
+                  pdc_1_yaw*raddeg
+                  pdc_1_yaw*raddeg
+                  pdc_1_yaw*raddeg
+                  pdc_1_yaw*raddeg
+                  pdc_2_yaw*raddeg
+                  pdc_2_yaw*raddeg
+                  pdc_2_yaw*raddeg
+                  pdc_2_yaw*raddeg
+                  pdc_2_yaw*raddeg
+                  pdc_2_yaw*raddeg
diff --git a/PARAM/SHMS/DC/pdc_test_stand.param b/PARAM/SHMS/DC/pdc_test_stand.param
new file mode 100644
index 00000000..be39f3af
--- /dev/null
+++ b/PARAM/SHMS/DC/pdc_test_stand.param
@@ -0,0 +1,5 @@
+; TEST-STAND PARAMETERS
+; Custom parameter file which should be loaded when aiming to analyze HMS DC
+; data with no tracking.
+
+psel_using_scin = 0
diff --git a/PARAM/SHMS/DC/pdc_tracking.param b/PARAM/SHMS/DC/pdc_tracking.param
new file mode 100644
index 00000000..13f409cb
--- /dev/null
+++ b/PARAM/SHMS/DC/pdc_tracking.param
@@ -0,0 +1,27 @@
+; TRACKING PARAMETERS
+
+; Sigma of wire chamber resolution for each plane.
+pdc_sigma = 0.02, 0.02, 0.02, 0.02, 0.02, 0.02  ; TODO - SOS values for now
+            0.02, 0.02, 0.02, 0.02, 0.02, 0.02
+
+; TDC window limits for each plane.
+pdc_tdc_min_win = -55000, -55000, -55000, -55000, -55000, -55000  ; TODO - wide limits for now
+                  -55000, -55000, -55000, -55000, -55000, -55000
+pdc_tdc_max_win = 55000, 55000, 55000, 55000, 55000, 55000  ; TODO - wide limits for now
+                  55000, 55000, 55000, 55000, 55000, 55000
+
+; Conversion factor from TDC clicks to ns.
+pdc_tdc_time_per_channel = -0.10
+
+; Zero time correction for each plane in ns that is added to TDC time.
+pdc_plane_time_zero = 1283.82, 1283.30, 1286.73, 1283.56, 1282.57, 1284.30
+                      1283.94, 1283.34, 1286.95, 1286.46, 1286.37, 1284.47
+
+; For wire velocity corrections.
+pdc_wire_velocity = 13.0  ; TODO
+pdc_central_time = 0, 0, 0, 0, 0, 0  ; TODO - no correction for now
+                   0, 0, 0, 0, 0, 0
+pdc_drifttime_sign = 0, 0, 0, 0, 0, 0  ; TODO - no correction for now
+                     0, 0, 0, 0, 0, 0
+pdc_fix_lr = 1
+pdc_fix_propcorr = 1
diff --git a/PARAM/SHMS/DC/pdriftmap.param b/PARAM/SHMS/DC/pdriftmap.param
index d6a16be8..052b8dcc 100644
--- a/PARAM/SHMS/DC/pdriftmap.param
+++ b/PARAM/SHMS/DC/pdriftmap.param
@@ -1,177 +1,175 @@
-; Lookup table
-; Drift map parameters
+; Lookup Table: RUN 437
+; number of bins in Carlos's time to distance lookup table
 pdriftbins = 138
-; Number of 1st bin in table
-pdrift1stbin = -24
-; Bin size in ns
-pdriftbinsz = 2
-; Drift maps simply copied from the SOS chambers
-pwc1u1fract=0.0002,0.0005,0.0009,0.0011,0.0015,0.0018,0.0022,0.0027
-0.0029,0.0033,0.0038,0.0044,0.0048,0.0051,0.0057,0.0070,0.0090,0.0121
-0.0167,0.0217,0.0282,0.0371,0.0467,0.0582,0.0723,0.0873,0.1038,0.1211
-0.1409,0.1609,0.1826,0.2060,0.2302,0.2542,0.2796,0.3043,0.3294,0.3555
-0.3819,0.4085,0.4343,0.4618,0.4890,0.5140,0.5384,0.5635,0.5880,0.6100
-0.6311,0.6522,0.6722,0.6928,0.7120,0.7316,0.7495,0.7684,0.7853,0.8026
-0.8191,0.8334,0.8491,0.8629,0.8771,0.8888,0.8994,0.9089,0.9170,0.9242
-0.9308,0.9364,0.9411,0.9457,0.9496,0.9538,0.9571,0.9602,0.9630,0.9654
-0.9679,0.9698,0.9718,0.9735,0.9750,0.9765,0.9778,0.9791,0.9804,0.9815
-0.9825,0.9833,0.9844,0.9851,0.9855,0.9862,0.9870,0.9874,0.9877,0.9883
-0.9889,0.9893,0.9895,0.9898,0.9901,0.9904,0.9910,0.9918,0.9923,0.9927
-0.9930,0.9935,0.9937,0.9941,0.9943,0.9947,0.9949,0.9952,0.9957,0.9962
-0.9964,0.9966,0.9970,0.9973,0.9975,0.9977,0.9979,0.9982,0.9986,0.9988
-0.9990,0.9991,0.9994,0.9995,0.9998,0.9999,1.0000,1.0000,1.0000,1.0000
-pwc1x1fract=0.0004,0.0006,0.0008,0.0010,0.0012,0.0015,0.0017,0.0021
-0.0025,0.0028,0.0031,0.0033,0.0036,0.0041,0.0045,0.0051,0.0060,0.0075
-0.0104,0.0138,0.0191,0.0265,0.0356,0.0463,0.0596,0.0743,0.0916,0.1114
-0.1316,0.1533,0.1757,0.1988,0.2209,0.2455,0.2689,0.2945,0.3196,0.3437
-0.3697,0.3950,0.4196,0.4448,0.4702,0.4953,0.5186,0.5416,0.5650,0.5877
-0.6099,0.6316,0.6519,0.6719,0.6909,0.7099,0.7277,0.7463,0.7645,0.7821
-0.7979,0.8154,0.8320,0.8477,0.8612,0.8740,0.8865,0.8973,0.9077,0.9161
-0.9234,0.9301,0.9351,0.9406,0.9454,0.9497,0.9531,0.9570,0.9605,0.9631
-0.9660,0.9690,0.9713,0.9728,0.9748,0.9762,0.9775,0.9786,0.9800,0.9807
-0.9818,0.9827,0.9833,0.9843,0.9849,0.9857,0.9861,0.9866,0.9871,0.9877
-0.9883,0.9887,0.9891,0.9895,0.9898,0.9901,0.9907,0.9913,0.9916,0.9918
-0.9921,0.9925,0.9929,0.9931,0.9935,0.9940,0.9944,0.9946,0.9949,0.9952
-0.9956,0.9960,0.9966,0.9968,0.9970,0.9972,0.9974,0.9976,0.9979,0.9980
-0.9984,0.9985,0.9988,0.9990,0.9991,0.9993,0.9996,0.9998,0.9999,1.0000
-pwc1v1fract=0.0002,0.0006,0.0008,0.0011,0.0013,0.0016,0.0019,0.0020
-0.0022,0.0025,0.0030,0.0035,0.0038,0.0042,0.0049,0.0057,0.0076,0.0103
-0.0149,0.0200,0.0273,0.0353,0.0455,0.0574,0.0719,0.0865,0.1045,0.1224
-0.1416,0.1630,0.1844,0.2074,0.2317,0.2555,0.2807,0.3046,0.3298,0.3553
-0.3826,0.4075,0.4316,0.4563,0.4823,0.5065,0.5315,0.5554,0.5781,0.6014
-0.6235,0.6434,0.6643,0.6853,0.7050,0.7238,0.7415,0.7602,0.7787,0.7975
-0.8152,0.8307,0.8456,0.8595,0.8723,0.8851,0.8957,0.9043,0.9126,0.9205
-0.9276,0.9330,0.9383,0.9437,0.9484,0.9521,0.9553,0.9582,0.9607,0.9634
-0.9657,0.9676,0.9701,0.9722,0.9738,0.9755,0.9767,0.9781,0.9794,0.9804
-0.9814,0.9825,0.9835,0.9842,0.9847,0.9853,0.9861,0.9866,0.9871,0.9878
-0.9882,0.9888,0.9891,0.9897,0.9900,0.9903,0.9909,0.9910,0.9917,0.9919
-0.9924,0.9929,0.9937,0.9939,0.9944,0.9948,0.9954,0.9956,0.9961,0.9966
-0.9968,0.9972,0.9974,0.9978,0.9980,0.9981,0.9984,0.9986,0.9989,0.9991
-0.9995,0.9996,0.9998,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-pwc1u2fract=0.0003,0.0004,0.0008,0.0011,0.0015,0.0018,0.0021,0.0024
-0.0027,0.0030,0.0033,0.0037,0.0039,0.0043,0.0046,0.0049,0.0059,0.0073
-0.0094,0.0129,0.0184,0.0267,0.0352,0.0446,0.0563,0.0707,0.0863,0.1030
-0.1206,0.1411,0.1629,0.1845,0.2087,0.2325,0.2578,0.2837,0.3091,0.3357
-0.3606,0.3867,0.4119,0.4362,0.4608,0.4857,0.5099,0.5349,0.5587,0.5814
-0.6047,0.6260,0.6480,0.6685,0.6892,0.7099,0.7282,0.7456,0.7643,0.7812
-0.7988,0.8141,0.8309,0.8454,0.8616,0.8738,0.8847,0.8955,0.9049,0.9133
-0.9199,0.9274,0.9341,0.9399,0.9445,0.9489,0.9529,0.9561,0.9593,0.9620
-0.9645,0.9667,0.9689,0.9701,0.9720,0.9740,0.9756,0.9771,0.9785,0.9796
-0.9808,0.9816,0.9823,0.9832,0.9839,0.9846,0.9854,0.9860,0.9867,0.9874
-0.9876,0.9881,0.9885,0.9889,0.9895,0.9900,0.9902,0.9907,0.9910,0.9916
-0.9919,0.9923,0.9927,0.9930,0.9934,0.9937,0.9942,0.9945,0.9949,0.9953
-0.9957,0.9962,0.9965,0.9968,0.9971,0.9973,0.9976,0.9979,0.9981,0.9984
-0.9986,0.9988,0.9989,0.9993,0.9995,0.9998,0.9999,0.9999,1.0000,1.0000
-pwc1x2fract=0.0002,0.0005,0.0008,0.0011,0.0014,0.0017,0.0021,0.0025
-0.0027,0.0031,0.0032,0.0034,0.0040,0.0045,0.0052,0.0065,0.0083,0.0112
-0.0150,0.0200,0.0264,0.0341,0.0435,0.0560,0.0701,0.0862,0.1027,0.1210
-0.1417,0.1628,0.1833,0.2069,0.2301,0.2547,0.2799,0.3062,0.3314,0.3582
-0.3860,0.4141,0.4390,0.4656,0.4903,0.5161,0.5410,0.5649,0.5874,0.6090
-0.6298,0.6507,0.6721,0.6923,0.7117,0.7312,0.7510,0.7706,0.7881,0.8052
-0.8204,0.8360,0.8525,0.8666,0.8793,0.8906,0.9019,0.9103,0.9194,0.9274
-0.9340,0.9397,0.9442,0.9483,0.9523,0.9557,0.9596,0.9625,0.9653,0.9678
-0.9698,0.9718,0.9732,0.9751,0.9768,0.9782,0.9793,0.9804,0.9813,0.9821
-0.9828,0.9834,0.9842,0.9848,0.9852,0.9857,0.9861,0.9864,0.9872,0.9877
-0.9880,0.9886,0.9889,0.9894,0.9898,0.9903,0.9908,0.9915,0.9921,0.9924
-0.9927,0.9930,0.9935,0.9939,0.9943,0.9945,0.9949,0.9952,0.9957,0.9960
-0.9963,0.9965,0.9967,0.9972,0.9975,0.9979,0.9980,0.9985,0.9987,0.9988
-0.9990,0.9991,0.9992,0.9995,0.9997,1.0000,1.0000,1.0000,1.0000,1.0000
-pwc1v2fract=0.0004,0.0006,0.0008,0.0012,0.0013,0.0016,0.0018,0.0021
-0.0024,0.0027,0.0029,0.0032,0.0036,0.0039,0.0043,0.0049,0.0063,0.0080
-0.0113,0.0155,0.0218,0.0300,0.0397,0.0508,0.0645,0.0793,0.0949,0.1135
-0.1343,0.1560,0.1786,0.2019,0.2250,0.2498,0.2756,0.3011,0.3270,0.3526
-0.3778,0.4042,0.4299,0.4570,0.4821,0.5077,0.5311,0.5540,0.5784,0.6010
-0.6219,0.6429,0.6633,0.6830,0.7023,0.7214,0.7403,0.7590,0.7786,0.7948
-0.8118,0.8288,0.8444,0.8587,0.8725,0.8842,0.8946,0.9044,0.9136,0.9208
-0.9264,0.9323,0.9377,0.9428,0.9472,0.9506,0.9541,0.9576,0.9602,0.9635
-0.9656,0.9675,0.9695,0.9715,0.9732,0.9751,0.9768,0.9777,0.9789,0.9802
-0.9809,0.9819,0.9828,0.9835,0.9841,0.9850,0.9858,0.9863,0.9866,0.9870
-0.9875,0.9880,0.9884,0.9888,0.9894,0.9899,0.9901,0.9905,0.9909,0.9912
-0.9917,0.9919,0.9922,0.9926,0.9931,0.9936,0.9941,0.9945,0.9951,0.9954
-0.9959,0.9962,0.9964,0.9967,0.9969,0.9971,0.9975,0.9978,0.9980,0.9983
-0.9986,0.9988,0.9991,0.9995,0.9998,0.9999,0.9999,0.9999,1.0000,1.0000
-
-pwc2u1fract=0.0002,0.0005,0.0009,0.0011,0.0015,0.0018,0.0022,0.0027
-0.0029,0.0033,0.0038,0.0044,0.0048,0.0051,0.0057,0.0070,0.0090,0.0121
-0.0167,0.0217,0.0282,0.0371,0.0467,0.0582,0.0723,0.0873,0.1038,0.1211
-0.1409,0.1609,0.1826,0.2060,0.2302,0.2542,0.2796,0.3043,0.3294,0.3555
-0.3819,0.4085,0.4343,0.4618,0.4890,0.5140,0.5384,0.5635,0.5880,0.6100
-0.6311,0.6522,0.6722,0.6928,0.7120,0.7316,0.7495,0.7684,0.7853,0.8026
-0.8191,0.8334,0.8491,0.8629,0.8771,0.8888,0.8994,0.9089,0.9170,0.9242
-0.9308,0.9364,0.9411,0.9457,0.9496,0.9538,0.9571,0.9602,0.9630,0.9654
-0.9679,0.9698,0.9718,0.9735,0.9750,0.9765,0.9778,0.9791,0.9804,0.9815
-0.9825,0.9833,0.9844,0.9851,0.9855,0.9862,0.9870,0.9874,0.9877,0.9883
-0.9889,0.9893,0.9895,0.9898,0.9901,0.9904,0.9910,0.9918,0.9923,0.9927
-0.9930,0.9935,0.9937,0.9941,0.9943,0.9947,0.9949,0.9952,0.9957,0.9962
-0.9964,0.9966,0.9970,0.9973,0.9975,0.9977,0.9979,0.9982,0.9986,0.9988
-0.9990,0.9991,0.9994,0.9995,0.9998,0.9999,1.0000,1.0000,1.0000,1.0000
-pwc2x1fract=0.0004,0.0006,0.0008,0.0010,0.0012,0.0015,0.0017,0.0021
-0.0025,0.0028,0.0031,0.0033,0.0036,0.0041,0.0045,0.0051,0.0060,0.0075
-0.0104,0.0138,0.0191,0.0265,0.0356,0.0463,0.0596,0.0743,0.0916,0.1114
-0.1316,0.1533,0.1757,0.1988,0.2209,0.2455,0.2689,0.2945,0.3196,0.3437
-0.3697,0.3950,0.4196,0.4448,0.4702,0.4953,0.5186,0.5416,0.5650,0.5877
-0.6099,0.6316,0.6519,0.6719,0.6909,0.7099,0.7277,0.7463,0.7645,0.7821
-0.7979,0.8154,0.8320,0.8477,0.8612,0.8740,0.8865,0.8973,0.9077,0.9161
-0.9234,0.9301,0.9351,0.9406,0.9454,0.9497,0.9531,0.9570,0.9605,0.9631
-0.9660,0.9690,0.9713,0.9728,0.9748,0.9762,0.9775,0.9786,0.9800,0.9807
-0.9818,0.9827,0.9833,0.9843,0.9849,0.9857,0.9861,0.9866,0.9871,0.9877
-0.9883,0.9887,0.9891,0.9895,0.9898,0.9901,0.9907,0.9913,0.9916,0.9918
-0.9921,0.9925,0.9929,0.9931,0.9935,0.9940,0.9944,0.9946,0.9949,0.9952
-0.9956,0.9960,0.9966,0.9968,0.9970,0.9972,0.9974,0.9976,0.9979,0.9980
-0.9984,0.9985,0.9988,0.9990,0.9991,0.9993,0.9996,0.9998,0.9999,1.0000
-pwc2v1fract=0.0002,0.0006,0.0008,0.0011,0.0013,0.0016,0.0019,0.0020
-0.0022,0.0025,0.0030,0.0035,0.0038,0.0042,0.0049,0.0057,0.0076,0.0103
-0.0149,0.0200,0.0273,0.0353,0.0455,0.0574,0.0719,0.0865,0.1045,0.1224
-0.1416,0.1630,0.1844,0.2074,0.2317,0.2555,0.2807,0.3046,0.3298,0.3553
-0.3826,0.4075,0.4316,0.4563,0.4823,0.5065,0.5315,0.5554,0.5781,0.6014
-0.6235,0.6434,0.6643,0.6853,0.7050,0.7238,0.7415,0.7602,0.7787,0.7975
-0.8152,0.8307,0.8456,0.8595,0.8723,0.8851,0.8957,0.9043,0.9126,0.9205
-0.9276,0.9330,0.9383,0.9437,0.9484,0.9521,0.9553,0.9582,0.9607,0.9634
-0.9657,0.9676,0.9701,0.9722,0.9738,0.9755,0.9767,0.9781,0.9794,0.9804
-0.9814,0.9825,0.9835,0.9842,0.9847,0.9853,0.9861,0.9866,0.9871,0.9878
-0.9882,0.9888,0.9891,0.9897,0.9900,0.9903,0.9909,0.9910,0.9917,0.9919
-0.9924,0.9929,0.9937,0.9939,0.9944,0.9948,0.9954,0.9956,0.9961,0.9966
-0.9968,0.9972,0.9974,0.9978,0.9980,0.9981,0.9984,0.9986,0.9989,0.9991
-0.9995,0.9996,0.9998,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000
-pwc2u2fract=0.0003,0.0004,0.0008,0.0011,0.0015,0.0018,0.0021,0.0024
-0.0027,0.0030,0.0033,0.0037,0.0039,0.0043,0.0046,0.0049,0.0059,0.0073
-0.0094,0.0129,0.0184,0.0267,0.0352,0.0446,0.0563,0.0707,0.0863,0.1030
-0.1206,0.1411,0.1629,0.1845,0.2087,0.2325,0.2578,0.2837,0.3091,0.3357
-0.3606,0.3867,0.4119,0.4362,0.4608,0.4857,0.5099,0.5349,0.5587,0.5814
-0.6047,0.6260,0.6480,0.6685,0.6892,0.7099,0.7282,0.7456,0.7643,0.7812
-0.7988,0.8141,0.8309,0.8454,0.8616,0.8738,0.8847,0.8955,0.9049,0.9133
-0.9199,0.9274,0.9341,0.9399,0.9445,0.9489,0.9529,0.9561,0.9593,0.9620
-0.9645,0.9667,0.9689,0.9701,0.9720,0.9740,0.9756,0.9771,0.9785,0.9796
-0.9808,0.9816,0.9823,0.9832,0.9839,0.9846,0.9854,0.9860,0.9867,0.9874
-0.9876,0.9881,0.9885,0.9889,0.9895,0.9900,0.9902,0.9907,0.9910,0.9916
-0.9919,0.9923,0.9927,0.9930,0.9934,0.9937,0.9942,0.9945,0.9949,0.9953
-0.9957,0.9962,0.9965,0.9968,0.9971,0.9973,0.9976,0.9979,0.9981,0.9984
-0.9986,0.9988,0.9989,0.9993,0.9995,0.9998,0.9999,0.9999,1.0000,1.0000
-pwc2x2fract=0.0002,0.0005,0.0008,0.0011,0.0014,0.0017,0.0021,0.0025
-0.0027,0.0031,0.0032,0.0034,0.0040,0.0045,0.0052,0.0065,0.0083,0.0112
-0.0150,0.0200,0.0264,0.0341,0.0435,0.0560,0.0701,0.0862,0.1027,0.1210
-0.1417,0.1628,0.1833,0.2069,0.2301,0.2547,0.2799,0.3062,0.3314,0.3582
-0.3860,0.4141,0.4390,0.4656,0.4903,0.5161,0.5410,0.5649,0.5874,0.6090
-0.6298,0.6507,0.6721,0.6923,0.7117,0.7312,0.7510,0.7706,0.7881,0.8052
-0.8204,0.8360,0.8525,0.8666,0.8793,0.8906,0.9019,0.9103,0.9194,0.9274
-0.9340,0.9397,0.9442,0.9483,0.9523,0.9557,0.9596,0.9625,0.9653,0.9678
-0.9698,0.9718,0.9732,0.9751,0.9768,0.9782,0.9793,0.9804,0.9813,0.9821
-0.9828,0.9834,0.9842,0.9848,0.9852,0.9857,0.9861,0.9864,0.9872,0.9877
-0.9880,0.9886,0.9889,0.9894,0.9898,0.9903,0.9908,0.9915,0.9921,0.9924
-0.9927,0.9930,0.9935,0.9939,0.9943,0.9945,0.9949,0.9952,0.9957,0.9960
-0.9963,0.9965,0.9967,0.9972,0.9975,0.9979,0.9980,0.9985,0.9987,0.9988
-0.9990,0.9991,0.9992,0.9995,0.9997,1.0000,1.0000,1.0000,1.0000,1.0000
-pwc2v2fract=0.0004,0.0006,0.0008,0.0012,0.0013,0.0016,0.0018,0.0021
-0.0024,0.0027,0.0029,0.0032,0.0036,0.0039,0.0043,0.0049,0.0063,0.0080
-0.0113,0.0155,0.0218,0.0300,0.0397,0.0508,0.0645,0.0793,0.0949,0.1135
-0.1343,0.1560,0.1786,0.2019,0.2250,0.2498,0.2756,0.3011,0.3270,0.3526
-0.3778,0.4042,0.4299,0.4570,0.4821,0.5077,0.5311,0.5540,0.5784,0.6010
-0.6219,0.6429,0.6633,0.6830,0.7023,0.7214,0.7403,0.7590,0.7786,0.7948
-0.8118,0.8288,0.8444,0.8587,0.8725,0.8842,0.8946,0.9044,0.9136,0.9208
-0.9264,0.9323,0.9377,0.9428,0.9472,0.9506,0.9541,0.9576,0.9602,0.9635
-0.9656,0.9675,0.9695,0.9715,0.9732,0.9751,0.9768,0.9777,0.9789,0.9802
-0.9809,0.9819,0.9828,0.9835,0.9841,0.9850,0.9858,0.9863,0.9866,0.9870
-0.9875,0.9880,0.9884,0.9888,0.9894,0.9899,0.9901,0.9905,0.9909,0.9912
-0.9917,0.9919,0.9922,0.9926,0.9931,0.9936,0.9941,0.9945,0.9951,0.9954
-0.9959,0.9962,0.9964,0.9967,0.9969,0.9971,0.9975,0.9978,0.9980,0.9983
-0.9986,0.9988,0.9991,0.9995,0.9998,0.9999,0.9999,0.9999,1.0000,1.0000
\ No newline at end of file
+; number of 1st bin in Carlos's table in ns
+pdrift1stbin=0
+; bin size in ns
+pdriftbinsz=2
+pwc1u1fract=0.0020958,0.00550,0.01002,0.01739,0.02577,0.03772,0.04948,0.06559,0.08364
+0.10279,0.12221,0.14307,0.16406,0.18584,0.20811,0.23051,0.25228,0.27458,0.29806
+0.31974,0.34080,0.36412,0.38678,0.40832,0.43010,0.45152,0.47421,0.49602,0.51701
+0.53846,0.56007,0.58198,0.60153,0.62259,0.64276,0.66234,0.68271,0.70063,0.72034
+0.73878,0.75744,0.77483,0.79075,0.80817,0.82274,0.83898,0.85205,0.86623,0.87825
+0.89020,0.90140,0.91057,0.92020,0.92776,0.93441,0.94158,0.94708,0.95216,0.95635
+0.96054,0.96447,0.96788,0.97099,0.97377,0.97675,0.97934,0.98120,0.98294,0.98481
+0.98654,0.98860,0.99004,0.99132,0.99230,0.99339,0.99404,0.99515,0.99584,0.99653
+0.99695,0.99745,0.99800,0.99826,0.99849,0.99882,0.99915,0.99925,0.99941,0.99954
+0.99967,0.99977,0.99980,0.99980,0.99987,0.99993,0.99993,0.99997,0.99997,0.99997
+0.99997,0.99997,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+pwc1u2fract=0.00192,0.00536,0.01094,0.01854,0.02916,0.04075,0.05474,0.07176,0.08975
+0.11056,0.13105,0.15306,0.17436,0.19660,0.21781,0.24115,0.26408,0.28814,0.31077
+0.33350,0.35671,0.37931,0.40110,0.42399,0.44561,0.46795,0.48964,0.51143,0.53266
+0.55299,0.57546,0.59595,0.61543,0.63533,0.65579,0.67469,0.69323,0.71099,0.72852
+0.74609,0.76472,0.78174,0.79804,0.81421,0.82970,0.84343,0.85765,0.87162,0.88343
+0.89532,0.90613,0.91607,0.92412,0.93107,0.93769,0.94428,0.94883,0.95354,0.95724
+0.96110,0.96458,0.96779,0.97029,0.97312,0.97565,0.97792,0.98026,0.98266,0.98487
+0.98665,0.98851,0.98977,0.99127,0.99224,0.99308,0.99403,0.99493,0.99597,0.99643
+0.99711,0.99756,0.99786,0.99802,0.99854,0.99890,0.99919,0.99929,0.99935,0.99951
+0.99964,0.99974,0.99984,0.99987,0.99990,0.99990,0.99990,0.99990,0.99994,0.99994
+0.99994,0.99997,0.99997,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+pwc1x1fract=0.00604,0.01330,0.02308,0.03473,0.04813,0.06361,0.08088,0.09973,0.11789
+0.13855,0.15859,0.18048,0.20144,0.22475,0.24776,0.26958,0.29143,0.31348,0.33685
+0.35851,0.37901,0.39974,0.42242,0.44375,0.46547,0.48686,0.50839,0.52964,0.55256
+0.57292,0.59316,0.61379,0.63334,0.65192,0.67226,0.69124,0.70831,0.72782,0.74680
+0.76429,0.78120,0.79787,0.81335,0.82811,0.84214,0.85650,0.87020,0.88221,0.89327
+0.90324,0.91206,0.92034,0.92787,0.93543,0.94187,0.94702,0.95111,0.95471,0.95798
+0.96200,0.96544,0.96854,0.97158,0.97402,0.97643,0.97891,0.98079,0.98257,0.98409
+0.98567,0.98739,0.98914,0.99066,0.99165,0.99294,0.99422,0.99488,0.99584,0.99640
+0.99706,0.99752,0.99799,0.99825,0.99842,0.99878,0.99891,0.99908,0.99927,0.99934
+0.99954,0.99960,0.99964,0.99967,0.99970,0.99970,0.99977,0.99987,0.99987,0.99993
+0.99993,0.99993,0.99993,0.99997,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+pwc1x2fract=0.00262,0.00736,0.01364,0.02145,0.03149,0.04365,0.05850,0.07521,0.09336
+0.11409,0.13596,0.15849,0.17942,0.20123,0.22396,0.24655,0.26751,0.29037,0.31038
+0.33356,0.35491,0.37637,0.39811,0.41904,0.43843,0.45975,0.47989,0.50095,0.52302
+0.54388,0.56465,0.58508,0.60532,0.62478,0.64424,0.66343,0.68249,0.70067,0.71699
+0.73511,0.75374,0.77078,0.78834,0.80407,0.81999,0.83503,0.85050,0.86315,0.87587
+0.88771,0.89854,0.90736,0.91619,0.92384,0.93114,0.93705,0.94301,0.94804,0.95219
+0.95631,0.96014,0.96334,0.96622,0.96923,0.97201,0.97463,0.97741,0.97996,0.98182
+0.98349,0.98519,0.98699,0.98878,0.99029,0.99212,0.99313,0.99428,0.99500,0.99572
+0.99601,0.99650,0.99702,0.99745,0.99794,0.99837,0.99863,0.99879,0.99895,0.99915
+0.99922,0.99928,0.99944,0.99948,0.99957,0.99961,0.99964,0.99967,0.99967,0.99967
+0.99971,0.99974,0.99974,0.99977,0.99977,0.99980,0.99980,0.99984,0.99984,0.99984
+0.99984,0.99984,0.99987,0.99987,0.99990,0.99990,0.99990,0.99990,0.99993,0.99993
+0.99993,0.99993,0.99993,0.99993,0.99993,0.99993,0.99993,0.99993,0.99993,0.99993
+0.99993,0.99997,0.99997,0.99997,0.99997,1.00000,1.00000,1.00000,1.00000
+pwc1v1fract=0.00587,0.01226,0.02231,0.03338,0.04752,0.06370,0.08110,0.09998,0.12120
+0.14212,0.16364,0.18562,0.20819,0.23067,0.25255,0.27584,0.29838,0.31980,0.34280
+0.36468,0.38594,0.40953,0.43039,0.45280,0.47507,0.49725,0.51913,0.54075,0.56114
+0.58138,0.60115,0.62309,0.64342,0.66115,0.68069,0.69911,0.71599,0.73444,0.75210
+0.76947,0.78617,0.80225,0.81731,0.83349,0.84756,0.86078,0.87346,0.88546,0.89620
+0.90612,0.91515,0.92319,0.93021,0.93650,0.94171,0.94705,0.95087,0.95542,0.95888
+0.96326,0.96622,0.96939,0.97196,0.97443,0.97690,0.97927,0.98181,0.98359,0.98540
+0.98718,0.98890,0.99028,0.99183,0.99285,0.99433,0.99502,0.99591,0.99641,0.99700
+0.99740,0.99769,0.99806,0.99839,0.99858,0.99871,0.99895,0.99914,0.99934,0.99951
+0.99964,0.99970,0.99977,0.99984,0.99990,0.99993,0.99993,0.99993,0.99997,0.99997
+0.99997,0.99997,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+pwc1v2fract=0.00340,0.00893,0.01651,0.02543,0.03609,0.04979,0.06568,0.08337,0.10194
+0.12119,0.14185,0.16438,0.18602,0.20930,0.23231,0.25553,0.27583,0.29930,0.32258
+0.34478,0.36697,0.38927,0.41196,0.43308,0.45629,0.47891,0.50062,0.52233,0.54204
+0.56355,0.58389,0.60442,0.62498,0.64329,0.66307,0.68370,0.70181,0.72126,0.73875
+0.75477,0.77295,0.78887,0.80365,0.81797,0.83297,0.84749,0.86158,0.87485,0.88610
+0.89646,0.90617,0.91467,0.92334,0.93059,0.93674,0.94217,0.94733,0.95158,0.95606
+0.96021,0.96325,0.96587,0.96920,0.97208,0.97496,0.97754,0.97963,0.98179,0.98382
+0.98532,0.98686,0.98885,0.99019,0.99114,0.99222,0.99304,0.99405,0.99487,0.99552
+0.99637,0.99696,0.99722,0.99761,0.99804,0.99830,0.99859,0.99879,0.99886,0.99905
+0.99922,0.99938,0.99944,0.99957,0.99964,0.99967,0.99971,0.99974,0.99974,0.99977
+0.99977,0.99980,0.99984,0.99984,0.99984,0.99984,0.99984,0.99984,0.99984,0.99984
+0.99984,0.99984,0.99984,0.99987,0.99987,0.99987,0.99987,0.99987,0.99987,0.99987
+0.99987,0.99987,0.99987,0.99987,0.99987,0.99987,0.99987,0.99987,0.99987,0.99987
+0.99990,0.99990,0.99993,0.99997,0.99997,0.99997,1.00000,1.00000,1.00000
+pwc2v2fract=0.00355,0.00811,0.01463,0.02407,0.03587,0.04919,0.06677,0.08541,0.10400
+0.12540,0.14794,0.17011,0.19288,0.21693,0.23949,0.26299,0.28650,0.30951,0.33287
+0.35488,0.37780,0.39963,0.42181,0.44353,0.46490,0.48629,0.50656,0.52717,0.54784
+0.56852,0.58965,0.60916,0.62797,0.64653,0.66474,0.68310,0.70099,0.71828,0.73546
+0.75155,0.76685,0.78194,0.79734,0.81166,0.82645,0.83962,0.85270,0.86479,0.87595
+0.88651,0.89623,0.90495,0.91333,0.92068,0.92721,0.93332,0.93810,0.94279,0.94743
+0.95203,0.95604,0.95939,0.96229,0.96514,0.96786,0.97076,0.97319,0.97559,0.97771
+0.97986,0.98193,0.98360,0.98553,0.98730,0.98893,0.99021,0.99108,0.99205,0.99300
+0.99375,0.99470,0.99540,0.99585,0.99629,0.99679,0.99719,0.99765,0.99799,0.99832
+0.99846,0.99862,0.99894,0.99903,0.99914,0.99923,0.99937,0.99953,0.99964,0.99968
+0.99975,0.99982,0.99982,0.99984,0.99987,0.99987,0.99991,0.99993,0.99995,0.99996
+0.99996,0.99996,0.99996,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998
+0.99998,0.99998,0.99998,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+pwc2v1fract=0.00372,0.00848,0.01548,0.02441,0.03573,0.04956,0.06476,0.08295,0.10351
+0.12426,0.14625,0.16946,0.19199,0.21540,0.23858,0.26192,0.28639,0.30861,0.33119
+0.35334,0.37566,0.39810,0.42021,0.44146,0.46266,0.48382,0.50582,0.52804,0.54885
+0.56798,0.58801,0.60859,0.62777,0.64688,0.66520,0.68353,0.70152,0.71956,0.73761
+0.75335,0.76982,0.78458,0.79995,0.81450,0.82748,0.84073,0.85341,0.86489,0.87527
+0.88573,0.89487,0.90394,0.91159,0.91911,0.92546,0.93130,0.93661,0.94148,0.94587
+0.94992,0.95404,0.95789,0.96136,0.96449,0.96755,0.97010,0.97255,0.97491,0.97713
+0.97915,0.98114,0.98275,0.98458,0.98592,0.98751,0.98881,0.99004,0.99134,0.99221
+0.99298,0.99396,0.99456,0.99526,0.99597,0.99640,0.99714,0.99754,0.99778,0.99816
+0.99841,0.99861,0.99882,0.99897,0.99915,0.99920,0.99937,0.99944,0.99953,0.99964
+0.99971,0.99976,0.99978,0.99982,0.99986,0.99986,0.99989,0.99996,0.99998,0.99998
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+pwc2x2fract=0.00273,0.00715,0.01355,0.02204,0.03274,0.04612,0.06183,0.08042,0.09892
+0.11876,0.14088,0.16295,0.18590,0.20896,0.23253,0.25474,0.27887,0.30140,0.32319
+0.34527,0.36878,0.39027,0.41159,0.43320,0.45397,0.47620,0.49685,0.51873,0.53997
+0.56079,0.58000,0.59982,0.61994,0.63833,0.65730,0.67629,0.69488,0.71185,0.72945
+0.74559,0.76034,0.77572,0.79084,0.80480,0.81885,0.83163,0.84497,0.85717,0.86887
+0.87936,0.88973,0.89888,0.90758,0.91469,0.92266,0.92871,0.93477,0.93975,0.94473
+0.94887,0.95311,0.95691,0.96043,0.96402,0.96686,0.96950,0.97235,0.97469,0.97770
+0.97983,0.98189,0.98345,0.98514,0.98657,0.98803,0.98942,0.99069,0.99178,0.99271
+0.99365,0.99440,0.99512,0.99586,0.99630,0.99685,0.99718,0.99764,0.99805,0.99826
+0.99845,0.99870,0.99887,0.99896,0.99908,0.99926,0.99944,0.99954,0.99958,0.99961
+0.99968,0.99974,0.99974,0.99975,0.99982,0.99982,0.99984,0.99986,0.99989,0.99991
+0.99993,0.99993,0.99995,0.99995,0.99996,0.99996,0.99996,0.99996,0.99996,0.99996
+0.99996,0.99996,0.99996,0.99996,0.99996,0.99996,0.99996,0.99996,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+pwc2x1fract=0.00269,0.00655,0.01238,0.02026,0.03076,0.04237,0.05721,0.07286,0.09074
+0.10990,0.13086,0.15127,0.17513,0.19808,0.21996,0.24259,0.26537,0.28700,0.30956
+0.33140,0.35472,0.37650,0.39789,0.41888,0.44103,0.46255,0.48301,0.50454,0.52595
+0.54652,0.56800,0.58817,0.60742,0.62763,0.64721,0.66513,0.68315,0.70174,0.71896
+0.73531,0.75199,0.76820,0.78380,0.79914,0.81382,0.82846,0.84117,0.85393,0.86529
+0.87711,0.88755,0.89691,0.90553,0.91347,0.92066,0.92770,0.93366,0.93864,0.94362
+0.94777,0.95195,0.95612,0.95964,0.96283,0.96603,0.96896,0.97175,0.97480,0.97722
+0.97963,0.98193,0.98357,0.98535,0.98699,0.98833,0.98957,0.99091,0.99207,0.99304
+0.99378,0.99456,0.99544,0.99616,0.99677,0.99721,0.99761,0.99778,0.99812,0.99846
+0.99870,0.99892,0.99919,0.99937,0.99951,0.99959,0.99971,0.99971,0.99976,0.99976
+0.99978,0.99978,0.99983,0.99985,0.99988,0.99990,0.99990,0.99992,0.99992,0.99992
+0.99992,0.99992,0.99992,0.99993,0.99995,0.99995,0.99995,0.99995,0.99995,0.99995
+0.99995,0.99995,0.99997,0.99998,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+pwc2u2fract=0.00237,0.00581,0.01068,0.01782,0.02712,0.03875,0.05280,0.06868,0.08541
+0.10517,0.12528,0.14629,0.16884,0.19099,0.21299,0.23643,0.25869,0.28213,0.30434
+0.32678,0.34909,0.37174,0.39436,0.41625,0.43794,0.45954,0.48214,0.50378,0.52612
+0.54676,0.56720,0.58734,0.60833,0.62706,0.64672,0.66643,0.68381,0.70311,0.72117
+0.73876,0.75651,0.77290,0.78840,0.80271,0.81762,0.83198,0.84523,0.85838,0.87054
+0.88217,0.89223,0.90219,0.91106,0.91891,0.92627,0.93193,0.93753,0.94300,0.94747
+0.95198,0.95570,0.95922,0.96280,0.96595,0.96887,0.97174,0.97436,0.97680,0.97881
+0.98093,0.98278,0.98473,0.98631,0.98770,0.98939,0.99066,0.99200,0.99297,0.99412
+0.99487,0.99556,0.99620,0.99659,0.99711,0.99744,0.99782,0.99821,0.99859,0.99886
+0.99900,0.99919,0.99928,0.99940,0.99952,0.99955,0.99962,0.99966,0.99969,0.99978
+0.99979,0.99986,0.99986,0.99990,0.99993,0.99995,0.99995,0.99995,0.99995,0.99995
+0.99995,0.99995,0.99997,0.99997,0.99998,0.99998,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+pwc2u1fract=0.00286,0.00678,0.01311,0.02071,0.03000,0.04184,0.05560,0.07218,0.08949
+0.10886,0.12878,0.15013,0.17143,0.19400,0.21638,0.23885,0.26210,0.28499,0.30799
+0.33149,0.35450,0.37694,0.39903,0.42079,0.44323,0.46431,0.48507,0.50695,0.52818
+0.54926,0.57110,0.59212,0.61239,0.63161,0.65112,0.67003,0.68866,0.70782,0.72560
+0.74401,0.76115,0.77812,0.79482,0.80987,0.82598,0.84019,0.85395,0.86640,0.87848
+0.88970,0.89967,0.90845,0.91686,0.92449,0.93102,0.93708,0.94241,0.94746,0.95154
+0.95614,0.95993,0.96300,0.96655,0.96970,0.97251,0.97476,0.97719,0.97971,0.98181
+0.98349,0.98540,0.98741,0.98885,0.99029,0.99135,0.99259,0.99369,0.99464,0.99538
+0.99599,0.99672,0.99729,0.99767,0.99797,0.99822,0.99866,0.99885,0.99898,0.99919
+0.99929,0.99931,0.99939,0.99954,0.99958,0.99966,0.99970,0.99971,0.99975,0.99980
+0.99981,0.99983,0.99986,0.99988,0.99990,0.99992,0.99992,0.99992,0.99992,0.99992
+0.99993,0.99993,0.99995,0.99997,0.99997,0.99997,0.99997,0.99997,0.99997,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
+1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000
diff --git a/PARAM/SHMS/GEN/pcana.param b/PARAM/SHMS/GEN/pcana.param
index d58c0f93..8524663d 100644
--- a/PARAM/SHMS/GEN/pcana.param
+++ b/PARAM/SHMS/GEN/pcana.param
@@ -1,19 +1,18 @@
 ; Parameters we need to keep THcHallCSpectrometer Happy
-p_recon_coeff_filename = ""
+p_recon_coeff_filename = "DATFILES/SHMS_fr3_rec__order_5.dat"
 
 ppartmass = 0.139
-phodo_num_planes = 1
 
 ; Scintillator parameters
 pref_npaddles = 6
 pref_nsperchan = 0.1
 pref_offset = 0.0
 
-; Names of planes so that parameter names can be constructed
-pdc_plane_names = "1u1 1u2 1x1 1x2 1v1 1v2 2v2 2v1 2x2 2x1 2u2 2u1"
+; Number of aerogel pairs of pmt's
+paero_num_pairs = 7
 
-; Compatibility parameters.  Should be zero to precisely mimic ENGINE
-; behavior, but one for more correct behavior
-pdc_fix_lr = 1 ; Let hit have different L/R assignment for different space point
-pdc_fix_propcorr = 1 ; do propagation along wire each time hit appeears
-                     ; in a space point
\ No newline at end of file
+; Number of heavy gas Cherenkov PMT's
+phgcer_tot_pmts = 4
+
+; Number of noble gas Cherenkov PMT's
+pngcer_tot_pmts = 4
diff --git a/PARAM/SHMS/GEN/pdebug.param b/PARAM/SHMS/GEN/pdebug.param
index 3e1149e0..e36705b5 100644
--- a/PARAM/SHMS/GEN/pdebug.param
+++ b/PARAM/SHMS/GEN/pdebug.param
@@ -5,4 +5,17 @@ pdebugprintdecodeddc = 0 ; Dump PDC_DECODED_DC bank
 pdebugflagpr = 0 ; Dump intermediate pattern recognition results
 pdebugflagstubs= 0 ; Dump stub fit results
 pdebugtrackprint = 0 ; Dump focal plane track fit results
-pdebugstubchisq = 0; Dump chi2 of left-right fits
\ No newline at end of file
+pdebugstubchisq = 0; Dump chi2 of left-right fits
+
+;  pluno     fortran lun for output
+      pluno = 66
+; pdebugdumptof           Dump timing information for fitting offsets
+      pdebugdumptof = 0
+; pdebugdumpcal           Dump calorimeter information for fitting gains
+      pdebugdumpcal = 0
+; number of pedestal events required to overwrite orig. peds.
+  phodo_min_peds = 500
+  pcal_min_peds  = 500
+  pcer_min_peds  = 500
+  paero_min_peds  = 500
+  pmisc_min_peds  = 500
diff --git a/PARAM/SHMS/GEN/ptracking.param b/PARAM/SHMS/GEN/ptracking.param
index 1de167cf..bb63238c 100644
--- a/PARAM/SHMS/GEN/ptracking.param
+++ b/PARAM/SHMS/GEN/ptracking.param
@@ -13,7 +13,7 @@ pmin_hit = 5, 5
 pmin_combos = 6, 6
 ; hspace_point_criterion(i) minimum separation of distinct space points
 ; recommended value for hspace_point_criterion ( based on meeting
-; Feb 2003) 
+; Feb 2003)
   pspace_point_criterion = 1.2, 1.2
 
 ; The following four criteria are applied to the stub fit results at the
@@ -25,12 +25,72 @@ pntracks_max_fp = 10
 ; focal plane position to link stubs to tracks
   pntracks_max_fp = 10
   pxt_track_criterion = 100.0
-  pyt_track_criterion = 2.0
+  pyt_track_criterion = 20.0
   pxpt_track_criterion = 1.0
   pypt_track_criterion = 1.0
 
 ; Make a track of all single stubs normally 0
-  psingle_stub = 1 
+  psingle_stub = 0
 
 ; No small angle approximation for cosmic ray tests
-  pSmallAngleApprox = 0
\ No newline at end of file
+  pSmallAngleApprox = 0
+
+; Crude track selection criteria in h_physics
+; psel_chi2_fpperdegmax   maximum chi2 per degree of freedom for track
+  psel_chi2_fpperdegmax = 2000000.
+; psel_dedx1min           minimum dedx to chose best track in scin 1
+  psel_dedx1min = -100000
+; psel_dedx1max           maximum dedx to chose best track in scin 1
+  psel_dedx1max = 1000000.
+; psel_betamin            minimum track beta to chose best track
+  psel_betamin  = -100000
+; psel_betamax            maximum track beta to chose best track
+  psel_betamax  = 100000.
+; psel_etmin              minimum track et to chose best track
+  psel_etmin = 0.05
+; psel_etmax              maximum track et to chose best track
+  psel_etmax = 100000.
+; psel_ndegreesmin        minimum number of degrees of freedom for track
+  psel_ndegreesmin = 1
+
+
+; pstat_maxchisq          chisquared limit for tracks used to measure hodo. eff.
+  pstat_maxchisq = 10.
+; if both psel_using_scin = 0 and psel_using_prune = 0 then best chi2 track is used.
+; psel_using_scin         uses scintillator for track selection
+  psel_using_scin = 0
+; psel_using_prune         using prune
+  psel_using_prune = 0
+; pstat_slop              distance from center of scin. to count as expecting hit
+  pstat_slop = 2.
+; pstat_mineff            warning level for scin. effic.
+  pstat_mineff = .95
+; pstat_cal_maxchisq      cpisquared limit for tracks used to measure cal. eff.
+  pstat_cal_maxchisq = 10.
+; pstat_cal_slop          distance from center of block to count as expecting hit
+  pstat_cal_slop = 2.
+; phgcer_min_eff            warning level for cerenkov effic.
+  phgcer_min_eff = .98
+; phgcer_threshold          threshold for good hit (for measureing effic.)
+  phgcer_threshold = 0.5
+; pngcer_min_eff            warning level for cerenkov effic.
+  pngcer_min_eff = .98
+; pngcer_threshold          threshold for good hit (for measureing effic.)
+  pngcer_threshold = 0.5
+; pdc_min_eff             warning level for dc raw effic.(1 per plane)
+  pdc_min_eff = .96,.98,.96,.98,.98,.94
+                .96,.98,.98,.98,.98,.96
+; pdc_min_wire_eff        warning level for wire effic, measured using tracking
+  pdc_min_wire_eff = .85
+; pdc_min_plane_eff        warning level for plane effic, measured using tracking
+  pdc_min_plane_eff = .95,.95,.95,.95,.95,.95
+                      .95,.95,.95,.95,.95,.95
+;Derek added this for scintillator based fiducial cuts.  Everything from
+;loscin to hiscin inclusive will be included as "good" scintillator hits.
+  pxloscin  = 4, 4
+  pxhiscin  = 13, 13
+  pyloscin  = 4, 4
+  pyhiscin  = 7, 7
+;  ptrack_eff_test_scin_planes is the number of planes nec needed to
+;  set sweet spot to true. 4 is extra clean, 3 is good enough for e-'s.
+  ptrack_eff_test_num_scin_planes = 3
diff --git a/PARAM/SHMS/GEN/shmsflags.param b/PARAM/SHMS/GEN/shmsflags.param
index 56ef41f5..78493f50 100644
--- a/PARAM/SHMS/GEN/shmsflags.param
+++ b/PARAM/SHMS/GEN/shmsflags.param
@@ -1,6 +1,6 @@
 
-; The hdelta_offset,htheta_offset,hphi_offset effect the
-; reconstructed target quantities. Used in h_targ_trans.f 
+; The pdelta_offset,ptheta_offset,pphi_offset effect the
+; reconstructed target quantities. 
 ; For transport x is in the dispersive direction with + down
 ;               y is in the horizontal + towards small angles.
 ;               z is along the central optics axis.
@@ -8,7 +8,7 @@
 ;    but for unknown reasons the yp offset is named  htheta_offset
 ;    and  the xp offset is named  hphi_offset
 ; Do not to change these values, since these are the zero order
-;  CMOP matrix elements. If you do change then your hms sieve
+;  CMOP matrix elements. If you do change then your shms sieve
 ;  plots will be screwed up.
 
 pdelta_offset = 0.0
@@ -16,13 +16,11 @@ ptheta_offset = 0.0
 pphi_offset = 0.0
 
 ; The following offsets are applied to the central kinematic variables
-;  in h_apply_offsets.f  . These might be modified by an experiment
+; These might be modified by an experiment
 ;  after doing calibration with elastic ep.
 
 pthetacentral_offset = 0.0
 p_oopcentral_offset = 0.0
 ppcentral_offset = 0.0
-ppcentral = 0.0
-ptheta_lab = 0.0
 
 
diff --git a/PARAM/SHMS/HGCER/phgcer.param b/PARAM/SHMS/HGCER/phgcer.param
new file mode 100644
index 00000000..dbe8d0a6
--- /dev/null
+++ b/PARAM/SHMS/HGCER/phgcer.param
@@ -0,0 +1,24 @@
+phgcer_width = 50, 50
+
+phgcer_adc_to_npe = 1/145.0, 1/122.0
+
+
+phgcer_chi2max = 50.
+phgcer_beta_min = 0.8
+phgcer_beta_max = 1.2
+phgcer_et_min = 0.95
+phgcer_et_max = 5.0
+phgcer_mirror_zpos = 230
+; phgcer_region: 8 values for each region (1 per mirror + sum)
+; central x,y,dx,dy values and x,y,dx,dy half widths.
+phgcer_region =   30,  -30,   0,
+                 0,    0,   0,
+                 0,    0,   0,
+                 0,    0,   0,
+                20,   20,  60,
+                30,   30,  30,
+                .1,   .1,  .1,
+                .1,   .1,  .1
+
+phgcer_ped_limit =  1000,1000
+	       
diff --git a/PARAM/SHMS/HODO/phodo.param b/PARAM/SHMS/HODO/phodo.param
new file mode 100644
index 00000000..aaa4ea23
--- /dev/null
+++ b/PARAM/SHMS/HODO/phodo.param
@@ -0,0 +1,411 @@
+pcosmicflag=1
+; for now manually set hte FADC mode
+;  1 == Use the pulse int - pulse ped
+;  2 == Use the sample integral - known ped
+;  3 == Use the sample integral - sample ped
+; if not set then defaults to use the raw pulse integral
+phodo_adc_mode=1
+; 
+; hhodo_tdc_offset is array of time offsets for all paddles in a plane
+;   to move the tdc to between 0 and 4000 channels.
+  phodo_tdc_offset = 1860, 2000, 2060, 2000
+; pstart_time_center  center of allowed time window                             
+   pstart_time_center = 32.                                                     
+; hstart_time_slop    1/2 width of time window                                  
+   pstart_time_slop = 100.                                                       
+; pscin_tdc_min       minimum tdc value in hms scin                             
+    pscin_tdc_min = -500                                                           
+; pscin_tdc_max       maximum allowed tdc value                                 
+   pscin_tdc_max = 1000                                                        
+; pscin_tdc_to_time   scin tdc time per channel                                 
+   pscin_tdc_to_time = 0.1                                                   
+; tof and you figured out good values
+   ptof_tolerance = 100.0
+;                                                                               
+; shms_tof_params                                                              
+; pnum_scin_counters, phodo_zpos, phodo_center_coord, phodo_width               
+; are all calculated within p_init_scin                                         
+;    phodo_pos_coord and phodo_neg_coord are not yet used                       
+;                                                                               
+     phodo_slop     =    2.,  2.,  4.,  4.    
+;                                  
+ptofusinginvadc=1
+;                                                                               
+                                                                                
+phodo_pos_invadc_offset =   -5.0000,   -5.0000,  0.000,   0.000
+ -5.0000,   -2.0000,  0.000,   0.000
+ -5.0000,   -2.0000,  +10.000,   0.000
+ -5.0000,   -4.0000,  0.000,   0.000
+ -5.0000,   -4.0000,  +10.000,   0.000
+ -5.0000,   -5.0000,  0.000,   0.000
+ -5.0000,   -6.0000,  0.000,   -14.000
+ -5.0000,   -4.0000,  0.000,   -14.000
+ -5.0000,   -5.0000,  0.000,   -14.000
+ -5.0000,   +6.0000,  0.000,   -14.000
+ -5.0000,   0.0000,  0.000,   -14.000
+ -5.0000,   +5.0000,  0.000,   -14.000
+ -5.0000,   -7.0000,  0.000,   -14.000
+ 0.000,   0.0000,  0.000,   -14.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+;
+phodo_neg_invadc_offset =   0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  +10.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  +10.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   -14.000
+ 0.000,   0.0000,  0.000,   -14.000
+ 0.000,   0.0000,  0.000,   -14.000
+ 0.000,   +10.0000,  0.000,   -14.000
+ 0.000,   0.0000,  0.000,   -14.000
+ 0.000,   +10.0000,  0.000,   -14.000
+ 0.000,   0.0000,  0.000,   -14.000
+ 0.000,   0.0000,  0.000,  -14.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+;
+phodo_pos_invadc_linear =   15.0,15.0,15.0,15.0        
+                        15.0,15.0,15.0,15.0      
+                        15.0,15.0,15.0,15.0      
+                        15.0,15.0,15.0,15.0   
+                        15.0,15.0,15.0,15.0   
+                        15.0,15.0,15.0,15.0  
+                        15.0,15.0,15.0,15.0  
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0 
+                        15.0,15.0,15.0,15.0 
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0  
+                        15.0,15.0,15.0,15.0  
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0  
+                        15.0,15.0,15.0,15.0  
+phodo_neg_invadc_linear =   15.0,15.0,15.0,15.0        
+                        15.0,15.0,15.0,15.0      
+                        15.0,15.0,15.0,15.0      
+                        15.0,15.0,15.0,15.0   
+                        15.0,15.0,15.0,15.0   
+                        15.0,15.0,15.0,15.0  
+                        15.0,15.0,15.0,15.0  
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0 
+                        15.0,15.0,15.0,15.0 
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0  
+                        15.0,15.0,15.0,15.0  
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0
+                        15.0,15.0,15.0,15.0  
+                        15.0,15.0,15.0,15.0  
+ 
+phodo_pos_invadc_adc =   0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+;
+phodo_neg_invadc_adc =   0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+ 0.000,   0.0000,  0.000,   0.000
+;                                                                               
+     phodo_vel_light =  15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                        15.0,15.0,15.0,15.0                                     
+                                                                               
+      phodo_pos_sigma = .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,                                 
+;                                                                               
+      phodo_neg_sigma = .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,                                 
+                        .3,.3,.3,.3,                                 
+;                                                                               
+phodo_pos_ped_limit = 1000,1000,1000,1000 
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000 
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+ ;                                                                               
+phodo_neg_ped_limit = 1000,1000,1000,1000 
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000 
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                      1000,1000,1000,1000
+                      1000,1000,1000,1000                   
+                                                                               
+
+phodo_pos_invadc_offset =   -0.00,   -0.00,    0.59,   -0.00
+                            -6.26,   -4.09,    0.45,   -0.00
+                            -2.48,   -1.94,   12.41,   -0.00
+                             1.98,   -2.95,    0.44,   -0.00
+                            -1.71,   -4.57,    9.75,   -0.00
+                            -2.48,   -5.36,    0.15,   -0.00
+                             0.39,   -3.34,    0.75,   -0.00
+                            -7.06,   -3.12,    0.21,   -0.00
+                            -1.75,   -3.79,    1.52,   -0.00
+                            -0.00,    5.02,    1.58,   -0.00
+                            -3.67,   -3.57,    0.80,   -0.00
+                             0.76,   11.15,    2.28,   -0.00
+                            -0.00,   -0.00,    3.28,   -0.00
+                            -0.00,   -0.00,   -0.00,   -0.00
+                            -0.00,   -0.00,   -0.00,   -0.00
+                            -0.00,   -0.00,   -0.00,   -0.00
+
+phodo_neg_invadc_offset =   -0.00,   -0.00,   -5.36,   -0.00
+                            -7.60,   -2.32,   -5.24,   -0.00
+                             0.62,   -3.65,   15.02,   -0.00
+                            -4.07,   -3.42,   -6.21,   -0.00
+                            -2.60,   -3.61,   10.43,   -0.00
+                            -5.70,   -2.98,   -7.00,   -0.00
+                             1.23,   -2.53,   -5.65,   -0.00
+                            -2.39,   -4.13,   -5.78,   -0.00
+                            -1.38,   -3.39,   -7.54,   -0.00
+                            -2.56,    7.05,   -5.93,   -0.00
+                             1.84,   -4.38,   -3.91,   -0.00
+                            -3.23,    9.84,   -3.06,   -0.00
+                            -0.00,   -0.00,   -5.95,   -0.00
+                            -0.00,   -0.00,   -0.00,   -0.00
+                            -0.00,   -0.00,   -0.00,   -0.00
+                            -0.00,   -0.00,   -0.00,   -0.00
+
+phodo_pos_invadc_linear =   15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   14.97,   15.00
+                            14.28,   13.33,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            14.76,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+
+phodo_neg_invadc_linear =   15.00,   15.00,   15.00,   15.00
+                            13.91,   14.43,   15.00,   15.00
+                            14.52,   14.76,   15.00,   15.00
+                            14.68,   14.14,   15.00,   15.00
+                            14.94,   14.70,   15.00,   15.00
+                            14.34,   14.14,   15.00,   15.00
+                            14.82,   13.94,   15.00,   15.00
+                            15.00,   14.33,   15.00,   15.00
+                            14.77,   13.76,   15.00,   15.00
+                            15.00,   14.75,   14.42,   15.00
+                            15.00,   13.69,   13.56,   15.00
+                            13.75,   13.13,   13.73,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+                            15.00,   15.00,   15.00,   15.00
+
+phodo_pos_invadc_adc=    -0.00,    -0.00,   112.14,    -0.00
+                        85.63,   100.91,    83.19,    -0.00
+                        96.42,    36.41,   116.39,    -0.00
+                       121.38,    90.00,   118.14,    -0.00
+                       114.06,    92.90,   100.01,    -0.00
+                       110.24,    92.14,   103.32,    -0.00
+                       125.76,    84.99,   122.10,    -0.00
+                        92.38,    91.90,   130.47,    -0.00
+                       116.53,    85.91,    98.54,    -0.00
+                       122.36,   111.70,   113.37,    -0.00
+                       104.33,    74.85,    80.05,    -0.00
+                       122.25,   100.68,   145.77,    -0.00
+                        -0.00,    -0.00,   134.86,    -0.00
+                        -0.00,    -0.00,    -0.00,    -0.00
+                        -0.00,    -0.00,    -0.00,    -0.00
+                        -0.00,    -0.00,    -0.00,    -0.00
+
+phodo_neg_invadc_adc=    -0.00,    -0.00,   115.40,    -0.00
+                       100.70,    83.97,   103.44,    -0.00
+                       112.43,    84.04,   158.78,    -0.00
+                       119.43,    89.05,   118.05,    -0.00
+                       101.78,    89.03,   123.62,    -0.00
+                        97.26,    87.19,   108.87,    -0.00
+                       121.57,    78.91,   104.65,    -0.00
+                       110.95,    85.20,   170.10,    -0.00
+                       109.62,    78.24,   104.81,    -0.00
+                       113.38,   111.82,    60.35,    -0.00
+                       126.61,    78.83,    62.49,    -0.00
+                        91.82,    87.61,    62.81,    -0.00
+                        -0.00,    -0.00,   155.93,    -0.00
+                        -0.00,    -0.00,    -0.00,    -0.00
+                        -0.00,    -0.00,    -0.00,    -0.00
+                        -0.00,    -0.00,    -0.00,    -0.00
+
+phodo_pos_sigma =  100.00,  100.00,    0.67,  100.00
+                     0.60,    0.57,    0.84,  100.00
+                     0.49,    0.64,    0.64,  100.00
+                     0.61,    0.50,    0.65,  100.00
+                     0.59,    0.63,    0.82,  100.00
+                     0.72,    0.56,    0.62,  100.00
+                     0.51,    0.52,    0.68,  100.00
+                     0.65,    0.56,    0.92,  100.00
+                     0.69,    0.49,    0.67,  100.00
+                     0.66,    0.60,    1.69,  100.00
+                     0.56,    0.54,    1.72,  100.00
+                     0.57,    0.51,    1.49,  100.00
+                   100.00,  100.00,    2.01,  100.00
+                   100.00,  100.00,  100.00,  100.00
+                   100.00,  100.00,  100.00,  100.00
+                   100.00,  100.00,  100.00,  100.00
+
+phodo_neg_sigma =  100.00,  100.00,    0.58,  100.00
+                     0.66,    0.61,    0.74,  100.00
+                     0.53,    0.61,    0.60,  100.00
+                     0.57,    0.46,    0.91,  100.00
+                     0.55,    0.62,    0.85,  100.00
+                     0.65,    0.51,    0.67,  100.00
+                     0.49,    0.53,    0.62,  100.00
+                     0.64,    0.54,    0.85,  100.00
+                     0.65,    0.54,    0.67,  100.00
+                     0.71,    0.62,    1.27,  100.00
+                     0.75,    0.53,    1.67,  100.00
+                     0.51,    0.57,    1.33,  100.00
+                   100.00,  100.00,    2.07,  100.00
+                   100.00,  100.00,  100.00,  100.00
+                   100.00,  100.00,  100.00,  100.00
+                   100.00,  100.00,  100.00,  100.00
diff --git a/PARAM/SHMS/HODO/phodo.pos b/PARAM/SHMS/HODO/phodo.pos
new file mode 100644
index 00000000..fc5d3077
--- /dev/null
+++ b/PARAM/SHMS/HODO/phodo.pos
@@ -0,0 +1,101 @@
+phodo_num_planes = 4
+phodo_plane_names = "1x 1y 2x 2y"
+      ppathlength_central = 1800
+; Z positions of hodoscopes
+      pscin_1x_zpos =  56.3-9.5
+      pscin_1y_zpos =  56.3+9.5
+      pscin_2x_zpos =  276.35-9.5
+      pscin_2y_zpos =  276.35+9.5
+      pscin_1x_dzpos = 1.0
+      pscin_1y_dzpos = 1.0
+      pscin_2x_dzpos = 1.0
+      pscin_2y_dzpos = 1.0
+      pscin_1x_size = 8.0
+      pscin_1y_size = 8.0
+      pscin_2x_size = 8.0
+      pscin_2y_size = 8.0
+      pscin_1x_spacing = 7.5
+      pscin_1y_spacing = 7.5
+      pscin_2x_spacing = 7.5
+      pscin_2y_spacing = 7.5
+; Number of hodoscope paddles per layer
+      pscin_1x_nr = 13
+      pscin_1y_nr = 13
+      pscin_2x_nr = 14
+      pscin_2y_nr = 21
+; X,Y positions of hodoscope paddles
+      pscin_1x_left  =  50.
+      pscin_1x_right = -50
+      pscin_1x_offset=  0.0
+      pscin_1x_center= -42.
+                       -35.
+                       -28.
+                       -21.
+                       -14.
+                       -7.
+                        0.0
+                        7.
+                        14.
+                        21.
+                        28.
+                        35.
+                        42.
+;
+      pscin_1y_top   = -50
+      pscin_1y_bot   =  50
+      pscin_1y_offset=  0.0
+      pscin_1y_center= +42.
+                       +35.
+                       +28.
+                       +21.
+                       +14.
+                       +7.
+                        0.0
+                        -7.
+                        -14.
+                        -21.
+                        -28.
+                        -35.
+                        -42. 
+      pscin_2x_left  =  55.
+      pscin_2x_right =  -55.
+      pscin_2x_offset=  0.0
+      pscin_2x_center=  -58.5
+                        -49.5
+                        -40.5
+                        -31.5
+                        -22.5
+                        -13.5
+                        -4.5
+                         4.5
+                         13.5
+                         22.5
+                         31.5
+                         40.5 
+                         49.5
+                         58.5
+      pscin_2y_top   = -55
+      pscin_2y_bot   =  55
+      pscin_2y_offset=  0.0
+      pscin_2y_center=  50.
+                        45.
+                        40.
+                        35.
+                        30.
+                        25.
+                        20.
+                        15.
+                        10.
+                         5.
+                         0.
+                        -5.
+                        -10.
+                        -15.
+                        -20.
+                        -25.
+                        -30.
+                        -35.
+                        -40.
+                        -45.
+                        -50.
+                        
diff --git a/PARAM/SHMS/HODO/ptofcal.param b/PARAM/SHMS/HODO/ptofcal.param
new file mode 100644
index 00000000..3f0ae425
--- /dev/null
+++ b/PARAM/SHMS/HODO/ptofcal.param
@@ -0,0 +1,2 @@
+pdumptof=1
+pdumptof_filename="CALIBRATION/hodo_calib/pfort.37"
diff --git a/PARAM/SHMS/NGCER/pngcer.param b/PARAM/SHMS/NGCER/pngcer.param
new file mode 100644
index 00000000..09b551b1
--- /dev/null
+++ b/PARAM/SHMS/NGCER/pngcer.param
@@ -0,0 +1,24 @@
+pngcer_width = 50, 50
+
+pngcer_adc_to_npe = 1/145.0, 1/122.0
+
+
+pngcer_chi2max = 50.
+pngcer_beta_min = 0.8
+pngcer_beta_max = 1.2
+pngcer_et_min = 0.95
+pngcer_et_max = 5.0
+pngcer_mirror_zpos = 230
+; pngcer_region: 8 values for each region (1 per mirror + sum)
+; central x,y,dx,dy values and x,y,dx,dy half widths.
+pngcer_region =   30,  -30,   0,
+                 0,    0,   0,
+                 0,    0,   0,
+                 0,    0,   0,
+                20,   20,  60,
+                30,   30,  30,
+                .1,   .1,  .1,
+                .1,   .1,  .1
+
+pngcer_ped_limit =  1000,1000
+	       
diff --git a/PARAM/TRIG/thms.param b/PARAM/TRIG/thms.param
index 54d1f0e5..8bfc6951 100644
--- a/PARAM/TRIG/thms.param
+++ b/PARAM/TRIG/thms.param
@@ -1,8 +1,8 @@
 t_hms_numAdc = 8
-t_hms_numTdc = 17
+t_hms_numTdc = 21
 
-; bar num:        1     2     3     4     5      6     7       8
+; bar num:                1     2     3     4     5      6     7       8
 t_hms_adcNames = "hASUM hBSUM hCSUM hDSUM hPSHWR hSHWR hAERSUM hCERSUM"
 
-; bar num:        1   2   3   4   5   6   7   8     9     10    11    12       13       14    15      16      17
-t_hms_tdcNames = "h1X h1Y h2X h2Y h1T h2T hT1 hASUM hBSUM hCSUM hDSUM hPSHWRLO hPSHWRHI hSHWR hAERSUM hCERSUM hT2"
+; bar num:              1   2   3   4   5   6   7   8     9     10    11    12       13       14    15      16      17    18      19     20      21
+t_hms_tdcNames = "h1X h1Y h2X h2Y h1T h2T hT1 hASUM hBSUM hCSUM hDSUM hPSHWRLO hPSHWRHI hSHWR hAERSUM hCERSUM hT2 hDCREF1 hDCREF2 hDCREF3 hDCREF4"
diff --git a/PARAM/TRIG/thms_raster.param b/PARAM/TRIG/thms_raster.param
new file mode 100644
index 00000000..7888eccf
--- /dev/null
+++ b/PARAM/TRIG/thms_raster.param
@@ -0,0 +1,7 @@
+t_hms_numAdc = 4
+t_hms_numTdc = 1
+
+; bar num:                1     2     3     4     5      6     7       8
+t_hms_adcNames = "hFRXA hFRYA hFRXB hFRYB"
+t_hms_tdcNames = "hFRXA"
+
diff --git a/PARAM/TRIG/tshms.param b/PARAM/TRIG/tshms.param
new file mode 100644
index 00000000..d30f2aca
--- /dev/null
+++ b/PARAM/TRIG/tshms.param
@@ -0,0 +1,8 @@
+t_shms_numAdc = 3
+t_shms_numTdc = 22
+
+; bar num:            1       2       3
+t_shms_adcNames = "pAERSUM pHGCSUM pNGCSUM"
+
+; bar num:          1   2   3   4   5   6   7   8   9     10      11      12      13     14      15      16      17      18      19      20      21       22
+t_shms_tdcNames = "pT1 pT2 p1X p1Y p2X p2Y p1T p2T pT3 pAERSUM pHGCSUM pNGCSUM pDCREF1 pDCREF2 pDCREF3 pDCREF4 pDCREF5 pDCREF6 pDCREF7 pDCREF8 pDCREF9 pDCREF10" 
\ No newline at end of file
diff --git a/PARAM/TRIG/tshms_raster.param b/PARAM/TRIG/tshms_raster.param
new file mode 100644
index 00000000..7898b042
--- /dev/null
+++ b/PARAM/TRIG/tshms_raster.param
@@ -0,0 +1,7 @@
+t_shms_numAdc = 4
+t_shms_numTdc = 1
+
+; bar num:                1     2     3     4     5      6     7       8
+t_shms_adcNames = "pFRXA pFRYA pFRXB pFRYB"
+t_shms_tdcNames = "pFRXA"
+
diff --git a/SCRIPTS/HMS/hhodo_analysis.C b/SCRIPTS/HMS/hhodo_analysis.C
new file mode 100644
index 00000000..f4f0fb1d
--- /dev/null
+++ b/SCRIPTS/HMS/hhodo_analysis.C
@@ -0,0 +1,140 @@
+
+// Custom analysis of the hodoscope individual channels
+// Author: Eric Pooser, pooser@jlab.org, 01/06/2017
+// Script adapted from hcana/examples/hhodrawhists.C
+
+//#include "TF1.h"
+
+#define NPLANES  4
+#define NSIDES   2
+#define NSIGNALS 2
+#define MAXBARS  16
+
+TString  SPECTROMETER = "H";
+TString  DETECTOR     = "hod";
+
+TString  plane_names[NPLANES] = {"1x", "1y", "2x", "2y"};
+Int_t    nbars[NPLANES]       = {16, 10, 16, 10};
+TString  sides[NSIDES]        = {"neg", "pos"};
+TString  signals[NSIGNALS]    = {"adc", "tdc"};
+
+static const Double_t ADC_MIN   = 0.0;
+static const Double_t ADC_MAX   = 25000.0;
+static const Int_t    ADC_NBINS = 2500;
+
+static const Double_t TDC_MIN   = 0.0;
+static const Double_t TDC_MAX   = 8000.0;
+static const Int_t    TDC_NBINS = 800;
+
+Int_t    nhits[NPLANES][NSIDES][NSIGNALS];
+Double_t paddles[NPLANES][NSIDES][NSIGNALS][MAXBARS];
+Double_t values[NPLANES][NSIDES][NSIGNALS][MAXBARS];
+
+TH1F *h[NPLANES*NSIDES*NSIGNALS*MAXBARS];
+TFile *rif, *rof;
+
+TTree *T;
+
+TString base_name, ndata_name, padlist_name, vallist_name;
+
+Int_t nbins, hmin, hmax, hindex, hindex_base;
+
+TString ibarname, title, name;
+
+Int_t ibar;
+Double_t val;
+
+void hhodo_analysis(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  } 
+
+  // Define root in/out files
+  rif  = new TFile(Form("ROOTfiles/hhodo_htrig_replay_%d.root", RunNumber), "READ");
+  rof = new TFile(Form("ROOTfiles/hhodo_analysis_%d.root", RunNumber), "RECREATE");
+  rif->cd();
+  
+  // Acquire tree from root in file
+  T = new TTree();
+  T = (TTree*) rif->Get("T");
+
+  for(Int_t iplane = 0; iplane < NPLANES; iplane++) {
+    for(Int_t iside = 0; iside < NSIDES; iside++) {
+      for(Int_t isignal = 0; isignal < NSIGNALS; isignal++) {
+
+	base_name = SPECTROMETER + "." + DETECTOR + "." +
+	  plane_names[iplane] + "." + sides[iside] + signals[isignal];
+	ndata_name   = "Ndata." + base_name + "pad";
+	padlist_name = base_name + "pad";
+	vallist_name = base_name + "val";
+
+	// Set branch addresses
+	T->SetBranchAddress(ndata_name,   &nhits[iplane][iside][isignal]);
+	T->SetBranchAddress(padlist_name, &paddles[iplane][iside][isignal][0]);
+	T->SetBranchAddress(vallist_name, &values[iplane][iside][isignal][0]);
+
+	// Create histograms
+	// ADC and TDC histogram for each
+	if(signals[isignal] == "adc")
+	  nbins = ADC_NBINS; hmin = ADC_MIN; hmax = ADC_MAX;
+	if(signals[isignal] == "tdc")
+	  nbins = TDC_NBINS; hmin = TDC_MIN; hmax = TDC_MAX;
+	
+	rof->cd();
+	for(Int_t ibar = 0; ibar < nbars[iplane]; ibar++) {
+	  hindex = iplane*NSIDES*NSIGNALS*MAXBARS
+	    + iside*NSIGNALS*MAXBARS + isignal*MAXBARS + ibar;
+	  ibarname = Form("%d", ibar + 1);
+	  title = "h" + plane_names[iplane] + ibarname + sides[iside]
+	    + " " + signals[isignal];
+	  name = "h"; name += Form("%d", hindex);
+	  //  cout << name << " " << title << " " << nbins << " " << hmin << " "
+	  //       << hmax << endl;
+	  h[hindex] = new TH1F(name, title, nbins, hmin, hmax);
+	}
+	rif->cd();
+
+      }  // Signal loop
+    }  // Side loop
+  }  // Plane loop
+
+  // Loop over the events, filling the histograms
+  for(Int_t ievent = 0, N = T->GetEntries(); ievent < N; ievent++) {
+    T->GetEntry(ievent);
+    for(Int_t iplane = 0; iplane < NPLANES; iplane++){
+      for(Int_t iside = 0;iside < NSIDES; iside++) {
+	for(Int_t isignal = 0;isignal < NSIGNALS; isignal++) {
+
+	  hindex_base = iplane*NSIDES*NSIGNALS*MAXBARS
+	    + iside*NSIGNALS*MAXBARS + isignal*MAXBARS;
+
+	  for(Int_t ihit = 0; ihit < nhits[iplane][iside][isignal]; ihit++) {
+	    ibar = TMath::Nint(paddles[iplane][iside][isignal][ihit]) - 1;
+	    val = values[iplane][iside][isignal][ihit];
+	    hindex = hindex_base + ibar;
+	    h[hindex]->Fill(val);
+	  }  // Hit loop
+	}  // Signal loop
+      }  // Side loop
+    }  // Plane loop
+
+    // Display or save the histograms
+
+  }
+
+  // Write the root out file
+  rof->cd(); rof->Write();
+  
+}
diff --git a/SCRIPTS/HMS/replay_epics_test.C b/SCRIPTS/HMS/replay_epics_test.C
new file mode 100644
index 00000000..78a56f46
--- /dev/null
+++ b/SCRIPTS/HMS/replay_epics_test.C
@@ -0,0 +1,110 @@
+void replay_epics_test(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/hms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/epics_variable_replay_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for HMS trigger configuration
+  gHcParms->Load("PARAM/TRIG/thms.param");
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/HMS/DETEC/hhodo_htrig.map");
+
+  // debug : testing epics variable in Ttree
+  // gHaEvtHandlers->Add (new THaEpicsEvtHandler("epics","HC EPICS event type 180"));
+  
+  // Set up the equipment to be analyzed.
+  THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS");
+  gHaApps->Add(HMS);
+  // Add hodoscope to HMS apparatus
+  THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope");
+  HMS->AddDetector(hod);
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information");
+  TRG->AddDetector(hms);
+
+  // Add EPICS variables
+  //  THaEpics* epics = new THcEpics("T", "Epics");
+  //   gHaApps->AddDetector(epics);
+
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/HMS/HODO/hhodoana.def");
+ analyzer->SetCutFile("DEF-files/HMS/HODO/hhodoana_cuts.def");    // optional
+
+ analyzer->SetOdefFile("DEF-files/HMS/EPICS/epics.def");  // Call EPICS variables  K.Park
+
+ // File to record cuts accounting information
+ //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/HMS/replay_hcal_test_stand.C b/SCRIPTS/HMS/replay_hcal_test_stand.C
new file mode 100644
index 00000000..25f09d30
--- /dev/null
+++ b/SCRIPTS/HMS/replay_hcal_test_stand.C
@@ -0,0 +1,94 @@
+void replay_hcal_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/hms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/hcal_replay_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/HMS/DETEC/hcal.map");
+
+  // Set up the equipment to be analyzed.
+  THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS");
+  gHaApps->Add(HMS);
+  // Add hodoscope to HMS apparatus
+  THcShower* cal = new THcShower("cal", "Calorimeter");
+  HMS->AddDetector(cal);
+
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/HMS/CAL/hcalana.def");
+ analyzer->SetCutFile("DEF-files/HMS/CAL/hcalana_cuts.def");    // optional
+
+ // File to record cuts accounting information
+ //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/HMS/replay_hcer_test_stand.C b/SCRIPTS/HMS/replay_hcer_test_stand.C
new file mode 100644
index 00000000..83c50244
--- /dev/null
+++ b/SCRIPTS/HMS/replay_hcer_test_stand.C
@@ -0,0 +1,104 @@
+void replay_hcer_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/hms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/hcer_replay_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for HMS trigger configuration
+  gHcParms->Load("PARAM/TRIG/thms.param");
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/HMS/DETEC/hcer_htrig.map");
+
+  // Set up the equipment to be analyzed.
+  THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS");
+  gHaApps->Add(HMS);
+  // Add hodoscope to HMS apparatus
+  THcCherenkov* cer = new THcCherenkov("cer", "Heavy Gas Cherenkov");
+  HMS->AddDetector(cer);
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information");
+  TRG->AddDetector(hms);
+
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/HMS/CER/hcerana.def");
+ analyzer->SetCutFile("DEF-files/HMS/CER/hcerana_cuts.def");    // optional
+
+ // File to record cuts accounting information
+ //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/HMS/replay_hdc_test_stand.C b/SCRIPTS/HMS/replay_hdc_test_stand.C
index a8bfad8a..f45e0c3f 100644
--- a/SCRIPTS/HMS/replay_hdc_test_stand.C
+++ b/SCRIPTS/HMS/replay_hdc_test_stand.C
@@ -16,8 +16,8 @@ void replay_hdc_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
   }
 
   // Create file name patterns.
-  const char* RunFileNamePattern = "raw/test_%d.dat";
-  const char* ROOTFileNamePattern = "ROOTfiles/test_%d.root";
+  const char* RunFileNamePattern = "raw/hms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/hdc_replay_%d.root";
   // Add variables to global list.
   gHcParms->Define("gen_run_number", "Run Number", RunNumber);
   gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
@@ -31,27 +31,34 @@ void replay_hdc_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
 
   // Load params for HMS DC test stand configuration
   gHcParms->Load("PARAM/HMS/DC/hdc_test_stand.param");
+  gHcParms->Load("PARAM/TRIG/thms.param");
 
   // Load the Hall C style detector map
   gHcDetectorMap = new THcDetectorMap();
   //gHcDetectorMap->Load(gHcParms->GetString("g_decode_map_filename"));
-  gHcDetectorMap->Load("MAPS/HMS/DETEC/hdc.map");
+  gHcDetectorMap->Load("MAPS/HMS/DETEC/hdc_htrig.map");
 
   // Set up the equipment to be analyzed.
   THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS");
   gHaApps->Add(HMS);
-  // Add HMS drift chambers
-  HMS->AddDetector(new THcDC("dc", "Drift Chambers"));
-
-  // Additional detectors:
-  //HMS->AddDetector(new THcHodoscope("hod", "Hodoscope"));
-  //HMS->AddDetector(new THcShower("cal", "Shower"));
-  //
-  //THcCherenkov* cherenkov = new THcCherenkov("cher", "Gas Cerenkov");
-  //HMS->AddDetector(cherenkov);
-  //THcAerogel* aerogel = new THcAerogel("aero", "Aerogel Cerenkov");
-  //HMS->AddDetector(aerogel);
-  //
+  // Add drift chambers to HMS apparatus
+  THcDC* dc = new THcDC("dc", "Drift Chambers");
+  HMS->AddDetector(dc);
+  // Add hodoscope to HMS apparatus
+  // THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope");
+  // HMS->AddDetector(hod);
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information");
+  TRG->AddDetector(hms);
+
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
   //THcScalerEvtHandler *hscaler = new THcScalerEvtHandler("HS", "HC scaler event type 0");
   //hscaler->SetDebugFile("HScaler.txt");
   //gHaEvtHandlers->Add(hscaler);
diff --git a/SCRIPTS/HMS/replay_hhodo_test_stand.C b/SCRIPTS/HMS/replay_hhodo_test_stand.C
new file mode 100644
index 00000000..867c771a
--- /dev/null
+++ b/SCRIPTS/HMS/replay_hhodo_test_stand.C
@@ -0,0 +1,104 @@
+void replay_hhodo_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/hms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/hhodo_replay_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for HMS trigger configuration
+  gHcParms->Load("PARAM/TRIG/thms.param");
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/HMS/DETEC/hhodo_htrig.map");
+
+  // Set up the equipment to be analyzed.
+  THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS");
+  gHaApps->Add(HMS);
+  // Add hodoscope to HMS apparatus
+  THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope");
+  HMS->AddDetector(hod);
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information");
+  TRG->AddDetector(hms);
+
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/HMS/HODO/hhodoana.def");
+ analyzer->SetCutFile("DEF-files/HMS/HODO/hhodoana_cuts.def");    // optional
+
+ // File to record cuts accounting information
+ //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/HMS/replay_hms.C b/SCRIPTS/HMS/replay_hms.C
new file mode 100644
index 00000000..c51371b8
--- /dev/null
+++ b/SCRIPTS/HMS/replay_hms.C
@@ -0,0 +1,117 @@
+void replay_hms(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/hms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/hms_replay_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for HMS trigger configuration
+  gHcParms->Load("PARAM/TRIG/thms.param");
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/HMS/DETEC/hms_stack.map");
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information");
+  TRG->AddDetector(hms);
+
+  // Set up the equipment to be analyzed.
+  THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS");
+  gHaApps->Add(HMS);
+  // Add drift chambers to HMS apparatus
+  THcDC* dc = new THcDC("dc", "Drift Chambers");
+  HMS->AddDetector(dc);
+  // Add hodoscope to HMS apparatus
+  THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope");
+  HMS->AddDetector(hod);
+  // Add Cherenkov to HMS apparatus
+  THcCherenkov* cer = new THcCherenkov("cer", "Heavy Gas Cherenkov");
+  HMS->AddDetector(cer);
+  // Add calorimeter to HMS apparatus
+  THcShower* cal = new THcShower("cal", "Calorimeter");
+  HMS->AddDetector(cal);
+
+  // Include golden track information
+  THaGoldenTrack* gtr = new THaGoldenTrack("H.gtr", "HMS Golden Track", "H");
+  gHaPhysics->Add(gtr);
+
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/HMS/GEN/hstackana.def");
+ analyzer->SetCutFile("DEF-files/HMS/GEN/hstackana_cuts.def");    // optional
+
+ // File to record cuts accounting information
+ //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/HMS/replay_hms_raster_simple.C b/SCRIPTS/HMS/replay_hms_raster_simple.C
new file mode 100644
index 00000000..36843a12
--- /dev/null
+++ b/SCRIPTS/HMS/replay_hms_raster_simple.C
@@ -0,0 +1,100 @@
+void replay_hms_raster_simple(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/hms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/hms_raster_simple_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for HMS trigger configuration
+  gHcParms->Load("PARAM/TRIG/thms_raster.param");
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/HMS/DETEC/hraster_simple.map");
+  
+  // Set up the equipment to be analyzed.
+  //THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS");
+  //gHaApps->Add(HMS);
+  // Add hodoscope to HMS apparatus
+  //THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope");
+  //HMS->AddDetector(hod);
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information");
+  TRG->AddDetector(hms);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/HMS/RASTER/hms_raster_simple.def");
+ analyzer->SetCutFile("DEF-files/HMS/RASTER/hms_raster_simple_cuts.def");    // optional
+
+ // File to record cuts accounting information
+ //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/HMS/replay_hms_report.C b/SCRIPTS/HMS/replay_hms_report.C
new file mode 100644
index 00000000..249057d5
--- /dev/null
+++ b/SCRIPTS/HMS/replay_hms_report.C
@@ -0,0 +1,121 @@
+void replay_hms_report(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/hms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/hms_replay_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for HMS trigger configuration
+  gHcParms->Load("PARAM/TRIG/thms.param");
+  // Load params for HODO tof calibration. 
+  // gHcParms->Load("PARAM/HMS/HODO/htofcal.param");
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  if ( RunNumber > 243) {
+  gHcDetectorMap->Load("MAPS/HMS/DETEC/hms_stack_spring17_current_run.map");
+  } else {
+  gHcDetectorMap->Load("MAPS/HMS/DETEC/hms_stack_spring17_run_00001_00243.map");
+  }
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information");
+  TRG->AddDetector(hms);
+
+  // Set up the equipment to be analyzed.
+  THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS");
+  gHaApps->Add(HMS);
+  // Add drift chambers to HMS apparatus
+  THcDC* dc = new THcDC("dc", "Drift Chambers");
+  HMS->AddDetector(dc);
+  // Add hodoscope to HMS apparatus
+  THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope");
+  HMS->AddDetector(hod);
+  // Add Cherenkov to HMS apparatus
+  THcCherenkov* cer = new THcCherenkov("cer", "Heavy Gas Cherenkov");
+  HMS->AddDetector(cer);
+  // Add calorimeter to HMS apparatus
+  THcShower* cal = new THcShower("cal", "Calorimeter");
+  HMS->AddDetector(cal);
+
+  // Include golden track information
+  THaGoldenTrack* gtr = new THaGoldenTrack("H.gtr", "HMS Golden Track", "H");
+  gHaPhysics->Add(gtr);
+
+  // Add handler for prestart event 125.
+  if ( RunNumber > 243) {
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+  }
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/HMS/GEN/hstackana_report.def");
+ analyzer->SetCutFile("DEF-files/HMS/GEN/hstackana_report_cuts.def");    // optional
+
+ // File to record cuts accounting information
+  analyzer->SetSummaryFile(Form("REPORT_OUTPUT/HMS/summary_%05d.report", RunNumber));    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  analyzer->PrintReport("TEMPLATES/hstackana.template",Form("REPORT_OUTPUT/HMS/replay_hms_%05d.report", RunNumber));
+}
diff --git a/SCRIPTS/HMS/replay_htrig_test_stand.C b/SCRIPTS/HMS/replay_htrig_test_stand.C
new file mode 100644
index 00000000..70effe5a
--- /dev/null
+++ b/SCRIPTS/HMS/replay_htrig_test_stand.C
@@ -0,0 +1,97 @@
+void replay_htrig_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/hms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/htrig_replay_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for HMS DC test stand configuration
+  gHcParms->Load("PARAM/TRIG/thms.param");
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/HMS/DETEC/htrig.map");
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information");
+  TRG->AddDetector(hms);
+
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/HMS/TRIG/htrigana.def");
+ analyzer->SetCutFile("DEF-files/HMS/TRIG/htrigana_cuts.def");    // optional
+
+ // File to record cuts accounting information
+ //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_hms_%d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/SHMS/replay_paero_test_stand.C b/SCRIPTS/SHMS/replay_paero_test_stand.C
new file mode 100644
index 00000000..aabfbfa8
--- /dev/null
+++ b/SCRIPTS/SHMS/replay_paero_test_stand.C
@@ -0,0 +1,104 @@
+void replay_paero_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/shms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/paero_replay_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for HMS trigger configuration
+  gHcParms->Load("PARAM/TRIG/tshms.param");
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/SHMS/DETEC/paero_ptrig.map");
+
+  // Set up the equipment to be analyzed.
+  THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS");
+  gHaApps->Add(SHMS);
+  // Add aeroscope to HMS apparatus
+  THcAerogel* aero = new THcAerogel("aero", "Aerogel");
+  SHMS->AddDetector(aero);
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* shms = new THcTrigDet("shms", "SHMS Trigger Information");
+  TRG->AddDetector(shms);
+
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/SHMS/AERO/paeroana.def");
+ analyzer->SetCutFile("DEF-files/SHMS/AERO/paeroana_cuts.def");    // optional
+
+ // File to record cuts accounting information
+ //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/SHMS/replay_pcal_test_stand.C b/SCRIPTS/SHMS/replay_pcal_test_stand.C
new file mode 100644
index 00000000..278a8e54
--- /dev/null
+++ b/SCRIPTS/SHMS/replay_pcal_test_stand.C
@@ -0,0 +1,94 @@
+void replay_pcal_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/shms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/pcal_replay_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/SHMS/DETEC/pcal.map");
+
+  // Set up the equipment to be analyzed.
+  THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS");
+  gHaApps->Add(SHMS);
+  // Add hodoscope to HMS apparatus
+  THcShower* cal = new THcShower("cal", "Calorimeter");
+  SHMS->AddDetector(cal);
+
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/SHMS/CAL/pcalana.def");
+ analyzer->SetCutFile("DEF-files/SHMS/CAL/pcalana_cuts.def");    // optional
+
+ // File to record cuts accounting information
+ //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/SHMS/replay_pdc_test_stand.C b/SCRIPTS/SHMS/replay_pdc_test_stand.C
index 1cb39342..9fcbf867 100644
--- a/SCRIPTS/SHMS/replay_pdc_test_stand.C
+++ b/SCRIPTS/SHMS/replay_pdc_test_stand.C
@@ -16,8 +16,8 @@ void replay_pdc_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
   }
 
   // Create file name patterns.
-  const char* RunFileNamePattern = "raw/shms_dc_00%d.dat";
-  const char* ROOTFileNamePattern = "ROOTfiles/shms_dc_00%d.root";
+  const char* RunFileNamePattern = "raw/shms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/pdc_replay_%d.root";
   // Add variables to global list.
   gHcParms->Define("gen_run_number", "Run Number", RunNumber);
   gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
@@ -29,6 +29,9 @@ void replay_pdc_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
   gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
   gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
 
+  // Load params for HMS DC test stand configuration
+  gHcParms->Load("PARAM/SHMS/DC/pdc_test_stand.param");
+
   gHcDetectorMap = new THcDetectorMap();
   //gHcDetectorMap->Load(gHcParms->GetString("g_decode_map_filename"));
   gHcDetectorMap->Load("MAPS/SHMS/DETEC/pdc.map");
@@ -36,10 +39,13 @@ void replay_pdc_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
   // Set up the equipment to be analyzed.
   THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS");
   gHaApps->Add(SHMS);
-
   // Add SHMS drift chambers
   SHMS->AddDetector(new THcDC("dc", "Drift Chambers"));
 
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
   // Additional detectors:
   //HMS->AddDetector(new THcHodoscope("hod", "Hodoscope"));
   //HMS->AddDetector(new THcShower("cal", "Shower"));
diff --git a/SCRIPTS/SHMS/replay_phgcer_test_stand.C b/SCRIPTS/SHMS/replay_phgcer_test_stand.C
new file mode 100644
index 00000000..53e1a432
--- /dev/null
+++ b/SCRIPTS/SHMS/replay_phgcer_test_stand.C
@@ -0,0 +1,104 @@
+void replay_phgcer_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/shms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/phgcer_replay_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for HMS trigger configuration
+  gHcParms->Load("PARAM/TRIG/tshms.param");
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/SHMS/DETEC/phgcer_ptrig.map");
+
+  // Set up the equipment to be analyzed.
+  THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS");
+  gHaApps->Add(SHMS);
+  // Add hodoscope to HMS apparatus
+  THcCherenkov* hgcer = new THcCherenkov("hgcer", "Heavy Gas Cherenkov");
+  SHMS->AddDetector(hgcer);
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* shms = new THcTrigDet("shms", "SHMS Trigger Information");
+  TRG->AddDetector(shms);
+
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/SHMS/HGCER/phgcerana.def");
+ analyzer->SetCutFile("DEF-files/SHMS/HGCER/phgcerana_cuts.def");    // optional
+
+ // File to record cuts accounting information
+ //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/SHMS/replay_phodo_test_stand.C b/SCRIPTS/SHMS/replay_phodo_test_stand.C
new file mode 100644
index 00000000..77a0707d
--- /dev/null
+++ b/SCRIPTS/SHMS/replay_phodo_test_stand.C
@@ -0,0 +1,104 @@
+void replay_phodo_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/shms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/phodo_replay_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for HMS trigger configuration
+  gHcParms->Load("PARAM/TRIG/tshms.param");
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/SHMS/DETEC/phodo_ptrig.map");
+
+  // Set up the equipment to be analyzed.
+  THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS");
+  gHaApps->Add(SHMS);
+  // Add hodoscope to HMS apparatus
+  THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope");
+  SHMS->AddDetector(hod);
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* shms = new THcTrigDet("shms", "SHMS Trigger Information");
+  TRG->AddDetector(shms);
+
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/SHMS/HODO/phodoana.def");
+ analyzer->SetCutFile("DEF-files/SHMS/HODO/phodoana_cuts.def");    // optional
+
+ // File to record cuts accounting information
+ //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/SHMS/replay_pngcer_test_stand.C b/SCRIPTS/SHMS/replay_pngcer_test_stand.C
new file mode 100644
index 00000000..5efeae36
--- /dev/null
+++ b/SCRIPTS/SHMS/replay_pngcer_test_stand.C
@@ -0,0 +1,104 @@
+void replay_pngcer_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/shms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/pngcer_replay_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for HMS trigger configuration
+  gHcParms->Load("PARAM/TRIG/tshms.param");
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/SHMS/DETEC/pngcer_ptrig.map");
+
+  // Set up the equipment to be analyzed.
+  THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS");
+  gHaApps->Add(SHMS);
+  // Add hodoscope to HMS apparatus
+  THcCherenkov* ngcer = new THcCherenkov("ngcer", "Noble Gas Cherenkov");
+  SHMS->AddDetector(ngcer);
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* shms = new THcTrigDet("shms", "SHMS Trigger Information");
+  TRG->AddDetector(shms);
+
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/SHMS/NGCER/pngcerana.def");
+ analyzer->SetCutFile("DEF-files/SHMS/NGCER/pngcerana_cuts.def");    // optional
+
+ // File to record cuts accounting information
+ //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/SHMS/replay_ptrig_test_stand.C b/SCRIPTS/SHMS/replay_ptrig_test_stand.C
new file mode 100644
index 00000000..4c046bfe
--- /dev/null
+++ b/SCRIPTS/SHMS/replay_ptrig_test_stand.C
@@ -0,0 +1,97 @@
+void replay_ptrig_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/shms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/ptrig_replay_%.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for HMS DC test stand configuration
+  gHcParms->Load("PARAM/TRIG/tshms.param");
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/SHMS/DETEC/ptrig.map");
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* shms = new THcTrigDet("shms", "SHMS Trigger Information");
+  TRG->AddDetector(shms);
+
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/SHMS/TRIG/ptrigana.def");
+ analyzer->SetCutFile("DEF-files/SHMS/TRIG/ptrigana_cuts.def");    // optional
+
+ // File to record cuts accounting information
+ //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/SHMS/replay_shms.C b/SCRIPTS/SHMS/replay_shms.C
new file mode 100644
index 00000000..b5c23b70
--- /dev/null
+++ b/SCRIPTS/SHMS/replay_shms.C
@@ -0,0 +1,126 @@
+void replay_shms(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/shms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/shms_replay_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for SHMS trigger configuration
+  gHcParms->Load("PARAM/TRIG/tshms.param");
+
+  // Load custom tracking params
+  //gHcParms->Load("PARAM/SHMS/GEN/hgoldtrack.param");
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/SHMS/DETEC/shms_stack.map");
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* shms = new THcTrigDet("shms", "SHMS Trigger Information");
+  TRG->AddDetector(shms);
+
+  // Set up the equipment to be analyzed.
+  THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS");
+  gHaApps->Add(SHMS);
+  // Add Noble Gas Cherenkov to SHMS apparatus
+  THcCherenkov* ngcer = new THcCherenkov("ngcer", "Noble Gas Cherenkov");
+  SHMS->AddDetector(ngcer);
+  // Add drift chambers to SHMS apparatus
+  THcDC* dc = new THcDC("dc", "Drift Chambers");
+  SHMS->AddDetector(dc);
+  // Add hodoscope to SHMS apparatus
+  THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope");
+  SHMS->AddDetector(hod);
+  // Add Heavy Gas Cherenkov to SHMS apparatus
+  THcCherenkov* hgcer = new THcCherenkov("hgcer", "Heavy Gas Cherenkov");
+  SHMS->AddDetector(hgcer);
+  // Add Heavy Gas Cherenkov to SHMS apparatus
+  THcAerogel* aero = new THcAerogel("aero", "Aerogel");
+  SHMS->AddDetector(aero);
+  // Add calorimeter to SHMS apparatus
+  THcShower* cal = new THcShower("cal", "Calorimeter");
+  SHMS->AddDetector(cal);
+
+  // Include golden track information
+  THaGoldenTrack* gtr = new THaGoldenTrack("P.gtr", "SHMS Golden Track", "P");
+  gHaPhysics->Add(gtr);
+
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+  analyzer->SetEvent(event);
+  analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+  analyzer->SetOutFile(ROOTFileName.Data());
+  analyzer->SetOdefFile("DEF-files/SHMS/GEN/pstackana.def");
+  analyzer->SetCutFile("DEF-files/SHMS/GEN/pstackana_cuts.def");    // optional
+
+  // File to record cuts accounting information
+  //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_shms_%05d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/SHMS/replay_shms_raster_simple.C b/SCRIPTS/SHMS/replay_shms_raster_simple.C
new file mode 100644
index 00000000..0310699e
--- /dev/null
+++ b/SCRIPTS/SHMS/replay_shms_raster_simple.C
@@ -0,0 +1,100 @@
+void replay_shms_raster_simple(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/shms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/shms_raster_simple_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for HMS trigger configuration
+  gHcParms->Load("PARAM/TRIG/tshms_raster.param");
+
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/SHMS/DETEC/praster_simple.map");
+  
+  // Set up the equipment to be analyzed.
+  //THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS");
+  //gHaApps->Add(HMS);
+  // Add hodoscope to HMS apparatus
+  //THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope");
+  //HMS->AddDetector(hod);
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* shms = new THcTrigDet("shms", "SHMS Trigger Information");
+  TRG->AddDetector(shms);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+ analyzer->SetEvent(event);
+ analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+ analyzer->SetOutFile(ROOTFileName.Data());
+ analyzer->SetOdefFile("DEF-files/SHMS/RASTER/shms_raster_simple.def");
+ analyzer->SetCutFile("DEF-files/SHMS/RASTER/shms_raster_simple_cuts.def");    // optional
+
+ // File to record cuts accounting information
+ //analyzer->SetSummaryFile("summary_example.log");    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  //analyzer->PrintReport(    // optional
+  //  "TEMPLATES/dcana.template",
+  //  Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber)
+  //);
+}
diff --git a/SCRIPTS/SHMS/replay_shms_report.C b/SCRIPTS/SHMS/replay_shms_report.C
new file mode 100644
index 00000000..42549df6
--- /dev/null
+++ b/SCRIPTS/SHMS/replay_shms_report.C
@@ -0,0 +1,124 @@
+void replay_shms_report(Int_t RunNumber=0, Int_t MaxEvent=0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "raw/shms_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/shms_replay_%d.root";
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database");
+
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+
+  // Load params for SHMS trigger configuration
+  gHcParms->Load("PARAM/TRIG/tshms.param");
+
+  // Load params for HODO tof calibration. 
+  //gHcParms->Load("PARAM/SHMS/HODO/ptofcal.param");
+
+ 
+  // Load the Hall C style detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/SHMS/DETEC/shms_stack.map");
+
+  // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* shms = new THcTrigDet("shms", "SHMS Trigger Information");
+  TRG->AddDetector(shms);
+
+  // Set up the equipment to be analyzed.
+  THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS");
+  gHaApps->Add(SHMS);
+  // Add Noble Gas Cherenkov to SHMS apparatus
+  THcCherenkov* ngcer = new THcCherenkov("ngcer", "Noble Gas Cherenkov");
+  SHMS->AddDetector(ngcer);
+  // Add drift chambers to SHMS apparatus
+  THcDC* dc = new THcDC("dc", "Drift Chambers");
+  SHMS->AddDetector(dc);
+  // Add hodoscope to SHMS apparatus
+  THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope");
+  SHMS->AddDetector(hod);
+  // Add Heavy Gas Cherenkov to SHMS apparatus
+  THcCherenkov* hgcer = new THcCherenkov("hgcer", "Heavy Gas Cherenkov");
+  SHMS->AddDetector(hgcer);
+  // Add Heavy Gas Cherenkov to SHMS apparatus
+  THcAerogel* aero = new THcAerogel("aero", "Aerogel");
+  SHMS->AddDetector(aero);
+  // Add calorimeter to SHMS apparatus
+  THcShower* cal = new THcShower("cal", "Calorimeter");
+  SHMS->AddDetector(cal);
+
+  // Include golden track information
+  THaGoldenTrack* gtr = new THaGoldenTrack("P.gtr", "SHMS Golden Track", "P");
+  gHaPhysics->Add(gtr);
+
+  // Add handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName, RunFileNamePattern, RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+  analyzer->SetEvent(event);
+  analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+  analyzer->SetOutFile(ROOTFileName.Data());
+  analyzer->SetOdefFile("DEF-files/SHMS/GEN/pstackana_report.def");
+  analyzer->SetCutFile("DEF-files/SHMS/GEN/pstackana_report_cuts.def");    // optional
+
+  // File to record cuts accounting information
+  analyzer->SetSummaryFile(Form("REPORT_OUTPUT/SHMS/summary_%05d.report", RunNumber));    // optional
+
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template.
+  analyzer->PrintReport("TEMPLATES/pstackana.template",Form("REPORT_OUTPUT/SHMS/replay_shms_%05d.report", RunNumber));
+}
diff --git a/TEMPLATES/dcana.template b/TEMPLATES/dcana.template
index d09f84e6..c8bf3424 100644
--- a/TEMPLATES/dcana.template
+++ b/TEMPLATES/dcana.template
@@ -1 +1,49 @@
            Standalone drift chamber analysis report template
+
+hmsDC1Planes6     {hmsDC1Planes6hits.npassed}  
+hmsDC2Planes6  	  {hmsDC2Planes6hits.npassed}  
+	       	   	       
+hmsDC1x1Planes5	  {hmsDC1_5hits_x1.npassed} {hmsDC1Planes6hits.npassed/hmsDC1_5hits_x1.npassed}
+hmsDC1y1Planes5	  {hmsDC1_5hits_y1.npassed} {hmsDC1Planes6hits.npassed/hmsDC1_5hits_y1.npassed}
+hmsDC1u1Planes5	  {hmsDC1_5hits_u1.npassed} {hmsDC1Planes6hits.npassed/hmsDC1_5hits_u1.npassed}
+hmsDC1v1Planes5	  {hmsDC1_5hits_v1.npassed} {hmsDC1Planes6hits.npassed/hmsDC1_5hits_v1.npassed}
+hmsDC1x2Planes5	  {hmsDC1_5hits_y2.npassed} {hmsDC1Planes6hits.npassed/hmsDC1_5hits_y2.npassed} 
+hmsDC1y2Planes5	  {hmsDC1_5hits_x2.npassed} {hmsDC1Planes6hits.npassed/hmsDC1_5hits_x2.npassed}
+	       	   	       
+hmsDC2x1Planes5	  {hmsDC2_5hits_x1.npassed} {hmsDC2Planes6hits.npassed/hmsDC2_5hits_x1.npassed}
+hmsDC2y1Planes5	  {hmsDC2_5hits_y1.npassed} {hmsDC2Planes6hits.npassed/hmsDC2_5hits_y1.npassed}
+hmsDC2u1Planes5	  {hmsDC2_5hits_u1.npassed} {hmsDC2Planes6hits.npassed/hmsDC2_5hits_u1.npassed}
+hmsDC2v1Planes5	  {hmsDC2_5hits_v1.npassed} {hmsDC2Planes6hits.npassed/hmsDC2_5hits_v1.npassed}
+hmsDC2x2Planes5	  {hmsDC2_5hits_y2.npassed} {hmsDC2Planes6hits.npassed/hmsDC2_5hits_y2.npassed} 
+hmsDC2y2Planes5	  {hmsDC2_5hits_x2.npassed} {hmsDC2Planes6hits.npassed/hmsDC2_5hits_x2.npassed}
+	       	   	       
+
+*****************************
+*HMS TRACKING EFFICIENCIES *
+*****************************
+htrig                          :   {hmscoin_event.npassed}
+hhitslt = passed hits/cham     :   {hmsHitsLt.npassed}
+hhitsplanes = +planes >= 5/6   :   {hmsHitsPlanes.npassed}
+hhitsplanessps = + sps         :   {hSpacePoints.npassed}
+hhitsplanesspsstubs +stub      :   {hSpacePointsStub.npassed}
+hsfoundtrack                   :   {hFoundTrack.npassed}
+hscleantrack                   :   {hCleanTrack.npassed}
+hstublt = passed stub tests    :   {hStubLT.npassed}
+h1hitslt                       :   {hms1HitsLt.npassed}
+h2hitslt                       :   {hms2HitsLt.npassed}
+h1planesgt                     :   {hmsDC1PlanesGT.npassed}
+h2planesgt                     :   {hmsDC2PlanesGT.npassed}
+hplanesgt = gt 5 planes/cham   :   {hmsPlanseGT.npassed}
+f1hspacepoints                 :   {f1HSpacePoints.npassed}
+f2hspacepoints                 :   {f2HSpacePoints.npassed}
+htest1=p hits/planes, f sp     :   {hTest1.npassed}
+htest2=p sp, f stubs           :   {hTest2.npassed}
+hdid                           :   {HMSScinDid.npassed}
+hdide                          :   {HMSScinDide.npassed}
+hdidh                          :   {HMSScinDidh.npassed}
+hscinshould                    :   {HMSScinShould.npassed}
+hscinshoulde                   :   {HMSScinShoulde.npassed}
+hscinshouldh                   :   {HMSScinShouldh.npassed}
+SING FID TRACK EFFIC           : {HMSScinDid.npassed/(HMSScinShould.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShould.npassed-HMSScinDid.npassed)/(HMSScinShould.npassed+.0001)):%8.4f}
+E SING FID TRACK EFFIC         : {HMSScinDide.npassed/(HMSScinShoulde.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShoulde.npassed-HMSScinDide.npassed)/(HMSScinShoulde.npassed+.0001)):%8.4f}
+HADRON SING FID TRACK EFFIC    : {HMSScinDidh.npassed/(HMSScinShouldh.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShouldh.npassed-HMSScinDidh.npassed)/(HMSScinShouldh.npassed+.0001)):%8.4f}
diff --git a/TEMPLATES/hstackana.template b/TEMPLATES/hstackana.template
new file mode 100644
index 00000000..0bffaf19
--- /dev/null
+++ b/TEMPLATES/hstackana.template
@@ -0,0 +1,64 @@
+Run #{gen_run_number}
+           Standalone drift chamber analysis report template
+The names of the HMS drift chamber planes are: 
+{hdc_plane_names}
+Horizontal drift chamber z positions:
+Chamber 1: {hdc_zpos[0]:%6.2f} {hdc_zpos[1]:%6.2f} {hdc_zpos[2]:%6.2f} 
+           {hdc_zpos[3]:%6.2f} {hdc_zpos[4]:%6.2f} {hdc_zpos[5]:%6.2f} 
+Chamber 2: {hdc_zpos[6]:%6.2f} {hdc_zpos[7]:%6.2f} {hdc_zpos[8]:%6.2f} 
+           {hdc_zpos[9]:%6.2f} {hdc_zpos[10]:%6.2f} {hdc_zpos[11]:%6.2f}
+
+All triggers:  {all_trigs.npassed}
+ 
+hmsDC1Planes_large  Counts:  {hmsDC1Planes_large.npassed} /all_trigs : {hmsDC1Planes_large.npassed/all_trigs.npassed}
+hmsDC2Planes_large  Counts:	  {hmsDC2Planes_large.npassed}  /all_trigs : {hmsDC2Planes_large.npassed/all_trigs.npassed}  
+
+hmsDC1Planes6     Counts: {hmsDC1Planes6hits.npassed} /all_trigs : {hmsDC1Planes6hits.npassed/all_trigs.npassed}
+hmsDC2Planes6  	  Counts: {hmsDC2Planes6hits.npassed} /all_trigs : {hmsDC2Planes6hits.npassed/all_trigs.npassed}  
+
+hmsDC1x1Planes5	  Counts: {hmsDC1_5hits_x1.npassed} eff : {hmsDC1_6hits_x1.npassed/hmsDC1_5hits_x1.npassed}
+hmsDC1u1Planes5	  Counts: {hmsDC1_5hits_u1.npassed} eff : {hmsDC1_6hits_u1.npassed/hmsDC1_5hits_u1.npassed}
+hmsDC1y2Planes5	  Counts: {hmsDC1_5hits_y2.npassed} eff : {hmsDC1_6hits_y2.npassed/hmsDC1_5hits_y2.npassed}
+hmsDC1v1Planes5	  Counts: {hmsDC1_5hits_v1.npassed} eff : {hmsDC1_6hits_v1.npassed/hmsDC1_5hits_v1.npassed}
+hmsDC1y1Planes5	  Counts: {hmsDC1_5hits_y1.npassed} eff : {hmsDC1_6hits_y1.npassed/hmsDC1_5hits_y1.npassed}
+hmsDC1x2Planes5	  Counts: {hmsDC1_5hits_x2.npassed} eff : {hmsDC1_6hits_x2.npassed/hmsDC1_5hits_x2.npassed}
+
+
+hmsDC2x1Planes5	  Counts: {hmsDC2_5hits_x1.npassed} eff : {hmsDC2_6hits_x1.npassed/hmsDC2_5hits_x1.npassed}
+hmsDC2u1Planes5	  Counts: {hmsDC2_5hits_u1.npassed} eff : {hmsDC2_6hits_u1.npassed/hmsDC2_5hits_u1.npassed}
+hmsDC2y2Planes5	  Counts: {hmsDC2_5hits_y2.npassed} eff : {hmsDC2_6hits_y2.npassed/hmsDC2_5hits_y2.npassed}
+hmsDC2v1Planes5	  Counts: {hmsDC2_5hits_v1.npassed} eff : {hmsDC2_6hits_v1.npassed/hmsDC2_5hits_v1.npassed}
+hmsDC2y1Planes5	  Counts: {hmsDC2_5hits_y1.npassed} eff : {hmsDC2_6hits_y1.npassed/hmsDC2_5hits_y1.npassed}
+hmsDC2x2Planes5	  Counts: {hmsDC2_5hits_x2.npassed} eff : {hmsDC2_6hits_x2.npassed/hmsDC2_5hits_x2.npassed}
+	       	                      	       
+	       	   	       
+
+*****************************
+*HMS TRACKING EFFICIENCIES *
+*****************************
+htrig                          :   {hmscoin_event.npassed}
+hhitslt = passed hits/cham     :   {hmsHitsLt.npassed}
+hhitsplanes = +planes >= 5/6   :   {hmsHitsPlanes.npassed}
+hhitsplanessps = + sps         :   {hSpacePoints.npassed}
+hhitsplanesspsstubs +stub      :   {hSpacePointsStub.npassed}
+hsfoundtrack                   :   {hFoundTrack.npassed}
+hscleantrack                   :   {hCleanTrack.npassed}
+hstublt = passed stub tests    :   {hStubLT.npassed}
+h1hitslt                       :   {hms1HitsLt.npassed}
+h2hitslt                       :   {hms2HitsLt.npassed}
+h1planesgt                     :   {hmsDC1PlanesGT.npassed}
+h2planesgt                     :   {hmsDC2PlanesGT.npassed}
+hplanesgt = gt 5 planes/cham   :   {hmsPlanesGT.npassed}
+f1hspacepoints                 :   {f1HSpacePoints.npassed}
+f2hspacepoints                 :   {f2HSpacePoints.npassed}
+htest1=p hits/planes, f sp     :   {hTest1.npassed}
+htest2=p sp, f stubs           :   {hTest2.npassed}
+hdid                           :   {HMSScinDid.npassed}
+hdide                          :   {HMSScinDide.npassed}
+hdidh                          :   {HMSScinDidh.npassed}
+hscinshould                    :   {HMSScinShould.npassed}
+hscinshoulde                   :   {HMSScinShoulde.npassed}
+hscinshouldh                   :   {HMSScinShouldh.npassed}
+SING FID TRACK EFFIC           : {HMSScinDid.npassed/(HMSScinShould.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShould.npassed-HMSScinDid.npassed)/(HMSScinShould.npassed+.0001)):%8.4f}
+E SING FID TRACK EFFIC         : {HMSScinDide.npassed/(HMSScinShoulde.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShoulde.npassed-HMSScinDide.npassed)/(HMSScinShoulde.npassed+.0001)):%8.4f}
+HADRON SING FID TRACK EFFIC    : {HMSScinDidh.npassed/(HMSScinShouldh.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShouldh.npassed-HMSScinDidh.npassed)/(HMSScinShouldh.npassed+.0001)):%8.4f}
diff --git a/TEMPLATES/pstackana.template b/TEMPLATES/pstackana.template
new file mode 100644
index 00000000..e1ce7848
--- /dev/null
+++ b/TEMPLATES/pstackana.template
@@ -0,0 +1,64 @@
+Run #{gen_run_number}
+           Standalone drift chamber analysis report template
+The names of the HMS drift chamber planes are: 
+{pdc_plane_names}
+Horizontal drift chamber z positions:
+Chamber 1: {pdc_zpos[0]:%6.2f} {pdc_zpos[1]:%6.2f} {pdc_zpos[2]:%6.2f} 
+           {pdc_zpos[3]:%6.2f} {pdc_zpos[4]:%6.2f} {pdc_zpos[5]:%6.2f} 
+Chamber 2: {pdc_zpos[6]:%6.2f} {pdc_zpos[7]:%6.2f} {pdc_zpos[8]:%6.2f} 
+           {pdc_zpos[9]:%6.2f} {pdc_zpos[10]:%6.2f} {pdc_zpos[11]:%6.2f}
+
+All triggers:  {all_trigs.npassed}
+ 
+shmsDC1Planes_large  Counts:  {shmsDC1Planes_large.npassed} /all_trigs : {shmsDC1Planes_large.npassed/all_trigs.npassed}
+shmsDC2Planes_large  Counts:	  {shmsDC2Planes_large.npassed}  /all_trigs : {shmsDC2Planes_large.npassed/all_trigs.npassed}  
+
+shmsDC1Planes6     Counts: {shmsDC1Planes6hits.npassed} /all_trigs : {shmsDC1Planes6hits.npassed/all_trigs.npassed}
+shmsDC2Planes6  	  Counts: {shmsDC2Planes6hits.npassed} /all_trigs : {shmsDC2Planes6hits.npassed/all_trigs.npassed}  
+
+	       	                      	       
+shmsDC1x1Planes5	  Counts: {shmsDC1_5hits_x1.npassed} eff : {shmsDC1_6hits_x1.npassed/shmsDC1_5hits_x1.npassed}
+shmsDC1u1Planes5	  Counts: {shmsDC1_5hits_u1.npassed} eff : {shmsDC1_6hits_u1.npassed/shmsDC1_5hits_u1.npassed}
+shmsDC1u2Planes5	  Counts: {shmsDC1_5hits_u2.npassed} eff : {shmsDC1_6hits_u2.npassed/shmsDC1_5hits_u2.npassed}
+shmsDC1v1Planes5	  Counts: {shmsDC1_5hits_v1.npassed} eff : {shmsDC1_6hits_v1.npassed/shmsDC1_5hits_v1.npassed}
+shmsDC1v2Planes5	  Counts: {shmsDC1_5hits_v2.npassed} eff : {shmsDC1_6hits_v2.npassed/shmsDC1_5hits_v2.npassed}
+shmsDC1x2Planes5	  Counts: {shmsDC1_5hits_x2.npassed} eff : {shmsDC1_6hits_x2.npassed/shmsDC1_5hits_x2.npassed}
+
+
+shmsDC2x1Planes5	  Counts: {shmsDC2_5hits_x1.npassed} eff : {shmsDC2_6hits_x1.npassed/shmsDC2_5hits_x1.npassed}
+shmsDC2u1Planes5	  Counts: {shmsDC2_5hits_u1.npassed} eff : {shmsDC2_6hits_u1.npassed/shmsDC2_5hits_u1.npassed}
+shmsDC2u2Planes5	  Counts: {shmsDC2_5hits_u2.npassed} eff : {shmsDC2_6hits_u2.npassed/shmsDC2_5hits_u2.npassed}
+shmsDC2v1Planes5	  Counts: {shmsDC2_5hits_v1.npassed} eff : {shmsDC2_6hits_v1.npassed/shmsDC2_5hits_v1.npassed}
+shmsDC2v2Planes5	  Counts: {shmsDC2_5hits_v2.npassed} eff : {shmsDC2_6hits_v2.npassed/shmsDC2_5hits_v2.npassed}
+shmsDC2x2Planes5	  Counts: {shmsDC2_5hits_x2.npassed} eff : {shmsDC2_6hits_x2.npassed/shmsDC2_5hits_x2.npassed}
+	       	   	       
+
+*****************************
+*shms TRACKING EFFICIENCIES *
+*****************************
+htrig                          :   {shmscoin_event.npassed}
+hhitslt = passed hits/cham     :   {shmsHitsLt.npassed}
+hhitsplanes = +planes >= 5/6   :   {shmsHitsPlanes.npassed}
+hhitsplanessps = + sps         :   {hSpacePoints.npassed}
+hhitsplanesspsstubs +stub      :   {hSpacePointsStub.npassed}
+hsfoundtrack                   :   {hFoundTrack.npassed}
+hscleantrack                   :   {hCleanTrack.npassed}
+hstublt = passed stub tests    :   {hStubLT.npassed}
+h1hitslt                       :   {shms1HitsLt.npassed}
+h2hitslt                       :   {shms2HitsLt.npassed}
+h1planesgt                     :   {shmsDC1PlanesGT.npassed}
+h2planesgt                     :   {shmsDC2PlanesGT.npassed}
+hplanesgt = gt 5 planes/cham   :   {shmsPlanesGT.npassed}
+f1hspacepoints                 :   {f1HSpacePoints.npassed}
+f2hspacepoints                 :   {f2HSpacePoints.npassed}
+htest1=p hits/planes, f sp     :   {hTest1.npassed}
+htest2=p sp, f stubs           :   {hTest2.npassed}
+hdid                           :   {shmsScinDid.npassed}
+hdide                          :   {shmsScinDide.npassed}
+hdidh                          :   {shmsScinDidh.npassed}
+hscinshould                    :   {shmsScinShould.npassed}
+hscinshoulde                   :   {shmsScinShoulde.npassed}
+hscinshouldh                   :   {shmsScinShouldh.npassed}
+SING FID TRACK EFFIC           : {shmsScinDid.npassed/(shmsScinShould.npassed+0.0001):%8.4f} +- {(sqrt(shmsScinShould.npassed-shmsScinDid.npassed)/(shmsScinShould.npassed+.0001)):%8.4f}
+E SING FID TRACK EFFIC         : {shmsScinDide.npassed/(shmsScinShoulde.npassed+0.0001):%8.4f} +- {(sqrt(shmsScinShoulde.npassed-shmsScinDide.npassed)/(shmsScinShoulde.npassed+.0001)):%8.4f}
+HADRON SING FID TRACK EFFIC    : {shmsScinDidh.npassed/(shmsScinShouldh.npassed+0.0001):%8.4f} +- {(sqrt(shmsScinShouldh.npassed-shmsScinDidh.npassed)/(shmsScinShouldh.npassed+.0001)):%8.4f}
diff --git a/onlineGUI/.gitignore b/onlineGUI/.gitignore
index 504e5397..b7de8db4 100644
--- a/onlineGUI/.gitignore
+++ b/onlineGUI/.gitignore
@@ -1,3 +1,6 @@
 online
 *.o
 *.d
+*#
+onlineDict.C
+.root_history
diff --git a/onlineGUI/.rootrc b/onlineGUI/.rootrc
new file mode 100644
index 00000000..22df0bce
--- /dev/null
+++ b/onlineGUI/.rootrc
@@ -0,0 +1,2 @@
+Rint.History: .root_history
+Unix.*.Root.MacroPath: .:$(ROOTSYS)/macros:./Macros
diff --git a/onlineGUI/Config/HMS/GEN/hallc_onlana.cfg b/onlineGUI/Config/HMS/GEN/hallc_onlana.cfg
new file mode 100644
index 00000000..f9dc3e1a
--- /dev/null
+++ b/onlineGUI/Config/HMS/GEN/hallc_onlana.cfg
@@ -0,0 +1,200 @@
+protorootfile ../ROOTfiles/hms_replay_XXXXX.root
+guicolor orange
+canvassize 1600 800
+#canvassize 800 800
+newpage 2 2
+title HMS Drift Chamber Reference Times
+hdc_ref1
+hdc_ref2
+hdc_ref3
+hdc_ref4
+newpage 4 3
+title HMS Drift Chamber Wire Maps
+hdc1x1_wirenum
+hdc2x1_wirenum
+hdc1y1_wirenum
+hdc2y1_wirenum
+hdc1u1_wirenum
+hdc2u1_wirenum
+hdc1v1_wirenum 
+hdc2v1_wirenum 
+hdc1y2_wirenum
+hdc2y2_wirenum
+hdc1x2_wirenum 
+hdc2x2_wirenum
+newpage 4 3 logz
+title HMS Drift Chamber TDC Times
+hdc1x1_wirenum_vs_tdc -nostat
+hdc2x1_wirenum_vs_tdc -nostat
+hdc1y1_wirenum_vs_tdc -nostat
+hdc2y1_wirenum_vs_tdc -nostat
+hdc1u1_wirenum_vs_tdc -nostat
+hdc2u1_wirenum_vs_tdc -nostat
+hdc1v1_wirenum_vs_tdc -nostat
+hdc2v1_wirenum_vs_tdc -nostat
+hdc1y2_wirenum_vs_tdc -nostat
+hdc2y2_wirenum_vs_tdc -nostat
+hdc1x2_wirenum_vs_tdc -nostat
+hdc2x2_wirenum_vs_tdc -nostat
+newpage 4 3
+title HMS Drift Chamber Residuals
+hdc1x1_wirenum_vs_resid -nostat
+hdc2x1_wirenum_vs_resid -nostat
+hdc1y1_wirenum_vs_resid -nostat
+hdc2y1_wirenum_vs_resid -nostat
+hdc1u1_wirenum_vs_resid -nostat
+hdc2u1_wirenum_vs_resid -nostat
+hdc1v1_wirenum_vs_resid -nostat
+hdc2v1_wirenum_vs_resid -nostat
+hdc1y2_wirenum_vs_resid -nostat
+hdc2y2_wirenum_vs_resid -nostat
+hdc1x2_wirenum_vs_resid -nostat
+hdc2x2_wirenum_vs_resid -nostat
+newpage 2 1 logz
+title HMS Drift Chamber Focal Plane
+hdc_xfp_vs_yxp -nostat
+hdc_xfpp_vs_yxpp -nostat
+newpage 2 3 logz
+title HMS Hodoscope 1X+ (Left)
+hhodo_1x_pos_adc_occu -nostat
+hhodo_1x_pos_tdc_occu -nostat
+hhodo_1x_pos_ped_vs_pad -nostat
+hhodo_1x_pos_pi_vs_pad -nostat
+hhodo_1x_pos_pamp_vs_pad -nostat
+hhodo_1x_pos_tdc_time_vs_pad -nostat
+newpage 2 3 logz
+title HMS Hodoscope 1X- (Left)
+hhodo_1x_neg_adc_occu -nostat
+hhodo_1x_neg_tdc_occu -nostat
+hhodo_1x_neg_ped_vs_pad -nostat
+hhodo_1x_neg_pi_vs_pad -nostat
+hhodo_1x_neg_pamp_vs_pad -nostat
+hhodo_1x_neg_tdc_time_vs_pad -nostat
+newpage 2 3 logz
+title HMS Hodoscope 1Y+ (Left)
+hhodo_1y_pos_adc_occu -nostat
+hhodo_1y_pos_tdc_occu -nostat
+hhodo_1y_pos_ped_vs_pad -nostat
+hhodo_1y_pos_pi_vs_pad -nostat
+hhodo_1y_pos_pamp_vs_pad -nostat
+hhodo_1y_pos_tdc_time_vs_pad -nostat
+newpage 2 3 logz
+title HMS Hodoscope 1Y- (Left)
+hhodo_1y_neg_adc_occu -nostat
+hhodo_1y_neg_tdc_occu -nostat
+hhodo_1y_neg_ped_vs_pad -nostat
+hhodo_1y_neg_pi_vs_pad -nostat
+hhodo_1y_neg_pamp_vs_pad -nostat
+hhodo_1y_neg_tdc_time_vs_pad -nostat
+newpage 2 3 logz
+title HMS Hodoscope 2X+ (Left)
+hhodo_2x_pos_adc_occu -nostat
+hhodo_2x_pos_tdc_occu -nostat
+hhodo_2x_pos_ped_vs_pad -nostat
+hhodo_2x_pos_pi_vs_pad -nostat
+hhodo_2x_pos_pamp_vs_pad -nostat
+hhodo_2x_pos_tdc_time_vs_pad -nostat
+newpage 2 3 logz
+title HMS Hodoscope 2X- (Left)
+hhodo_2x_neg_adc_occu -nostat
+hhodo_2x_neg_tdc_occu -nostat
+hhodo_2x_neg_ped_vs_pad -nostat
+hhodo_2x_neg_pi_vs_pad -nostat
+hhodo_2x_neg_pamp_vs_pad -nostat
+hhodo_2x_neg_tdc_time_vs_pad -nostat
+newpage 2 3 logz
+title HMS Hodoscope 2Y+ (Left)
+hhodo_2y_pos_adc_occu -nostat
+hhodo_2y_pos_tdc_occu -nostat
+hhodo_2y_pos_ped_vs_pad -nostat
+hhodo_2y_pos_pi_vs_pad -nostat
+hhodo_2y_pos_pamp_vs_pad -nostat
+hhodo_2y_pos_tdc_time_vs_pad -nostat
+newpage 2 3 logz
+title HMS Hodoscope 2Y- (Left)
+hhodo_2y_neg_adc_occu -nostat
+hhodo_2y_neg_tdc_occu -nostat
+hhodo_2y_neg_ped_vs_pad -nostat
+hhodo_2y_neg_pi_vs_pad -nostat
+hhodo_2y_neg_pamp_vs_pad -nostat
+hhodo_2y_neg_tdc_time_vs_pad -nostat
+newpage 2 2 logz 
+title HMS Heavy Gas Cherenkov
+hgcer_occu -nostat
+hgcer_ped_vs_cntr -nostat
+hgcer_pi_vs_cntr -nostat
+hgcer_pamp_vs_cntr -nostat
+newpage 2 2 logz 
+title HMS Pre-Shower Layer A Positive (Left)
+hcal_hA_pos_occu -nostat
+hcal_hA_pos_ped_blk -nostat
+hcal_hA_pos_pi_blk -nostat
+hcal_hA_pos_pamp_blk -nostat
+newpage 2 2 logz
+title HMS Pre-Shower Layer A Negative (Right)
+hcal_hA_neg_occu -nostat 
+hcal_hA_neg_ped_blk -nostat
+hcal_hA_neg_pi_blk -nostat
+hcal_hA_neg_pamp_blk -nostat
+newpage 2 2 logz 
+title HMS Pre-Shower Layer B Positive (Left)
+hcal_hB_pos_occu -nostat
+hcal_hB_pos_ped_blk -nostat
+hcal_hB_pos_pi_blk -nostat
+hcal_hB_pos_pamp_blk -nostat
+newpage 2 2 logz
+title HMS Pre-Shower Layer B Negative (Right)
+hcal_hB_neg_occu -nostat 
+hcal_hB_neg_ped_blk -nostat
+hcal_hB_neg_pi_blk -nostat
+hcal_hB_neg_pamp_blk -nostat
+newpage 2 2 logz
+title HMS Shower Layer C Negative (Right)
+hcal_hC_occu -nostat
+hcal_hC_ped_blk -nostat
+hcal_hC_pi_blk -nostat
+hcal_hC_pamp_blk -nostat
+newpage 2 2 logz
+title HMS Shower Layer D Negative (Right)
+hcal_hD_occu -nostat
+hcal_hD_ped_blk -nostat
+hcal_hD_pi_blk -nostat
+hcal_hD_pamp_blk -nostat
+newpage 2 2 logy
+title HMS Cherenkov Sum
+htrig_hCERsum_pped
+htrig_hCERsum_pint 
+htrig_hCERsum_pamp
+htrig_hCERsum_tdc_time
+newpage 4 4 logy
+title HMS Calorimeter Layer Sums
+htrig_hAsum_pped
+htrig_hBsum_pped
+htrig_hCsum_pped
+htrig_hDsum_pped
+htrig_hAsum_pint
+htrig_hBsum_pint
+htrig_hCsum_pint
+htrig_hDsum_pint
+htrig_hAsum_pamp
+htrig_hBsum_pamp
+htrig_hCsum_pamp
+htrig_hDsum_pamp
+htrig_hAsum_tdc_time
+htrig_hBsum_tdc_time
+htrig_hCsum_tdc_time
+htrig_hDsum_tdc_time
+newpage 2 3 logy
+title HMS Shower Sums
+htrig_hpreShwr_adc_pped
+htrig_hshwr_adc_pped
+htrig_hpreShwr_adc_pint
+htrig_hshwr_adc_pint
+htrig_hpreShwr_adc_pamp
+htrig_hshwr_adc_pamp
+newpage 3 1 logy
+title HMS Shower TDC Times
+htrig_hpreShwrLow_tdc
+htrig_hpreShwrHigh_tdc
+htrig_hshwr_tdc
+
diff --git a/onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg b/onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg
new file mode 100644
index 00000000..3f6f3f06
--- /dev/null
+++ b/onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg
@@ -0,0 +1,363 @@
+protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 4 4
+title X1 Neg ADc v TDC
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x10")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x11")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x12")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x13")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x14")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x15")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x16")
+newpage 4 4
+title X1 Pos ADc v TDC
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x10")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x11")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x12")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x13")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x14")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x15")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x16")
+newpage 3 4
+title Y1 Neg ADc v TDC
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y10")
+newpage 3 4
+title Y1 Pos ADc v TDC
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y10")
+newpage 4 4
+title X2 Neg ADc v TDC
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x10")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x11")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x12")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x13")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x14")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x15")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x16")
+newpage 4 4
+title X2 Pos ADc v TDC
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x10")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x11")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x12")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x13")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x14")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x15")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x16")
+newpage 3 4
+title Y2 Neg ADc v TDC
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y10")
+newpage 3 4
+title Y2 Pos ADc v TDC
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y10")
+newpage 4 4
+title X1 Eff Neg PMT
+macro Macros/hodo_efficiency.C("uhdidneg1x1","uhshouldneg1x1")
+macro Macros/hodo_efficiency.C("uhdidneg1x2","uhshouldneg1x2")
+macro Macros/hodo_efficiency.C("uhdidneg1x3","uhshouldneg1x3")
+macro Macros/hodo_efficiency.C("uhdidneg1x4","uhshouldneg1x4")
+macro Macros/hodo_efficiency.C("uhdidneg1x5","uhshouldneg1x5")
+macro Macros/hodo_efficiency.C("uhdidneg1x6","uhshouldneg1x6")
+macro Macros/hodo_efficiency.C("uhdidneg1x7","uhshouldneg1x7")
+macro Macros/hodo_efficiency.C("uhdidneg1x8","uhshouldneg1x8")
+macro Macros/hodo_efficiency.C("uhdidneg1x9","uhshouldneg1x9")
+macro Macros/hodo_efficiency.C("uhdidneg1x10","uhshouldneg1x10")
+macro Macros/hodo_efficiency.C("uhdidneg1x11","uhshouldneg1x11")
+macro Macros/hodo_efficiency.C("uhdidneg1x12","uhshouldneg1x12")
+macro Macros/hodo_efficiency.C("uhdidneg1x13","uhshouldneg1x13")
+macro Macros/hodo_efficiency.C("uhdidneg1x14","uhshouldneg1x14")
+macro Macros/hodo_efficiency.C("uhdidneg1x15","uhshouldneg1x15")
+macro Macros/hodo_efficiency.C("uhdidneg1x16","uhshouldneg1x16")
+newpage 4 4
+title X1 Eff Pos PMT
+macro Macros/hodo_efficiency.C("uhdidpos1x1","uhshouldpos1x1")
+macro Macros/hodo_efficiency.C("uhdidpos1x2","uhshouldpos1x2")
+macro Macros/hodo_efficiency.C("uhdidpos1x3","uhshouldpos1x3")
+macro Macros/hodo_efficiency.C("uhdidpos1x4","uhshouldpos1x4")
+macro Macros/hodo_efficiency.C("uhdidpos1x5","uhshouldpos1x5")
+macro Macros/hodo_efficiency.C("uhdidpos1x6","uhshouldpos1x6")
+macro Macros/hodo_efficiency.C("uhdidpos1x7","uhshouldpos1x7")
+macro Macros/hodo_efficiency.C("uhdidpos1x8","uhshouldpos1x8")
+macro Macros/hodo_efficiency.C("uhdidpos1x9","uhshouldpos1x9")
+macro Macros/hodo_efficiency.C("uhdidpos1x10","uhshouldpos1x10")
+macro Macros/hodo_efficiency.C("uhdidpos1x11","uhshouldpos1x11")
+macro Macros/hodo_efficiency.C("uhdidpos1x12","uhshouldpos1x12")
+macro Macros/hodo_efficiency.C("uhdidpos1x13","uhshouldpos1x13")
+macro Macros/hodo_efficiency.C("uhdidpos1x14","uhshouldpos1x14")
+macro Macros/hodo_efficiency.C("uhdidpos1x15","uhshouldpos1x15")
+macro Macros/hodo_efficiency.C("uhdidpos1x16","uhshouldpos1x16")
+newpage 3 4
+title Y1 Eff Neg PMT
+macro Macros/hodo_efficiency.C("uhdidneg1y1","uhshouldneg1y1")
+macro Macros/hodo_efficiency.C("uhdidneg1y2","uhshouldneg1y2")
+macro Macros/hodo_efficiency.C("uhdidneg1y3","uhshouldneg1y3")
+macro Macros/hodo_efficiency.C("uhdidneg1y4","uhshouldneg1y4")
+macro Macros/hodo_efficiency.C("uhdidneg1y5","uhshouldneg1y5")
+macro Macros/hodo_efficiency.C("uhdidneg1y6","uhshouldneg1y6")
+macro Macros/hodo_efficiency.C("uhdidneg1y7","uhshouldneg1y7")
+macro Macros/hodo_efficiency.C("uhdidneg1y8","uhshouldneg1y8")
+macro Macros/hodo_efficiency.C("uhdidneg1y9","uhshouldneg1y9")
+macro Macros/hodo_efficiency.C("uhdidneg1y10","uhshouldneg1y10")
+newpage 3 4
+title Y1 Eff Pos PMT
+macro Macros/hodo_efficiency.C("uhdidpos1y1","uhshouldpos1y1")
+macro Macros/hodo_efficiency.C("uhdidpos1y2","uhshouldpos1y2")
+macro Macros/hodo_efficiency.C("uhdidpos1y3","uhshouldpos1y3")
+macro Macros/hodo_efficiency.C("uhdidpos1y4","uhshouldpos1y4")
+macro Macros/hodo_efficiency.C("uhdidpos1y5","uhshouldpos1y5")
+macro Macros/hodo_efficiency.C("uhdidpos1y6","uhshouldpos1y6")
+macro Macros/hodo_efficiency.C("uhdidpos1y7","uhshouldpos1y7")
+macro Macros/hodo_efficiency.C("uhdidpos1y8","uhshouldpos1y8")
+macro Macros/hodo_efficiency.C("uhdidpos1y9","uhshouldpos1y9")
+macro Macros/hodo_efficiency.C("uhdidpos1y10","uhshouldpos1y10")
+newpage 4 4
+title X2 Eff Neg PMT
+macro Macros/hodo_efficiency.C("uhdidneg2x1","uhshouldneg2x1")
+macro Macros/hodo_efficiency.C("uhdidneg2x2","uhshouldneg2x2")
+macro Macros/hodo_efficiency.C("uhdidneg2x3","uhshouldneg2x3")
+macro Macros/hodo_efficiency.C("uhdidneg2x4","uhshouldneg2x4")
+macro Macros/hodo_efficiency.C("uhdidneg2x5","uhshouldneg2x5")
+macro Macros/hodo_efficiency.C("uhdidneg2x6","uhshouldneg2x6")
+macro Macros/hodo_efficiency.C("uhdidneg2x7","uhshouldneg2x7")
+macro Macros/hodo_efficiency.C("uhdidneg2x8","uhshouldneg2x8")
+macro Macros/hodo_efficiency.C("uhdidneg2x9","uhshouldneg2x9")
+macro Macros/hodo_efficiency.C("uhdidneg2x10","uhshouldneg2x10")
+macro Macros/hodo_efficiency.C("uhdidneg2x11","uhshouldneg2x11")
+macro Macros/hodo_efficiency.C("uhdidneg2x12","uhshouldneg2x12")
+macro Macros/hodo_efficiency.C("uhdidneg2x13","uhshouldneg2x13")
+macro Macros/hodo_efficiency.C("uhdidneg2x14","uhshouldneg2x14")
+macro Macros/hodo_efficiency.C("uhdidneg2x15","uhshouldneg2x15")
+macro Macros/hodo_efficiency.C("uhdidneg2x16","uhshouldneg2x16")
+newpage 4 4
+title X2 Eff Pos PMT
+macro Macros/hodo_efficiency.C("uhdidpos2x1","uhshouldpos2x1")
+macro Macros/hodo_efficiency.C("uhdidpos2x2","uhshouldpos2x2")
+macro Macros/hodo_efficiency.C("uhdidpos2x3","uhshouldpos2x3")
+macro Macros/hodo_efficiency.C("uhdidpos2x4","uhshouldpos2x4")
+macro Macros/hodo_efficiency.C("uhdidpos2x5","uhshouldpos2x5")
+macro Macros/hodo_efficiency.C("uhdidpos2x6","uhshouldpos2x6")
+macro Macros/hodo_efficiency.C("uhdidpos2x7","uhshouldpos2x7")
+macro Macros/hodo_efficiency.C("uhdidpos2x8","uhshouldpos2x8")
+macro Macros/hodo_efficiency.C("uhdidpos2x9","uhshouldpos2x9")
+macro Macros/hodo_efficiency.C("uhdidpos2x10","uhshouldpos2x10")
+macro Macros/hodo_efficiency.C("uhdidpos2x11","uhshouldpos2x11")
+macro Macros/hodo_efficiency.C("uhdidpos2x12","uhshouldpos2x12")
+macro Macros/hodo_efficiency.C("uhdidpos2x13","uhshouldpos2x13")
+macro Macros/hodo_efficiency.C("uhdidpos2x14","uhshouldpos2x14")
+macro Macros/hodo_efficiency.C("uhdidpos2x15","uhshouldpos2x15")
+macro Macros/hodo_efficiency.C("uhdidpos2x16","uhshouldpos2x16")
+newpage 3 4
+title Y2 Eff Neg PMT
+macro Macros/hodo_efficiency.C("uhdidneg2y1","uhshouldneg2y1")
+macro Macros/hodo_efficiency.C("uhdidneg2y2","uhshouldneg2y2")
+macro Macros/hodo_efficiency.C("uhdidneg2y3","uhshouldneg2y3")
+macro Macros/hodo_efficiency.C("uhdidneg2y4","uhshouldneg2y4")
+macro Macros/hodo_efficiency.C("uhdidneg2y5","uhshouldneg2y5")
+macro Macros/hodo_efficiency.C("uhdidneg2y6","uhshouldneg2y6")
+macro Macros/hodo_efficiency.C("uhdidneg2y7","uhshouldneg2y7")
+macro Macros/hodo_efficiency.C("uhdidneg2y8","uhshouldneg2y8")
+macro Macros/hodo_efficiency.C("uhdidneg2y9","uhshouldneg2y9")
+macro Macros/hodo_efficiency.C("uhdidneg2y10","uhshouldneg2y10")
+newpage 3 4
+title Y2 Eff Pos PMT
+macro Macros/hodo_efficiency.C("uhdidpos2y1","uhshouldpos2y1")
+macro Macros/hodo_efficiency.C("uhdidpos2y2","uhshouldpos2y2")
+macro Macros/hodo_efficiency.C("uhdidpos2y3","uhshouldpos2y3")
+macro Macros/hodo_efficiency.C("uhdidpos2y4","uhshouldpos2y4")
+macro Macros/hodo_efficiency.C("uhdidpos2y5","uhshouldpos2y5")
+macro Macros/hodo_efficiency.C("uhdidpos2y6","uhshouldpos2y6")
+macro Macros/hodo_efficiency.C("uhdidpos2y7","uhshouldpos2y7")
+macro Macros/hodo_efficiency.C("uhdidpos2y8","uhshouldpos2y8")
+macro Macros/hodo_efficiency.C("uhdidpos2y9","uhshouldpos2y9")
+macro Macros/hodo_efficiency.C("uhdidpos2y10","uhshouldpos2y10")
+newpage 4 4
+title X1 ADC int Pos vs Neg
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x10")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x11")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x12")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x13")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x14")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x15")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x16")
+newpage 3 4
+title Y1  ADC int Pos vs Neg
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y10")
+newpage 4 4
+title X2  ADC int Pos vs Neg
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x10")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x11")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x12")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x13")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x14")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x15")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x16")
+newpage 3 4
+title Y2  ADC int Pos vs Neg
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y10")
+newpage 4 4
+title X1 TDC Pos vs Neg
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x10")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x11")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x12")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x13")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x14")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x15")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x16")
+newpage 3 4
+title Y1 TDC Pos vs Neg
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y10")
+newpage 4 4
+title X2 TDC Pos vs Neg
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x10")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x11")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x12")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x13")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x14")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x15")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x16")
+newpage 3 4
+title Y2 TDC Pos vs Neg
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y10")
diff --git a/onlineGUI/Config/HMS/HODO/good_hhodo_2d_dis.cfg b/onlineGUI/Config/HMS/HODO/good_hhodo_2d_dis.cfg
new file mode 100644
index 00000000..edd09396
--- /dev/null
+++ b/onlineGUI/Config/HMS/HODO/good_hhodo_2d_dis.cfg
@@ -0,0 +1,123 @@
+protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 4 4
+title X1+ ADC vs Dis
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x10")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x11")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x12")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x13")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x14")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x15")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x16")
+newpage 4 4
+title X1- ADC vs Dis
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x10")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x11")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x12")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x13")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x14")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x15")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x16")
+newpage 3 4
+title Y1+ ADC vs Dis
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y10")
+newpage 3 4
+title Y1- ADC vs Dis
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y10")
+newpage 4 4
+title X2+ ADC vs Dis
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x10")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x11")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x12")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x13")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x14")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x15")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x16")
+newpage 4 4
+title X2- ADC vs Dis
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x10")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x11")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x12")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x13")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x14")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x15")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x16")
+newpage 3 4
+title Y2+ ADC vs Dis
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y10")
+newpage 3 4
+title Y2- ADC vs Dis
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y1")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y2")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y3")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y4")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y5")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y6")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y7")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y8")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y9")
+macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y10")
diff --git a/onlineGUI/Config/HMS/HODO/raw_hhodo_1x.cfg b/onlineGUI/Config/HMS/HODO/raw_hhodo_1x.cfg
new file mode 100644
index 00000000..b0ebc09e
--- /dev/null
+++ b/onlineGUI/Config/HMS/HODO/raw_hhodo_1x.cfg
@@ -0,0 +1,327 @@
+protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 4 4
+title HMS X1+ Raw TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc1x1posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x2posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x3posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x4posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x5posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x6posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x7posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x8posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x9posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x10posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x11posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x12posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x13posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x14posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x15posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x16posTimeRaw")
+newpage 4 4
+title HMS X1- Raw TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc1x1negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x2negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x3negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x4negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x5negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x6negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x7negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x8negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x9negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x10negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x11negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x12negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x13negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x14negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x15negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1x16negTimeRaw")
+newpage 4 4
+title HMS X1+ TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc1x1posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x2posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x3posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x4posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x5posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x6posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x7posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x8posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x9posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x10posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x11posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x12posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x13posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x14posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x15posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x16posTime")
+newpage 4 4
+title HMS X1- TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc1x1negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x2negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x3negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x4negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x5negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x6negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x7negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x8negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x9negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x10negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x11negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x12negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x13negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x14negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x15negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1x16negTime")
+newpage 4 4
+title HMS X1+ FADC Raw Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc1x1posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x2posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x3posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x4posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x5posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x6posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x7posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x8posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x9posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x10posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x11posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x12posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x13posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x14posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x15posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x16posPedRaw")
+newpage 4 4
+title HMS X1- FADC Raw Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc1x1negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x2negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x3negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x4negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x5negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x6negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x7negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x8negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x9negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x10negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x11negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x12negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x13negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x14negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x15negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x16negPedRaw")
+newpage 4 4
+title HMS X1+ FADC Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc1x1posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x2posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x3posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x4posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x5posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x6posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x7posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x8posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x9posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x10posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x11posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x12posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x13posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x14posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x15posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x16posPed")
+newpage 4 4
+title HMS X1- FADC Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc1x1negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x2negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x3negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x4negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x5negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x6negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x7negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x8negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x9negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x10negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x11negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x12negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x13negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x14negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x15negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1x16negPed")
+newpage 4 4
+title HMS X1+ FADC Raw Integrals
+macro Macros/rawdraw_hhodo.C("uhadc1x1posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x2posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x3posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x4posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x5posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x6posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x7posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x8posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x9posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x10posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x11posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x12posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x13posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x14posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x15posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x16posPulseIntRaw")
+newpage 4 4
+title HMS X1- FADC Raw Integrals
+macro Macros/rawdraw_hhodo.C("uhadc1x1negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x2negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x3negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x4negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x5negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x6negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x7negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x8negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x9negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x10negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x11negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x12negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x13negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x14negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x15negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x16negPulseIntRaw")
+newpage 4 4
+title HMS X1+ FADC Integrals
+macro Macros/rawdraw_hhodo.C("uhadc1x1posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x2posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x3posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x4posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x5posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x6posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x7posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x8posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x9posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x10posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x11posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x12posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x13posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x14posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x15posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x16posPulseInt")
+newpage 4 4
+title HMS X1- FADC Integrals
+macro Macros/rawdraw_hhodo.C("uhadc1x1negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x2negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x3negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x4negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x5negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x6negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x7negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x8negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x9negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x10negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x11negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x12negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x13negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x14negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x15negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1x16negPulseInt")
+newpage 4 4
+title HMS X1+ FADC Amplitudes Raw
+macro Macros/rawdraw_hhodo.C("uhadc1x1posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x2posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x3posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x4posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x5posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x6posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x7posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x8posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x9posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x10posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x11posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x12posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x13posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x14posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x15posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x16posPulseAmpRaw")
+newpage 4 4
+title HMS X1- FADC Amplitudes Raw
+macro Macros/rawdraw_hhodo.C("uhadc1x1negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x2negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x3negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x4negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x5negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x6negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x7negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x8negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x9negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x10negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x11negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x12negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x13negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x14negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x15negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x16negPulseAmpRaw")
+newpage 4 4
+title HMS X1+ FADC Amplitudes
+macro Macros/rawdraw_hhodo.C("uhadc1x1posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x2posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x3posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x4posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x5posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x6posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x7posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x8posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x9posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x10posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x11posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x12posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x13posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x14posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x15posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x16posPulseAmp")
+newpage 4 4
+title HMS X1- FADC Amplitudes
+macro Macros/rawdraw_hhodo.C("uhadc1x1negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x2negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x3negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x4negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x5negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x6negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x7negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x8negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x9negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x10negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x11negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x12negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x13negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x14negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x15negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1x16negPulseAmp")
+newpage 4 4
+title HMS X1+ FADC Times Raw
+macro Macros/rawdraw_hhodo.C("uhadc1x1posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x2posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x3posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x4posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x5posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x6posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x7posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x8posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x9posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x10posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x11posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x12posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x13posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x14posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x15posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x16posPulseTimeRaw")
+newpage 4 4
+title HMS X1- FADC Times Raw
+macro Macros/rawdraw_hhodo.C("uhadc1x1negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x2negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x3negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x4negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x5negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x6negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x7negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x8negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x9negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x10negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x11negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x12negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x13negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x14negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x15negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1x16negPulseTimeRaw")
diff --git a/onlineGUI/Config/HMS/HODO/raw_hhodo_1y.cfg b/onlineGUI/Config/HMS/HODO/raw_hhodo_1y.cfg
new file mode 100644
index 00000000..073778aa
--- /dev/null
+++ b/onlineGUI/Config/HMS/HODO/raw_hhodo_1y.cfg
@@ -0,0 +1,219 @@
+protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 3 4
+title HMS Y1+ Raw TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc1y1posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y2posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y3posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y4posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y5posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y6posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y7posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y8posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y9posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y10posTimeRaw")
+newpage 3 4
+title HMS Y1- Raw TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc1y1negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y2negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y3negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y4negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y5negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y6negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y7negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y8negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y9negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc1y10negTimeRaw")
+newpage 3 4
+title HMS Y1+ TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc1y1posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y2posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y3posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y4posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y5posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y6posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y7posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y8posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y9posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y10posTime")
+newpage 3 4
+title HMS Y1- TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc1y1negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y2negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y3negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y4negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y5negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y6negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y7negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y8negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y9negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc1y10negTime")
+newpage 3 4
+title HMS Y1+ FADC Raw Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc1y1posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y2posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y3posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y4posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y5posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y6posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y7posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y8posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y9posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y10posPedRaw")
+newpage 3 4
+title HMS Y1- FADC Raw Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc1y1negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y2negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y3negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y4negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y5negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y6negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y7negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y8negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y9negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y10negPedRaw")
+newpage 3 4
+title HMS Y1+ FADC Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc1y1posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y2posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y3posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y4posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y5posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y6posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y7posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y8posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y9posPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y10posPed")
+newpage 3 4
+title HMS Y1- FADC Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc1y1negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y2negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y3negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y4negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y5negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y6negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y7negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y8negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y9negPed")
+macro Macros/rawdraw_hhodo.C("uhadc1y10negPed")
+newpage 3 4
+title HMS Y1+ FADC Raw Integrals
+macro Macros/rawdraw_hhodo.C("uhadc1y1posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y2posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y3posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y4posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y5posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y6posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y7posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y8posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y9posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y10posPulseIntRaw")
+newpage 3 4
+title HMS Y1- FADC Raw Integrals
+macro Macros/rawdraw_hhodo.C("uhadc1y1negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y2negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y3negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y4negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y5negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y6negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y7negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y8negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y9negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y10negPulseIntRaw")
+newpage 3 4
+title HMS Y1+ FADC Integrals
+macro Macros/rawdraw_hhodo.C("uhadc1y1posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y2posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y3posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y4posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y5posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y6posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y7posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y8posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y9posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y10posPulseInt")
+newpage 3 4
+title HMS Y1- FADC Integrals
+macro Macros/rawdraw_hhodo.C("uhadc1y1negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y2negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y3negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y4negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y5negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y6negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y7negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y8negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y9negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc1y10negPulseInt")
+newpage 3 4
+title HMS Y1+ FADC Amplitudes Raw
+macro Macros/rawdraw_hhodo.C("uhadc1y1posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y2posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y3posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y4posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y5posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y6posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y7posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y8posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y9posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y10posPulseAmpRaw")
+newpage 3 4
+title HMS Y1- FADC Amplitudes Raw
+macro Macros/rawdraw_hhodo.C("uhadc1y1negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y2negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y3negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y4negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y5negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y6negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y7negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y8negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y9negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y10negPulseAmpRaw")
+newpage 3 4
+title HMS Y1+ FADC Amplitudes
+macro Macros/rawdraw_hhodo.C("uhadc1y1posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y2posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y3posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y4posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y5posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y6posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y7posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y8posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y9posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y10posPulseAmp")
+newpage 3 4
+title HMS Y1- FADC Amplitudes
+macro Macros/rawdraw_hhodo.C("uhadc1y1negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y2negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y3negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y4negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y5negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y6negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y7negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y8negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y9negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc1y10negPulseAmp")
+newpage 3 4
+title HMS Y1+ FADC Times Raw
+macro Macros/rawdraw_hhodo.C("uhadc1y1posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y2posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y3posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y4posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y5posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y6posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y7posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y8posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y9posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y10posPulseTimeRaw")
+newpage 3 4
+title HMS Y1- FADC Times Raw
+macro Macros/rawdraw_hhodo.C("uhadc1y1negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y2negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y3negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y4negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y5negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y6negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y7negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y8negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y9negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc1y10negPulseTimeRaw")
diff --git a/onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg b/onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg
new file mode 100644
index 00000000..4754dad3
--- /dev/null
+++ b/onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg
@@ -0,0 +1,304 @@
+#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 4 4
+title X1 ADC peak Pos vs Neg
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x1")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x2")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x3")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x4")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x5")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x6")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x7")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x8")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x9")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x10")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x11")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x12")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x13")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x14")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x15")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x16")
+newpage 3 4
+title Y1  ADC peak Pos vs Neg
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y1")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y2")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y3")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y4")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y5")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y6")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y7")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y8")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y9")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y10")
+newpage 4 4
+title X2  ADC peak Pos vs Neg
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x1")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x2")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x3")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x4")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x5")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x6")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x7")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x8")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x9")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x10")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x11")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x12")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x13")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x14")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x15")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x16")
+newpage 3 4
+title Y2  ADC peak Pos vs Neg
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y1")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y2")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y3")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y4")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y5")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y6")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y7")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y8")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y9")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y10")
+newpage 4 4
+title X1 ADC int Pos vs Neg
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x1")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x2")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x3")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x4")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x5")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x6")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x7")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x8")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x9")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x10")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x11")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x12")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x13")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x14")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x15")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x16")
+newpage 3 4
+title Y1  ADC int Pos vs Neg
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y1")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y2")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y3")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y4")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y5")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y6")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y7")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y8")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y9")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y10")
+newpage 4 4
+title X2  ADC int Pos vs Neg
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x1")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x2")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x3")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x4")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x5")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x6")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x7")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x8")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x9")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x10")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x11")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x12")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x13")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x14")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x15")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x16")
+newpage 3 4
+title Y2  ADC int Pos vs Neg
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y1")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y2")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y3")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y4")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y5")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y6")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y7")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y8")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y9")
+macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y10")
+newpage 4 4
+title X1 TDC Pos vs Neg
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x1")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x2")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x3")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x4")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x5")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x6")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x7")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x8")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x9")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x10")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x11")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x12")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x13")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x14")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x15")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x16")
+newpage 3 4
+title Y1 TDC Pos vs Neg
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y1")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y2")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y3")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y4")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y5")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y6")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y7")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y8")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y9")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y10")
+newpage 4 4
+title X2 TDC Pos vs Neg
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x1")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x2")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x3")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x4")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x5")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x6")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x7")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x8")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x9")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x10")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x11")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x12")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x13")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x14")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x15")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x16")
+newpage 3 4
+title Y2 TDC Pos vs Neg
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y1")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y2")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y3")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y4")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y5")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y6")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y7")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y8")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y9")
+macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y10")
+newpage 4 4
+title X1- ADC (pC) vs TDC
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x1neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x2neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x3neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x4neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x5neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x6neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x7neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x8neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x9neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x10neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x11neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x12neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x13neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x14neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x15neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x16neg")
+newpage 4 4
+title X1+  ADC (pC) vs TDC
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x1pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x2pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x3pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x4pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x5pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x6pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x7pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x8pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x9pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x10pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x11pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x12pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x13pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x14pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x15pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1x16pos")
+newpage 3 4
+title Y1- ADC (pC) vs TDC
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y1neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y2neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y3neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y4neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y5neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y6neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y7neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y8neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y9neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y10neg")
+newpage 3 4
+title Y1+  ADC (pC) vs TDC
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y1pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y2pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y3pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y4pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y5pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y6pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y7pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y8pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y9pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d1y10pos")
+newpage 4 4
+title X2- ADC (pC) vs TDC
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x1neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x2neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x3neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x4neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x5neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x6neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x7neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x8neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x9neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x10neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x11neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x12neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x13neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x14neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x15neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x16neg")
+newpage 4 4
+title X2+  ADC (pC) vs TDC
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x1pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x2pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x3pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x4pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x5pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x6pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x7pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x8pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x9pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x10pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x11pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x12pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x13pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x14pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x15pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2x16pos")
+newpage 3 4
+title Y2- ADC (pC) vs TDC
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y1neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y2neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y3neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y4neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y5neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y6neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y7neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y8neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y9neg")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y10neg")
+newpage 3 4
+title Y2+  ADC (pC) vs TDC
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y1pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y2pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y3pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y4pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y5pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y6pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y7pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y8pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y9pos")
+macro Macros/rawdraw_2d_hhodo.C("uh2d2y10pos")
diff --git a/onlineGUI/Config/HMS/HODO/raw_hhodo_2x.cfg b/onlineGUI/Config/HMS/HODO/raw_hhodo_2x.cfg
new file mode 100644
index 00000000..81ca7007
--- /dev/null
+++ b/onlineGUI/Config/HMS/HODO/raw_hhodo_2x.cfg
@@ -0,0 +1,327 @@
+protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 4 4
+title HMS X2+ Raw TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc2x1posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x2posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x3posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x4posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x5posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x6posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x7posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x8posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x9posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x10posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x11posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x12posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x13posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x14posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x15posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x16posTimeRaw")
+newpage 4 4
+title HMS X2- Raw TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc2x1negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x2negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x3negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x4negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x5negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x6negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x7negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x8negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x9negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x10negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x11negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x12negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x13negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x14negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x15negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2x16negTimeRaw")
+newpage 4 4
+title HMS X2+ TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc2x1posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x2posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x3posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x4posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x5posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x6posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x7posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x8posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x9posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x10posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x11posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x12posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x13posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x14posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x15posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x16posTime")
+newpage 4 4
+title HMS X2- TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc2x1negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x2negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x3negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x4negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x5negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x6negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x7negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x8negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x9negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x10negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x11negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x12negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x13negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x14negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x15negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2x16negTime")
+newpage 4 4
+title HMS X2+ FADC Raw Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc2x1posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x2posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x3posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x4posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x5posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x6posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x7posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x8posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x9posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x10posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x11posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x12posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x13posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x14posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x15posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x16posPedRaw")
+newpage 4 4
+title HMS X2- FADC Raw Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc2x1negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x2negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x3negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x4negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x5negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x6negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x7negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x8negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x9negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x10negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x11negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x12negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x13negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x14negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x15negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x16negPedRaw")
+newpage 4 4
+title HMS X2+ FADC Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc2x1posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x2posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x3posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x4posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x5posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x6posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x7posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x8posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x9posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x10posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x11posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x12posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x13posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x14posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x15posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x16posPed")
+newpage 4 4
+title HMS X2- FADC Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc2x1negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x2negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x3negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x4negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x5negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x6negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x7negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x8negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x9negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x10negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x11negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x12negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x13negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x14negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x15negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2x16negPed")
+newpage 4 4
+title HMS X2+ FADC Raw Integrals
+macro Macros/rawdraw_hhodo.C("uhadc2x1posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x2posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x3posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x4posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x5posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x6posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x7posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x8posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x9posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x10posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x11posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x12posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x13posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x14posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x15posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x16posPulseIntRaw")
+newpage 4 4
+title HMS X2- FADC Raw Integrals
+macro Macros/rawdraw_hhodo.C("uhadc2x1negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x2negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x3negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x4negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x5negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x6negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x7negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x8negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x9negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x10negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x11negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x12negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x13negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x14negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x15negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x16negPulseIntRaw")
+newpage 4 4
+title HMS X2+ FADC Integrals
+macro Macros/rawdraw_hhodo.C("uhadc2x1posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x2posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x3posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x4posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x5posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x6posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x7posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x8posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x9posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x10posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x11posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x12posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x13posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x14posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x15posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x16posPulseInt")
+newpage 4 4
+title HMS X2- FADC Integrals
+macro Macros/rawdraw_hhodo.C("uhadc2x1negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x2negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x3negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x4negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x5negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x6negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x7negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x8negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x9negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x10negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x11negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x12negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x13negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x14negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x15negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2x16negPulseInt")
+newpage 4 4
+title HMS X2+ FADC Amplitudes Raw
+macro Macros/rawdraw_hhodo.C("uhadc2x1posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x2posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x3posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x4posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x5posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x6posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x7posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x8posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x9posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x10posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x11posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x12posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x13posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x14posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x15posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x16posPulseAmpRaw")
+newpage 4 4
+title HMS X2- FADC Amplitudes Raw
+macro Macros/rawdraw_hhodo.C("uhadc2x1negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x2negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x3negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x4negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x5negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x6negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x7negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x8negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x9negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x10negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x11negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x12negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x13negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x14negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x15negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x16negPulseAmpRaw")
+newpage 4 4
+title HMS X2+ FADC Amplitudes
+macro Macros/rawdraw_hhodo.C("uhadc2x1posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x2posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x3posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x4posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x5posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x6posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x7posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x8posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x9posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x10posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x11posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x12posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x13posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x14posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x15posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x16posPulseAmp")
+newpage 4 4
+title HMS X2- FADC Amplitudes
+macro Macros/rawdraw_hhodo.C("uhadc2x1negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x2negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x3negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x4negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x5negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x6negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x7negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x8negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x9negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x10negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x11negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x12negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x13negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x14negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x15negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2x16negPulseAmp")
+newpage 4 4
+title HMS X2+ FADC Times Raw
+macro Macros/rawdraw_hhodo.C("uhadc2x1posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x2posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x3posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x4posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x5posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x6posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x7posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x8posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x9posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x10posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x11posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x12posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x13posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x14posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x15posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x16posPulseTimeRaw")
+newpage 4 4
+title HMS X2- FADC Times Raw
+macro Macros/rawdraw_hhodo.C("uhadc2x1negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x2negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x3negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x4negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x5negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x6negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x7negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x8negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x9negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x10negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x11negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x12negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x13negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x14negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x15negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2x16negPulseTimeRaw")
diff --git a/onlineGUI/Config/HMS/HODO/raw_hhodo_2y.cfg b/onlineGUI/Config/HMS/HODO/raw_hhodo_2y.cfg
new file mode 100644
index 00000000..b7aeb03e
--- /dev/null
+++ b/onlineGUI/Config/HMS/HODO/raw_hhodo_2y.cfg
@@ -0,0 +1,219 @@
+protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 3 4
+title HMS Y2+ Raw TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc2y1posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y2posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y3posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y4posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y5posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y6posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y7posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y8posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y9posTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y10posTimeRaw")
+newpage 3 4
+title HMS Y2- Raw TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc2y1negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y2negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y3negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y4negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y5negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y6negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y7negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y8negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y9negTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhtdc2y10negTimeRaw")
+newpage 3 4
+title HMS Y2+ TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc2y1posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y2posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y3posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y4posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y5posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y6posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y7posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y8posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y9posTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y10posTime")
+newpage 3 4
+title HMS Y2- TDCs
+macro Macros/rawdraw_hhodo.C("uhtdc2y1negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y2negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y3negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y4negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y5negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y6negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y7negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y8negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y9negTime")
+macro Macros/rawdraw_hhodo.C("uhtdc2y10negTime")
+newpage 3 4
+title HMS Y2+ FADC Raw Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc2y1posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y2posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y3posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y4posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y5posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y6posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y7posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y8posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y9posPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y10posPedRaw")
+newpage 3 4
+title HMS Y2- FADC Raw Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc2y1negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y2negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y3negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y4negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y5negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y6negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y7negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y8negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y9negPedRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y10negPedRaw")
+newpage 3 4
+title HMS Y2+ FADC Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc2y1posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y2posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y3posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y4posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y5posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y6posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y7posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y8posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y9posPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y10posPed")
+newpage 3 4
+title HMS Y2- FADC Pedestals
+macro Macros/rawdraw_hhodo.C("uhadc2y1negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y2negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y3negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y4negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y5negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y6negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y7negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y8negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y9negPed")
+macro Macros/rawdraw_hhodo.C("uhadc2y10negPed")
+newpage 3 4
+title HMS Y2+ FADC Raw Integrals
+macro Macros/rawdraw_hhodo.C("uhadc2y1posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y2posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y3posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y4posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y5posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y6posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y7posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y8posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y9posPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y10posPulseIntRaw")
+newpage 3 4
+title HMS Y2- FADC Raw Integrals
+macro Macros/rawdraw_hhodo.C("uhadc2y1negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y2negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y3negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y4negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y5negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y6negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y7negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y8negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y9negPulseIntRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y10negPulseIntRaw")
+newpage 3 4
+title HMS Y2+ FADC Integrals
+macro Macros/rawdraw_hhodo.C("uhadc2y1posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y2posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y3posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y4posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y5posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y6posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y7posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y8posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y9posPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y10posPulseInt")
+newpage 3 4
+title HMS Y2- FADC Integrals
+macro Macros/rawdraw_hhodo.C("uhadc2y1negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y2negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y3negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y4negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y5negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y6negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y7negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y8negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y9negPulseInt")
+macro Macros/rawdraw_hhodo.C("uhadc2y10negPulseInt")
+newpage 3 4
+title HMS Y2+ FADC Amplitudes Raw
+macro Macros/rawdraw_hhodo.C("uhadc2y1posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y2posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y3posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y4posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y5posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y6posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y7posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y8posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y9posPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y10posPulseAmpRaw")
+newpage 3 4
+title HMS Y2- FADC Amplitudes Raw
+macro Macros/rawdraw_hhodo.C("uhadc2y1negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y2negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y3negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y4negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y5negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y6negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y7negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y8negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y9negPulseAmpRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y10negPulseAmpRaw")
+newpage 3 4
+title HMS Y2+ FADC Amplitudes
+macro Macros/rawdraw_hhodo.C("uhadc2y1posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y2posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y3posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y4posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y5posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y6posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y7posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y8posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y9posPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y10posPulseAmp")
+newpage 3 4
+title HMS Y2- FADC Amplitudes
+macro Macros/rawdraw_hhodo.C("uhadc2y1negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y2negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y3negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y4negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y5negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y6negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y7negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y8negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y9negPulseAmp")
+macro Macros/rawdraw_hhodo.C("uhadc2y10negPulseAmp")
+newpage 3 4
+title HMS Y2+ FADC Times Raw
+macro Macros/rawdraw_hhodo.C("uhadc2y1posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y2posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y3posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y4posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y5posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y6posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y7posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y8posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y9posPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y10posPulseTimeRaw")
+newpage 3 4
+title HMS Y2- FADC Times Raw
+macro Macros/rawdraw_hhodo.C("uhadc2y1negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y2negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y3negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y4negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y5negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y6negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y7negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y8negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y9negPulseTimeRaw")
+macro Macros/rawdraw_hhodo.C("uhadc2y10negPulseTimeRaw")
diff --git a/onlineGUI/Config/HMS/HODO/raw_hhodoana.cfg b/onlineGUI/Config/HMS/HODO/raw_hhodoana.cfg
new file mode 100644
index 00000000..bcf99634
--- /dev/null
+++ b/onlineGUI/Config/HMS/HODO/raw_hhodoana.cfg
@@ -0,0 +1,130 @@
+#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 2 2
+title HMS Hodo Nhits
+hhodo_1x_multi
+hhodo_1y_multi
+hhodo_2x_multi
+hhodo_2y_multi
+newpage 2 2
+title HMS Hodo Raw ADC Occupancy
+macro Macros/overlay.C("hhodo_1x_pos_adc_occu","hhodo_1x_neg_adc_occu")
+macro Macros/overlay.C("hhodo_1y_pos_adc_occu","hhodo_1y_neg_adc_occu")
+macro Macros/overlay.C("hhodo_2x_pos_adc_occu","hhodo_2x_neg_adc_occu")
+macro Macros/overlay.C("hhodo_2y_pos_adc_occu","hhodo_2y_neg_adc_occu")
+newpage 2 2
+title HMS Hodo Raw TDC Occupancy
+macro Macros/overlay.C("hhodo_1x_pos_tdc_occu","hhodo_1x_neg_tdc_occu")
+macro Macros/overlay.C("hhodo_1y_pos_tdc_occu","hhodo_1y_neg_tdc_occu")
+macro Macros/overlay.C("hhodo_2x_pos_tdc_occu","hhodo_2x_neg_tdc_occu")
+macro Macros/overlay.C("hhodo_2y_pos_tdc_occu","hhodo_2y_neg_tdc_occu")
+newpage 2 2
+title HMS Hodo Raw Ped PMT+
+hhodo_1x_pos_rawped_vs_pad -type colz
+hhodo_1y_pos_rawped_vs_pad -type colz
+hhodo_2x_pos_rawped_vs_pad -type colz
+hhodo_2y_pos_rawped_vs_pad -type colz
+newpage 2 2
+title HMS Hodo Raw Ped PMT-
+hhodo_1x_neg_rawped_vs_pad -type colz
+hhodo_1y_neg_rawped_vs_pad -type colz
+hhodo_2x_neg_rawped_vs_pad -type colz
+hhodo_2y_neg_rawped_vs_pad -type colz
+newpage 2 2
+title HMS Hodo Raw Int PMT+
+hhodo_1x_pos_rawpi_vs_pad -type colz
+hhodo_1y_pos_rawpi_vs_pad -type colz
+hhodo_2x_pos_rawpi_vs_pad -type colz
+hhodo_2y_pos_rawpi_vs_pad -type colz
+newpage 2 2
+title HMS Hodo Raw Int PMT-
+hhodo_1x_neg_rawpi_vs_pad -type colz
+hhodo_1y_neg_rawpi_vs_pad -type colz
+hhodo_2x_neg_rawpi_vs_pad -type colz
+hhodo_2y_neg_rawpi_vs_pad -type colz
+newpage 2 2
+title HMS Hodo Raw Peak PMT+
+hhodo_1x_pos_rawpamp_vs_pad -type colz
+hhodo_1y_pos_rawpamp_vs_pad -type colz
+hhodo_2x_pos_rawpamp_vs_pad -type colz
+hhodo_2y_pos_rawpamp_vs_pad -type colz
+newpage 2 2
+title HMS Hodo Raw Peak PMT-
+hhodo_1x_neg_rawpamp_vs_pad -type colz
+hhodo_1y_neg_rawpamp_vs_pad -type colz
+hhodo_2x_neg_rawpamp_vs_pad -type colz
+hhodo_2y_neg_rawpamp_vs_pad -type colz
+newpage 2 2
+title HMS Hodo Raw Adc Time PMT+
+hhodo_1x_pos_rawptime_vs_pad -type colz
+hhodo_1y_pos_rawptime_vs_pad -type colz
+hhodo_2x_pos_rawptime_vs_pad -type colz
+hhodo_2y_pos_rawptime_vs_pad -type colz
+newpage 2 2
+title HMS Hodo Raw ADc Time PMT-
+hhodo_1x_neg_rawptime_vs_pad -type colz
+hhodo_1y_neg_rawptime_vs_pad -type colz
+hhodo_2x_neg_rawptime_vs_pad -type colz
+hhodo_2y_neg_rawptime_vs_pad -type colz
+newpage 2 2
+title HMS Hodo Raw TDC time PMT+
+hhodo_1x_pos_raw_tdc_time_vs_pad -type colz
+hhodo_1y_pos_raw_tdc_time_vs_pad -type colz
+hhodo_2x_pos_raw_tdc_time_vs_pad -type colz
+hhodo_2y_pos_raw_tdc_time_vs_pad -type colz
+newpage 2 2
+title HMS Hodo Raw  TDC time PMT-
+hhodo_1x_neg_raw_tdc_time_vs_pad -type colz
+hhodo_1y_neg_raw_tdc_time_vs_pad -type colz
+hhodo_2x_neg_raw_tdc_time_vs_pad -type colz
+hhodo_2y_neg_raw_tdc_time_vs_pad -type colz
+newpage 2 2
+title HMS Hodo Ped PMT+
+hhodo_1x_pos_ped_vs_pad -type colz
+hhodo_1y_pos_ped_vs_pad -type colz
+hhodo_2x_pos_ped_vs_pad -type colz
+hhodo_2y_pos_ped_vs_pad -type colz
+newpage 2 2
+title HMS Hodo Ped PMT-
+hhodo_1x_neg_ped_vs_pad -type colz
+hhodo_1y_neg_ped_vs_pad -type colz
+hhodo_2x_neg_ped_vs_pad -type colz
+hhodo_2y_neg_ped_vs_pad -type colz
+newpage 2 2
+title HMS Hodo ADC Int PMT+
+hhodo_1x_pos_pi_vs_pad -type colz
+hhodo_1y_pos_pi_vs_pad -type colz
+hhodo_2x_pos_pi_vs_pad -type colz
+hhodo_2y_pos_pi_vs_pad -type colz
+newpage 2 2
+title HMS Hodo ADC Int PMT-
+hhodo_1x_neg_pi_vs_pad -type colz
+hhodo_1y_neg_pi_vs_pad -type colz
+hhodo_2x_neg_pi_vs_pad -type colz
+hhodo_2y_neg_pi_vs_pad -type colz
+newpage 2 2
+title HMS Hodo ADC Peak PMT+
+hhodo_1x_pos_pamp_vs_pad -type colz
+hhodo_1y_pos_pamp_vs_pad -type colz
+hhodo_2x_pos_pamp_vs_pad -type colz
+hhodo_2y_pos_pamp_vs_pad -type colz
+newpage 2 2
+title HMS Hodo ADc Peak PMT-
+hhodo_1x_neg_pamp_vs_pad -type colz
+hhodo_1y_neg_pamp_vs_pad -type colz
+hhodo_2x_neg_pamp_vs_pad -type colz
+hhodo_2y_neg_pamp_vs_pad -type colz
+newpage 2 2
+title HMS Hodo TDC time PMT+
+hhodo_1x_pos_tdc_time_vs_pad -type colz
+hhodo_1y_pos_tdc_time_vs_pad -type colz
+hhodo_2x_pos_tdc_time_vs_pad -type colz
+hhodo_2y_pos_tdc_time_vs_pad -type colz
+newpage 2 2
+title HMS Hodo  TDC time PMT-
+hhodo_1x_neg_tdc_time_vs_pad -type colz
+hhodo_1y_neg_tdc_time_vs_pad -type colz
+hhodo_2x_neg_tdc_time_vs_pad -type colz
+hhodo_2y_neg_tdc_time_vs_pad -type colz
diff --git a/onlineGUI/Config/HMS/RASTER/simple_raster.cfg b/onlineGUI/Config/HMS/RASTER/simple_raster.cfg
new file mode 100644
index 00000000..16bc0673
--- /dev/null
+++ b/onlineGUI/Config/HMS/RASTER/simple_raster.cfg
@@ -0,0 +1,20 @@
+#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+protorootfile ../ROOTfiles/hms_raster_simple_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 2 2
+title HMS 1D Raster Raw ADC
+hFRXA
+hFRXB
+hFRYA
+hFRYB
+newpage 2 2
+title HMS 1D Raster (Volts)
+hFRXA_V
+hFRXB_V
+hFRYA_V
+hFRYB_V
+newpage 1 2
+title HMS Hodo Raw Ped PMT+
+hFRA_XvsY -type colz
+hFRB_XvsY -type colz
diff --git a/onlineGUI/Config/SHMS/GEN/hallc_onlana.cfg b/onlineGUI/Config/SHMS/GEN/hallc_onlana.cfg
new file mode 100644
index 00000000..56384302
--- /dev/null
+++ b/onlineGUI/Config/SHMS/GEN/hallc_onlana.cfg
@@ -0,0 +1,191 @@
+protorootfile ../ROOTfiles/shms_replay_XXXXX.root
+guicolor orange
+canvassize 1600 800
+#canvassize 800 800
+newpage 2 2 logz 
+title SHMS Noble Gas Cherenkov
+pngcer_occu -nostat
+pngcer_ped_vs_cntr -nostat
+pngcer_pi_vs_cntr -nostat
+pngcer_amp_vs_cntr -nostat
+newpage 4 3
+title SHMS Drift Chamber Reference Times
+pdc_ref1
+pdc_ref2
+pdc_ref3
+pdc_ref4
+pdc_ref5
+pdc_ref6
+pdc_ref7
+pdc_ref8
+pdc_ref9
+pdc_ref10
+newpage 4 3
+title SHMS Drift Chamber Wire Maps
+pdc1u1_wirenum
+pdc2u1_wirenum
+pdc1u2_wirenum
+pdc2u2_wirenum
+pdc1x1_wirenum
+pdc2x1_wirenum
+pdc1x2_wirenum 
+pdc2x2_wirenum 
+pdc1v1_wirenum
+pdc2v1_wirenum
+pdc1v2_wirenum 
+pdc2v2_wirenum
+newpage 4 3 logz
+title SHMS Drift Chamber TDC Times
+pdc1u1_wirenum_vs_tdc -nostat
+pdc2u1_wirenum_vs_tdc -nostat
+pdc1u2_wirenum_vs_tdc -nostat
+pdc2u2_wirenum_vs_tdc -nostat
+pdc1x1_wirenum_vs_tdc -nostat
+pdc2x1_wirenum_vs_tdc -nostat
+pdc1x2_wirenum_vs_tdc -nostat
+pdc2x2_wirenum_vs_tdc -nostat
+pdc1v1_wirenum_vs_tdc -nostat
+pdc2v1_wirenum_vs_tdc -nostat
+pdc1v2_wirenum_vs_tdc -nostat
+pdc2v2_wirenum_vs_tdc -nostat
+newpage 4 3
+title SHMS Drift Chamber Residuals
+pdc1u1_wirenum_vs_resid -nostat
+pdc2u1_wirenum_vs_resid -nostat
+pdc1u2_wirenum_vs_resid -nostat
+pdc2u2_wirenum_vs_resid -nostat
+pdc1x1_wirenum_vs_resid -nostat
+pdc2x1_wirenum_vs_resid -nostat
+pdc1x2_wirenum_vs_resid -nostat
+pdc2x2_wirenum_vs_resid -nostat
+pdc1v1_wirenum_vs_resid -nostat
+pdc2v1_wirenum_vs_resid -nostat
+pdc1v2_wirenum_vs_resid -nostat
+pdc2v2_wirenum_vs_resid -nostat
+newpage 2 1 logz
+title SHMS Drift Chamber Focal Plane
+pdc_xfp_vs_yxp -nostat
+pdc_xfpp_vs_yxpp -nostat
+newpage 2 3 logz
+title SHMS Hodoscope 1X+ (Left)
+phodo_1x_pos_adc_occu -nostat
+phodo_1x_pos_tdc_occu -nostat
+phodo_1x_pos_ped_vs_pad -nostat
+phodo_1x_pos_pi_vs_pad -nostat
+phodo_1x_pos_pamp_vs_pad -nostat
+phodo_1x_pos_tdc_time_vs_pad -nostat
+newpage 2 3 logz
+title SHMS Hodoscope 1X- (Left)
+phodo_1x_neg_adc_occu -nostat
+phodo_1x_neg_tdc_occu -nostat
+phodo_1x_neg_ped_vs_pad -nostat
+phodo_1x_neg_pi_vs_pad -nostat
+phodo_1x_neg_pamp_vs_pad -nostat
+phodo_1x_neg_tdc_time_vs_pad -nostat
+newpage 2 3 logz
+title SHMS Hodoscope 1Y+ (Left)
+phodo_1y_pos_adc_occu -nostat
+phodo_1y_pos_tdc_occu -nostat
+phodo_1y_pos_ped_vs_pad -nostat
+phodo_1y_pos_pi_vs_pad -nostat
+phodo_1y_pos_pamp_vs_pad -nostat
+phodo_1y_pos_tdc_time_vs_pad -nostat
+newpage 2 3 logz
+title SHMS Hodoscope 1Y- (Left)
+phodo_1y_neg_adc_occu -nostat
+phodo_1y_neg_tdc_occu -nostat
+phodo_1y_neg_ped_vs_pad -nostat
+phodo_1y_neg_pi_vs_pad -nostat
+phodo_1y_neg_pamp_vs_pad -nostat
+phodo_1y_neg_tdc_time_vs_pad -nostat
+newpage 2 3 logz
+title SHMS Hodoscope 2X+ (Left)
+phodo_2x_pos_adc_occu -nostat
+phodo_2x_pos_tdc_occu -nostat
+phodo_2x_pos_ped_vs_pad -nostat
+phodo_2x_pos_pi_vs_pad -nostat
+phodo_2x_pos_pamp_vs_pad -nostat
+phodo_2x_pos_tdc_time_vs_pad -nostat
+newpage 2 3 logz
+title SHMS Hodoscope 2X- (Left)
+phodo_2x_neg_adc_occu -nostat
+phodo_2x_neg_tdc_occu -nostat
+phodo_2x_neg_ped_vs_pad -nostat
+phodo_2x_neg_pi_vs_pad -nostat
+phodo_2x_neg_pamp_vs_pad -nostat
+phodo_2x_neg_tdc_time_vs_pad -nostat
+newpage 2 3 logz
+title SHMS Hodoscope 2Y+ (Left)
+phodo_2y_pos_adc_occu -nostat
+phodo_2y_pos_tdc_occu -nostat
+phodo_2y_pos_ped_vs_pad -nostat
+phodo_2y_pos_pi_vs_pad -nostat
+phodo_2y_pos_pamp_vs_pad -nostat
+phodo_2y_pos_tdc_time_vs_pad -nostat
+newpage 2 3 logz
+title SHMS Hodoscope 2Y- (Left)
+phodo_2y_neg_adc_occu -nostat
+phodo_2y_neg_tdc_occu -nostat
+phodo_2y_neg_ped_vs_pad -nostat
+phodo_2y_neg_pi_vs_pad -nostat
+phodo_2y_neg_pamp_vs_pad -nostat
+phodo_2y_neg_tdc_time_vs_pad -nostat
+newpage 2 2 logz 
+title SHMS Heavy Gas Cherenkov
+phgcer_occu -nostat
+phgcer_ped_vs_cntr -nostat
+phgcer_pi_vs_cntr -nostat
+phgcer_amp_vs_cntr -nostat
+newpage 2 2 logz 
+title SHMS Aerogel Positive (Left)
+paero_pos_occu -nostat
+paero_pos_ped_vs_cntr -nostat
+paero_pos_pi_vs_cntr -nostat
+paero_pos_amp_vs_cntr -nostat
+newpage 2 2 logz
+title SHMS Aerogel Negative (Right)
+paero_neg_occu -nostat
+paero_neg_ped_vs_cntr -nostat 
+paero_neg_pi_vs_cntr -nostat
+paero_neg_amp_vs_cntr -nostat
+newpage 2 2 logz
+title SHMS Pre-Shower Positive (Left)
+pcal_prshwr_pos_occu -nostat
+pcal_prshwr_pos_ped_blk -nostat
+pcal_prshwr_pos_pi_blk -nostat
+pcal_prshwr_pos_amp_blk -nostat
+newpage 2 2 logz
+title SHMS Pre-Shower Negative (Right)
+pcal_prshwr_neg_occu -nostat 
+pcal_prshwr_neg_ped_blk -nostat
+pcal_prshwr_neg_pi_blk -nostat
+pcal_prshwr_neg_amp_blk -nostat
+newpage 2 2 logz
+title SHMS Shower
+pcal_shwr_occu -nostat
+pcal_shwr_ped_blk -nostat
+pcal_shwr_pi_blk -nostat
+pcal_shwr_amp_blk -nostat
+newpage 4 3 logz
+title SHMS HGC/NGC Sums
+ptrig_pngc_sum_pped
+ptrig_pngc_sum_pint
+ptrig_pngc_sum_pamp
+ptrig_pngc_sum_ptime
+ptrig_pngc_sum_tdc
+ptrig_phgc_sum_pped
+ptrig_phgc_sum_pint
+ptrig_phgc_sum_pamp
+ptrig_phgc_sum_ptime
+ptrig_phgc_sum_tdc
+newpage 3 3 logy
+title SHMS Trigger Times
+ptrig_p1x_tdc
+ptrig_p1y_tdc
+ptrig_p2x_tdc
+ptrig_p2y_tdc
+ptrig_p1T_tdc
+ptrig_p2T_tdc
+ptrig_pT1_tdc
+ptrig_pT2_tdc
+ptrig_pT3_tdc
\ No newline at end of file
diff --git a/onlineGUI/Config/SHMS/HODO/good_phodo_2d.cfg b/onlineGUI/Config/SHMS/HODO/good_phodo_2d.cfg
new file mode 100644
index 00000000..a3e090af
--- /dev/null
+++ b/onlineGUI/Config/SHMS/HODO/good_phodo_2d.cfg
@@ -0,0 +1,367 @@
+#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+protorootfile ../ROOTfiles/phodo_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 1 1
+title Beta notrack
+macro Macros/gooddraw_2d_phodo.C("hbeta")
+newpage 2 2
+title fptime
+macro Macros/gooddraw_2d_phodo.C("fptime1x")
+macro Macros/gooddraw_2d_phodo.C("fptime1y")
+macro Macros/gooddraw_2d_phodo.C("fptime2x")
+macro Macros/gooddraw_2d_phodo.C("fptime2y")
+newpage 2 2
+title fptime
+macro Macros/gooddraw_2d_phodo.C("fptime1x_pad")
+macro Macros/gooddraw_2d_phodo.C("fptime1y_pad")
+macro Macros/gooddraw_2d_phodo.C("fptime2x_pad")
+macro Macros/gooddraw_2d_phodo.C("fptime2y_pad")
+newpage 4 4
+title X1 Neg ADc v TDC
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x13")
+newpage 4 4
+title X1 Pos ADc v TDC
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x13")
+newpage 4 4
+title Y1 Neg ADc v TDC
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y13")
+newpage 4 4
+title Y1 Pos ADc v TDC
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y13")
+newpage 4 4
+title X2 Neg ADc v TDC
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x13")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x14")
+newpage 4 4
+title X2 Pos ADc v TDC
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x13")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x14")
+newpage 3 4
+title Y2 Neg ADc v TDC
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y13")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y14")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y15")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y16")
+newpage 3 4
+title Y2 Pos ADc v TDC
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y13")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y14")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y15")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y16")
+newpage 4 4
+title X1 Eff Neg PMT
+macro Macros/hodo_efficiency.C("uhdidneg1x1","uhshouldneg1x1")
+macro Macros/hodo_efficiency.C("uhdidneg1x2","uhshouldneg1x2")
+macro Macros/hodo_efficiency.C("uhdidneg1x3","uhshouldneg1x3")
+macro Macros/hodo_efficiency.C("uhdidneg1x4","uhshouldneg1x4")
+macro Macros/hodo_efficiency.C("uhdidneg1x5","uhshouldneg1x5")
+macro Macros/hodo_efficiency.C("uhdidneg1x6","uhshouldneg1x6")
+macro Macros/hodo_efficiency.C("uhdidneg1x7","uhshouldneg1x7")
+macro Macros/hodo_efficiency.C("uhdidneg1x8","uhshouldneg1x8")
+macro Macros/hodo_efficiency.C("uhdidneg1x9","uhshouldneg1x9")
+macro Macros/hodo_efficiency.C("uhdidneg1x10","uhshouldneg1x10")
+macro Macros/hodo_efficiency.C("uhdidneg1x11","uhshouldneg1x11")
+macro Macros/hodo_efficiency.C("uhdidneg1x12","uhshouldneg1x12")
+macro Macros/hodo_efficiency.C("uhdidneg1x13","uhshouldneg1x13")
+newpage 4 4
+title X1 Eff Pos PMT
+macro Macros/hodo_efficiency.C("uhdidpos1x1","uhshouldpos1x1")
+macro Macros/hodo_efficiency.C("uhdidpos1x2","uhshouldpos1x2")
+macro Macros/hodo_efficiency.C("uhdidpos1x3","uhshouldpos1x3")
+macro Macros/hodo_efficiency.C("uhdidpos1x4","uhshouldpos1x4")
+macro Macros/hodo_efficiency.C("uhdidpos1x5","uhshouldpos1x5")
+macro Macros/hodo_efficiency.C("uhdidpos1x6","uhshouldpos1x6")
+macro Macros/hodo_efficiency.C("uhdidpos1x7","uhshouldpos1x7")
+macro Macros/hodo_efficiency.C("uhdidpos1x8","uhshouldpos1x8")
+macro Macros/hodo_efficiency.C("uhdidpos1x9","uhshouldpos1x9")
+macro Macros/hodo_efficiency.C("uhdidpos1x10","uhshouldpos1x10")
+macro Macros/hodo_efficiency.C("uhdidpos1x11","uhshouldpos1x11")
+macro Macros/hodo_efficiency.C("uhdidpos1x12","uhshouldpos1x12")
+macro Macros/hodo_efficiency.C("uhdidpos1x13","uhshouldpos1x13")
+newpage 3 4
+title Y1 Eff Neg PMT
+macro Macros/hodo_efficiency.C("uhdidneg1y1","uhshouldneg1y1")
+macro Macros/hodo_efficiency.C("uhdidneg1y2","uhshouldneg1y2")
+macro Macros/hodo_efficiency.C("uhdidneg1y3","uhshouldneg1y3")
+macro Macros/hodo_efficiency.C("uhdidneg1y4","uhshouldneg1y4")
+macro Macros/hodo_efficiency.C("uhdidneg1y5","uhshouldneg1y5")
+macro Macros/hodo_efficiency.C("uhdidneg1y6","uhshouldneg1y6")
+macro Macros/hodo_efficiency.C("uhdidneg1y7","uhshouldneg1y7")
+macro Macros/hodo_efficiency.C("uhdidneg1y8","uhshouldneg1y8")
+macro Macros/hodo_efficiency.C("uhdidneg1y9","uhshouldneg1y9")
+macro Macros/hodo_efficiency.C("uhdidneg1y10","uhshouldneg1y10")
+macro Macros/hodo_efficiency.C("uhdidneg1y11","uhshouldneg1y11")
+macro Macros/hodo_efficiency.C("uhdidneg1y12","uhshouldneg1y12")
+macro Macros/hodo_efficiency.C("uhdidneg1y13","uhshouldneg1y13")
+newpage 3 4
+title Y1 Eff Pos PMT
+macro Macros/hodo_efficiency.C("uhdidpos1y1","uhshouldpos1y1")
+macro Macros/hodo_efficiency.C("uhdidpos1y2","uhshouldpos1y2")
+macro Macros/hodo_efficiency.C("uhdidpos1y3","uhshouldpos1y3")
+macro Macros/hodo_efficiency.C("uhdidpos1y4","uhshouldpos1y4")
+macro Macros/hodo_efficiency.C("uhdidpos1y5","uhshouldpos1y5")
+macro Macros/hodo_efficiency.C("uhdidpos1y6","uhshouldpos1y6")
+macro Macros/hodo_efficiency.C("uhdidpos1y7","uhshouldpos1y7")
+macro Macros/hodo_efficiency.C("uhdidpos1y8","uhshouldpos1y8")
+macro Macros/hodo_efficiency.C("uhdidpos1y9","uhshouldpos1y9")
+macro Macros/hodo_efficiency.C("uhdidpos1y10","uhshouldpos1y10")
+macro Macros/hodo_efficiency.C("uhdidpos1y11","uhshouldpos1y11")
+macro Macros/hodo_efficiency.C("uhdidpos1y12","uhshouldpos1y12")
+macro Macros/hodo_efficiency.C("uhdidpos1y13","uhshouldpos1y13")
+newpage 4 4
+title X2 Eff Neg PMT
+macro Macros/hodo_efficiency.C("uhdidneg2x1","uhshouldneg2x1")
+macro Macros/hodo_efficiency.C("uhdidneg2x2","uhshouldneg2x2")
+macro Macros/hodo_efficiency.C("uhdidneg2x3","uhshouldneg2x3")
+macro Macros/hodo_efficiency.C("uhdidneg2x4","uhshouldneg2x4")
+macro Macros/hodo_efficiency.C("uhdidneg2x5","uhshouldneg2x5")
+macro Macros/hodo_efficiency.C("uhdidneg2x6","uhshouldneg2x6")
+macro Macros/hodo_efficiency.C("uhdidneg2x7","uhshouldneg2x7")
+macro Macros/hodo_efficiency.C("uhdidneg2x8","uhshouldneg2x8")
+macro Macros/hodo_efficiency.C("uhdidneg2x9","uhshouldneg2x9")
+macro Macros/hodo_efficiency.C("uhdidneg2x10","uhshouldneg2x10")
+macro Macros/hodo_efficiency.C("uhdidneg2x11","uhshouldneg2x11")
+macro Macros/hodo_efficiency.C("uhdidneg2x12","uhshouldneg2x12")
+macro Macros/hodo_efficiency.C("uhdidneg2x13","uhshouldneg2x13")
+macro Macros/hodo_efficiency.C("uhdidneg2x14","uhshouldneg2x14")
+newpage 4 4
+title X2 Eff Pos PMT
+macro Macros/hodo_efficiency.C("uhdidpos2x1","uhshouldpos2x1")
+macro Macros/hodo_efficiency.C("uhdidpos2x2","uhshouldpos2x2")
+macro Macros/hodo_efficiency.C("uhdidpos2x3","uhshouldpos2x3")
+macro Macros/hodo_efficiency.C("uhdidpos2x4","uhshouldpos2x4")
+macro Macros/hodo_efficiency.C("uhdidpos2x5","uhshouldpos2x5")
+macro Macros/hodo_efficiency.C("uhdidpos2x6","uhshouldpos2x6")
+macro Macros/hodo_efficiency.C("uhdidpos2x7","uhshouldpos2x7")
+macro Macros/hodo_efficiency.C("uhdidpos2x8","uhshouldpos2x8")
+macro Macros/hodo_efficiency.C("uhdidpos2x9","uhshouldpos2x9")
+macro Macros/hodo_efficiency.C("uhdidpos2x10","uhshouldpos2x10")
+macro Macros/hodo_efficiency.C("uhdidpos2x11","uhshouldpos2x11")
+macro Macros/hodo_efficiency.C("uhdidpos2x12","uhshouldpos2x12")
+macro Macros/hodo_efficiency.C("uhdidpos2x13","uhshouldpos2x13")
+macro Macros/hodo_efficiency.C("uhdidpos2x14","uhshouldpos2x14")
+newpage 3 4
+title Y2 Eff Neg PMT
+macro Macros/hodo_efficiency.C("uhdidneg2y7","uhshouldneg2y7")
+macro Macros/hodo_efficiency.C("uhdidneg2y8","uhshouldneg2y8")
+macro Macros/hodo_efficiency.C("uhdidneg2y9","uhshouldneg2y9")
+macro Macros/hodo_efficiency.C("uhdidneg2y10","uhshouldneg2y10")
+macro Macros/hodo_efficiency.C("uhdidneg2y11","uhshouldneg2y11")
+macro Macros/hodo_efficiency.C("uhdidneg2y12","uhshouldneg2y12")
+macro Macros/hodo_efficiency.C("uhdidneg2y13","uhshouldneg2y13")
+macro Macros/hodo_efficiency.C("uhdidneg2y14","uhshouldneg2y14")
+macro Macros/hodo_efficiency.C("uhdidneg2y15","uhshouldneg2y15")
+macro Macros/hodo_efficiency.C("uhdidneg2y16","uhshouldneg2y16")
+newpage 3 4
+title Y2 Eff Pos PMT
+macro Macros/hodo_efficiency.C("uhdidpos2y7","uhshouldpos2y7")
+macro Macros/hodo_efficiency.C("uhdidpos2y8","uhshouldpos2y8")
+macro Macros/hodo_efficiency.C("uhdidpos2y9","uhshouldpos2y9")
+macro Macros/hodo_efficiency.C("uhdidpos2y10","uhshouldpos2y10")
+macro Macros/hodo_efficiency.C("uhdidpos2y11","uhshouldpos2y11")
+macro Macros/hodo_efficiency.C("uhdidpos2y12","uhshouldpos2y12")
+macro Macros/hodo_efficiency.C("uhdidpos2y13","uhshouldpos2y13")
+macro Macros/hodo_efficiency.C("uhdidpos2y14","uhshouldpos2y14")
+macro Macros/hodo_efficiency.C("uhdidpos2y15","uhshouldpos2y15")
+macro Macros/hodo_efficiency.C("uhdidpos2y16","uhshouldpos2y16")
+newpage 4 4
+title X1 ADC int Pos vs Neg
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x13")
+newpage 3 4
+title Y1  ADC int Pos vs Neg
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y13")
+newpage 4 4
+title X2  ADC int Pos vs Neg
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x13")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x14")
+newpage 3 4
+title Y2  ADC int Pos vs Neg
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y13")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y14")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y15")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y16")
+newpage 4 4
+title X1 TDC Pos vs Neg
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x13")
+newpage 3 4
+title Y1 TDC Pos vs Neg
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y1")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y2")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y3")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y4")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y5")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y6")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y13")
+newpage 4 4
+title X2 TDC Pos vs Neg
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x13")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x14")
+newpage 3 4
+title Y2 TDC Pos vs Neg
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y13")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y14")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y15")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y16")
diff --git a/onlineGUI/Config/SHMS/HODO/good_phodo_2d_dis.cfg b/onlineGUI/Config/SHMS/HODO/good_phodo_2d_dis.cfg
new file mode 100644
index 00000000..15452cad
--- /dev/null
+++ b/onlineGUI/Config/SHMS/HODO/good_phodo_2d_dis.cfg
@@ -0,0 +1,293 @@
+protorootfile ../ROOTfiles/phodo_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 4 4
+title X1+ ADC vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x13")
+newpage 4 4
+title X1- ADC vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x13")
+newpage 4 4
+title Y1+ ADC vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y13")
+newpage 4 4
+title Y1- ADC vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y13")
+newpage 4 4
+title X2+ ADC vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x13")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x14")
+newpage 4 4
+title X2- ADC vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x13")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x14")
+newpage 3 3
+title Y2+ ADC vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y13")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y14")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y15")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y16")
+newpage 3 3
+title Y2- ADC vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y13")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y14")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y15")
+macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y16")
+newpage 4 4
+title X1+ tdc vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x13")
+newpage 4 4
+title X1- tdc vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x13")
+newpage 4 4
+title Y1+ tdc vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y1")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y2")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y3")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y4")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y5")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y6")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y13")
+newpage 4 4
+title Y1- tdc vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y1")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y2")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y3")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y4")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y5")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y6")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y13")
+newpage 4 4
+title X2+ tdc vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x13")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x14")
+newpage 4 4
+title X2- tdc vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x13")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x14")
+newpage 3 4
+title Y2+ tdc vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y13")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y14")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y15")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y16")
+newpage 3 4
+title Y2- tdc vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y13")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y14")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y15")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y16")
+newpage 4 4
+title X1+ tdc diff vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x13")
+newpage 4 4
+title Y1+ tdc diff vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y1")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y2")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y3")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y4")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y5")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y6")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y13")
+newpage 4 4
+title X2+ tdc vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x1")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x2")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x3")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x4")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x5")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x6")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x13")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x14")
+newpage 3 4
+title Y2+ tdc vs Dis
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y7")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y8")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y9")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y10")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y11")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y12")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y13")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y14")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y15")
+macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y16")
diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodo_1x.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodo_1x.cfg
new file mode 100644
index 00000000..bf655d26
--- /dev/null
+++ b/onlineGUI/Config/SHMS/HODO/raw_phodo_1x.cfg
@@ -0,0 +1,273 @@
+protorootfile ../ROOTfiles/phodo_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 4 4
+title HMS X1+ Raw TDCs
+macro Macros/rawdraw_phodo.C("uhtdc1x1posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x2posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x3posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x4posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x5posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x6posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x7posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x8posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x9posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x10posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x11posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x12posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x13posTimeRaw")
+newpage 4 4
+title HMS X1- Raw TDCs
+macro Macros/rawdraw_phodo.C("uhtdc1x1negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x2negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x3negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x4negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x5negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x6negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x7negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x8negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x9negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x10negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x11negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x12negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1x13negTimeRaw")
+newpage 4 4
+title HMS X1+ TDCs
+macro Macros/rawdraw_phodo.C("uhtdc1x1posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x2posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x3posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x4posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x5posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x6posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x7posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x8posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x9posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x10posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x11posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x12posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x13posTime")
+newpage 4 4
+title HMS X1- TDCs
+macro Macros/rawdraw_phodo.C("uhtdc1x1negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x2negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x3negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x4negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x5negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x6negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x7negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x8negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x9negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x10negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x11negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x12negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1x13negTime")
+newpage 4 4
+title HMS X1+ FADC Raw Pedestals
+macro Macros/rawdraw_phodo.C("uhadc1x1posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x2posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x3posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x4posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x5posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x6posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x7posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x8posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x9posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x10posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x11posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x12posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x13posPedRaw")
+newpage 4 4
+title HMS X1- FADC Raw Pedestals
+macro Macros/rawdraw_phodo.C("uhadc1x1negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x2negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x3negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x4negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x5negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x6negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x7negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x8negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x9negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x10negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x11negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x12negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x13negPedRaw")
+newpage 4 4
+title HMS X1+ FADC Pedestals
+macro Macros/rawdraw_phodo.C("uhadc1x1posPed")
+macro Macros/rawdraw_phodo.C("uhadc1x2posPed")
+macro Macros/rawdraw_phodo.C("uhadc1x3posPed")
+macro Macros/rawdraw_phodo.C("uhadc1x4posPed")
+macro Macros/rawdraw_phodo.C("uhadc1x5posPed")
+macro Macros/rawdraw_phodo.C("uhadc1x6posPed")
+macro Macros/rawdraw_phodo.C("uhadc1x7posPed")
+macro Macros/rawdraw_phodo.C("uhadc1x8posPed")
+macro Macros/rawdraw_phodo.C("uhadc1x9posPed")
+macro Macros/rawdraw_phodo.C("uhadc1x10posPed")
+macro Macros/rawdraw_phodo.C("uhadc1x11posPed")
+macro Macros/rawdraw_phodo.C("uhadc1x12posPed")
+macro Macros/rawdraw_phodo.C("uhadc1x13posPed")
+newpage 4 4
+title HMS X1- FADC Pedestals
+macro Macros/rawdraw_phodo.C("uhadc1x1negPed")
+macro Macros/rawdraw_phodo.C("uhadc1x2negPed")
+macro Macros/rawdraw_phodo.C("uhadc1x3negPed")
+macro Macros/rawdraw_phodo.C("uhadc1x4negPed")
+macro Macros/rawdraw_phodo.C("uhadc1x5negPed")
+macro Macros/rawdraw_phodo.C("uhadc1x6negPed")
+macro Macros/rawdraw_phodo.C("uhadc1x7negPed")
+macro Macros/rawdraw_phodo.C("uhadc1x8negPed")
+macro Macros/rawdraw_phodo.C("uhadc1x9negPed")
+macro Macros/rawdraw_phodo.C("uhadc1x10negPed")
+macro Macros/rawdraw_phodo.C("uhadc1x11negPed")
+macro Macros/rawdraw_phodo.C("uhadc1x12negPed")
+macro Macros/rawdraw_phodo.C("uhadc1x13negPed")
+newpage 4 4
+title HMS X1+ FADC Raw Integrals
+macro Macros/rawdraw_phodo.C("uhadc1x1posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x2posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x3posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x4posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x5posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x6posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x7posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x8posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x9posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x10posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x11posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x12posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x13posPulseIntRaw")
+newpage 4 4
+title HMS X1- FADC Raw Integrals
+macro Macros/rawdraw_phodo.C("uhadc1x1negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x2negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x3negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x4negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x5negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x6negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x7negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x8negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x9negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x10negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x11negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x12negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x13negPulseIntRaw")
+newpage 4 4
+title HMS X1+ FADC Integrals
+macro Macros/rawdraw_phodo.C("uhadc1x1posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x2posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x3posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x4posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x5posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x6posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x7posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x8posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x9posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x10posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x11posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x12posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x13posPulseInt")
+newpage 4 4
+title HMS X1- FADC Integrals
+macro Macros/rawdraw_phodo.C("uhadc1x1negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x2negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x3negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x4negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x5negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x6negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x7negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x8negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x9negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x10negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x11negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x12negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1x13negPulseInt")
+newpage 4 4
+title HMS X1+ FADC Amplitudes Raw
+macro Macros/rawdraw_phodo.C("uhadc1x1posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x2posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x3posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x4posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x5posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x6posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x7posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x8posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x9posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x10posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x11posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x12posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x13posPulseAmpRaw")
+newpage 4 4
+title HMS X1- FADC Amplitudes Raw
+macro Macros/rawdraw_phodo.C("uhadc1x1negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x2negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x3negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x4negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x5negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x6negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x7negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x8negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x9negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x10negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x11negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x12negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x13negPulseAmpRaw")
+newpage 4 4
+title HMS X1+ FADC Amplitudes
+macro Macros/rawdraw_phodo.C("uhadc1x1posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x2posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x3posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x4posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x5posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x6posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x7posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x8posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x9posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x10posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x11posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x12posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x13posPulseAmp")
+newpage 4 4
+title HMS X1- FADC Amplitudes
+macro Macros/rawdraw_phodo.C("uhadc1x1negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x2negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x3negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x4negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x5negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x6negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x7negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x8negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x9negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x10negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x11negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x12negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1x13negPulseAmp")
+newpage 4 4
+title HMS X1+ FADC Times Raw
+macro Macros/rawdraw_phodo.C("uhadc1x1posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x2posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x3posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x4posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x5posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x6posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x7posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x8posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x9posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x10posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x11posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x12posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x13posPulseTimeRaw")
+newpage 4 4
+title HMS X1- FADC Times Raw
+macro Macros/rawdraw_phodo.C("uhadc1x1negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x2negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x3negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x4negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x5negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x6negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x7negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x8negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x9negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x10negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x11negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x12negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1x13negPulseTimeRaw")
diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodo_1y.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodo_1y.cfg
new file mode 100644
index 00000000..f96b971f
--- /dev/null
+++ b/onlineGUI/Config/SHMS/HODO/raw_phodo_1y.cfg
@@ -0,0 +1,270 @@
+protorootfile ../ROOTfiles/phodo_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 3 4
+title HMS Y1+ Raw TDCs
+macro Macros/rawdraw_phodo.C("uhtdc1y1posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y2posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y3posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y4posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y5posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y6posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y7posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y8posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y9posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y10posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y11posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y12posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y13posTimeRaw")
+newpage 3 4
+title HMS Y1- Raw TDCs
+macro Macros/rawdraw_phodo.C("uhtdc1y1negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y2negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y3negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y4negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y5negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y6negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y7negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y8negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y9negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y10negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y11negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y12negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc1y13negTimeRaw")
+newpage 3 4
+title HMS Y1+ TDCs
+macro Macros/rawdraw_phodo.C("uhtdc1y1posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y2posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y3posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y4posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y5posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y6posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y7posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y8posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y9posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y10posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y11posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y12posTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y13posTime")
+newpage 3 4
+title HMS Y1- TDCs
+macro Macros/rawdraw_phodo.C("uhtdc1y1negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y2negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y3negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y4negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y5negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y6negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y7negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y8negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y9negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y10negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y11negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y12negTime")
+macro Macros/rawdraw_phodo.C("uhtdc1y13negTime")
+newpage 3 4
+title HMS Y1+ FADC Raw Pedestals
+macro Macros/rawdraw_phodo.C("uhadc1y1posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y2posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y3posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y4posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y5posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y6posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y7posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y8posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y9posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y10posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y11posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y12posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y13posPedRaw")
+newpage 3 4
+title HMS Y1- FADC Raw Pedestals
+macro Macros/rawdraw_phodo.C("uhadc1y1negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y2negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y3negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y4negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y5negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y6negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y7negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y8negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y9negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y10negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y11negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y12negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y13negPedRaw")
+newpage 3 4
+title HMS Y1+ FADC Pedestals
+macro Macros/rawdraw_phodo.C("uhadc1y1posPed")
+macro Macros/rawdraw_phodo.C("uhadc1y2posPed")
+macro Macros/rawdraw_phodo.C("uhadc1y3posPed")
+macro Macros/rawdraw_phodo.C("uhadc1y4posPed")
+macro Macros/rawdraw_phodo.C("uhadc1y5posPed")
+macro Macros/rawdraw_phodo.C("uhadc1y6posPed")
+macro Macros/rawdraw_phodo.C("uhadc1y7posPed")
+macro Macros/rawdraw_phodo.C("uhadc1y8posPed")
+macro Macros/rawdraw_phodo.C("uhadc1y9posPed")
+macro Macros/rawdraw_phodo.C("uhadc1y10posPed")
+macro Macros/rawdraw_phodo.C("uhadc1y11posPed")
+macro Macros/rawdraw_phodo.C("uhadc1y12posPed")
+macro Macros/rawdraw_phodo.C("uhadc1y13posPed")
+newpage 3 4
+title HMS Y1- FADC Pedestals
+macro Macros/rawdraw_phodo.C("uhadc1y1negPed")
+macro Macros/rawdraw_phodo.C("uhadc1y2negPed")
+macro Macros/rawdraw_phodo.C("uhadc1y3negPed")
+macro Macros/rawdraw_phodo.C("uhadc1y4negPed")
+macro Macros/rawdraw_phodo.C("uhadc1y5negPed")
+macro Macros/rawdraw_phodo.C("uhadc1y6negPed")
+macro Macros/rawdraw_phodo.C("uhadc1y7negPed")
+macro Macros/rawdraw_phodo.C("uhadc1y8negPed")
+macro Macros/rawdraw_phodo.C("uhadc1y9negPed")
+macro Macros/rawdraw_phodo.C("uhadc1y10negPed")
+macro Macros/rawdraw_phodo.C("uhadc1y11negPed")
+macro Macros/rawdraw_phodo.C("uhadc1y12negPed")
+macro Macros/rawdraw_phodo.C("uhadc1y13negPed")
+newpage 3 4
+title HMS Y1+ FADC Raw Integrals
+macro Macros/rawdraw_phodo.C("uhadc1y1posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y2posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y3posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y4posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y5posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y6posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y7posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y8posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y9posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y10posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y11posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y12posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y13posPulseIntRaw")
+newpage 3 4
+title HMS Y1- FADC Raw Integrals
+macro Macros/rawdraw_phodo.C("uhadc1y1negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y2negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y3negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y4negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y5negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y6negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y7negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y8negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y9negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y10negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y11negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y12negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y13negPulseIntRaw")
+newpage 3 4
+title HMS Y1+ FADC Integrals
+macro Macros/rawdraw_phodo.C("uhadc1y1posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y2posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y3posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y4posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y5posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y6posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y7posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y8posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y9posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y10posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y11posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y12posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y13posPulseInt")
+newpage 3 4
+title HMS Y1- FADC Integrals
+macro Macros/rawdraw_phodo.C("uhadc1y1negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y2negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y3negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y4negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y5negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y6negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y7negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y8negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y9negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y10negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y11negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y12negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc1y13negPulseInt")
+newpage 3 4
+title HMS Y1+ FADC Amplitudes Raw
+macro Macros/rawdraw_phodo.C("uhadc1y1posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y2posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y3posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y4posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y5posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y6posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y7posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y8posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y9posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y10posPulseAmpRaw")
+newpage 3 4
+title HMS Y1- FADC Amplitudes Raw
+macro Macros/rawdraw_phodo.C("uhadc1y1negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y2negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y3negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y4negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y5negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y6negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y7negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y8negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y9negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y10negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y11negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y12negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y13negPulseAmpRaw")
+newpage 3 4
+title HMS Y1+ FADC Amplitudes
+macro Macros/rawdraw_phodo.C("uhadc1y1posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y2posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y3posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y4posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y5posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y6posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y7posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y8posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y9posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y10posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y11posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y12posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y13posPulseAmp")
+newpage 3 4
+title HMS Y1- FADC Amplitudes
+macro Macros/rawdraw_phodo.C("uhadc1y1negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y2negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y3negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y4negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y5negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y6negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y7negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y8negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y9negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y10negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y11negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y12negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc1y13negPulseAmp")
+newpage 3 4
+title HMS Y1+ FADC Times Raw
+macro Macros/rawdraw_phodo.C("uhadc1y1posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y2posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y3posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y4posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y5posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y6posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y7posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y8posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y9posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y10posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y11posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y12posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y13posPulseTimeRaw")
+newpage 3 4
+title HMS Y1- FADC Times Raw
+macro Macros/rawdraw_phodo.C("uhadc1y1negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y2negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y3negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y4negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y5negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y6negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y7negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y8negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y9negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y10negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y11negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y12negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc1y13negPulseTimeRaw")
diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodo_2d.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodo_2d.cfg
new file mode 100644
index 00000000..af177db3
--- /dev/null
+++ b/onlineGUI/Config/SHMS/HODO/raw_phodo_2d.cfg
@@ -0,0 +1,306 @@
+#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+protorootfile ../ROOTfiles/phodo_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 4 4
+title X1 ADC peak Pos vs Neg
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x1")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x2")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x3")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x4")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x5")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x6")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x7")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x8")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x9")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x10")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x11")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x12")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x13")
+newpage 4 4
+title Y1  ADC peak Pos vs Neg
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y1")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y2")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y3")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y4")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y5")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y6")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y7")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y8")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y9")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y10")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y11")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y12")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y13")
+newpage 4 4
+title X2  ADC peak Pos vs Neg
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x1")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x2")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x3")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x4")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x5")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x6")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x7")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x8")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x9")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x10")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x11")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x12")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x13")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x14")
+newpage 3 4
+title Y2  ADC peak Pos vs Neg
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y7")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y8")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y9")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y10")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y11")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y12")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y13")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y14")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y15")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y16")
+newpage 4 4
+title X1 ADC int Pos vs Neg
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x1")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x2")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x3")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x4")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x5")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x6")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x7")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x8")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x9")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x10")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x11")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x12")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x13")
+newpage 4 4
+title Y1  ADC int Pos vs Neg
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y1")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y2")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y3")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y4")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y5")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y6")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y7")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y8")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y9")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y10")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y11")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y12")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y13")
+newpage 4 4
+title X2  ADC int Pos vs Neg
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x1")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x2")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x3")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x4")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x5")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x6")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x7")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x8")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x9")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x10")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x11")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x12")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x13")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x14")
+newpage 3 4
+title Y2  ADC int Pos vs Neg
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y7")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y8")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y9")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y10")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y11")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y12")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y13")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y14")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y15")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y16")
+newpage 3 4
+title Y2  ADC int cut Pos vs Neg
+macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y7")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y8")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y9")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y10")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y11")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y12")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y13")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y14")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y15")
+macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y16")
+newpage 4 4
+title X1 TDC Pos vs Neg
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x1")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x2")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x3")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x4")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x5")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x6")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x7")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x8")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x9")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x10")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x11")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x12")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x13")
+newpage 4 4
+title Y1  TDC Pos vs Neg
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y1")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y2")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y3")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y4")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y5")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y6")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y7")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y8")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y9")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y10")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y11")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y12")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y13")
+newpage 4 4
+title X2  TDC Pos vs Neg
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x1")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x2")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x3")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x4")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x5")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x6")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x7")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x8")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x9")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x10")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x11")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x12")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x13")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x14")
+newpage 3 4
+title Y2  TDC Pos vs Neg
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y7")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y8")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y9")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y10")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y11")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y12")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y13")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y14")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y15")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y16")
+newpage 4 4
+title X1-  ADC (pC) vs TDC
+macro Macros/rawdraw_2d_phodo.C("uh2d1x1neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x2neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x3neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x4neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x5neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x6neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x7neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x8neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x9neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x10neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x11neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x12neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x13neg")
+newpage 4 4
+title X1+  ADC (pC) vs TDC
+macro Macros/rawdraw_2d_phodo.C("uh2d1x1pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x2pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x3pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x4pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x5pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x6pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x7pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x8pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x9pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x10pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x11pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x12pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1x13pos")
+newpage 4 4
+title Y1-   ADC (pC) vs TDC
+macro Macros/rawdraw_2d_phodo.C("uh2d1y1neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y2neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y3neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y4neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y5neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y6neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y7neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y8neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y9neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y10neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y11neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y12neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y13neg")
+newpage 4 4
+title Y1+   ADC (pC) vs TDC
+macro Macros/rawdraw_2d_phodo.C("uh2d1y1pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y2pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y3pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y4pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y5pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y6pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y7pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y8pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y9pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y10pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y11pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y12pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d1y13pos")
+newpage 4 4
+title X2-   ADC (pC) vs TDC
+macro Macros/rawdraw_2d_phodo.C("uh2d2x1neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x2neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x3neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x4neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x5neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x6neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x7neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x8neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x9neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x10neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x11neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x12neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x13neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x14neg")
+newpage 4 4
+title X2-   ADC (pC) vs TDC
+macro Macros/rawdraw_2d_phodo.C("uh2d2x1pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x2pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x3pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x4pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x5pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x6pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x7pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x8pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x9pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x10pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x11pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x12pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x13pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2x14pos")
+newpage 3 4
+title Y2-   ADC (pC) vs TDC
+macro Macros/rawdraw_2d_phodo.C("uh2d2y7neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y8neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y9neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y10neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y11neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y12neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y13neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y14neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y15neg")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y16neg")
+newpage 3 4
+title Y2+   ADC (pC) vs TDC
+macro Macros/rawdraw_2d_phodo.C("uh2d2y7pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y8pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y9pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y10pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y11pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y12pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y13pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y14pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y15pos")
+macro Macros/rawdraw_2d_phodo.C("uh2d2y16pos")
diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodo_2d_pad.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodo_2d_pad.cfg
new file mode 100644
index 00000000..a2fa99c2
--- /dev/null
+++ b/onlineGUI/Config/SHMS/HODO/raw_phodo_2d_pad.cfg
@@ -0,0 +1,120 @@
+protorootfile ../ROOTfiles/phodo_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 4 4
+title X1 Neg TDC vs Y1 paddle
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x1")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x2")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x3")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x4")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x5")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x6")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x7")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x8")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x9")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x10")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x11")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x12")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x13")
+newpage 4 4
+title X1 Pos TDC vs Y1 paddle
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x1")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x2")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x3")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x4")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x5")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x6")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x7")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x8")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x9")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x10")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x11")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x12")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x13")
+newpage 4 4
+title Y1 Neg TDC vs X1 paddle
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y1")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y2")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y3")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y4")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y5")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y6")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y7")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y8")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y9")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y10")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y11")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y12")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y13")
+newpage 4 4
+title Y1 Pos TDC vs X1 paddle
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y1")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y2")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y3")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y4")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y5")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y6")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y7")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y8")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y9")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y10")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y11")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y12")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y13")
+newpage 4 4
+title X2 Neg TDC vs Y1 paddle
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x1")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x2")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x3")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x4")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x5")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x6")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x7")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x8")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x9")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x10")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x11")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x12")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x13")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x14")
+newpage 4 4
+title X2 Pos TDC vs Y1 paddle
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x1")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x2")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x3")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x4")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x5")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x6")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x7")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x8")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x9")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x10")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x11")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x12")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x13")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x14")
+newpage 3 3
+title Y2 Neg TDC vs X2 paddle
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y7")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y8")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y9")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y10")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y11")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y12")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y13")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y14")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y15")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y16")
+newpage 3 3
+title Y2 Pos TDC vs X2 paddle
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y7")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y8")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y9")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y10")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y11")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y12")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y13")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y14")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y15")
+macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y16")
+
diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodo_2x.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodo_2x.cfg
new file mode 100644
index 00000000..8ef90da9
--- /dev/null
+++ b/onlineGUI/Config/SHMS/HODO/raw_phodo_2x.cfg
@@ -0,0 +1,291 @@
+protorootfile ../ROOTfiles/phodo_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 4 4
+title HMS X2+ Raw TDCs
+macro Macros/rawdraw_phodo.C("uhtdc2x1posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x2posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x3posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x4posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x5posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x6posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x7posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x8posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x9posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x10posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x11posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x12posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x13posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x14posTimeRaw")
+newpage 4 4
+title HMS X2- Raw TDCs
+macro Macros/rawdraw_phodo.C("uhtdc2x1negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x2negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x3negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x4negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x5negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x6negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x7negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x8negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x9negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x10negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x11negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x12negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x13negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2x14negTimeRaw")
+newpage 4 4
+title HMS X2+ TDCs
+macro Macros/rawdraw_phodo.C("uhtdc2x1posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x2posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x3posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x4posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x5posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x6posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x7posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x8posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x9posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x10posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x11posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x12posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x13posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x14posTime")
+newpage 4 4
+title HMS X2- TDCs
+macro Macros/rawdraw_phodo.C("uhtdc2x1negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x2negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x3negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x4negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x5negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x6negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x7negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x8negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x9negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x10negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x11negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x12negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x13negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2x14negTime")
+newpage 4 4
+title HMS X2+ FADC Raw Pedestals
+macro Macros/rawdraw_phodo.C("uhadc2x1posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x2posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x3posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x4posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x5posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x6posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x7posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x8posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x9posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x10posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x11posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x12posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x13posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x14posPedRaw")
+newpage 4 4
+title HMS X2- FADC Raw Pedestals
+macro Macros/rawdraw_phodo.C("uhadc2x1negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x2negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x3negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x4negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x5negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x6negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x7negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x8negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x9negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x10negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x11negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x12negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x13negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x14negPedRaw")
+newpage 4 4
+title HMS X2+ FADC Pedestals
+macro Macros/rawdraw_phodo.C("uhadc2x1posPed")
+macro Macros/rawdraw_phodo.C("uhadc2x2posPed")
+macro Macros/rawdraw_phodo.C("uhadc2x3posPed")
+macro Macros/rawdraw_phodo.C("uhadc2x4posPed")
+macro Macros/rawdraw_phodo.C("uhadc2x5posPed")
+macro Macros/rawdraw_phodo.C("uhadc2x6posPed")
+macro Macros/rawdraw_phodo.C("uhadc2x7posPed")
+macro Macros/rawdraw_phodo.C("uhadc2x8posPed")
+macro Macros/rawdraw_phodo.C("uhadc2x9posPed")
+macro Macros/rawdraw_phodo.C("uhadc2x10posPed")
+macro Macros/rawdraw_phodo.C("uhadc2x11posPed")
+macro Macros/rawdraw_phodo.C("uhadc2x12posPed")
+macro Macros/rawdraw_phodo.C("uhadc2x13posPed")
+macro Macros/rawdraw_phodo.C("uhadc2x14posPed")
+newpage 4 4
+title HMS X2- FADC Pedestals
+macro Macros/rawdraw_phodo.C("uhadc2x1negPed")
+macro Macros/rawdraw_phodo.C("uhadc2x2negPed")
+macro Macros/rawdraw_phodo.C("uhadc2x3negPed")
+macro Macros/rawdraw_phodo.C("uhadc2x4negPed")
+macro Macros/rawdraw_phodo.C("uhadc2x5negPed")
+macro Macros/rawdraw_phodo.C("uhadc2x6negPed")
+macro Macros/rawdraw_phodo.C("uhadc2x7negPed")
+macro Macros/rawdraw_phodo.C("uhadc2x8negPed")
+macro Macros/rawdraw_phodo.C("uhadc2x9negPed")
+macro Macros/rawdraw_phodo.C("uhadc2x10negPed")
+macro Macros/rawdraw_phodo.C("uhadc2x11negPed")
+macro Macros/rawdraw_phodo.C("uhadc2x12negPed")
+macro Macros/rawdraw_phodo.C("uhadc2x13negPed")
+macro Macros/rawdraw_phodo.C("uhadc2x14negPed")
+newpage 4 4
+title HMS X2+ FADC Raw Integrals
+macro Macros/rawdraw_phodo.C("uhadc2x1posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x2posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x3posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x4posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x5posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x6posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x7posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x8posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x9posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x10posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x11posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x12posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x13posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x14posPulseIntRaw")
+newpage 4 4
+title HMS X2- FADC Raw Integrals
+macro Macros/rawdraw_phodo.C("uhadc2x1negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x2negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x3negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x4negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x5negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x6negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x7negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x8negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x9negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x10negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x11negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x12negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x13negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x14negPulseIntRaw")
+newpage 4 4
+title HMS X2+ FADC Integrals
+macro Macros/rawdraw_phodo.C("uhadc2x1posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x2posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x3posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x4posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x5posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x6posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x7posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x8posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x9posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x10posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x11posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x12posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x13posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x14posPulseInt")
+newpage 4 4
+title HMS X2- FADC Integrals
+macro Macros/rawdraw_phodo.C("uhadc2x1negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x2negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x3negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x4negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x5negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x6negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x7negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x8negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x9negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x10negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x11negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x12negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x13negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2x14negPulseInt")
+newpage 4 4
+title HMS X2+ FADC Amplitudes Raw
+macro Macros/rawdraw_phodo.C("uhadc2x1posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x2posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x3posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x4posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x5posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x6posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x7posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x8posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x9posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x10posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x11posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x12posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x13posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x14posPulseAmpRaw")
+newpage 4 4
+title HMS X2- FADC Amplitudes Raw
+macro Macros/rawdraw_phodo.C("uhadc2x1negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x2negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x3negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x4negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x5negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x6negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x7negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x8negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x9negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x10negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x11negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x12negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x13negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x14negPulseAmpRaw")
+newpage 4 4
+title HMS X2+ FADC Amplitudes
+macro Macros/rawdraw_phodo.C("uhadc2x1posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x2posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x3posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x4posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x5posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x6posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x7posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x8posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x9posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x10posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x11posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x12posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x13posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x14posPulseAmp")
+newpage 4 4
+title HMS X2- FADC Amplitudes
+macro Macros/rawdraw_phodo.C("uhadc2x1negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x2negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x3negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x4negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x5negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x6negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x7negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x8negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x9negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x10negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x11negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x12negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x13negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2x14negPulseAmp")
+newpage 4 4
+title HMS X2+ FADC Times Raw
+macro Macros/rawdraw_phodo.C("uhadc2x1posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x2posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x3posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x4posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x5posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x6posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x7posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x8posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x9posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x10posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x11posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x12posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x13posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x14posPulseTimeRaw")
+newpage 4 4
+title HMS X2- FADC Times Raw
+macro Macros/rawdraw_phodo.C("uhadc2x1negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x2negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x3negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x4negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x5negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x6negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x7negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x8negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x9negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x10negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x11negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x12negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x13negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2x14negPulseTimeRaw")
diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodo_2y.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodo_2y.cfg
new file mode 100644
index 00000000..c14971fb
--- /dev/null
+++ b/onlineGUI/Config/SHMS/HODO/raw_phodo_2y.cfg
@@ -0,0 +1,417 @@
+protorootfile ../ROOTfiles/phodo_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 5 4
+title HMS Y2+ Raw TDCs
+macro Macros/rawdraw_phodo.C("uhtdc2y1posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y2posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y3posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y4posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y5posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y6posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y7posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y8posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y9posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y10posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y11posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y12posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y13posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y14posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y15posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y16posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y17posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y18posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y19posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y20posTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y21posTimeRaw")
+newpage 3 4
+title HMS Y2- Raw TDCs
+macro Macros/rawdraw_phodo.C("uhtdc2y1negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y2negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y3negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y4negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y5negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y6negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y7negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y8negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y9negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y10negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y11negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y12negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y13negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y14negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y15negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y16negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y17negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y18negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y19negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y20negTimeRaw")
+macro Macros/rawdraw_phodo.C("uhtdc2y21negTimeRaw")
+newpage 3 4
+title HMS Y2+ TDCs
+macro Macros/rawdraw_phodo.C("uhtdc2y1posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y2posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y3posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y4posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y5posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y6posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y7posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y8posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y9posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y10posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y11posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y12posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y13posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y14posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y15posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y16posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y17posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y18posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y19posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y20posTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y21posTime")
+newpage 3 4
+title HMS Y2- TDCs
+macro Macros/rawdraw_phodo.C("uhtdc2y1negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y2negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y3negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y4negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y5negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y6negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y7negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y8negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y9negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y10negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y11negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y12negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y13negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y14negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y15negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y16negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y17negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y18negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y19negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y20negTime")
+macro Macros/rawdraw_phodo.C("uhtdc2y21negTime")
+newpage 3 4
+title HMS Y2+ FADC Raw Pedestals
+macro Macros/rawdraw_phodo.C("uhadc2y1posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y2posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y3posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y4posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y5posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y6posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y7posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y8posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y9posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y10posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y11posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y12posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y13posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y14posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y15posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y16posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y17posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y18posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y19posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y20posPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y21posPedRaw")
+newpage 3 4
+title HMS Y2- FADC Raw Pedestals
+macro Macros/rawdraw_phodo.C("uhadc2y1negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y2negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y3negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y4negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y5negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y6negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y7negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y8negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y9negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y10negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y11negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y12negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y13negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y14negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y15negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y16negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y17negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y18negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y19negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y20negPedRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y21negPedRaw")
+newpage 3 4
+title HMS Y2+ FADC Pedestals
+macro Macros/rawdraw_phodo.C("uhadc2y1posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y2posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y3posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y4posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y5posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y6posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y7posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y8posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y9posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y10posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y11posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y12posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y13posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y14posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y15posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y16posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y17posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y18posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y19posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y20posPed")
+macro Macros/rawdraw_phodo.C("uhadc2y21posPed")
+newpage 3 4
+title HMS Y2- FADC Pedestals
+macro Macros/rawdraw_phodo.C("uhadc2y1negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y2negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y3negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y4negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y5negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y6negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y7negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y8negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y9negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y10negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y11negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y12negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y13negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y14negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y15negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y16negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y17negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y18negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y19negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y20negPed")
+macro Macros/rawdraw_phodo.C("uhadc2y21negPed")
+newpage 3 4
+title HMS Y2+ FADC Raw Integrals
+macro Macros/rawdraw_phodo.C("uhadc2y1posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y2posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y3posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y4posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y5posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y6posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y7posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y8posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y9posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y10posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y11posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y12posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y13posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y14posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y15posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y16posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y17posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y18posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y19posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y20posPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y21posPulseIntRaw")
+newpage 3 4
+title HMS Y2- FADC Raw Integrals
+macro Macros/rawdraw_phodo.C("uhadc2y1negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y2negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y3negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y4negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y5negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y6negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y7negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y8negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y9negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y10negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y11negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y12negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y13negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y14negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y15negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y16negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y17negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y18negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y19negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y20negPulseIntRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y21negPulseIntRaw")
+newpage 3 4
+title HMS Y2+ FADC Integrals
+macro Macros/rawdraw_phodo.C("uhadc2y1posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y2posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y3posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y4posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y5posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y6posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y7posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y8posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y9posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y10posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y11posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y12posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y13posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y14posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y15posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y16posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y17posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y18posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y19posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y20posPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y21posPulseInt")
+newpage 3 4
+title HMS Y2- FADC Integrals
+macro Macros/rawdraw_phodo.C("uhadc2y1negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y2negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y3negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y4negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y5negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y6negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y7negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y8negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y9negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y10negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y11negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y12negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y13negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y14negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y15negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y16negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y17negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y18negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y19negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y20negPulseInt")
+macro Macros/rawdraw_phodo.C("uhadc2y21negPulseInt")
+newpage 3 4
+title HMS Y2+ FADC Amplitudes Raw
+macro Macros/rawdraw_phodo.C("uhadc2y1posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y2posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y3posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y4posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y5posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y6posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y7posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y8posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y9posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y10posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y11posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y12posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y13posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y14posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y15posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y16posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y17posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y18posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y19posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y20posPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y20posPulseAmpRaw")
+newpage 3 4
+title HMS Y2- FADC Amplitudes Raw
+macro Macros/rawdraw_phodo.C("uhadc2y1negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y2negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y3negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y4negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y5negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y6negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y7negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y8negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y9negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y10negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y11negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y12negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y13negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y14negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y15negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y16negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y17negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y18negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y19negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y20negPulseAmpRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y21negPulseAmpRaw")
+newpage 3 4
+title HMS Y2+ FADC Amplitudes
+macro Macros/rawdraw_phodo.C("uhadc2y1posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y2posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y3posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y4posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y5posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y6posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y7posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y8posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y9posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y10posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y11posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y12posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y13posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y14posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y15posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y16posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y17posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y18posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y19posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y20posPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y21posPulseAmp")
+newpage 3 4
+title HMS Y2- FADC Amplitudes
+macro Macros/rawdraw_phodo.C("uhadc2y1negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y2negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y3negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y4negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y5negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y6negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y7negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y8negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y9negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y10negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y11negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y12negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y13negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y14negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y15negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y16negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y17negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y18negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y19negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y20negPulseAmp")
+macro Macros/rawdraw_phodo.C("uhadc2y21negPulseAmp")
+newpage 3 4
+title HMS Y2+ FADC Times Raw
+macro Macros/rawdraw_phodo.C("uhadc2y1posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y2posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y3posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y4posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y5posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y6posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y7posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y8posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y9posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y10posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y11posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y12posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y13posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y14posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y15posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y16posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y17posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y18posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y19posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y20posPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y21posPulseTimeRaw")
+newpage 3 4
+title HMS Y2- FADC Times Raw
+macro Macros/rawdraw_phodo.C("uhadc2y1negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y2negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y3negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y4negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y5negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y6negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y7negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y8negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y9negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y10negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y11negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y12negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y13negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y14negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y15negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y16negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y17negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y18negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y19negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y20negPulseTimeRaw")
+macro Macros/rawdraw_phodo.C("uhadc2y21negPulseTimeRaw")
diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodoana.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodoana.cfg
new file mode 100644
index 00000000..758bdd23
--- /dev/null
+++ b/onlineGUI/Config/SHMS/HODO/raw_phodoana.cfg
@@ -0,0 +1,130 @@
+#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+protorootfile ../ROOTfiles/phodo_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 2 2
+title SHMS Hodo Nhits
+phodo_1x_multi
+phodo_1y_multi
+phodo_2x_multi
+phodo_2y_multi
+newpage 2 2
+title SHMS Hodo Raw ADC Occupancy
+macro Macros/overlay.C("phodo_1x_pos_adc_occu","phodo_1x_neg_adc_occu")
+macro Macros/overlay.C("phodo_1y_pos_adc_occu","phodo_1y_neg_adc_occu")
+macro Macros/overlay.C("phodo_2x_pos_adc_occu","phodo_2x_neg_adc_occu")
+macro Macros/overlay.C("phodo_2y_pos_adc_occu","phodo_2y_neg_adc_occu")
+newpage 2 2
+title SHMS Hodo Raw TDC Occupancy
+macro Macros/overlay.C("phodo_1x_pos_tdc_occu","phodo_1x_neg_tdc_occu")
+macro Macros/overlay.C("phodo_1y_pos_tdc_occu","phodo_1y_neg_tdc_occu")
+macro Macros/overlay.C("phodo_2x_pos_tdc_occu","phodo_2x_neg_tdc_occu")
+macro Macros/overlay.C("phodo_2y_pos_tdc_occu","phodo_2y_neg_tdc_occu")
+newpage 2 2
+title SHMS Hodo Raw Ped PMT+
+phodo_1x_pos_rawped_vs_pad -type colz
+phodo_1y_pos_rawped_vs_pad -type colz
+phodo_2x_pos_rawped_vs_pad -type colz
+phodo_2y_pos_rawped_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo Raw Ped PMT-
+phodo_1x_neg_rawped_vs_pad -type colz
+phodo_1y_neg_rawped_vs_pad -type colz
+phodo_2x_neg_rawped_vs_pad -type colz
+phodo_2y_neg_rawped_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo Raw Int PMT+
+phodo_1x_pos_rawpi_vs_pad -type colz
+phodo_1y_pos_rawpi_vs_pad -type colz
+phodo_2x_pos_rawpi_vs_pad -type colz
+phodo_2y_pos_rawpi_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo Raw Int PMT-
+phodo_1x_neg_rawpi_vs_pad -type colz
+phodo_1y_neg_rawpi_vs_pad -type colz
+phodo_2x_neg_rawpi_vs_pad -type colz
+phodo_2y_neg_rawpi_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo Raw Peak PMT+
+phodo_1x_pos_rawpamp_vs_pad -type colz
+phodo_1y_pos_rawpamp_vs_pad -type colz
+phodo_2x_pos_rawpamp_vs_pad -type colz
+phodo_2y_pos_rawpamp_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo Raw Peak PMT-
+phodo_1x_neg_rawpamp_vs_pad -type colz
+phodo_1y_neg_rawpamp_vs_pad -type colz
+phodo_2x_neg_rawpamp_vs_pad -type colz
+phodo_2y_neg_rawpamp_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo Raw Adc Time PMT+
+phodo_1x_pos_rawptime_vs_pad -type colz
+phodo_1y_pos_rawptime_vs_pad -type colz
+phodo_2x_pos_rawptime_vs_pad -type colz
+phodo_2y_pos_rawptime_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo Raw ADc Time PMT-
+phodo_1x_neg_rawptime_vs_pad -type colz
+phodo_1y_neg_rawptime_vs_pad -type colz
+phodo_2x_neg_rawptime_vs_pad -type colz
+phodo_2y_neg_rawptime_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo Raw TDC time PMT+
+phodo_1x_pos_raw_tdc_time_vs_pad -type colz
+phodo_1y_pos_raw_tdc_time_vs_pad -type colz
+phodo_2x_pos_raw_tdc_time_vs_pad -type colz
+phodo_2y_pos_raw_tdc_time_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo Raw  TDC time PMT-
+phodo_1x_neg_raw_tdc_time_vs_pad -type colz
+phodo_1y_neg_raw_tdc_time_vs_pad -type colz
+phodo_2x_neg_raw_tdc_time_vs_pad -type colz
+phodo_2y_neg_raw_tdc_time_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo Ped PMT+
+phodo_1x_pos_ped_vs_pad -type colz
+phodo_1y_pos_ped_vs_pad -type colz
+phodo_2x_pos_ped_vs_pad -type colz
+phodo_2y_pos_ped_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo Ped PMT-
+phodo_1x_neg_ped_vs_pad -type colz
+phodo_1y_neg_ped_vs_pad -type colz
+phodo_2x_neg_ped_vs_pad -type colz
+phodo_2y_neg_ped_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo ADC Int PMT+
+phodo_1x_pos_pi_vs_pad -type colz
+phodo_1y_pos_pi_vs_pad -type colz
+phodo_2x_pos_pi_vs_pad -type colz
+phodo_2y_pos_pi_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo ADC Int PMT-
+phodo_1x_neg_pi_vs_pad -type colz
+phodo_1y_neg_pi_vs_pad -type colz
+phodo_2x_neg_pi_vs_pad -type colz
+phodo_2y_neg_pi_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo ADC Peak PMT+
+phodo_1x_pos_pamp_vs_pad -type colz
+phodo_1y_pos_pamp_vs_pad -type colz
+phodo_2x_pos_pamp_vs_pad -type colz
+phodo_2y_pos_pamp_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo ADc Peak PMT-
+phodo_1x_neg_pamp_vs_pad -type colz
+phodo_1y_neg_pamp_vs_pad -type colz
+phodo_2x_neg_pamp_vs_pad -type colz
+phodo_2y_neg_pamp_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo TDC time PMT+
+phodo_1x_pos_tdc_time_vs_pad -type colz
+phodo_1y_pos_tdc_time_vs_pad -type colz
+phodo_2x_pos_tdc_time_vs_pad -type colz
+phodo_2y_pos_tdc_time_vs_pad -type colz
+newpage 2 2
+title SHMS Hodo  TDC time PMT-
+phodo_1x_neg_tdc_time_vs_pad -type colz
+phodo_1y_neg_tdc_time_vs_pad -type colz
+phodo_2x_neg_tdc_time_vs_pad -type colz
+phodo_2y_neg_tdc_time_vs_pad -type colz
diff --git a/onlineGUI/Config/SHMS/RASTER/simple_raster.cfg b/onlineGUI/Config/SHMS/RASTER/simple_raster.cfg
new file mode 100644
index 00000000..670f32da
--- /dev/null
+++ b/onlineGUI/Config/SHMS/RASTER/simple_raster.cfg
@@ -0,0 +1,20 @@
+#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+protorootfile ../ROOTfiles/shms_raster_simple_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+newpage 2 2
+title HMS 1D Raster Raw ADC
+pFRXA
+pFRXB
+pFRYA
+pFRYB
+newpage 2 2
+title HMS 1D Raster (Volts)
+pFRXA_V
+pFRXB_V
+pFRYA_V
+pFRYB_V
+newpage 1 2
+title HMS Hodo Raw Ped PMT+
+pFRA_XvsY -type colz
+pFRB_XvsY -type colz
diff --git a/onlineGUI/Config/kpp.cfg b/onlineGUI/Config/kpp.cfg
new file mode 100755
index 00000000..3ba6650a
--- /dev/null
+++ b/onlineGUI/Config/kpp.cfg
@@ -0,0 +1,121 @@
+protorootfile ../ROOTfiles/shms_replay_XXXXX.root
+guicolor orange
+canvassize 1600 800
+#canvassize 800 800
+newpage 3 3
+title Trigger Times
+macro Macros/kpp_analysis.C("h_p1X_tdc")
+macro Macros/kpp_analysis.C("h_p1Y_tdc")
+macro Macros/kpp_analysis.C("h_p2X_tdc")
+macro Macros/kpp_analysis.C("h_p2Y_tdc")
+macro Macros/kpp_analysis.C("h_p1T_tdc")
+macro Macros/kpp_analysis.C("h_p2T_tdc")
+macro Macros/kpp_analysis.C("h_pT1_tdc")
+macro Macros/kpp_analysis.C("h_pT2_tdc")
+macro Macros/kpp_analysis.C("h_pT3_tdc")
+newpage 4 3
+title Hodoscope Plane Reference Times
+macro Macros/kpp_analysis.C("h_p1XmpT2_tdc")
+macro Macros/kpp_analysis.C("h_p1YmpT2_tdc")
+macro Macros/kpp_analysis.C("h_p2XmpT2_tdc")
+macro Macros/kpp_analysis.C("h_p2YmpT2_tdc")
+macro Macros/kpp_analysis.C("h_p1XmpT3_tdc")
+macro Macros/kpp_analysis.C("h_p1YmpT3_tdc")
+macro Macros/kpp_analysis.C("h_p2XmpT3_tdc")
+macro Macros/kpp_analysis.C("h_p2YmpT3_tdc")
+macro Macros/kpp_analysis.C("h_p1TmpT2_tdc")
+macro Macros/kpp_analysis.C("h_p1TmpT3_tdc")
+macro Macros/kpp_analysis.C("h_p2TmpT2_tdc")
+macro Macros/kpp_analysis.C("h_p2TmpT3_tdc")
+newpage 2 2 logz
+title Negative Hodoscope Corrected TDC Times
+macro Macros/kpp_analysis.C("h2_p1X_negTdcCorr")
+macro Macros/kpp_analysis.C("h2_p1Y_negTdcCorr")
+macro Macros/kpp_analysis.C("h2_p2X_negTdcCorr")
+macro Macros/kpp_analysis.C("h2_p2Y_negTdcCorr")
+newpage 2 2 logz
+title Positive Hodoscope Corrected TDC Times
+macro Macros/kpp_analysis.C("h2_p1X_posTdcCorr")
+macro Macros/kpp_analysis.C("h2_p1Y_posTdcCorr")
+macro Macros/kpp_analysis.C("h2_p2X_posTdcCorr")
+macro Macros/kpp_analysis.C("h2_p2Y_posTdcCorr")
+newpage 2 2 logz
+title Negative Hodoscope Pulse Time - TDC Time
+macro Macros/kpp_analysis.C("h2_p1Xneg_pt_tt_diff")
+macro Macros/kpp_analysis.C("h2_p1Yneg_pt_tt_diff")
+macro Macros/kpp_analysis.C("h2_p2Xneg_pt_tt_diff")
+macro Macros/kpp_analysis.C("h2_p2Yneg_pt_tt_diff")
+newpage 2 2 logz
+title Positive Hodoscope Pulse Time - TDC Time
+macro Macros/kpp_analysis.C("h2_p1Xpos_pt_tt_diff")
+macro Macros/kpp_analysis.C("h2_p1Ypos_pt_tt_diff")
+macro Macros/kpp_analysis.C("h2_p2Xpos_pt_tt_diff")
+macro Macros/kpp_analysis.C("h2_p2Ypos_pt_tt_diff")
+newpage 2 2 logz
+title Hodoscope Corrected TDC Time Differences
+macro Macros/kpp_analysis.C("h2_p1X_tdcCorrDiff")
+macro Macros/kpp_analysis.C("h2_p1Y_tdcCorrDiff")
+macro Macros/kpp_analysis.C("h2_p2X_tdcCorrDiff")
+macro Macros/kpp_analysis.C("h2_p2Y_tdcCorrDiff")
+newpage 2 2 
+title Plane Times
+macro Macros/kpp_analysis.C("h_p1X_plTime")
+macro Macros/kpp_analysis.C("h_p1Y_plTime")
+macro Macros/kpp_analysis.C("h_p2X_plTime")
+macro Macros/kpp_analysis.C("h_p2Y_plTime")
+newpage 2 2
+title Focal Plane Times
+macro Macros/kpp_analysis.C("h_p1X_fpTime")
+macro Macros/kpp_analysis.C("h_p1Y_fpTime")
+macro Macros/kpp_analysis.C("h_p2X_fpTime")
+macro Macros/kpp_analysis.C("h_p2Y_fpTime")
+newpage 2 3 logz
+title Aerogel ADC Pulse Times
+macro Macros/kpp_analysis.C("h2_paero_posPulseTime_pT1_diff")
+macro Macros/kpp_analysis.C("h2_paero_negPulseTime_pT1_diff")
+macro Macros/kpp_analysis.C("h2_paero_posPulseTime_pT2_diff")
+macro Macros/kpp_analysis.C("h2_paero_negPulseTime_pT2_diff")
+macro Macros/kpp_analysis.C("h2_paero_posPulseTime_pT3_diff")
+macro Macros/kpp_analysis.C("h2_paero_negPulseTime_pT3_diff")
+newpage 2 3 logz
+title Pre-Shower ADC Pulse Times
+macro Macros/kpp_analysis.C("h2_ppshwr_posPulseTime_pT1_diff")
+macro Macros/kpp_analysis.C("h2_ppshwr_negPulseTime_pT1_diff")
+macro Macros/kpp_analysis.C("h2_ppshwr_posPulseTime_pT2_diff")
+macro Macros/kpp_analysis.C("h2_ppshwr_negPulseTime_pT2_diff")
+macro Macros/kpp_analysis.C("h2_ppshwr_posPulseTime_pT3_diff")
+macro Macros/kpp_analysis.C("h2_ppshwr_negPulseTime_pT3_diff")
+newpage 3 1 logz
+title Shower ADC Pulse Times
+macro Macros/kpp_analysis.C("h2_pshwr_pulseTime_pT1_diff")
+macro Macros/kpp_analysis.C("h2_pshwr_pulseTime_pT2_diff")
+macro Macros/kpp_analysis.C("h2_pshwr_pulseTime_pT3_diff")
+newpage 3 1 logz
+title Heavy Gas ADC Pulse Times
+macro Macros/kpp_analysis.C("h2_phgc_pulseTime_pT1_diff")
+macro Macros/kpp_analysis.C("h2_phgc_pulseTime_pT2_diff")
+macro Macros/kpp_analysis.C("h2_phgc_pulseTime_pT3_diff")
+newpage 3 1 logz
+title Noble Gas ADC Pulse Times
+macro Macros/kpp_analysis.C("h2_pngc_pulseTime_pT1_diff")
+macro Macros/kpp_analysis.C("h2_pngc_pulseTime_pT2_diff")
+macro Macros/kpp_analysis.C("h2_pngc_pulseTime_pT3_diff")
+newpage 3 2
+title Detector ADC Sums
+macro Macros/kpp_analysis.C("h_paero_sum")
+macro Macros/kpp_analysis.C("h_phgc_sum")
+macro Macros/kpp_analysis.C("h_pngc_sum")
+macro Macros/kpp_analysis.C("h_ppshwr_sum")
+macro Macros/kpp_analysis.C("h_pshwr_sum")
+macro Macros/kpp_analysis.C("h_ptotshwr_sum")
+newpage 2 2 logz
+title SHMS Particle Identification
+macro Macros/kpp_analysis.C("h2_pshwr_vs_phgcer")
+macro Macros/kpp_analysis.C("h2_pshwr_vs_pngcer")
+macro Macros/kpp_analysis.C("h2_pshwr_vs_ppshwr")
+macro Macros/kpp_analysis.C("h2_EdivP_vs_P")
+
+
+
+
+
diff --git a/onlineGUI/Config/rawhmshodo.cfg b/onlineGUI/Config/rawhmshodo.cfg
new file mode 100755
index 00000000..21ec6189
--- /dev/null
+++ b/onlineGUI/Config/rawhmshodo.cfg
@@ -0,0 +1,243 @@
+protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+guicolor lightblue
+canvassize 1600 800
+newpage 4 4
+title HMS X1+ Raw TDCS
+macro Macros/rawdraw.C("uhtdc1x1posTime")
+macro Macros/rawdraw.C("uhtdc1x2posTime")
+macro Macros/rawdraw.C("uhtdc1x3posTime")
+macro Macros/rawdraw.C("uhtdc1x4posTime")
+macro Macros/rawdraw.C("uhtdc1x5posTime")
+macro Macros/rawdraw.C("uhtdc1x6posTime")
+macro Macros/rawdraw.C("uhtdc1x7posTime")
+macro Macros/rawdraw.C("uhtdc1x8posTime")
+macro Macros/rawdraw.C("uhtdc1x9posTime")
+macro Macros/rawdraw.C("uhtdc1x10posTime")
+macro Macros/rawdraw.C("uhtdc1x11posTime")
+macro Macros/rawdraw.C("uhtdc1x12posTime")
+macro Macros/rawdraw.C("uhtdc1x13posTime")
+macro Macros/rawdraw.C("uhtdc1x14posTime")
+macro Macros/rawdraw.C("uhtdc1x15posTime")
+macro Macros/rawdraw.C("uhtdc1x16posTime")
+newpage 4 4
+title HMS X1- Raw TDCS
+macro Macros/rawdraw.C("uhtdc1x1negTime")
+macro Macros/rawdraw.C("uhtdc1x2negTime")
+macro Macros/rawdraw.C("uhtdc1x3negTime")
+macro Macros/rawdraw.C("uhtdc1x4negTime")
+macro Macros/rawdraw.C("uhtdc1x5negTime")
+macro Macros/rawdraw.C("uhtdc1x6negTime")
+macro Macros/rawdraw.C("uhtdc1x7negTime")
+macro Macros/rawdraw.C("uhtdc1x8negTime")
+macro Macros/rawdraw.C("uhtdc1x9negTime")
+macro Macros/rawdraw.C("uhtdc1x10negTime")
+macro Macros/rawdraw.C("uhtdc1x11negTime")
+macro Macros/rawdraw.C("uhtdc1x12negTime")
+macro Macros/rawdraw.C("uhtdc1x13negTime")
+macro Macros/rawdraw.C("uhtdc1x14negTime")
+macro Macros/rawdraw.C("uhtdc1x15negTime")
+macro Macros/rawdraw.C("uhtdc1x16negTime")
+newpage 4 4
+title HMS X1+ Raw ADCS
+macro Macros/rawdraw.C("uhadc1x1posPed")
+macro Macros/rawdraw.C("uhadc1x2posPed")
+macro Macros/rawdraw.C("uhadc1x3posPed")
+macro Macros/rawdraw.C("uhadc1x4posPed")
+macro Macros/rawdraw.C("uhadc1x5posPed")
+macro Macros/rawdraw.C("uhadc1x6posPed")
+macro Macros/rawdraw.C("uhadc1x7posPed")
+macro Macros/rawdraw.C("uhadc1x8posPed")
+macro Macros/rawdraw.C("uhadc1x9posPed")
+macro Macros/rawdraw.C("uhadc1x10posPed")
+macro Macros/rawdraw.C("uhadc1x11posPed")
+macro Macros/rawdraw.C("uhadc1x12posPed")
+macro Macros/rawdraw.C("uhadc1x13posPed")
+macro Macros/rawdraw.C("uhadc1x14posPed")
+macro Macros/rawdraw.C("uhadc1x15posPed")
+macro Macros/rawdraw.C("uhadc1x16posPed")
+newpage 4 4
+title HMS X1- Raw ADCS
+macro Macros/rawdraw.C("uhadc1x1negPed")
+macro Macros/rawdraw.C("uhadc1x2negPed")
+macro Macros/rawdraw.C("uhadc1x3negPed")
+macro Macros/rawdraw.C("uhadc1x4negPed")
+macro Macros/rawdraw.C("uhadc1x5negPed")
+macro Macros/rawdraw.C("uhadc1x6negPed")
+macro Macros/rawdraw.C("uhadc1x7negPed")
+macro Macros/rawdraw.C("uhadc1x8negPed")
+macro Macros/rawdraw.C("uhadc1x9negPed")
+macro Macros/rawdraw.C("uhadc1x10negPed")
+macro Macros/rawdraw.C("uhadc1x11negPed")
+macro Macros/rawdraw.C("uhadc1x12negPed")
+macro Macros/rawdraw.C("uhadc1x13negPed")
+macro Macros/rawdraw.C("uhadc1x14negPed")
+macro Macros/rawdraw.C("uhadc1x15negPed")
+macro Macros/rawdraw.C("uhadc1x16negPed")
+newpage 4 4
+title HMS Y1+ Raw TDCS
+macro Macros/rawdraw.C("uhtdc1y1posTime")
+macro Macros/rawdraw.C("uhtdc1y2posTime")
+macro Macros/rawdraw.C("uhtdc1y3posTime")
+macro Macros/rawdraw.C("uhtdc1y4posTime")
+macro Macros/rawdraw.C("uhtdc1y5posTime")
+macro Macros/rawdraw.C("uhtdc1y6posTime")
+macro Macros/rawdraw.C("uhtdc1y7posTime")
+macro Macros/rawdraw.C("uhtdc1y8posTime")
+macro Macros/rawdraw.C("uhtdc1y9posTime")
+macro Macros/rawdraw.C("uhtdc1y10posTime")
+newpage 4 4
+title HMS Y1- Raw TDCS
+macro Macros/rawdraw.C("uhtdc1y1negTime")
+macro Macros/rawdraw.C("uhtdc1y2negTime")
+macro Macros/rawdraw.C("uhtdc1y3negTime")
+macro Macros/rawdraw.C("uhtdc1y4negTime")
+macro Macros/rawdraw.C("uhtdc1y5negTime")
+macro Macros/rawdraw.C("uhtdc1y6negTime")
+macro Macros/rawdraw.C("uhtdc1y7negTime")
+macro Macros/rawdraw.C("uhtdc1y8negTime")
+macro Macros/rawdraw.C("uhtdc1y9negTime")
+macro Macros/rawdraw.C("uhtdc1y10negTime")
+newpage 4 4
+title HMS Y1+ Raw ADCS
+macro Macros/rawdraw.C("uhadc1y1posPed")
+macro Macros/rawdraw.C("uhadc1y2posPed")
+macro Macros/rawdraw.C("uhadc1y3posPed")
+macro Macros/rawdraw.C("uhadc1y4posPed")
+macro Macros/rawdraw.C("uhadc1y5posPed")
+macro Macros/rawdraw.C("uhadc1y6posPed")
+macro Macros/rawdraw.C("uhadc1y7posPed")
+macro Macros/rawdraw.C("uhadc1y8posPed")
+macro Macros/rawdraw.C("uhadc1y9posPed")
+macro Macros/rawdraw.C("uhadc1y10posPed")
+newpage 4 4
+title HMS Y1- Raw ADCS
+macro Macros/rawdraw.C("uhadc1y1negPed")
+macro Macros/rawdraw.C("uhadc1y2negPed")
+macro Macros/rawdraw.C("uhadc1y3negPed")
+macro Macros/rawdraw.C("uhadc1y4negPed")
+macro Macros/rawdraw.C("uhadc1y5negPed")
+macro Macros/rawdraw.C("uhadc1y6negPed")
+macro Macros/rawdraw.C("uhadc1y7negPed")
+macro Macros/rawdraw.C("uhadc1y8negPed")
+macro Macros/rawdraw.C("uhadc1y9negPed")
+macro Macros/rawdraw.C("uhadc1y10negPed")
+newpage 4 4
+title HMS X2+ Raw TDCS
+macro Macros/rawdraw.C("uhtdc2x1posTime")
+macro Macros/rawdraw.C("uhtdc2x2posTime")
+macro Macros/rawdraw.C("uhtdc2x3posTime")
+macro Macros/rawdraw.C("uhtdc2x4posTime")
+macro Macros/rawdraw.C("uhtdc2x5posTime")
+macro Macros/rawdraw.C("uhtdc2x6posTime")
+macro Macros/rawdraw.C("uhtdc2x7posTime")
+macro Macros/rawdraw.C("uhtdc2x8posTime")
+macro Macros/rawdraw.C("uhtdc2x9posTime")
+macro Macros/rawdraw.C("uhtdc2x10posTime")
+macro Macros/rawdraw.C("uhtdc2x11posTime")
+macro Macros/rawdraw.C("uhtdc2x12posTime")
+macro Macros/rawdraw.C("uhtdc2x13posTime")
+macro Macros/rawdraw.C("uhtdc2x14posTime")
+macro Macros/rawdraw.C("uhtdc2x15posTime")
+macro Macros/rawdraw.C("uhtdc2x16posTime")
+newpage 4 4
+title HMS X2- Raw TDCS
+macro Macros/rawdraw.C("uhtdc2x1negTime")
+macro Macros/rawdraw.C("uhtdc2x2negTime")
+macro Macros/rawdraw.C("uhtdc2x3negTime")
+macro Macros/rawdraw.C("uhtdc2x4negTime")
+macro Macros/rawdraw.C("uhtdc2x5negTime")
+macro Macros/rawdraw.C("uhtdc2x6negTime")
+macro Macros/rawdraw.C("uhtdc2x7negTime")
+macro Macros/rawdraw.C("uhtdc2x8negTime")
+macro Macros/rawdraw.C("uhtdc2x9negTime")
+macro Macros/rawdraw.C("uhtdc2x10negTime")
+macro Macros/rawdraw.C("uhtdc2x11negTime")
+macro Macros/rawdraw.C("uhtdc2x12negTime")
+macro Macros/rawdraw.C("uhtdc2x13negTime")
+macro Macros/rawdraw.C("uhtdc2x14negTime")
+macro Macros/rawdraw.C("uhtdc2x15negTime")
+macro Macros/rawdraw.C("uhtdc2x16negTime")
+newpage 4 4
+title HMS X2+ Raw ADCS
+macro Macros/rawdraw.C("uhadc2x1posPed")
+macro Macros/rawdraw.C("uhadc2x2posPed")
+macro Macros/rawdraw.C("uhadc2x3posPed")
+macro Macros/rawdraw.C("uhadc2x4posPed")
+macro Macros/rawdraw.C("uhadc2x5posPed")
+macro Macros/rawdraw.C("uhadc2x6posPed")
+macro Macros/rawdraw.C("uhadc2x7posPed")
+macro Macros/rawdraw.C("uhadc2x8posPed")
+macro Macros/rawdraw.C("uhadc2x9posPed")
+macro Macros/rawdraw.C("uhadc2x10posPed")
+macro Macros/rawdraw.C("uhadc2x11posPed")
+macro Macros/rawdraw.C("uhadc2x12posPed")
+macro Macros/rawdraw.C("uhadc2x13posPed")
+macro Macros/rawdraw.C("uhadc2x14posPed")
+macro Macros/rawdraw.C("uhadc2x15posPed")
+macro Macros/rawdraw.C("uhadc2x16posPed")
+newpage 4 4
+title HMS X2- Raw ADCS
+macro Macros/rawdraw.C("uhadc2x1negPed")
+macro Macros/rawdraw.C("uhadc2x2negPed")
+macro Macros/rawdraw.C("uhadc2x3negPed")
+macro Macros/rawdraw.C("uhadc2x4negPed")
+macro Macros/rawdraw.C("uhadc2x5negPed")
+macro Macros/rawdraw.C("uhadc2x6negPed")
+macro Macros/rawdraw.C("uhadc2x7negPed")
+macro Macros/rawdraw.C("uhadc2x8negPed")
+macro Macros/rawdraw.C("uhadc2x9negPed")
+macro Macros/rawdraw.C("uhadc2x10negPed")
+macro Macros/rawdraw.C("uhadc2x11negPed")
+macro Macros/rawdraw.C("uhadc2x12negPed")
+macro Macros/rawdraw.C("uhadc2x13negPed")
+macro Macros/rawdraw.C("uhadc2x14negPed")
+macro Macros/rawdraw.C("uhadc2x15negPed")
+macro Macros/rawdraw.C("uhadc2x16negPed")
+newpage 4 4
+title HMS Y2+ Raw TDCS
+macro Macros/rawdraw.C("uhtdc2y1posTime")
+macro Macros/rawdraw.C("uhtdc2y2posTime")
+macro Macros/rawdraw.C("uhtdc2y3posTime")
+macro Macros/rawdraw.C("uhtdc2y4posTime")
+macro Macros/rawdraw.C("uhtdc2y5posTime")
+macro Macros/rawdraw.C("uhtdc2y6posTime")
+macro Macros/rawdraw.C("uhtdc2y7posTime")
+macro Macros/rawdraw.C("uhtdc2y8posTime")
+macro Macros/rawdraw.C("uhtdc2y9posTime")
+macro Macros/rawdraw.C("uhtdc2y10posTime")
+newpage 4 4
+title HMS Y2- Raw TDCS
+macro Macros/rawdraw.C("uhtdc2y1negTime")
+macro Macros/rawdraw.C("uhtdc2y2negTime")
+macro Macros/rawdraw.C("uhtdc2y3negTime")
+macro Macros/rawdraw.C("uhtdc2y4negTime")
+macro Macros/rawdraw.C("uhtdc2y5negTime")
+macro Macros/rawdraw.C("uhtdc2y6negTime")
+macro Macros/rawdraw.C("uhtdc2y7negTime")
+macro Macros/rawdraw.C("uhtdc2y8negTime")
+macro Macros/rawdraw.C("uhtdc2y9negTime")
+macro Macros/rawdraw.C("uhtdc2y10negTime")
+newpage 4 4
+title HMS Y2+ Raw ADCS
+macro Macros/rawdraw.C("uhadc2y1posPed")
+macro Macros/rawdraw.C("uhadc2y2posPed")
+macro Macros/rawdraw.C("uhadc2y3posPed")
+macro Macros/rawdraw.C("uhadc2y4posPed")
+macro Macros/rawdraw.C("uhadc2y5posPed")
+macro Macros/rawdraw.C("uhadc2y6posPed")
+macro Macros/rawdraw.C("uhadc2y7posPed")
+macro Macros/rawdraw.C("uhadc2y8posPed")
+macro Macros/rawdraw.C("uhadc2y9posPed")
+macro Macros/rawdraw.C("uhadc2y10posPed")
+newpage 4 4
+title HMS Y2- Raw ADCS
+macro Macros/rawdraw.C("uhadc2y1negPed")
+macro Macros/rawdraw.C("uhadc2y2negPed")
+macro Macros/rawdraw.C("uhadc2y3negPed")
+macro Macros/rawdraw.C("uhadc2y4negPed")
+macro Macros/rawdraw.C("uhadc2y5negPed")
+macro Macros/rawdraw.C("uhadc2y6negPed")
+macro Macros/rawdraw.C("uhadc2y7negPed")
+macro Macros/rawdraw.C("uhadc2y8negPed")
+macro Macros/rawdraw.C("uhadc2y9negPed")
+macro Macros/rawdraw.C("uhadc2y10negPed")
diff --git a/onlineGUI/Config/standard.cfg b/onlineGUI/Config/standard.cfg
new file mode 100755
index 00000000..5057a8d9
--- /dev/null
+++ b/onlineGUI/Config/standard.cfg
@@ -0,0 +1,57 @@
+protorootfile ../../engine_comparison/hcana_replay/Rootfiles/replay_baryon_XXXXX.root
+guicolor lightblue
+canvassize 500 800
+
+definecut thtarcut abs(H.tr.tg_th)<0.01
+definecut phtarcut abs(H.tr.tg_ph)<0.01
+definecut ytarcut abs(H.tr.tg_y)<4
+definecut tarcut phtarcut&&thtarcut
+
+newpage 2 2
+title HMS focal plane/target
+H.dc.x:H.dc.y -type scat
+H.tr.tg_y ytarcut -title "Target Position"
+RB.raster.frx:RB.raster.fry -type colz
+H.tr.tg_ph:H.tr.tg_th phtarcut&&thtarcut -type colz -title "Target Xp vs Yp"
+
+newpage 2 3
+title HMS DC Wire Maps (Red=DC2)
+macro    Macros/overlay.C("hdc1x1_wm","hdc2x1_wm")
+macro    Macros/overlay.C("hdc1y1_wm","hdc2y1_wm")
+macro    Macros/overlay.C("hdc1u1_wm","hdc2u1_wm")
+macro    Macros/overlay.C("hdc1v1_wm","hdc2v1_wm")
+macro    Macros/overlay.C("hdc1y2_wm","hdc2y2_wm")
+macro    Macros/overlay.C("hdc1x2_wm","hdc2x2_wm")
+
+newpage 2 3
+title HDC1&2 drift distance (Red=DC2)
+macro    Macros/overlay.C("hdc1x1_dd","hdc2x1_dd")
+macro    Macros/overlay.C("hdc1y1_dd","hdc2y1_dd")
+macro    Macros/overlay.C("hdc1u1_dd","hdc2u1_dd")
+macro    Macros/overlay.C("hdc1v1_dd","hdc2v1_dd")
+macro    Macros/overlay.C("hdc1y2_dd","hdc2y2_dd")
+macro    Macros/overlay.C("hdc1x2_dd","hdc2x2_dd")
+
+
+newpage 2 3
+title HDC1&2 drift time (Red=DC2)
+macro    Macros/overlay.C("hdc1x1_dt","hdc2x1_dt")
+macro    Macros/overlay.C("hdc1y1_dt","hdc2y1_dt")
+macro    Macros/overlay.C("hdc1u1_dt","hdc2u1_dt")
+macro    Macros/overlay.C("hdc1v1_dt","hdc2v1_dt")
+macro    Macros/overlay.C("hdc1y2_dt","hdc2y2_dt")
+macro    Macros/overlay.C("hdc1x2_dt","hdc2x2_dt")
+
+newpage 2 4
+title HMS Hodo Hits
+macro Macros/overlay.C("hpostdc1","hnegtdc1")
+macro Macros/overlay.C("hposadc1","hnegadc1")
+macro Macros/overlay.C("hpostdc2","hnegtdc2")
+macro Macros/overlay.C("hposadc2","hnegadc2")
+macro Macros/overlay.C("hpostdc3","hnegtdc3")
+macro Macros/overlay.C("hposadc3","hnegadc3")
+macro Macros/overlay.C("hpostdc4","hnegtdc4")
+macro Macros/overlay.C("hposadc4","hnegadc4")
+
+
+
diff --git a/onlineGUI/Macros/gooddraw_2d_hhodo.C b/onlineGUI/Macros/gooddraw_2d_hhodo.C
new file mode 100644
index 00000000..4c28b069
--- /dev/null
+++ b/onlineGUI/Macros/gooddraw_2d_hhodo.C
@@ -0,0 +1,286 @@
+// UserScript.C
+//
+// Helper macro to build additional histograms
+
+void UserScript()
+{
+
+  const UInt_t NPLANES  = 4;
+  const UInt_t NSIDES   = 2;
+  const UInt_t MAXBARS  = 16;  
+  const UInt_t MAXHITS  = 16*16;  
+  const UInt_t NSIGNALS = 2;
+  const UInt_t NADCSIGNALS = 1;
+  const UInt_t NTDCSIGNALS = 3;
+
+  const TString SPECTROMETER = "H";
+  const TString DETECTOR = "hod";
+
+  const TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"};
+  const TString plane_check_names[NPLANES] = {"1y", "1x", "2y", "2x"};
+  const UInt_t  nbars[NPLANES] = {16, 10, 16, 10};
+  const UInt_t  nbars_check[NPLANES] = {10, 16, 10, 16};
+  const TString sides[NSIDES] = {"GoodNeg", "GoodPos"};
+  const TString signals[NSIGNALS] = {"Adc", "Tdc"};
+  const TString adc_signals[NADCSIGNALS] = {"PulseInt"};
+  const Double_t adc_min[NADCSIGNALS] = {0};
+  const Double_t adc_max[NADCSIGNALS] = {5000};
+  const Int_t adc_nbins[NADCSIGNALS] = {500};
+  const TString tdc_signals[NTDCSIGNALS] = {"Chan", "TimeCorr", "TimeTOFCorr"};
+  const Double_t tdc_min[NTDCSIGNALS] = {0.,0.,0.};
+  const Double_t tdc_max[NTDCSIGNALS] = {4000.,50.,50.};
+  const Int_t tdc_nbins[NTDCSIGNALS] = {100,500,500};
+ 
+  Double_t adcbit_to_pC = 1.0/(50*4096)*4*1000. ;// 1V/(50 Ohms)/4096*4ns* = .020 pC
+  Double_t adcpeak_to_mV = 1.0/4096.*1000;// 1.0V per 4096 bits
+  Double_t fac_for_disc[4]= {2.0,2.,2.,2.};// Factor to have ADC at FADC match signal at discriminatir assuming split of 2/3 to 1/3( 2Y plane has linear FI/FO not a splitter)
+ 
+  Int_t nhits[NPLANES];
+  Double_t adc_tdc_ymin[4]={20.,20.,20.,20.};
+  Double_t adc_tdc_ymax[4]={45.,45.,45.,45.};
+  Int_t nhits_temp;
+  Double_t paddles[NPLANES][MAXHITS];
+
+
+  Double_t adc_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS];
+  Double_t tdc_values[NPLANES][NSIDES][NTDCSIGNALS][MAXHITS];
+
+
+  //
+  TH2F* htdc_tdc[NPLANES*MAXBARS];
+  TH2F* hadc_adc[NPLANES*MAXBARS];
+  TH2F* hadc_adc_good[NPLANES*MAXBARS];
+  TH2F* hadc_tdc[NPLANES*MAXBARS][2];
+  /*
+  make histogram of plane ADC versus position in perpendicalur plane
+   */
+  TH2F* hadc_dis[NPLANES*MAXBARS][2];
+  Int_t dis_bin[4]={10,16,10,16};
+  Double_t dis_min[4];
+  Double_t dis_max[4];
+  Double_t dis_center_pad1[4]={33.75,-56.25,33.75,-56.25};
+  Double_t dis_sign[4]={-1.,1.,-1.,1.};
+  Double_t dis_space=7.5;
+  //
+  TH2F*   hpadx;
+  TH2F*   hpadxy1;
+  TH2F*   hpady;
+  hpadx= new TH2F("hpadx",";paddle X1;paddle X2",16,1,17,16,1,17);
+  hpadxy1= new TH2F("hpadxy1",";paddle X1;paddle Y1",16,1,17,10,1,11);
+  hpady= new TH2F("hpady",";paddle Y1;paddle Y2",10,1,11,10,1,11);
+  //
+  /*
+Histograms for Neg and Pos PMT efficiencies as function of paddle in other perpendicular plane
+    Each X1 paddle efficiency as function of Y1 paddle.
+    Each Y1 paddle efficiency as function of X1 paddle.
+    Each X2 paddle efficiency as function of Y2 paddle.
+    Each Y2 paddle efficiency as function of X2 paddle.
+Tree has data in which at least one PMT had a good TDC time. 
+If the other PMT did not have a good time then its TDC =-999.
+For each event
+Set good_should=kTRUE if  nhits==1 all planes.
+Loop through all hits in each plane ip=0,3
+  If good_should=kTRUE and tdc_neg_val>0 good_neg[ip][bar]=kTRUE 
+  If good_should=kTRUE and tdc_pos_val>0 good_neg[ip][bar]=kTRUE 
+endloop
+Loop through all planes and all bars in that plane ib=0,nbars[ip]
+  if good_pos[ip][ib] then negative end should have had a hit
+         fill "should" neg PMT histogram with perpendicular paddle  
+  if good_pos[ip][ib] and good_neg[ip][ib] 
+         fill "did"  neg PMT  histogram with perpendicular paddle  
+  if good_neg[ip][ib] then positive end should have had a hit
+         fill "should" pos PMT histogram with perpendicular paddle  
+  if good_pos[ip][ib] and good_neg[ip][ib] 
+         fill "did"  pos PMT  histogram with perpendicular paddle 
+end event
+Efficiency is ratio of did/should which is calculated using hodo_efficiency.C   
+   */
+  TH1F* hgood_neg_should[4][16];
+  TH1F* hgood_pos_should[4][16];
+  TH1F* hgood_neg_did[4][16];
+  TH1F* hgood_pos_did[4][16];
+  //
+  Int_t adc_ihit, tdc_ihit;
+
+  TTree *T=(TTree*)gDirectory->Get("T");
+  //
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      TString i2dbarname = Form("%d",ibar+1);
+	      TString h2dttitle= "TDC 1ns/chan "+plane_names[ip]+i2dbarname+"; Neg ; Pos ";
+	      TString h2dtname="uh2dtdc"+plane_names[ip]+i2dbarname;
+              htdc_tdc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,200,25,75,200,25,75.);
+		TString h2dnegtitle= "Neg PMT Pad  "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles; Counts neg ";
+	        TString h2dnegname="uhdidneg"+plane_names[ip]+i2dbarname;
+                 hgood_neg_did[ip][ibar]= new TH1F(h2dnegname,h2dnegtitle,nbars_check[ip],1,nbars_check[ip]+1);
+		TString h2dnegtitle= "Neg PMT Pad  "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles; Counts neg ";
+	        TString h2dnegname="uhshouldneg"+plane_names[ip]+i2dbarname;
+                 hgood_neg_should[ip][ibar]= new TH1F(h2dnegname,h2dnegtitle,nbars_check[ip],1,nbars_check[ip]+1);
+		TString h2dpostitle= "Pos PMT Pad  "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles;Counts pos ";
+	        TString h2dposname="uhdidpos"+plane_names[ip]+i2dbarname;
+                 hgood_pos_did[ip][ibar]= new TH1F(h2dposname,h2dpostitle,nbars_check[ip],1,nbars_check[ip]+1);
+		TString h2dpostitle="Pos PMT Pad  "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles;Counts pos ";
+	        TString h2dposname="uhshouldpos"+plane_names[ip]+i2dbarname;
+                 hgood_pos_should[ip][ibar]= new TH1F(h2dposname,h2dpostitle,nbars_check[ip],1,nbars_check[ip]+1);
+ 	    }
+  }
+  //
+  //
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      TString i2dbarname = Form("%d",ibar+1);
+	      TString h2dttitle= "ADC Int Amp "+plane_names[ip]+i2dbarname+"; Neg (pC); Pos (pC)";
+	      TString h2dtname="uh2dadcint"+plane_names[ip]+i2dbarname;
+	      hadc_adc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,50,0,100,50,0,100.);
+	      TString h2dttitle= "Good TDC ADC Int Amp "+plane_names[ip]+i2dbarname+"; Neg (pC); Pos (pC)";
+	      TString h2dtname="uh2dadcintgtdc"+plane_names[ip]+i2dbarname;
+	      hadc_adc_good[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,50,0,100,50,0,100.);
+	      TString h2dttitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+"; Adc (pC);  Time (ns)";
+	      TString h2dtname="uh2dadcvtdcneg"+plane_names[ip]+i2dbarname;
+	      hadc_tdc[ip*MAXBARS+ibar][0]= new TH2F(h2dtname,h2dttitle,50,0,100,50,adc_tdc_ymin[ip],adc_tdc_ymax[ip]);
+	      TString h2dttitle= "Pos PMT Pad "+plane_names[ip]+i2dbarname+"; Adc (pC);  Time (ns)";
+	      TString h2dtname="uh2dadcvtdcpos"+plane_names[ip]+i2dbarname;
+	      hadc_tdc[ip*MAXBARS+ibar][1]= new TH2F(h2dtname,h2dttitle,50,0,100,50,adc_tdc_ymin[ip],adc_tdc_ymax[ip]);
+	      TString h2dttitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+"; Pos (cm); Adc (pC)";
+	      TString h2dtname="uh2dadcvdisneg"+plane_names[ip]+i2dbarname;
+	      hadc_dis[ip*MAXBARS+ibar][0]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],dis_sign[ip]*dis_center_pad1[ip]-dis_space/2.,-dis_sign[ip]*dis_center_pad1[ip]+dis_space/2.,50,0,100);
+	      TString h2dttitle= "Pos PMT Pad "+plane_names[ip]+i2dbarname+"; Pos (cm); Adc (pC)";
+	      TString h2dtname="uh2dadcvdispos"+plane_names[ip]+i2dbarname;
+	      hadc_dis[ip*MAXBARS+ibar][1]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],dis_sign[ip]*dis_center_pad1[ip]-dis_space/2.,-dis_sign[ip]*dis_center_pad1[ip]+dis_space/2.,50,0,100);
+	    }
+  }
+  // set up branches
+
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	  TString base2_name = SPECTROMETER+"."+DETECTOR+"."+plane_names[ip];
+	  TString ndata_name = "Ndata."+base2_name+".GoodPaddle";
+	  T->SetBranchAddress(ndata_name, &nhits[ip]);
+	  TString paddle_name = base2_name+".GoodPaddle";
+	  T->SetBranchAddress(paddle_name, &paddles[ip][0]);
+	  //s          cout << ip << " " << paddle_name << endl;
+    for(UInt_t iside = 0; iside < NSIDES; iside++) {
+      for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) {
+
+	if(signals[isignal] == "Adc") {  
+	  TString adc_base_name = SPECTROMETER+"."+DETECTOR+"."+
+	    plane_names[ip]+"."+sides[iside]+signals[isignal];
+	  for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) {
+	    TString adclist_name = adc_base_name+adc_signals[iadcsignal];
+	    T->SetBranchAddress(adclist_name, &adc_values[ip][iside][iadcsignal][0]);
+	  }
+	}
+	
+	if(signals[isignal] == "Tdc") {  
+	  TString tdc_base_name = SPECTROMETER+"."+DETECTOR+"."+
+	    plane_names[ip]+"."+sides[iside]+signals[isignal];
+	  for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) {
+	    TString tdclist_name = tdc_base_name+tdc_signals[itdcsignal];
+	      T->SetBranchAddress(tdclist_name, &tdc_values[ip][iside][itdcsignal][0]);
+	    }
+	}
+      } // isginal
+    } //iside
+  } // ip
+  // Loop over the events, filling the histograms
+  Bool_t good_should;
+  Double_t good_pad[4];
+  Double_t good_adc[4][2];
+  Int_t check_plane[4]={1,0,3,2};
+  Bool_t good_neg[4][16],good_pos[4][16];
+  for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) {
+    T->GetEntry(iev);
+    if (iev%10000==0) cout << " iev = " << iev << endl;
+     // get events with x paddle number equal and y paddle equal
+    //
+       good_should=kFALSE;
+      for(UInt_t ip = 0; ip < NPLANES; ip++){ 
+     for(UInt_t ib = 0; ib < nbars[ip]; ib++){ 
+       good_neg[ip][ib]=kFALSE;
+       good_pos[ip][ib]=kFALSE;
+     }
+     }
+    if (nhits[0]==1&&nhits[1]==1&&nhits[2]==1&&nhits[3]==1) good_should = kTRUE;
+      for(UInt_t ip = 0; ip < NPLANES; ip++){ 
+	//	 cout << iev << " " << ip << " " << nhits[ip]<< endl;
+		for(Int_t ihit = 0; ihit < nhits[ip]; ihit++)  {
+ 		UInt_t bar = TMath::Nint(paddles[ip][ihit]) - 1;
+		Double_t tdc_neg_val = tdc_values[ip][0][1][ihit];
+		Double_t tdc_pos_val =tdc_values[ip][1][1][ihit];
+		Double_t adc_neg_val = adc_values[ip][0][0][ihit]*adcbit_to_pC;
+		Double_t adc_pos_val = adc_values[ip][1][0][ihit]*adcbit_to_pC;
+		//		cout << " " << ihit << " " << bar << " "  << tdc_neg_val << endl;
+		htdc_tdc[ip*MAXBARS+bar]->Fill(tdc_neg_val,tdc_pos_val);
+		//		if (tdc_neg_val > 0 && tdc_pos_val >0) hadc_adc[ip*MAXBARS+bar]->Fill(adc_neg_val,adc_pos_val);
+		hadc_adc[ip*MAXBARS+bar]->Fill(adc_neg_val,adc_pos_val);
+		if (tdc_pos_val>0 && tdc_neg_val>0 ) {
+                  hadc_adc_good[ip*MAXBARS+bar]->Fill(adc_neg_val,adc_pos_val);
+		  hadc_tdc[ip*MAXBARS+bar][0]->Fill(adc_neg_val,tdc_neg_val);
+		  hadc_tdc[ip*MAXBARS+bar][1]->Fill(adc_pos_val,tdc_pos_val);
+		}
+		good_pad[ip]=bar+1;
+                good_adc[ip][0]=adc_neg_val;
+                good_adc[ip][1]=adc_pos_val;
+                if (good_should && tdc_neg_val>0 ) good_neg[ip][bar]=kTRUE;
+                if (good_should && tdc_pos_val>0 ) good_pos[ip][bar]=kTRUE;
+		}
+	}
+      //
+     if (good_should   ) {
+     for(UInt_t ip = 0; ip < NPLANES; ip++){ 
+       //       cout << " ip = " << ip << " " << good_should<< endl;
+	 //	 cout << " pad =  " << good_pad[check_plane[ip]] << " check_plane = " << check_plane[ip] << endl;
+          for(UInt_t ib = 0; ib < nbars[ip]; ib++){ 
+	    //	    cout << ib << " " << good_neg[ip][ib] << " " << good_pos[ip][ib] << endl;
+          if (good_pos[ip][ib]) hgood_neg_should[ip][ib]->Fill(good_pad[check_plane[ip]]);
+          if (good_neg[ip][ib]) hgood_pos_should[ip][ib]->Fill(good_pad[check_plane[ip]]);
+          if (good_neg[ip][ib] && good_pos[ip][ib]) {
+               hgood_neg_did[ip][ib]->Fill(good_pad[check_plane[ip]]);
+               hgood_pos_did[ip][ib]->Fill(good_pad[check_plane[ip]]);
+               hadc_dis[ip*MAXBARS+ib][0]->Fill(dis_center_pad1[ip]+dis_sign[ip]*dis_space*(good_pad[check_plane[ip]]-1),good_adc[ip][0]);
+               hadc_dis[ip*MAXBARS+ib][1]->Fill(dis_center_pad1[ip]+dis_sign[ip]*dis_space*(good_pad[check_plane[ip]]-1),good_adc[ip][1]);
+	  }
+ 	  }
+      }
+     }
+  } // loop over entries
+    //
+  return;
+}
+
+
+
+void gooddraw_2d_hhodo(TString histname) {
+
+  TH1F* h1d;
+  TH2F* h2d;
+
+  h1d = (TH1F*) gDirectory->Get(histname);
+  h2d = (TH2F*) gDirectory->Get(histname);
+  if(!h1d && !h2d) {
+    UserScript();
+    h1d = (TH1F*) gDirectory->Get(histname);
+    h2d = (TH2F*) gDirectory->Get(histname);
+    if(!h1d || !h2d) {
+      cout << "User histogram " << histname << " not found" << endl;
+      exit(1);
+    }
+  }
+  if (h2d) {
+  h2d->SetStats(0);
+  h2d->Draw("colz");
+    h2d->GetXaxis()->SetTitleOffset(.6);
+    h2d->GetXaxis()->SetTitleSize(0.08);
+    h2d->GetYaxis()->SetTitleOffset(.6);
+    h2d->GetYaxis()->SetTitleSize(0.08);
+      }
+  else {
+    cout << "1d  drawing   " << histname << endl;
+  h1d->SetStats(0);
+  h1d->Draw();
+    h1d->GetXaxis()->SetTitleOffset(.6);
+    h1d->GetXaxis()->SetTitleSize(0.08);
+    h1d->GetYaxis()->SetTitleOffset(.6);
+    h1d->GetYaxis()->SetTitleSize(0.08);
+  }
+}
+
diff --git a/onlineGUI/Macros/gooddraw_2d_phodo.C b/onlineGUI/Macros/gooddraw_2d_phodo.C
new file mode 100644
index 00000000..e4141adf
--- /dev/null
+++ b/onlineGUI/Macros/gooddraw_2d_phodo.C
@@ -0,0 +1,325 @@
+// UserScript.C
+//
+// Helper macro to build additional histograms
+
+void UserScript()
+{
+
+  const UInt_t NPLANES  = 4;
+  const UInt_t NSIDES   = 2;
+  const UInt_t MAXBARS  = 21;  
+  const UInt_t MAXHITS  = 16*16;  
+  const UInt_t NSIGNALS = 2;
+  const UInt_t NADCSIGNALS = 1;
+  const UInt_t NTDCSIGNALS = 3;
+
+  const TString SPECTROMETER = "P";
+  const TString DETECTOR = "hod";
+
+  const TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"};
+  const TString plane_check_names[NPLANES] = {"1y", "1x", "2y", "2x"};
+  const UInt_t  nbars[NPLANES] = {13, 13, 14, 21};
+  const UInt_t  nbars_check[NPLANES] = {13, 13, 21, 14};
+  const TString sides[NSIDES] = {"GoodNeg", "GoodPos"};
+  const TString signals[NSIGNALS] = {"Adc", "Tdc"};
+  const TString adc_signals[NADCSIGNALS] = {"PulseInt"};
+  const Double_t adc_min[NADCSIGNALS] = {0};
+  const Double_t adc_max[NADCSIGNALS] = {5000};
+  const Int_t adc_nbins[NADCSIGNALS] = {500};
+  const TString tdc_signals[NTDCSIGNALS] = {"Chan", "TimeCorr", "TimeTOFCorr"};
+  const Double_t tdc_min[NTDCSIGNALS] = {0.,0.,0.};
+  const Double_t tdc_max[NTDCSIGNALS] = {4000.,50.,50.};
+  const Int_t tdc_nbins[NTDCSIGNALS] = {100,500,500};
+ 
+  Double_t adcbit_to_pC = 1.0/(50*4096)*4*1000. ;// 1V/(50 Ohms)/4096*4ns* = .020 pC
+  Double_t adcpeak_to_mV = 1.0/4096.*1000;// 1.0V per 4096 bits
+  Double_t fac_for_disc[4]= {2.0,2.,2.,2.};// Factor to have ADC at FADC match signal at discriminatir assuming split of 2/3 to 1/3( 2Y plane has linear FI/FO not a splitter)
+ 
+  Int_t nhits[NPLANES];
+    Double_t adc_tdc_ymin[4]={-20.,-20.,-20.,-20.};
+    Double_t adc_tdc_ymax[4]={45.,45.,70.,70.};
+    Double_t adc_hmin[4]={0.,0.,0.,0.};
+    Double_t adc_hmax[4]={75.,75.,75.,200.};
+    Int_t nhits_temp;
+  Double_t paddles[NPLANES][MAXHITS];
+  const TString opp_plane[4] = {";Y1 plane paddle number; Adc (pC)",";X1 plane paddle number; Adc (pC)",";X1 plane paddle number; Adc (pC)",";X2 plane paddle number; Adc (pC)"};
+  const TString opp_planet[4] = {";Y1 plane paddle number; tdc (ns)",";X1 plane paddle number; tdc (ns)",";X1 plane paddle number; tdc (ns)",";X2 plane paddle number; tdc (ns)"};
+  const TString opp_planetdiff[4] = {";Y1 plane paddle number; tdc diff(ns)",";X1 plane paddle number; tdc diff (ns)",";X1 plane paddle number; tdc diff(ns)",";X2 plane paddle number; tdc diff (ns)"};
+
+
+  Double_t adc_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS];
+  Double_t tdc_values[NPLANES][NSIDES][NTDCSIGNALS][MAXHITS];
+
+
+  //
+  TH2F* htdc_tdc[NPLANES*MAXBARS];
+  TH2F* hadc_adc[NPLANES*MAXBARS];
+  TH2F* hadc_adc_good[NPLANES*MAXBARS];
+  TH2F* hadc_tdc[NPLANES*MAXBARS][2];
+  /*
+  make histogram of plane ADC versus position in perpendicalur plane
+   */
+  TH2F* hadc_dis[NPLANES*MAXBARS][2];
+  TH2F* htdc_dis[NPLANES*MAXBARS][2];
+  TH2F* htdcdiff_dis[NPLANES*MAXBARS];
+  Int_t dis_bin[4]={13,13,13,14};
+  Double_t dis_min[4];
+  Double_t dis_max[4];
+  Double_t dis_center_pad1[4]={-33.75,-56.25,-33.75,-56.25};
+  Double_t dis_sign[4]={1.,1.,1.,1.};
+  Double_t dis_space=7.5;
+   /*
+Histograms for Neg and Pos PMT efficiencies as function of paddle in other perpendicular plane
+    Each X1 paddle efficiency as function of Y1 paddle.
+    Each Y1 paddle efficiency as function of X1 paddle.
+    Each X2 paddle efficiency as function of Y2 paddle.
+    Each Y2 paddle efficiency as function of X2 paddle.
+Tree has data in which at least one PMT had a good TDC time. 
+If the other PMT did not have a good time then its TDC =-999.
+For each event
+Set good_should=kTRUE if  nhits==1 all planes.
+Loop through all hits in each plane ip=0,3
+  If good_should=kTRUE and tdc_neg_val>0 good_neg[ip][bar]=kTRUE 
+  If good_should=kTRUE and tdc_pos_val>0 good_neg[ip][bar]=kTRUE 
+endloop
+Loop through all planes and all bars in that plane ib=0,nbars[ip]
+  if good_pos[ip][ib] then negative end should have had a hit
+         fill "should" neg PMT histogram with perpendicular paddle  
+  if good_pos[ip][ib] and good_neg[ip][ib] 
+         fill "did"  neg PMT  histogram with perpendicular paddle  
+  if good_neg[ip][ib] then positive end should have had a hit
+         fill "should" pos PMT histogram with perpendicular paddle  
+  if good_pos[ip][ib] and good_neg[ip][ib] 
+         fill "did"  pos PMT  histogram with perpendicular paddle 
+end event
+Efficiency is ratio of did/should which is calculated using hodo_efficiency.C   
+   */
+  TH1F* hgood_neg_should[4][MAXBARS];
+  TH1F* hgood_pos_should[4][MAXBARS];
+  TH1F* hgood_neg_did[4][MAXBARS];
+  TH1F* hgood_pos_did[4][MAXBARS];
+  //
+  Int_t adc_ihit, tdc_ihit;
+
+  TTree *T=(TTree*)gDirectory->Get("T");
+  //
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      TString i2dbarname = Form("%d",ibar+1);
+	      TString h2dttitle= "TDC 1ns/chan "+plane_names[ip]+i2dbarname+"; Neg ; Pos ";
+	      TString h2dtname="uh2dtdc"+plane_names[ip]+i2dbarname;
+              htdc_tdc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,100,0,50,100,0,50.);
+		TString h2dnegtitle= "Neg PMT Pad  "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles; Counts neg ";
+	        TString h2dnegname="uhdidneg"+plane_names[ip]+i2dbarname;
+                 hgood_neg_did[ip][ibar]= new TH1F(h2dnegname,h2dnegtitle,nbars_check[ip],1,nbars_check[ip]+1);
+		TString h2dnegtitle= "Neg PMT Pad  "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles; Counts neg ";
+	        TString h2dnegname="uhshouldneg"+plane_names[ip]+i2dbarname;
+                 hgood_neg_should[ip][ibar]= new TH1F(h2dnegname,h2dnegtitle,nbars_check[ip],1,nbars_check[ip]+1);
+		TString h2dpostitle= "Pos PMT Pad  "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles;Counts pos ";
+	        TString h2dposname="uhdidpos"+plane_names[ip]+i2dbarname;
+                 hgood_pos_did[ip][ibar]= new TH1F(h2dposname,h2dpostitle,nbars_check[ip],1,nbars_check[ip]+1);
+		TString h2dpostitle="Pos PMT Pad  "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles;Counts pos ";
+	        TString h2dposname="uhshouldpos"+plane_names[ip]+i2dbarname;
+                 hgood_pos_should[ip][ibar]= new TH1F(h2dposname,h2dpostitle,nbars_check[ip],1,nbars_check[ip]+1);
+ 	    }
+  }
+  //
+  //
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      TString i2dbarname = Form("%d",ibar+1);
+	      TString h2dttitle= "ADC Int Amp "+plane_names[ip]+i2dbarname+"; Neg (pC); Pos (pC)";
+	      TString h2dtname="uh2dadcint"+plane_names[ip]+i2dbarname;
+	      hadc_adc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,50,adc_hmin[ip],adc_hmax[ip],50,adc_hmin[ip],adc_hmax[ip]);
+	      TString h2dttitle= "Good TDC ADC Int Amp "+plane_names[ip]+i2dbarname+"; Neg (pC); Pos (pC)";
+	      TString h2dtname="uh2dadcintgtdc"+plane_names[ip]+i2dbarname;
+	      hadc_adc_good[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,50,adc_hmin[ip],adc_hmax[ip],50,adc_hmin[ip],adc_hmax[ip]);
+	      TString h2dttitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+"; Adc (pC);  Time (ns)";
+	      TString h2dtname="uh2dadcvtdcneg"+plane_names[ip]+i2dbarname;
+	      hadc_tdc[ip*MAXBARS+ibar][0]= new TH2F(h2dtname,h2dttitle,50,adc_hmin[ip],adc_hmax[ip],50,adc_tdc_ymin[ip],adc_tdc_ymax[ip]);
+	      TString h2dttitle= "Pos PMT Pad "+plane_names[ip]+i2dbarname+"; Adc (pC);  Time (ns)";
+	      TString h2dtname="uh2dadcvtdcpos"+plane_names[ip]+i2dbarname;
+	      hadc_tdc[ip*MAXBARS+ibar][1]= new TH2F(h2dtname,h2dttitle,50,adc_hmin[ip],adc_hmax[ip],50,adc_tdc_ymin[ip],adc_tdc_ymax[ip]);
+	      TString h2dttitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+opp_plane[ip];
+	      TString h2dtname="uh2dadcvdisneg"+plane_names[ip]+i2dbarname;
+	      hadc_dis[ip*MAXBARS+ibar][0]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],1,dis_bin[ip]+1,50,0,adc_hmax[ip]);
+	      TString h2dttitle= "Pos PMT Pad "+plane_names[ip]+i2dbarname+opp_plane[ip];
+	      TString h2dtname="uh2dadcvdispos"+plane_names[ip]+i2dbarname;
+	      hadc_dis[ip*MAXBARS+ibar][1]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],1,dis_bin[ip]+1,50,0,adc_hmax[ip]);
+	      TString h2dttitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+opp_planet[ip];
+	      TString h2dtname="uh2dtdcvdisneg"+plane_names[ip]+i2dbarname;
+	      htdc_dis[ip*MAXBARS+ibar][0]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],1,dis_bin[ip]+1,40,-80,80);
+	      TString h2dttitle= "Pos PMT Pad "+plane_names[ip]+i2dbarname+opp_planet[ip];
+	      TString h2dtname="uh2dtdcvdispos"+plane_names[ip]+i2dbarname;
+	      htdc_dis[ip*MAXBARS+ibar][1]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],1,dis_bin[ip]+1,40,-80,80);
+	      TString h2dttitle= "PMT Pad "+plane_names[ip]+i2dbarname+opp_planetdiff[ip];
+	      TString h2dtname="uh2dtdcdiffvdis"+plane_names[ip]+i2dbarname;
+	      htdcdiff_dis[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],1,dis_bin[ip]+1,40,-20,20);
+	    }
+  }
+  // set up branches
+          Double_t betanotrack;
+	  TString beta_name = SPECTROMETER+"."+DETECTOR+".betanotrack";
+	  T->SetBranchAddress(beta_name, &betanotrack);
+          TH1F* hbeta= new TH1F("hbeta","; Beta ;COunts",150,-1.5,1.5);
+          Double_t fptime[4];
+	  TString fpname = SPECTROMETER+"."+DETECTOR+".1x.fptime";
+	  T->SetBranchAddress(fpname, &fptime[0]);
+	  TString fpname = SPECTROMETER+"."+DETECTOR+".1y.fptime";
+	  T->SetBranchAddress(fpname, &fptime[1]);
+	  TString fpname = SPECTROMETER+"."+DETECTOR+".2x.fptime";
+	  T->SetBranchAddress(fpname, &fptime[2]);
+	  TString fpname = SPECTROMETER+"."+DETECTOR+".2y.fptime";
+	  T->SetBranchAddress(fpname, &fptime[3]);
+          TH1F* hfptime[4];
+          hfptime[0]= new TH1F("fptime1x","; fptime 1x ;COunts",50,0,50);
+          hfptime[1]= new TH1F("fptime1y","; fptime 1y ;COunts",50,0,50);
+          hfptime[2]= new TH1F("fptime2x","; fptime 2x ;COunts",50,0,50);
+          hfptime[3]= new TH1F("fptime2y","; fptime 2y ;COunts",50,0,50);
+          TH2F* hfptime_pad[4];
+          hfptime_pad[0]= new TH2F("fptime1x_pad","; fptime 1x ;Paddle",50,0,50,14,0,14);
+          hfptime_pad[1]= new TH2F("fptime1y_pad","; fptime 1y ;Paddle",50,0,50,14,0,14);
+          hfptime_pad[2]= new TH2F("fptime2x_pad","; fptime 2x ;Paddle",50,0,50,15,0,15);
+          hfptime_pad[3]= new TH2F("fptime2y_pad","; fptime 2y ;Paddle",50,0,50,22,0,22);
+
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	  TString base2_name = SPECTROMETER+"."+DETECTOR+"."+plane_names[ip];
+	  TString ndata_name = "Ndata."+base2_name+".GoodPaddle";
+	  T->SetBranchAddress(ndata_name, &nhits[ip]);
+	  TString paddle_name = base2_name+".GoodPaddle";
+	  T->SetBranchAddress(paddle_name, &paddles[ip][0]);
+	  //s          cout << ip << " " << paddle_name << endl;
+    for(UInt_t iside = 0; iside < NSIDES; iside++) {
+      for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) {
+
+	if(signals[isignal] == "Adc") {  
+	  TString adc_base_name = SPECTROMETER+"."+DETECTOR+"."+
+	    plane_names[ip]+"."+sides[iside]+signals[isignal];
+	  for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) {
+	    TString adclist_name = adc_base_name+adc_signals[iadcsignal];
+	    T->SetBranchAddress(adclist_name, &adc_values[ip][iside][iadcsignal][0]);
+	  }
+	}
+	
+	if(signals[isignal] == "Tdc") {  
+	  TString tdc_base_name = SPECTROMETER+"."+DETECTOR+"."+
+	    plane_names[ip]+"."+sides[iside]+signals[isignal];
+	  for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) {
+	    TString tdclist_name = tdc_base_name+tdc_signals[itdcsignal];
+	      T->SetBranchAddress(tdclist_name, &tdc_values[ip][iside][itdcsignal][0]);
+	    }
+	}
+      } // isginal
+    } //iside
+  } // ip
+  // Loop over the events, filling the histograms
+  Bool_t good_should;
+  Double_t good_pad[4];
+  Double_t good_adc[4][2];
+  Double_t good_tdc[4][2];
+  Int_t check_plane[4]={1,0,0,2};
+  Bool_t good_neg[4][MAXBARS],good_pos[4][MAXBARS];
+  for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) {
+    T->GetEntry(iev);
+    if (iev%10000==0) cout << " iev = " << iev << endl;
+     // get events with x paddle number equal and y paddle equal
+    //
+       good_should=kFALSE;
+      for(UInt_t ip = 0; ip < NPLANES; ip++){ 
+     for(UInt_t ib = 0; ib < nbars[ip]; ib++){ 
+       good_neg[ip][ib]=kFALSE;
+       good_pos[ip][ib]=kFALSE;
+     }
+     }
+    if (nhits[0]==1&&nhits[1]==1&&nhits[2]==1&&nhits[3]<=1) good_should = kTRUE;
+    if ( good_should)  hbeta->Fill(betanotrack);
+      for(UInt_t ip = 0; ip < NPLANES; ip++){ 
+		  if ( good_should) hfptime[ip]->Fill(fptime[ip]);
+	//		 cout << iev << " plane = " << ip+1 << " nhits =  " << nhits[ip]<< endl;
+		for(Int_t ihit = 0; ihit < nhits[ip]; ihit++)  {
+ 		UInt_t bar = TMath::Nint(paddles[ip][ihit]) - 1;
+		Double_t tdc_neg_val = tdc_values[ip][0][1][ihit];
+		Double_t tdc_pos_val =tdc_values[ip][1][1][ihit];
+		Double_t adc_neg_val = adc_values[ip][0][0][ihit]*adcbit_to_pC;
+		Double_t adc_pos_val = adc_values[ip][1][0][ihit]*adcbit_to_pC;
+		//	cout << " " << ihit << " " << bar << " "  << tdc_neg_val << endl;
+		hadc_adc[ip*MAXBARS+bar]->Fill(adc_neg_val,adc_pos_val);
+		if (good_should && tdc_pos_val>0 && tdc_neg_val>0 && adc_neg_val > 5. &&  adc_pos_val > 5. ) {
+		  htdc_tdc[ip*MAXBARS+bar]->Fill(tdc_neg_val,tdc_pos_val);
+                  hadc_adc_good[ip*MAXBARS+bar]->Fill(adc_neg_val,adc_pos_val);
+		  hadc_tdc[ip*MAXBARS+bar][0]->Fill(adc_neg_val,tdc_neg_val);
+		  hadc_tdc[ip*MAXBARS+bar][1]->Fill(adc_pos_val,tdc_neg_val);
+                  hfptime_pad[ip]->Fill(fptime[ip],float(bar+1));
+		}
+		good_pad[ip]=bar+1;
+                good_adc[ip][0]=adc_neg_val;
+                good_adc[ip][1]=adc_pos_val;
+                good_tdc[ip][0]=tdc_neg_val;
+                good_tdc[ip][1]=tdc_pos_val;
+                if (good_should && tdc_pos_val>0 && tdc_neg_val>0&& adc_neg_val > 5. &&  adc_pos_val > 5.  ) good_neg[ip][bar]=kTRUE;
+                if (good_should && tdc_pos_val>0  && tdc_neg_val>0&& adc_neg_val > 5. &&  adc_pos_val > 5.  ) good_pos[ip][bar]=kTRUE;
+		}
+	}
+      //
+     if (good_should   ) {
+     for(UInt_t ip = 0; ip < NPLANES; ip++){ 
+       //       cout << " ip = " << ip << " " << good_should<< endl;
+	 //	 cout << " pad =  " << good_pad[check_plane[ip]] << " check_plane = " << check_plane[ip] << endl;
+          for(UInt_t ib = 0; ib < nbars[ip]; ib++){ 
+	    //	    cout << ib << " " << good_neg[ip][ib] << " " << good_pos[ip][ib] << endl;
+          if (good_pos[ip][ib]) hgood_neg_should[ip][ib]->Fill(good_pad[check_plane[ip]]);
+          if (good_neg[ip][ib]) hgood_pos_should[ip][ib]->Fill(good_pad[check_plane[ip]]);
+          if (good_neg[ip][ib] && good_pos[ip][ib]) {
+               hgood_neg_did[ip][ib]->Fill(good_pad[check_plane[ip]]);
+               hgood_pos_did[ip][ib]->Fill(good_pad[check_plane[ip]]);
+               hadc_dis[ip*MAXBARS+ib][0]->Fill(good_pad[check_plane[ip]],good_adc[ip][0]);
+               hadc_dis[ip*MAXBARS+ib][1]->Fill(good_pad[check_plane[ip]],good_adc[ip][1]);
+               htdc_dis[ip*MAXBARS+ib][0]->Fill(good_pad[check_plane[ip]],good_tdc[ip][0]);
+               htdc_dis[ip*MAXBARS+ib][1]->Fill(good_pad[check_plane[ip]],good_tdc[ip][1]);
+               htdcdiff_dis[ip*MAXBARS+ib]->Fill(good_pad[check_plane[ip]],good_tdc[ip][1]-good_tdc[ip][0]);
+	  }
+ 	  }
+      }
+     }
+  } // loop over entries
+    //
+  return;
+}
+
+
+
+void gooddraw_2d_phodo(TString histname) {
+
+  TH1F* h1d;
+  TH2F* h2d;
+
+  h1d = (TH1F*) gDirectory->Get(histname);
+  h2d = (TH2F*) gDirectory->Get(histname);
+  if(!h1d && !h2d) {
+    UserScript();
+    h1d = (TH1F*) gDirectory->Get(histname);
+    h2d = (TH2F*) gDirectory->Get(histname);
+    if(!h1d || !h2d) {
+      cout << "User histogram " << histname << " not found" << endl;
+      exit(1);
+    }
+  }
+  if (h2d) {
+  h2d->SetStats(0);
+  h2d->Draw("colz");
+    h2d->GetXaxis()->SetTitleOffset(.6);
+    h2d->GetXaxis()->SetTitleSize(0.08);
+    h2d->GetYaxis()->SetTitleOffset(.6);
+    h2d->GetYaxis()->SetTitleSize(0.08);
+      }
+  else {
+    cout << "1d  drawing   " << histname << endl;
+  h1d->SetStats(0);
+  h1d->Draw();
+    h1d->GetXaxis()->SetTitleOffset(.6);
+    h1d->GetXaxis()->SetTitleSize(0.08);
+    h1d->GetYaxis()->SetTitleOffset(.6);
+    h1d->GetYaxis()->SetTitleSize(0.08);
+  }
+}
+
diff --git a/onlineGUI/Macros/hodo_efficiency.C b/onlineGUI/Macros/hodo_efficiency.C
new file mode 100644
index 00000000..a8dd7cd0
--- /dev/null
+++ b/onlineGUI/Macros/hodo_efficiency.C
@@ -0,0 +1,24 @@
+void hodo_efficiency(TString hist1name, TString hist2name){
+  TH1F* H1;
+  TH1F* H2;
+  
+  H1 = (TH1F*) gDirectory->Get(hist1name);
+  H2 = (TH1F*) gDirectory->Get(hist2name);
+  if (H1 && H2) {
+    H1->Sumw2();
+    H2->Sumw2();
+    TH1F* Hratio=(TH1F*)H1->Clone();
+    Hratio->Divide(H1,H2,1,1,"B");
+    Hratio->SetStats(0);
+    Hratio->SetMinimum(0.95);
+    Hratio->SetMaximum(1.05);
+    Hratio->Draw("EP");
+    Hratio->GetXaxis()->SetTitleOffset(.6);
+    Hratio->GetXaxis()->SetTitleSize(0.08);
+    Hratio->GetYaxis()->SetTitleOffset(.6);
+    Hratio->GetYaxis()->SetTitleSize(0.08);
+  } else {
+    if (!H1) cout << " Histogram " << hist1name << " does not exist" << endl;
+    if (!H2) cout << " Histogram " << hist2name << " does not exist" << endl;
+  }
+}
diff --git a/onlineGUI/Macros/kpp_analysis.C b/onlineGUI/Macros/kpp_analysis.C
new file mode 100644
index 00000000..b4b866a2
--- /dev/null
+++ b/onlineGUI/Macros/kpp_analysis.C
@@ -0,0 +1,686 @@
+
+void UserScript() {
+
+  // Declare constants
+  static const Double_t clk2tdc     = 0.100;
+  static const Double_t clk2adc     = 0.0625;
+  static const UInt_t   ndcRefTimes = 10;
+
+  static const UInt_t nbars_1x = 13;
+  static const UInt_t nbars_1y = 13;
+  static const UInt_t nbars_2x = 14;
+  static const UInt_t nbars_2y = 21;
+
+  static const UInt_t nshwr_blks      = 224;
+  static const UInt_t npos_pshwr_blks = 14;
+  static const UInt_t nneg_pshwr_blks = 14;
+
+  static const UInt_t nhgc_pmts = 4;
+  static const UInt_t nngc_pmts = 4;
+
+  static const UInt_t npos_aero_pmts = 7;
+  static const UInt_t nneg_aero_pmts = 7;
+
+  static const UInt_t maxTdcHits = 128;
+  static const UInt_t maxAdcHits = 4;
+
+  static const Double_t pshwr_adc2GeV = 0.001;
+  static const Double_t shwr_adc2GeV  = 0.0005;
+
+  static const Double_t hgc_adc2npe = 1./205.;
+  static const Double_t ngc_adc2npe = 1./150.;
+
+  static const Double_t aero_adc2npe = 1./500.;
+
+  static const UInt_t maxNumTracks = 10;
+
+  // =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
+
+  // Declare variables
+  Double_t p1X_tdcTime, p1Y_tdcTime, p2X_tdcTime, p2Y_tdcTime;
+  Double_t p1T_tdcTime, p2T_tdcTime;
+  Double_t pT1_tdcTime, pT2_tdcTime, pT3_tdcTime;
+  Double_t pDCREF_tdcTime[ndcRefTimes];
+
+  // Hodoscope hits
+  Int_t    p1X_negAdcHits, p1Y_negAdcHits, p2X_negAdcHits, p2Y_negAdcHits;
+  Int_t    p1X_negTdcHits, p1Y_negTdcHits, p2X_negTdcHits, p2Y_negTdcHits;
+  Double_t p1X_negAdcPaddle[maxAdcHits*nbars_1x], p1Y_negAdcPaddle[maxAdcHits*nbars_1y];
+  Double_t p2X_negAdcPaddle[maxAdcHits*nbars_2x], p2Y_negAdcPaddle[maxAdcHits*nbars_2y];
+  Double_t p1X_negTdcPaddle[maxTdcHits*nbars_1x], p1Y_negTdcPaddle[maxTdcHits*nbars_1y];
+  Double_t p2X_negTdcPaddle[maxTdcHits*nbars_2x], p2Y_negTdcPaddle[maxTdcHits*nbars_2y];
+  Double_t p1X_negAdcPulseTime[maxAdcHits*nbars_1x], p1Y_negAdcPulseTime[maxAdcHits*nbars_1y];
+  Double_t p2X_negAdcPulseTime[maxAdcHits*nbars_2x], p2Y_negAdcPulseTime[maxAdcHits*nbars_2y];
+  Double_t p1X_negTdcTime[maxTdcHits*nbars_1x], p1Y_negTdcTime[maxTdcHits*nbars_1y];
+  Double_t p2X_negTdcTime[maxTdcHits*nbars_2x], p2Y_negTdcTime[maxTdcHits*nbars_2y];
+  Int_t    p1X_posAdcHits, p1Y_posAdcHits, p2X_posAdcHits, p2Y_posAdcHits;
+  Int_t    p1X_posTdcHits, p1Y_posTdcHits, p2X_posTdcHits, p2Y_posTdcHits;
+  Double_t p1X_posAdcPaddle[maxAdcHits*nbars_1x], p1Y_posAdcPaddle[maxAdcHits*nbars_1y];
+  Double_t p2X_posAdcPaddle[maxAdcHits*nbars_2x], p2Y_posAdcPaddle[maxAdcHits*nbars_2y];
+  Double_t p1X_posTdcPaddle[maxTdcHits*nbars_1x], p1Y_posTdcPaddle[maxTdcHits*nbars_1y];
+  Double_t p2X_posTdcPaddle[maxTdcHits*nbars_2x], p2Y_posTdcPaddle[maxTdcHits*nbars_2y];
+  Double_t p1X_posAdcPulseTime[maxAdcHits*nbars_1x], p1Y_posAdcPulseTime[maxAdcHits*nbars_1y];
+  Double_t p2X_posAdcPulseTime[maxAdcHits*nbars_2x], p2Y_posAdcPulseTime[maxAdcHits*nbars_2y];
+  Double_t p1X_posTdcTime[maxTdcHits*nbars_1x], p1Y_posTdcTime[maxTdcHits*nbars_1y];
+  Double_t p2X_posTdcTime[maxTdcHits*nbars_2x], p2Y_posTdcTime[maxTdcHits*nbars_2y];
+
+  // "Good" hodo hits
+  Int_t    p1X_nGoodHodoHits, p1Y_nGoodHodoHits, p2X_nGoodHodoHits, p2Y_nGoodHodoHits;
+  Double_t p1X_goodPaddle[maxAdcHits*nbars_1x], p1Y_goodPaddle[maxAdcHits*nbars_1y];
+  Double_t p2X_goodPaddle[maxAdcHits*nbars_2x], p2Y_goodPaddle[maxAdcHits*nbars_2y];
+  Double_t p1X_goodNegTdcTimeCorr[maxTdcHits*nbars_1x], p1Y_goodNegTdcTimeCorr[maxTdcHits*nbars_1y];
+  Double_t p2X_goodNegTdcTimeCorr[maxTdcHits*nbars_2x], p2Y_goodNegTdcTimeCorr[maxTdcHits*nbars_2y];
+  Double_t p1X_goodPosTdcTimeCorr[maxTdcHits*nbars_1x], p1Y_goodPosTdcTimeCorr[maxTdcHits*nbars_1y];
+  Double_t p2X_goodPosTdcTimeCorr[maxTdcHits*nbars_2x], p2Y_goodPosTdcTimeCorr[maxTdcHits*nbars_2y];
+
+  // Hodoscope focal plane times
+  Double_t p1X_fpTime, p1Y_fpTime, p2X_fpTime, p2Y_fpTime;
+  Double_t p1X_plTime, p1Y_plTime, p2X_plTime, p2Y_plTime;
+
+  // Aerogel ADC
+  Int_t paero_posHits, paero_negHits;
+  Double_t paero_posPmt[maxAdcHits*npos_aero_pmts], paero_negPmt[maxAdcHits*nneg_aero_pmts];
+  Double_t paero_posPulseTime[maxAdcHits*npos_aero_pmts], paero_negPulseTime[maxAdcHits*nneg_aero_pmts];
+  Double_t paero_posPulseInt[maxAdcHits*npos_aero_pmts], paero_negPulseInt[maxAdcHits*nneg_aero_pmts];
+
+  // Pre-Shower ADC
+  Int_t ppshwr_posHits, ppshwr_negHits;
+  Double_t ppshwr_posPmt[maxAdcHits*npos_pshwr_blks], ppshwr_negPmt[maxAdcHits*nneg_pshwr_blks];
+  Double_t ppshwr_posPulseTime[maxAdcHits*npos_pshwr_blks], ppshwr_negPulseTime[maxAdcHits*nneg_pshwr_blks];
+  Double_t ppshwr_posPulseInt[maxAdcHits*npos_pshwr_blks], ppshwr_negPulseInt[maxAdcHits*nneg_pshwr_blks];
+
+  // Shower ADC
+  Int_t pshwr_hits;
+  Double_t pshwr_pmt[maxAdcHits*nshwr_blks], pshwr_pulseTime[maxAdcHits*nshwr_blks];
+  Double_t pshwr_pulseInt[maxAdcHits*nshwr_blks];
+
+  // Heavy gas Cherenkov ADC
+  Int_t phgc_hits;
+  Double_t phgc_pmt[maxAdcHits*nhgc_pmts], phgc_pulseTime[maxAdcHits*nhgc_pmts];
+  Double_t phgc_pulseInt[maxAdcHits*nhgc_pmts];
+
+  // Noble gas Cherenkov ADC
+  Int_t pngc_hits;
+  Double_t pngc_pmt[maxAdcHits*nngc_pmts], pngc_pulseTime[maxAdcHits*nngc_pmts];
+  Double_t pngc_pulseInt[maxAdcHits*nngc_pmts];
+
+  // Tracking information
+  Int_t ntracks;
+  Double_t trk_pmag[maxNumTracks];
+
+  Long64_t nentries;
+
+  // =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
+
+  // Declare Histos
+  TH1F *h_p1X_tdc, *h_p1Y_tdc, *h_p2X_tdc, *h_p2Y_tdc;
+  TH1F *h_p1T_tdc, *h_p2T_tdc;
+  TH1F *h_pT1_tdc, *h_pT2_tdc, *h_pT3_tdc;
+  TH1F *h_p1XmpT2_tdc, *h_p1YmpT2_tdc, *h_p2XmpT2_tdc, *h_p2YmpT2_tdc;
+  TH1F *h_p1XmpT3_tdc, *h_p1YmpT3_tdc, *h_p2XmpT3_tdc, *h_p2YmpT3_tdc;
+  TH1F *h_p1TmpT2_tdc, *h_p2TmpT2_tdc, *h_p1TmpT3_tdc, *h_p2TmpT3_tdc;
+  TH1F *h_pDCREF_tdc[ndcRefTimes];
+
+  TH2F *h2_p1Xneg_pt_tt_diff, *h2_p1Yneg_pt_tt_diff, *h2_p2Xneg_pt_tt_diff, *h2_p2Yneg_pt_tt_diff;
+  TH2F *h2_p1Xpos_pt_tt_diff, *h2_p1Ypos_pt_tt_diff, *h2_p2Xpos_pt_tt_diff, *h2_p2Ypos_pt_tt_diff;
+
+  TH1F *h_p1X_fpTime, *h_p1Y_fpTime, *h_p2X_fpTime, *h_p2Y_fpTime;
+  TH1F *h_p1X_plTime, *h_p1Y_plTime, *h_p2X_plTime, *h_p2Y_plTime;
+
+  TH2F *h2_p1X_negTdcCorr, *h2_p1Y_negTdcCorr, *h2_p2X_negTdcCorr, *h2_p2Y_negTdcCorr;
+  TH2F *h2_p1X_posTdcCorr, *h2_p1Y_posTdcCorr, *h2_p2X_posTdcCorr, *h2_p2Y_posTdcCorr;
+  TH2F *h2_p1X_tdcCorrDiff, *h2_p1Y_tdcCorrDiff, *h2_p2X_tdcCorrDiff, *h2_p2Y_tdcCorrDiff;
+
+  TH2F *h2_paero_posPulseTime_pT1_diff, *h2_paero_negPulseTime_pT1_diff;
+  TH2F *h2_paero_posPulseTime_pT2_diff, *h2_paero_negPulseTime_pT2_diff;
+  TH2F *h2_paero_posPulseTime_pT3_diff, *h2_paero_negPulseTime_pT3_diff;
+
+  TH2F *h2_ppshwr_posPulseTime_pT1_diff, *h2_ppshwr_negPulseTime_pT1_diff;
+  TH2F *h2_ppshwr_posPulseTime_pT2_diff, *h2_ppshwr_negPulseTime_pT2_diff;
+  TH2F *h2_ppshwr_posPulseTime_pT3_diff, *h2_ppshwr_negPulseTime_pT3_diff;
+
+  TH2F *h2_pshwr_pulseTime_pT1_diff;
+  TH2F *h2_pshwr_pulseTime_pT2_diff;
+  TH2F *h2_pshwr_pulseTime_pT3_diff;
+
+  TH2F *h2_phgc_pulseTime_pT1_diff;
+  TH2F *h2_phgc_pulseTime_pT2_diff;
+  TH2F *h2_phgc_pulseTime_pT3_diff;
+
+  TH2F *h2_pngc_pulseTime_pT1_diff;
+  TH2F *h2_pngc_pulseTime_pT2_diff;
+  TH2F *h2_pngc_pulseTime_pT3_diff;
+
+  TH2F *h2_pshwr_vs_phgcer, *h2_pshwr_vs_pngcer, *h2_pshwr_vs_ppshwr;
+  TH1F *h_paero_sum, *h_ppshwr_sum, *h_pshwr_sum, *h_ptotshwr_sum, *h_phgc_sum, *h_pngc_sum;
+
+  TH2F *h2_EdivP_vs_P;
+
+  // =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
+
+  // Declare trees
+  TTree *T = (TTree*) gDirectory->Get("T");
+
+  // Acquire the number of entries
+  nentries = T->GetEntries();
+
+  // Acquire the branches
+  // Trigger time information
+  T->SetBranchAddress("T.shms.p1X_tdcTime", &p1X_tdcTime);
+  T->SetBranchAddress("T.shms.p1Y_tdcTime", &p1Y_tdcTime);
+  T->SetBranchAddress("T.shms.p2X_tdcTime", &p2X_tdcTime);
+  T->SetBranchAddress("T.shms.p2Y_tdcTime", &p2Y_tdcTime);
+  T->SetBranchAddress("T.shms.p1T_tdcTime", &p1T_tdcTime);
+  T->SetBranchAddress("T.shms.p2T_tdcTime", &p2T_tdcTime);
+  T->SetBranchAddress("T.shms.pT1_tdcTime", &pT1_tdcTime);
+  T->SetBranchAddress("T.shms.pT2_tdcTime", &pT2_tdcTime);
+  T->SetBranchAddress("T.shms.pT3_tdcTime", &pT3_tdcTime);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  // DC reference times
+  for (UInt_t iref = 0; iref < ndcRefTimes; iref++)
+    T->SetBranchAddress(Form("T.shms.pDCREF%d_tdcTime", iref+1), &pDCREF_tdcTime[iref]);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  // Hodoscope focal plane time calculation
+  T->SetBranchAddress("P.hod.1x.fptime", &p1X_fpTime);
+  T->SetBranchAddress("P.hod.1y.fptime", &p1Y_fpTime);
+  T->SetBranchAddress("P.hod.2x.fptime", &p2X_fpTime);
+  T->SetBranchAddress("P.hod.2y.fptime", &p2Y_fpTime);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  // Hodoscope ADC information
+  T->SetBranchAddress("Ndata.P.hod.1x.negAdcCounter", &p1X_negAdcHits);
+  T->SetBranchAddress("Ndata.P.hod.1y.negAdcCounter", &p1Y_negAdcHits);
+  T->SetBranchAddress("Ndata.P.hod.2x.negAdcCounter", &p2X_negAdcHits);
+  T->SetBranchAddress("Ndata.P.hod.2y.negAdcCounter", &p2Y_negAdcHits);
+  T->SetBranchAddress("P.hod.1x.negAdcCounter", p1X_negAdcPaddle);
+  T->SetBranchAddress("P.hod.1y.negAdcCounter", p1Y_negAdcPaddle);
+  T->SetBranchAddress("P.hod.2x.negAdcCounter", p2X_negAdcPaddle);
+  T->SetBranchAddress("P.hod.2y.negAdcCounter", p2Y_negAdcPaddle);
+  T->SetBranchAddress("P.hod.1x.negAdcPulseTimeRaw", p1X_negAdcPulseTime);
+  T->SetBranchAddress("P.hod.1y.negAdcPulseTimeRaw", p1Y_negAdcPulseTime);
+  T->SetBranchAddress("P.hod.2x.negAdcPulseTimeRaw", p2X_negAdcPulseTime);
+  T->SetBranchAddress("P.hod.2y.negAdcPulseTimeRaw", p2Y_negAdcPulseTime);
+  T->SetBranchAddress("Ndata.P.hod.1x.posAdcCounter", &p1X_posAdcHits);
+  T->SetBranchAddress("Ndata.P.hod.1y.posAdcCounter", &p1Y_posAdcHits);
+  T->SetBranchAddress("Ndata.P.hod.2x.posAdcCounter", &p2X_posAdcHits);
+  T->SetBranchAddress("Ndata.P.hod.2y.posAdcCounter", &p2Y_posAdcHits);
+  T->SetBranchAddress("P.hod.1x.posAdcCounter", p1X_posAdcPaddle);
+  T->SetBranchAddress("P.hod.1y.posAdcCounter", p1Y_posAdcPaddle);
+  T->SetBranchAddress("P.hod.2x.posAdcCounter", p2X_posAdcPaddle);
+  T->SetBranchAddress("P.hod.2y.posAdcCounter", p2Y_posAdcPaddle);
+  T->SetBranchAddress("P.hod.1x.posAdcPulseTimeRaw", p1X_posAdcPulseTime);
+  T->SetBranchAddress("P.hod.1y.posAdcPulseTimeRaw", p1Y_posAdcPulseTime);
+  T->SetBranchAddress("P.hod.2x.posAdcPulseTimeRaw", p2X_posAdcPulseTime);
+  T->SetBranchAddress("P.hod.2y.posAdcPulseTimeRaw", p2Y_posAdcPulseTime);
+  // Hodoscope TDC information
+  T->SetBranchAddress("Ndata.P.hod.1x.negTdcCounter", &p1X_negTdcHits);
+  T->SetBranchAddress("Ndata.P.hod.1y.negTdcCounter", &p1Y_negTdcHits);
+  T->SetBranchAddress("Ndata.P.hod.2x.negTdcCounter", &p2X_negTdcHits);
+  T->SetBranchAddress("Ndata.P.hod.2y.negTdcCounter", &p2Y_negTdcHits);
+  T->SetBranchAddress("P.hod.1x.negTdcCounter", p1X_negTdcPaddle);
+  T->SetBranchAddress("P.hod.1y.negTdcCounter", p1Y_negTdcPaddle);
+  T->SetBranchAddress("P.hod.2x.negTdcCounter", p2X_negTdcPaddle);
+  T->SetBranchAddress("P.hod.2y.negTdcCounter", p2Y_negTdcPaddle);
+  T->SetBranchAddress("P.hod.1x.negTdcTime", p1X_negTdcTime);
+  T->SetBranchAddress("P.hod.1y.negTdcTime", p1Y_negTdcTime);
+  T->SetBranchAddress("P.hod.2x.negTdcTime", p2X_negTdcTime);
+  T->SetBranchAddress("P.hod.2y.negTdcTime", p2Y_negTdcTime);
+  T->SetBranchAddress("Ndata.P.hod.1x.posTdcCounter", &p1X_posTdcHits);
+  T->SetBranchAddress("Ndata.P.hod.1y.posTdcCounter", &p1Y_posTdcHits);
+  T->SetBranchAddress("Ndata.P.hod.2x.posTdcCounter", &p2X_posTdcHits);
+  T->SetBranchAddress("Ndata.P.hod.2y.posTdcCounter", &p2Y_posTdcHits);
+  T->SetBranchAddress("P.hod.1x.posTdcCounter", p1X_posTdcPaddle);
+  T->SetBranchAddress("P.hod.1y.posTdcCounter", p1Y_posTdcPaddle);
+  T->SetBranchAddress("P.hod.2x.posTdcCounter", p2X_posTdcPaddle);
+  T->SetBranchAddress("P.hod.2y.posTdcCounter", p2Y_posTdcPaddle);
+  T->SetBranchAddress("P.hod.1x.posTdcTime", p1X_posTdcTime);
+  T->SetBranchAddress("P.hod.1y.posTdcTime", p1Y_posTdcTime);
+  T->SetBranchAddress("P.hod.2x.posTdcTime", p2X_posTdcTime);
+  T->SetBranchAddress("P.hod.2y.posTdcTime", p2Y_posTdcTime);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  // "Good" hodoscope hits
+  // Hodoscope corrected times (not corrected for TOF to focal plane)
+  T->SetBranchAddress("Ndata.P.hod.1x.GoodPaddle", &p1X_nGoodHodoHits);
+  T->SetBranchAddress("Ndata.P.hod.1y.GoodPaddle", &p1Y_nGoodHodoHits);
+  T->SetBranchAddress("Ndata.P.hod.2x.GoodPaddle", &p2X_nGoodHodoHits);
+  T->SetBranchAddress("Ndata.P.hod.2y.GoodPaddle", &p2Y_nGoodHodoHits);
+  T->SetBranchAddress("P.hod.1x.GoodPaddle", p1X_goodPaddle);
+  T->SetBranchAddress("P.hod.1y.GoodPaddle", p1Y_goodPaddle);
+  T->SetBranchAddress("P.hod.2x.GoodPaddle", p2X_goodPaddle);
+  T->SetBranchAddress("P.hod.2y.GoodPaddle", p2Y_goodPaddle);
+  T->SetBranchAddress("P.hod.1x.GoodNegTdcTimeCorr", p1X_goodNegTdcTimeCorr);
+  T->SetBranchAddress("P.hod.1y.GoodNegTdcTimeCorr", p1Y_goodNegTdcTimeCorr);
+  T->SetBranchAddress("P.hod.2x.GoodNegTdcTimeCorr", p2X_goodNegTdcTimeCorr);
+  T->SetBranchAddress("P.hod.2y.GoodNegTdcTimeCorr", p2Y_goodNegTdcTimeCorr);
+  T->SetBranchAddress("P.hod.1x.GoodPosTdcTimeCorr", p1X_goodPosTdcTimeCorr);
+  T->SetBranchAddress("P.hod.1y.GoodPosTdcTimeCorr", p1Y_goodPosTdcTimeCorr);
+  T->SetBranchAddress("P.hod.2x.GoodPosTdcTimeCorr", p2X_goodPosTdcTimeCorr);
+  T->SetBranchAddress("P.hod.2y.GoodPosTdcTimeCorr", p2Y_goodPosTdcTimeCorr);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  T->SetBranchAddress("Ndata.P.aero.negAdcCounter", &paero_negHits);
+  T->SetBranchAddress("Ndata.P.aero.posAdcCounter", &paero_posHits);
+  T->SetBranchAddress("P.aero.negAdcCounter", paero_negPmt);
+  T->SetBranchAddress("P.aero.posAdcCounter", paero_posPmt);
+  T->SetBranchAddress("P.aero.negAdcPulseTimeRaw", paero_negPulseTime);
+  T->SetBranchAddress("P.aero.posAdcPulseTimeRaw", paero_posPulseTime);
+  T->SetBranchAddress("P.aero.negAdcPulseInt", paero_negPulseInt);
+  T->SetBranchAddress("P.aero.posAdcPulseInt", paero_posPulseInt);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  T->SetBranchAddress("Ndata.P.cal.pr.negAdcCounter", &ppshwr_negHits);
+  T->SetBranchAddress("Ndata.P.cal.pr.posAdcCounter", &ppshwr_posHits);
+  T->SetBranchAddress("P.cal.pr.negAdcCounter", ppshwr_negPmt);
+  T->SetBranchAddress("P.cal.pr.posAdcCounter", ppshwr_posPmt);
+  T->SetBranchAddress("P.cal.pr.negAdcPulseTimeRaw", ppshwr_negPulseTime);
+  T->SetBranchAddress("P.cal.pr.posAdcPulseTimeRaw", ppshwr_posPulseTime);
+  T->SetBranchAddress("P.cal.pr.negAdcPulseInt", ppshwr_negPulseInt);
+  T->SetBranchAddress("P.cal.pr.posAdcPulseInt", ppshwr_posPulseInt);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  T->SetBranchAddress("Ndata.P.cal.fly.adcCounter", &pshwr_hits);
+  T->SetBranchAddress("P.cal.fly.adcCounter", pshwr_pmt);
+  T->SetBranchAddress("P.cal.fly.adcPulseTimeRaw", pshwr_pulseTime);
+  T->SetBranchAddress("P.cal.fly.adcPulseInt", pshwr_pulseInt);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  T->SetBranchAddress("Ndata.P.hgcer.adcCounter", &phgc_hits);
+  T->SetBranchAddress("P.hgcer.adcCounter", phgc_pmt);
+  T->SetBranchAddress("P.hgcer.adcPulseTimeRaw", phgc_pulseTime);
+  T->SetBranchAddress("P.hgcer.adcPulseInt", phgc_pulseInt);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  T->SetBranchAddress("Ndata.P.ngcer.adcCounter", &pngc_hits);
+  T->SetBranchAddress("P.ngcer.adcCounter", pngc_pmt);
+  T->SetBranchAddress("P.ngcer.adcPulseTimeRaw", pngc_pulseTime);
+  T->SetBranchAddress("P.ngcer.adcPulseInt", pngc_pulseInt);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  T->SetBranchAddress("Ndata.P.tr.p", &ntracks);
+  T->SetBranchAddress("P.tr.p", trk_pmag);
+
+  // =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
+
+  // Create histos
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  h_p1X_tdc = new TH1F("h_p1X_tdc", "S1X Coincidence Time; TDC Time (ns); Counts / 1 ns", 300, 0, 300);
+  h_p1Y_tdc = new TH1F("h_p1Y_tdc", "S1Y Coincidence Time; TDC Time (ns); Counts / 1 ns", 300, 0, 300);
+  h_p2X_tdc = new TH1F("h_p2X_tdc", "S2X Coincidence Time; TDC Time (ns); Counts / 1 ns", 300, 0, 300);
+  h_p2Y_tdc = new TH1F("h_p2Y_tdc", "S2Y Coincidence Time; TDC Time (ns); Counts / 1 ns", 300, 0, 300);
+  h_p1T_tdc = new TH1F("h_p1T_tdc", "S1X/S1Y Coincidence Time; TDC Time (ns); Counts / 1 ns", 300, 0, 300);
+  h_p2T_tdc = new TH1F("h_p2T_tdc", "S2X/S2Y Coincidence Time; TDC Time (ns); Counts / 1 ns", 300, 0, 300);
+  h_pT1_tdc = new TH1F("h_pT1_tdc", "Hodoscope Trigger (Slot 20 Channel 15); TDC Time (ns); Counts / 1 ns", 300, 0, 300);
+  h_pT2_tdc = new TH1F("h_pT2_tdc", "Hodoscope Trigger (Slot 19 Channel 31); TDC Time (ns); Counts / 1 ns", 300, 0, 300);
+  h_pT3_tdc = new TH1F("h_pT3_tdc", "Hodoscope Trigger (Slot 19 Channel 38); TDC Time (ns); Counts / 1 ns", 300, 0, 300);
+  for (UInt_t iref = 0; iref < ndcRefTimes; iref++)
+    h_pDCREF_tdc[iref] = new TH1F(Form("h_pDCREF%d_tdc", iref+1), Form("DC Reference Time %d; TDC Time (ns); Counts / 1 ns", iref+1), 200, 400, 600);
+  h_p1XmpT2_tdc = new TH1F("h_p1XmpT2_tdc", "Hodoscope Trigger (Slot 19 Channel 31) - S1X; TDC Time (ns); Counts / 1 ns", 150, 0, 150);
+  h_p1YmpT2_tdc = new TH1F("h_p1YmpT2_tdc", "Hodoscope Trigger (Slot 19 Channel 31) - S1Y; TDC Time (ns); Counts / 1 ns", 150, 0, 150);
+  h_p2XmpT2_tdc = new TH1F("h_p2XmpT2_tdc", "Hodoscope Trigger (Slot 19 Channel 31) - S2X; TDC Time (ns); Counts / 1 ns", 150, 0, 150);
+  h_p2YmpT2_tdc = new TH1F("h_p2YmpT2_tdc", "Hodoscope Trigger (Slot 19 Channel 31) - S2Y; TDC Time (ns); Counts / 1 ns", 150, 0, 150);
+  h_p1TmpT2_tdc = new TH1F("h_p1TmpT2_tdc", "Hodoscope Trigger (Slot 19 Channel 31) - S1; TDC Time (ns); Counts / 1 ns", 150, 0, 150);
+  h_p2TmpT2_tdc = new TH1F("h_p2TmpT2_tdc", "Hodoscope Trigger (Slot 19 Channel 31) - S2; TDC Time (ns); Counts / 1 ns", 150, 0, 150);
+  h_p1XmpT3_tdc = new TH1F("h_p1XmpT3_tdc", "Hodoscope Trigger (Slot 19 Channel 38) - S1X; TDC Time (ns); Counts / 1 ns", 150, 0, 150);
+  h_p1YmpT3_tdc = new TH1F("h_p1YmpT3_tdc", "Hodoscope Trigger (Slot 19 Channel 38) - S1Y; TDC Time (ns); Counts / 1 ns", 150, 0, 150);
+  h_p2XmpT3_tdc = new TH1F("h_p2XmpT3_tdc", "Hodoscope Trigger (Slot 19 Channel 38) - S2X; TDC Time (ns); Counts / 1 ns", 150, 0, 150);
+  h_p2YmpT3_tdc = new TH1F("h_p2YmpT3_tdc", "Hodoscope Trigger (Slot 19 Channel 38) - S2Y; TDC Time (ns); Counts / 1 ns", 150, 0, 150);
+  h_p1TmpT3_tdc = new TH1F("h_p1TmpT3_tdc", "Hodoscope Trigger (Slot 19 Channel 38) - S1; TDC Time (ns); Counts / 1 ns", 150, 0, 150);
+  h_p2TmpT3_tdc = new TH1F("h_p2TmpT3_tdc", "Hodoscope Trigger (Slot 19 Channel 38) - S2; TDC Time (ns); Counts / 1 ns", 150, 0, 150);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  h2_p1Xneg_pt_tt_diff = new TH2F("h2_p1Xneg_pt_tt_diff", "S1X- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_1x, 0.5, nbars_1x + 0.5, 300, 0, 300);
+  h2_p1Yneg_pt_tt_diff = new TH2F("h2_p1Yneg_pt_tt_diff", "S1Y- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_1y, 0.5, nbars_1y + 0.5, 300, 0, 300);
+  h2_p2Xneg_pt_tt_diff = new TH2F("h2_p2Xneg_pt_tt_diff", "S2X- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_2x, 0.5, nbars_2x + 0.5, 300, 0, 300);
+  h2_p2Yneg_pt_tt_diff = new TH2F("h2_p2Yneg_pt_tt_diff", "S2Y- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_2y, 0.5, nbars_2y + 0.5, 300, 0, 300);
+  h2_p1Xpos_pt_tt_diff = new TH2F("h2_p1Xpos_pt_tt_diff", "S1X- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_1x, 0.5, nbars_1x + 0.5, 300, 0, 300);
+  h2_p1Ypos_pt_tt_diff = new TH2F("h2_p1Ypos_pt_tt_diff", "S1Y- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_1y, 0.5, nbars_1y + 0.5, 300, 0, 300);
+  h2_p2Xpos_pt_tt_diff = new TH2F("h2_p2Xpos_pt_tt_diff", "S2X- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_2x, 0.5, nbars_2x + 0.5, 300, 0, 300);
+  h2_p2Ypos_pt_tt_diff = new TH2F("h2_p2Ypos_pt_tt_diff", "S2Y- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_2y, 0.5, nbars_2y + 0.5, 300, 0, 300);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  h_p1X_fpTime = new TH1F("h_p1X_fpTime", "S1X Focal Plane Time; TDC Time (ns); Counts / 1ns", 100, 0, 100);
+  h_p1Y_fpTime = new TH1F("h_p1Y_fpTime", "S1Y Focal Plane Time; TDC Time (ns); Counts / 1ns", 100, 0, 100);
+  h_p2X_fpTime = new TH1F("h_p2X_fpTime", "S2X Focal Plane Time; TDC Time (ns); Counts / 1ns", 100, 0, 100);
+  h_p2Y_fpTime = new TH1F("h_p2Y_fpTime", "S2Y Focal Plane Time; TDC Time (ns); Counts / 1ns", 100, 0, 100);
+
+  h_p1X_plTime = new TH1F("h_p1X_plTime", "S1X Plane Time; TDC Time (ns); Counts / 1ns", 120, -20, 100);
+  h_p1Y_plTime = new TH1F("h_p1Y_plTime", "S1Y Plane Time; TDC Time (ns); Counts / 1ns", 120, -20, 100);
+  h_p2X_plTime = new TH1F("h_p2X_plTime", "S2X Plane Time; TDC Time (ns); Counts / 1ns", 120, -20, 100);
+  h_p2Y_plTime = new TH1F("h_p2Y_plTime", "S2Y Plane Time; TDC Time (ns); Counts / 1ns", 120, -20, 100);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  h2_p1X_negTdcCorr = new TH2F("h2_p1X_negTdcCorr", "S1X- Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_1x, 0.5, nbars_1x + 0.5, 200, -100, 100);
+  h2_p1Y_negTdcCorr = new TH2F("h2_p1Y_negTdcCorr", "S1Y- Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_1y, 0.5, nbars_1y + 0.5, 200, -100, 100);
+  h2_p2X_negTdcCorr = new TH2F("h2_p2X_negTdcCorr", "S2X- Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_2x, 0.5, nbars_2x + 0.5, 200, -100, 100);
+  h2_p2Y_negTdcCorr = new TH2F("h2_p2Y_negTdcCorr", "S2Y- Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_2y, 0.5, nbars_2y + 0.5, 200, -100, 100);
+  h2_p1X_posTdcCorr = new TH2F("h2_p1X_posTdcCorr", "S1X+ Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_1x, 0.5, nbars_1x + 0.5, 200, -100, 100);
+  h2_p1Y_posTdcCorr = new TH2F("h2_p1Y_posTdcCorr", "S1Y+ Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_1y, 0.5, nbars_1y + 0.5, 200, -100, 100);
+  h2_p2X_posTdcCorr = new TH2F("h2_p2X_posTdcCorr", "S2X+ Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_2x, 0.5, nbars_2x + 0.5, 200, -100, 100);
+  h2_p2Y_posTdcCorr = new TH2F("h2_p2Y_posTdcCorr", "S2Y+ Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_2y, 0.5, nbars_2y + 0.5, 200, -100, 100);
+  h2_p1X_tdcCorrDiff = new TH2F("h2_p1X_tdcCorrDiff", "S1X-/S1X+ Corrected TDC Time Difference vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_1x, 0.5, nbars_1x + 0.5, 100, -50, 50);
+  h2_p1Y_tdcCorrDiff = new TH2F("h2_p1Y_tdcCorrDiff", "S1Y-/S1Y+ Corrected TDC Time Difference vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_1y, 0.5, nbars_1y + 0.5, 100, -50, 50);
+  h2_p2X_tdcCorrDiff = new TH2F("h2_p2X_tdcCorrDiff", "S2X-/S2X+ Corrected TDC Time Difference vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_2x, 0.5, nbars_2x + 0.5, 100, -50, 50);
+  h2_p2Y_tdcCorrDiff = new TH2F("h2_p2Y_tdcCorrDiff", "S2Y-/S2Y+ Corrected TDC Time Difference vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_2y, 0.5, nbars_2y + 0.5, 100, -50, 50);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  h2_paero_negPulseTime_pT1_diff = new TH2F("h2_paero_negPulseTime_pT1_diff", "SHMS Negative Aerogel ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", nneg_aero_pmts, 0.5, nneg_aero_pmts + 0.5, 300, -300, 0);
+  h2_paero_negPulseTime_pT2_diff = new TH2F("h2_paero_negPulseTime_pT2_diff", "SHMS Negative Aerogel ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", nneg_aero_pmts, 0.5, nneg_aero_pmts + 0.5, 300, -300, 0);
+  h2_paero_negPulseTime_pT3_diff = new TH2F("h2_paero_negPulseTime_pT3_diff", "SHMS Negative Aerogel ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", nneg_aero_pmts, 0.5, nneg_aero_pmts + 0.5, 300, -300, 0);
+  h2_paero_posPulseTime_pT1_diff = new TH2F("h2_paero_posPulseTime_pT1_diff", "SHMS Positive Aerogel ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", npos_aero_pmts, 0.5, npos_aero_pmts + 0.5, 300, -300, 0);
+  h2_paero_posPulseTime_pT2_diff = new TH2F("h2_paero_posPulseTime_pT2_diff", "SHMS Positive Aerogel ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", npos_aero_pmts, 0.5, npos_aero_pmts + 0.5, 300, -300, 0);
+  h2_paero_posPulseTime_pT3_diff = new TH2F("h2_paero_posPulseTime_pT3_diff", "SHMS Positive Aerogel ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", npos_aero_pmts, 0.5, npos_aero_pmts + 0.5, 300, -300, 0);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  h2_ppshwr_negPulseTime_pT1_diff = new TH2F("h2_ppshwr_negPulseTime_pT1_diff", "SHMS Negative Pre Shower ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", nneg_pshwr_blks, 0.5, nneg_pshwr_blks + 0.5, 300, -300, 0);
+  h2_ppshwr_negPulseTime_pT2_diff = new TH2F("h2_ppshwr_negPulseTime_pT2_diff", "SHMS Negative Pre Shower ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", nneg_pshwr_blks, 0.5, nneg_pshwr_blks + 0.5, 300, -300, 0);
+  h2_ppshwr_negPulseTime_pT3_diff = new TH2F("h2_ppshwr_negPulseTime_pT3_diff", "SHMS Negative Pre Shower ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", nneg_pshwr_blks, 0.5, nneg_pshwr_blks + 0.5, 300, -300, 0);
+  h2_ppshwr_posPulseTime_pT1_diff = new TH2F("h2_ppshwr_posPulseTime_pT1_diff", "SHMS Positive Pre Shower ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", npos_pshwr_blks, 0.5, npos_pshwr_blks + 0.5, 300, -300, 0);
+  h2_ppshwr_posPulseTime_pT2_diff = new TH2F("h2_ppshwr_posPulseTime_pT2_diff", "SHMS Positive Pre Shower ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", npos_pshwr_blks, 0.5, npos_pshwr_blks + 0.5, 300, -300, 0);
+  h2_ppshwr_posPulseTime_pT3_diff = new TH2F("h2_ppshwr_posPulseTime_pT3_diff", "SHMS Positive Pre Shower ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", npos_pshwr_blks, 0.5, npos_pshwr_blks + 0.5, 300, -300, 0);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  h2_pshwr_pulseTime_pT1_diff = new TH2F("h2_pshwr_pulseTime_pT1_diff", "SHMS Shower ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", nshwr_blks, 0.5, nshwr_blks + 0.5, 300, -300, 0);
+  h2_pshwr_pulseTime_pT2_diff = new TH2F("h2_pshwr_pulseTime_pT2_diff", "SHMS Shower ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", nshwr_blks, 0.5, nshwr_blks + 0.5, 300, -300, 0);
+  h2_pshwr_pulseTime_pT3_diff = new TH2F("h2_pshwr_pulseTime_pT3_diff", "SHMS Shower ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", nshwr_blks, 0.5, nshwr_blks + 0.5, 300, -300, 0);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  h2_phgc_pulseTime_pT1_diff = new TH2F("h2_phgc_pulseTime_pT1_diff", "SHMS Heavy Gas Cherenkov ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", nhgc_pmts, 0.5, nhgc_pmts + 0.5, 300, -300, 0);
+  h2_phgc_pulseTime_pT2_diff = new TH2F("h2_phgc_pulseTime_pT2_diff", "SHMS Heavy Gas Cherenkov ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", nhgc_pmts, 0.5, nhgc_pmts + 0.5, 300, -300, 0);
+  h2_phgc_pulseTime_pT3_diff = new TH2F("h2_phgc_pulseTime_pT3_diff", "SHMS Heavy Gas Cherenkov ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", nhgc_pmts, 0.5, nhgc_pmts + 0.5, 300, -300, 0);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  h2_pngc_pulseTime_pT1_diff = new TH2F("h2_pngc_pulseTime_pT1_diff", "SHMS Noble Gas Cherenkov ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", nngc_pmts, 0.5, nngc_pmts + 0.5, 300, -300, 0);
+  h2_pngc_pulseTime_pT2_diff = new TH2F("h2_pngc_pulseTime_pT2_diff", "SHMS Noble Gas Cherenkov ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", nngc_pmts, 0.5, nngc_pmts + 0.5, 300, -300, 0);
+  h2_pngc_pulseTime_pT3_diff = new TH2F("h2_pngc_pulseTime_pT3_diff", "SHMS Noble Gas Cherenkov ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", nngc_pmts, 0.5, nngc_pmts + 0.5, 300, -300, 0);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  h2_pshwr_vs_phgcer = new TH2F ("h2_pshwr_vs_phgcer", "SHMS Shower vs. Heavy Gas Cherenkov; Number of HGC Photoelectrons / 1 Photoelectron; Shower Energy / 1 MeV", 500, 0, 500, 4000, 0, 4);
+  h2_pshwr_vs_pngcer = new TH2F ("h2_pshwr_vs_pngcer", "SHMS Shower vs. Noble Gas Cherenkov; Number of NGC Photoelectrons / 1 Photoelectron; Shower Energy / 1 MeV", 500, 0, 500, 4000, 0, 4);
+  h2_pshwr_vs_ppshwr = new TH2F ("h2_pshwr_vs_ppshwr", "SHMS Shower vs. Pre-Shower; Pre-Shower Energy / 1 MeV; Shower Energy / 1 MeV", 4000, 0, 4, 4000, 0, 4);
+  h_paero_sum = new TH1F ("h_paero_sum", "SHMS Number of Aerogrel Photoelectrons; Number of Aerogel Photoelectrons; Counts / 1 Photoelectron", 500, 0, 500);
+  h_ppshwr_sum = new TH1F ("h_ppshwr_sum", "SHMS Pre-Shower Energy; Pre-Shower Energy; Counts / 10 MeV", 4000, 0, 4);
+  h_pshwr_sum = new TH1F ("h_pshwr_sum", "SHMS Shower Energy; Shower Energy; Counts / 10 MeV", 4000, 0, 4);
+  h_ptotshwr_sum = new TH1F ("h_ptotshwr_sum", "SHMS Total Shower Energy; Total Shower Energy; Counts / 10 MeV", 1200, 0, 12);
+  h_phgc_sum = new TH1F ("h_phgc_sum", "SHMS Number of HGC Photoelectrons; Number of HGC Photoelectrons; Counts / 1 Photoelectron", 500, 0, 500);
+  h_pngc_sum = new TH1F ("h_pngc_sum", "SHMS Number of NGC Photoelectrons; Number of NGC Photoelectrons; Counts / 1 Photoelectron", 500, 0, 500);
+
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  h2_EdivP_vs_P = new TH2F ("h2_EdivP_vs_P", "SHMS E/p vs. p; p (geV); E/p", 600, 0, 6, 100, 0, 1);
+
+  // =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
+
+  // Loop of entries in tree
+  for(UInt_t ievent = 0; ievent < nentries; ievent++) {
+
+    T->GetEntry(ievent);
+
+    // cout << "========================" << endl;
+    // cout << "Event Number = " << ievent << endl;
+    // cout << "========================" << endl;
+
+    // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
+
+    // Fill "good" hit histos
+    for (UInt_t igoodhit = 0; igoodhit < p1X_nGoodHodoHits; igoodhit++) {
+      h2_p1X_negTdcCorr->Fill(p1X_goodPaddle[igoodhit], p1X_goodNegTdcTimeCorr[igoodhit]);
+      h2_p1X_posTdcCorr->Fill(p1X_goodPaddle[igoodhit], p1X_goodPosTdcTimeCorr[igoodhit]);
+      h2_p1X_tdcCorrDiff->Fill(p1X_goodPaddle[igoodhit], p1X_goodPosTdcTimeCorr[igoodhit] - p1X_goodNegTdcTimeCorr[igoodhit]);
+      if (TMath::Abs(p1X_goodPosTdcTimeCorr[igoodhit] - p1X_goodNegTdcTimeCorr[igoodhit]) > 0.1) continue;
+      h_p1X_plTime->Fill(p1X_goodPosTdcTimeCorr[igoodhit]);
+    }
+    for (UInt_t igoodhit = 0; igoodhit < p1Y_nGoodHodoHits; igoodhit++) {
+      h2_p1Y_negTdcCorr->Fill(p1Y_goodPaddle[igoodhit], p1Y_goodNegTdcTimeCorr[igoodhit]);
+      h2_p1Y_posTdcCorr->Fill(p1Y_goodPaddle[igoodhit], p1Y_goodPosTdcTimeCorr[igoodhit]);
+      h2_p1Y_tdcCorrDiff->Fill(p1Y_goodPaddle[igoodhit], p1Y_goodPosTdcTimeCorr[igoodhit] - p1Y_goodNegTdcTimeCorr[igoodhit]);
+      if (TMath::Abs(p1Y_goodPosTdcTimeCorr[igoodhit] - p1Y_goodNegTdcTimeCorr[igoodhit]) > 0.1) continue;
+      h_p1Y_plTime->Fill(p1Y_goodPosTdcTimeCorr[igoodhit]);
+    }
+    for (UInt_t igoodhit = 0; igoodhit < p2X_nGoodHodoHits; igoodhit++) {
+      h2_p2X_negTdcCorr->Fill(p2X_goodPaddle[igoodhit], p2X_goodNegTdcTimeCorr[igoodhit]);
+      h2_p2X_posTdcCorr->Fill(p2X_goodPaddle[igoodhit], p2X_goodPosTdcTimeCorr[igoodhit]);
+      h2_p2X_tdcCorrDiff->Fill(p2X_goodPaddle[igoodhit], p2X_goodPosTdcTimeCorr[igoodhit] - p2X_goodNegTdcTimeCorr[igoodhit]);
+      if (TMath::Abs(p2X_goodPosTdcTimeCorr[igoodhit] - p2X_goodNegTdcTimeCorr[igoodhit]) > 0.1) continue;
+      h_p2X_plTime->Fill(p2X_goodPosTdcTimeCorr[igoodhit]);
+    }
+    for (UInt_t igoodhit = 0; igoodhit < p2Y_nGoodHodoHits; igoodhit++) {
+      h2_p2Y_negTdcCorr->Fill(p2Y_goodPaddle[igoodhit], p2Y_goodNegTdcTimeCorr[igoodhit]);
+      h2_p2Y_posTdcCorr->Fill(p2Y_goodPaddle[igoodhit], p2Y_goodPosTdcTimeCorr[igoodhit]);
+      h2_p2Y_tdcCorrDiff->Fill(p2Y_goodPaddle[igoodhit], p2Y_goodPosTdcTimeCorr[igoodhit] - p2Y_goodNegTdcTimeCorr[igoodhit]);
+      if (TMath::Abs(p2Y_goodPosTdcTimeCorr[igoodhit] - p2Y_goodNegTdcTimeCorr[igoodhit]) > 0.1) continue;
+      h_p2Y_plTime->Fill(p2Y_goodPosTdcTimeCorr[igoodhit]);
+    }
+    // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
+
+    // Fill pulse/tdc time difference histos
+
+    // cout << "Num of ADC Hits = " << p1X_negAdcHits << endl;
+    // cout << "ADC Paddle Number = " << p1X_negAdcPaddle[iadchit] << endl;
+    // cout << "Num of TDC Hits = " << p1X_negTdcHits << endl;
+    // cout << "TDC Paddle Number = " << p1X_negTdcPaddle[itdchit] << endl;
+
+    for (UInt_t iadchit = 0; iadchit < p1X_negAdcHits; iadchit++) {
+      for (UInt_t itdchit = 0; itdchit < p1X_negTdcHits; itdchit++) {
+	if (p1X_negAdcPaddle[iadchit] != p1X_negTdcPaddle[itdchit]) continue;
+	h2_p1Xneg_pt_tt_diff->Fill(p1X_negAdcPaddle[iadchit], p1X_negAdcPulseTime[iadchit]*clk2adc - p1X_negTdcTime[itdchit]*clk2tdc);
+      }
+    }
+    for (UInt_t iadchit = 0; iadchit < p1Y_negAdcHits; iadchit++) {
+      for (UInt_t itdchit = 0; itdchit < p1Y_negTdcHits; itdchit++) {
+	if (p1Y_negAdcPaddle[iadchit] != p1Y_negTdcPaddle[itdchit]) continue;
+	h2_p1Yneg_pt_tt_diff->Fill(p1Y_negAdcPaddle[iadchit], p1Y_negAdcPulseTime[iadchit]*clk2adc - p1Y_negTdcTime[itdchit]*clk2tdc);
+      }
+    }
+    for (UInt_t iadchit = 0; iadchit < p2X_negAdcHits; iadchit++) {
+      for (UInt_t itdchit = 0; itdchit < p2X_negTdcHits; itdchit++) {
+	if (p2X_negAdcPaddle[iadchit] != p2X_negTdcPaddle[itdchit]) continue;
+	h2_p2Xneg_pt_tt_diff->Fill(p2X_negAdcPaddle[iadchit], p2X_negAdcPulseTime[iadchit]*clk2adc - p2X_negTdcTime[itdchit]*clk2tdc);
+      }
+    }
+    for (UInt_t iadchit = 0; iadchit < p2Y_negAdcHits; iadchit++) {
+      for (UInt_t itdchit = 0; itdchit < p2Y_negTdcHits; itdchit++) {
+	if (p2Y_negAdcPaddle[iadchit] != p2Y_negTdcPaddle[itdchit]) continue;
+	h2_p2Yneg_pt_tt_diff->Fill(p2Y_negAdcPaddle[iadchit], p2Y_negAdcPulseTime[iadchit]*clk2adc - p2Y_negTdcTime[itdchit]*clk2tdc);
+      }
+    }
+    for (UInt_t iadchit = 0; iadchit < p1X_posAdcHits; iadchit++) {
+      for (UInt_t itdchit = 0; itdchit < p1X_posTdcHits; itdchit++) {
+	if (p1X_posAdcPaddle[iadchit] != p1X_posTdcPaddle[itdchit]) continue;
+	h2_p1Xpos_pt_tt_diff->Fill(p1X_posAdcPaddle[iadchit], p1X_posAdcPulseTime[iadchit]*clk2adc - p1X_posTdcTime[itdchit]*clk2tdc);
+      }
+    }
+    for (UInt_t iadchit = 0; iadchit < p1Y_posAdcHits; iadchit++) {
+      for (UInt_t itdchit = 0; itdchit < p1Y_posTdcHits; itdchit++) {
+	if (p1Y_nGoodHodoHits < 1) continue;
+	if (p1Y_posAdcPaddle[iadchit] != p1Y_posTdcPaddle[itdchit]) continue;
+	h2_p1Ypos_pt_tt_diff->Fill(p1Y_posAdcPaddle[iadchit], p1Y_posAdcPulseTime[iadchit]*clk2adc - p1Y_posTdcTime[itdchit]*clk2tdc);
+      }
+    }
+    for (UInt_t iadchit = 0; iadchit < p2X_posAdcHits; iadchit++) {
+      for (UInt_t itdchit = 0; itdchit < p2X_posTdcHits; itdchit++) {
+	if (p2X_posAdcPaddle[iadchit] != p2X_posTdcPaddle[itdchit]) continue;
+	h2_p2Xpos_pt_tt_diff->Fill(p2X_posAdcPaddle[iadchit], p2X_posAdcPulseTime[iadchit]*clk2adc - p2X_posTdcTime[itdchit]*clk2tdc);
+      }
+    }
+    for (UInt_t iadchit = 0; iadchit < p2Y_posAdcHits; iadchit++) {
+      for (UInt_t itdchit = 0; itdchit < p2Y_posTdcHits; itdchit++) {
+	if (p2Y_posAdcPaddle[iadchit] != p2Y_posTdcPaddle[itdchit]) continue;
+	h2_p2Ypos_pt_tt_diff->Fill(p2Y_posAdcPaddle[iadchit], p2Y_posAdcPulseTime[iadchit]*clk2adc - p2Y_posTdcTime[itdchit]*clk2tdc);
+      }
+    }
+
+    // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
+
+    // Fill trigger time histos
+    if (p1X_tdcTime != 0.0) h_p1X_tdc->Fill(p1X_tdcTime*clk2tdc);
+    if (p1Y_tdcTime != 0.0) h_p1Y_tdc->Fill(p1Y_tdcTime*clk2tdc);
+    if (p2X_tdcTime != 0.0) h_p2X_tdc->Fill(p2X_tdcTime*clk2tdc);
+    if (p2Y_tdcTime != 0.0) h_p2Y_tdc->Fill(p2Y_tdcTime*clk2tdc);
+    if (p1T_tdcTime != 0.0) h_p1T_tdc->Fill(p1T_tdcTime*clk2tdc);
+    if (p2T_tdcTime != 0.0) h_p2T_tdc->Fill(p2T_tdcTime*clk2tdc);
+
+    h_pT1_tdc->Fill(pT1_tdcTime*clk2tdc);
+    h_pT2_tdc->Fill(pT2_tdcTime*clk2tdc);
+    h_pT3_tdc->Fill(pT3_tdcTime*clk2tdc);
+
+    for (UInt_t iref = 0; iref < ndcRefTimes; iref++)
+      h_pDCREF_tdc[iref]->Fill(pDCREF_tdcTime[iref]*clk2tdc);
+
+    if (p1X_tdcTime != 0.0) h_p1XmpT2_tdc->Fill((pT2_tdcTime - p1X_tdcTime)*clk2tdc);
+    if (p1Y_tdcTime != 0.0) h_p1YmpT2_tdc->Fill((pT2_tdcTime - p1Y_tdcTime)*clk2tdc);
+    if (p2X_tdcTime != 0.0) h_p2XmpT2_tdc->Fill((pT2_tdcTime - p2X_tdcTime)*clk2tdc);
+    if (p2Y_tdcTime != 0.0) h_p2YmpT2_tdc->Fill((pT2_tdcTime - p2Y_tdcTime)*clk2tdc);
+    if (p1T_tdcTime != 0.0) h_p1TmpT2_tdc->Fill((pT2_tdcTime - p1T_tdcTime)*clk2tdc);
+    if (p2T_tdcTime != 0.0) h_p2TmpT2_tdc->Fill((pT2_tdcTime - p2T_tdcTime)*clk2tdc);
+
+    if (p1X_tdcTime != 0.0) h_p1XmpT3_tdc->Fill((pT3_tdcTime - p1X_tdcTime)*clk2tdc);
+    if (p1Y_tdcTime != 0.0) h_p1YmpT3_tdc->Fill((pT3_tdcTime - p1Y_tdcTime)*clk2tdc);
+    if (p2X_tdcTime != 0.0) h_p2XmpT3_tdc->Fill((pT3_tdcTime - p2X_tdcTime)*clk2tdc);
+    if (p2Y_tdcTime != 0.0) h_p2YmpT3_tdc->Fill((pT3_tdcTime - p2Y_tdcTime)*clk2tdc);
+    if (p1T_tdcTime != 0.0) h_p1TmpT3_tdc->Fill((pT3_tdcTime - p1T_tdcTime)*clk2tdc);
+    if (p2T_tdcTime != 0.0) h_p2TmpT3_tdc->Fill((pT3_tdcTime - p2T_tdcTime)*clk2tdc);
+
+    // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
+
+    h_p1X_fpTime->Fill(p1X_fpTime); h_p1Y_fpTime->Fill(p1Y_fpTime);
+    h_p2X_fpTime->Fill(p2X_fpTime); h_p2Y_fpTime->Fill(p2Y_fpTime);
+
+    // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
+
+    Double_t paero_sum = 0.0;
+    for (UInt_t iaerohit = 0; iaerohit < paero_negHits; iaerohit++) {
+      h2_paero_negPulseTime_pT1_diff->Fill(paero_negPmt[iaerohit], paero_negPulseTime[iaerohit]*clk2adc - pT1_tdcTime*clk2tdc);
+      h2_paero_negPulseTime_pT2_diff->Fill(paero_negPmt[iaerohit], paero_negPulseTime[iaerohit]*clk2adc - pT2_tdcTime*clk2tdc);
+      h2_paero_negPulseTime_pT3_diff->Fill(paero_negPmt[iaerohit], paero_negPulseTime[iaerohit]*clk2adc - pT3_tdcTime*clk2tdc);
+      paero_sum += paero_negPulseInt[iaerohit]*aero_adc2npe;
+    }
+    for (UInt_t iaerohit = 0; iaerohit < paero_posHits; iaerohit++) {
+      h2_paero_posPulseTime_pT1_diff->Fill(paero_posPmt[iaerohit], paero_posPulseTime[iaerohit]*clk2adc - pT1_tdcTime*clk2tdc);
+      h2_paero_posPulseTime_pT2_diff->Fill(paero_posPmt[iaerohit], paero_posPulseTime[iaerohit]*clk2adc - pT2_tdcTime*clk2tdc);
+      h2_paero_posPulseTime_pT3_diff->Fill(paero_posPmt[iaerohit], paero_posPulseTime[iaerohit]*clk2adc - pT3_tdcTime*clk2tdc);
+      paero_sum += paero_posPulseInt[iaerohit]*aero_adc2npe;
+    }
+    if (paero_sum != 0.0) h_paero_sum->Fill(paero_sum);
+
+    // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
+
+    Double_t ppshwr_sum = 0.0;
+    for (UInt_t ipshwrhit = 0; ipshwrhit < ppshwr_negHits; ipshwrhit++) {
+      h2_ppshwr_negPulseTime_pT1_diff->Fill(ppshwr_negPmt[ipshwrhit], ppshwr_negPulseTime[ipshwrhit]*clk2adc - pT1_tdcTime*clk2tdc);
+      h2_ppshwr_negPulseTime_pT2_diff->Fill(ppshwr_negPmt[ipshwrhit], ppshwr_negPulseTime[ipshwrhit]*clk2adc - pT2_tdcTime*clk2tdc);
+      h2_ppshwr_negPulseTime_pT3_diff->Fill(ppshwr_negPmt[ipshwrhit], ppshwr_negPulseTime[ipshwrhit]*clk2adc - pT3_tdcTime*clk2tdc);
+      ppshwr_sum += ppshwr_negPulseInt[ipshwrhit]*pshwr_adc2GeV;
+    }
+    for (UInt_t ipshwrhit = 0; ipshwrhit < ppshwr_posHits; ipshwrhit++) {
+      h2_ppshwr_posPulseTime_pT1_diff->Fill(ppshwr_posPmt[ipshwrhit], ppshwr_posPulseTime[ipshwrhit]*clk2adc - pT1_tdcTime*clk2tdc);
+      h2_ppshwr_posPulseTime_pT2_diff->Fill(ppshwr_posPmt[ipshwrhit], ppshwr_posPulseTime[ipshwrhit]*clk2adc - pT2_tdcTime*clk2tdc);
+      h2_ppshwr_posPulseTime_pT3_diff->Fill(ppshwr_posPmt[ipshwrhit], ppshwr_posPulseTime[ipshwrhit]*clk2adc - pT3_tdcTime*clk2tdc);
+      ppshwr_sum += ppshwr_posPulseInt[ipshwrhit]*pshwr_adc2GeV;
+    }
+    if (ppshwr_sum != 0.0) h_ppshwr_sum->Fill(ppshwr_sum);
+
+
+    // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
+
+    Double_t pshwr_sum = 0.0;
+    for (UInt_t ishwrhit = 0; ishwrhit < pshwr_hits; ishwrhit++) {
+      h2_pshwr_pulseTime_pT1_diff->Fill(pshwr_pmt[ishwrhit], pshwr_pulseTime[ishwrhit]*clk2adc - pT1_tdcTime*clk2tdc);
+      h2_pshwr_pulseTime_pT2_diff->Fill(pshwr_pmt[ishwrhit], pshwr_pulseTime[ishwrhit]*clk2adc - pT2_tdcTime*clk2tdc);
+      h2_pshwr_pulseTime_pT3_diff->Fill(pshwr_pmt[ishwrhit], pshwr_pulseTime[ishwrhit]*clk2adc - pT3_tdcTime*clk2tdc);
+      pshwr_sum += pshwr_pulseInt[ishwrhit]*shwr_adc2GeV;
+    }
+    if (pshwr_sum != 0.0) h_pshwr_sum->Fill(pshwr_sum);
+    if ((ppshwr_sum + pshwr_sum) != 0.0) h_ptotshwr_sum->Fill(ppshwr_sum + pshwr_sum);
+    if (ppshwr_sum != 0.0 && pshwr_sum != 0.0) {
+      h2_pshwr_vs_ppshwr->Fill(ppshwr_sum, pshwr_sum);   
+    }
+    
+    for (UInt_t itrack = 0; itrack < ntracks; itrack++)
+      if (trk_pmag != 0.0 && ntracks == 1) h2_EdivP_vs_P->Fill(trk_pmag[0], (ppshwr_sum + pshwr_sum)/trk_pmag[0]);
+
+    // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
+
+    Double_t phgc_sum = 0.0;
+    for (UInt_t ihgchit = 0; ihgchit < phgc_hits; ihgchit++) {
+      h2_phgc_pulseTime_pT1_diff->Fill(phgc_pmt[ihgchit], phgc_pulseTime[ihgchit]*clk2adc - pT1_tdcTime*clk2tdc);
+      h2_phgc_pulseTime_pT2_diff->Fill(phgc_pmt[ihgchit], phgc_pulseTime[ihgchit]*clk2adc - pT2_tdcTime*clk2tdc);
+      h2_phgc_pulseTime_pT3_diff->Fill(phgc_pmt[ihgchit], phgc_pulseTime[ihgchit]*clk2adc - pT3_tdcTime*clk2tdc);
+      phgc_sum += phgc_pulseInt[ihgchit]*hgc_adc2npe;
+    }
+    if (phgc_sum != 0.0) h_phgc_sum->Fill(phgc_sum);
+    if (phgc_sum != 0.0 && (ppshwr_sum + pshwr_sum) != 0.0) h2_pshwr_vs_phgcer->Fill(phgc_sum, ppshwr_sum + pshwr_sum);
+
+    // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
+
+    Double_t pngc_sum = 0.0;
+    for (UInt_t ingchit = 0; ingchit < pngc_hits; ingchit++) {
+      h2_pngc_pulseTime_pT1_diff->Fill(pngc_pmt[ingchit], pngc_pulseTime[ingchit]*clk2adc - pT1_tdcTime*clk2tdc);
+      h2_pngc_pulseTime_pT2_diff->Fill(pngc_pmt[ingchit], pngc_pulseTime[ingchit]*clk2adc - pT2_tdcTime*clk2tdc);
+      h2_pngc_pulseTime_pT3_diff->Fill(pngc_pmt[ingchit], pngc_pulseTime[ingchit]*clk2adc - pT3_tdcTime*clk2tdc);
+      pngc_sum += pngc_pulseInt[ingchit]*ngc_adc2npe;
+    }
+    if (pngc_sum != 0.0) h_pngc_sum->Fill(pngc_sum);
+    if (pngc_sum != 0.0 && (ppshwr_sum + pshwr_sum) != 0.0) h2_pshwr_vs_pngcer->Fill(pngc_sum, ppshwr_sum + pshwr_sum);
+
+    // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
+
+    if ((ievent)%1000 == 0)
+      cout << "ievent = " << ievent << endl;
+
+  }  // Entries loop
+}  // UserScript function
+
+void kpp_analysis(TString histname) {
+
+  // Grab the histo
+  TH1F *h1d;
+  TH2F *h2d;
+
+  h1d = dynamic_cast <TH1F*> (gDirectory->Get(histname));
+  h2d = dynamic_cast <TH2F*> (gDirectory->Get(histname));
+
+  // Grab histo directly if it does not already exist
+  if(!h1d && !h2d) {
+    UserScript();
+    h1d = (TH1F*) (gDirectory->Get(histname));
+    h2d = (TH2F*) (gDirectory->Get(histname));
+    // Throw error
+    if(!h1d || !h2d) {
+      cout << "User histogram " << histname << " not found" << endl;
+      exit(1);
+    }
+  }
+  //else
+  if (h2d) {
+    h2d->SetStats(0);
+    h2d->Draw("colz");
+  }
+  else {
+    h1d->SetStats(0);
+    h1d->Draw();
+  }
+}  // kpp_analysis function
diff --git a/onlineGUI/Macros/overlay.C b/onlineGUI/Macros/overlay.C
new file mode 100755
index 00000000..ac7f0389
--- /dev/null
+++ b/onlineGUI/Macros/overlay.C
@@ -0,0 +1,54 @@
+void overlay(TString hist1name, TString hist2name, Bool_t golden=false,TString samestr=""){
+  TH1F* H1;
+  TH1F* H2;
+  
+  H1 = (TH1F*) gDirectory->Get(hist1name);
+  H2 = (TH1F*) gDirectory->Get(hist2name);
+  if (H1 && H2) {
+  if(golden){
+    H1->SetLineColor(30);
+    H1->SetFillColor(30);
+    H1->SetFillStyle(3027);
+    H2->SetLineColor(46);
+    H2->SetFillColor(46);
+    H2->SetFillStyle(3027);
+  } else {
+    H1->SetLineColor(4);
+    H2->SetLineColor(2);
+    H1->SetStats(0);
+    H2->SetStats(0);
+    H1->SetMinimum(0);
+    H2->SetMinimum(0);
+  }
+
+  if(golden){
+    if(!samestr.Contains("sames")) samestr += "sames";
+    H1->Draw(samestr);
+    H2->Draw(samestr);
+  } else {
+    if(!golden && !samestr.Contains("sames")){
+      // pick which hist to draw first:
+      if(H1->GetMaximum() > H2->GetMaximum()){
+	H1->Draw(samestr);
+	if(!samestr.Contains("sames")) samestr += "sames";
+	H2->Draw(samestr);
+      } else {
+	H2->Draw(samestr);
+	if(!samestr.Contains("sames")) samestr += "sames";
+	H1->Draw(samestr);
+      }
+    } else {
+      H1->Draw(samestr);
+      if(!samestr.Contains("sames")) samestr += "sames";
+      H2->Draw(samestr);
+    H2->GetXaxis()->SetTitleOffset(.6);
+    H2->GetXaxis()->SetTitleSize(0.08);
+    H2->GetYaxis()->SetTitleOffset(.6);
+    H2->GetYaxis()->SetTitleSize(0.08);
+    }
+  }
+  } else {
+    if (!H1) cout << " Histogram " << hist1name << " does not exist" << endl;
+    if (!H2) cout << " Histogram " << hist2name << " does not exist" << endl;
+  }
+}
diff --git a/onlineGUI/Macros/rawdraw.C b/onlineGUI/Macros/rawdraw.C
new file mode 100755
index 00000000..f05e820f
--- /dev/null
+++ b/onlineGUI/Macros/rawdraw.C
@@ -0,0 +1,265 @@
+// UserScript.C
+//
+// Helper macro to build additional histograms
+
+void UserScript()
+{
+
+  const UInt_t NPLANES  = 4;
+  const UInt_t NSIDES   = 2;
+  const UInt_t MAXBARS  = 16;
+  const UInt_t NSIGNALS = 2;
+  const UInt_t NADCSIGNALS = 2;
+  const UInt_t NTDCSIGNALS = 2;
+
+  const TString SPECTROMETER = "H";
+  const TString DETECTOR = "hod";
+
+  const TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"};
+  const UInt_t  nbars[NPLANES] = {16, 10, 16, 10};
+  const TString sides[NSIDES] = {"neg", "pos"};
+  const TString signals[NSIGNALS] = {"Adc", "Tdc"};
+  const TString adc_signals[NADCSIGNALS] = {"Ped", "PedRaw"};
+  const TString tdc_signals[NTDCSIGNALS] = {"Time", "TimeRaw"};
+  
+  const Double_t ADC_MIN    = 0.0;
+  const Double_t ADC_MAX    = 25000.0;
+  const Int_t    ADC_NBINS  = 2500;
+  const Double_t TDC_MIN    = -8000.0;
+  const Double_t TDC_MAX    = 8000.0;
+  const Int_t    TDC_NBINS  = 1600;
+
+  Int_t nadchits[NPLANES][NSIDES][NSIGNALS];
+  Int_t ntdchits[NPLANES][NSIDES][NSIGNALS];
+
+  Double_t adc_paddles[NPLANES][NSIDES][NSIGNALS][MAXBARS];
+  Double_t tdc_paddles[NPLANES][NSIDES][NSIGNALS][MAXBARS];
+
+  Double_t ped_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+  Double_t pedraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+
+  Double_t tdc_values[NPLANES][NSIDES][NTDCSIGNALS][MAXBARS];
+  Double_t tdcraw_values[NPLANES][NSIDES][NTDCSIGNALS][MAXBARS];
+
+  TH1F* hadc[NPLANES*NSIDES*NADCSIGNALS*MAXBARS];
+  TH1F* htdc[NPLANES*NSIDES*NTDCSIGNALS*MAXBARS];
+
+  Int_t adc_ihit, tdc_ihit;
+
+  TTree *T=(TTree*)gDirectory->Get("T");
+
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+    for(UInt_t iside = 0; iside < NSIDES; iside++) {
+      for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) {
+
+	if(signals[isignal] == "Adc") {  
+	  TString adc_base_name = SPECTROMETER+"."+DETECTOR+"."+
+	    plane_names[ip]+"."+sides[iside]+signals[isignal];
+	  TString adc_ndata_name = "Ndata."+adc_base_name+"Counter";
+	  T->SetBranchAddress(adc_ndata_name, &nadchits[ip][iside][isignal]);
+	  TString adc_paddle_name = adc_base_name+"Counter";
+	  T->SetBranchAddress(adc_paddle_name, &adc_paddles[ip][iside][isignal][0]);
+	  for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) {
+	    if (adc_signals[iadcsignal] == "Ped") {
+	      TString pedlist_name = adc_base_name+"Ped";
+	      T->SetBranchAddress(pedlist_name, &ped_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PedRaw") {
+	      TString pedrawlist_name = adc_base_name+"PedRaw";
+	      T->SetBranchAddress(pedrawlist_name, &pedraw_values[ip][iside][iadcsignal][0]);
+	    }
+	  }
+	}
+
+	if(signals[isignal] == "Tdc") {  
+	  TString tdc_base_name = SPECTROMETER+"."+DETECTOR+"."+
+	    plane_names[ip]+"."+sides[iside]+signals[isignal];
+	  TString tdc_ndata_name = "Ndata."+tdc_base_name+"Counter";
+	  T->SetBranchAddress(tdc_ndata_name, &ntdchits[ip][iside][isignal]);
+	  TString tdc_paddle_name = tdc_base_name+"Counter";
+	  T->SetBranchAddress(tdc_paddle_name, &tdc_paddles[ip][iside][isignal][0]);
+	  for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) {
+	    if (tdc_signals[itdcsignal] == "Time") {
+	      TString tdclist_name = tdc_base_name+"Time";
+	      T->SetBranchAddress(tdclist_name, &tdc_values[ip][iside][itdcsignal][0]);
+	    }
+	    if (tdc_signals[itdcsignal] == "TimeRaw") {
+	      TString tdcrawlist_name = tdc_base_name+"TimeRaw";
+	      T->SetBranchAddress(tdcrawlist_name, &tdcraw_values[ip][iside][itdcsignal][0]);
+	    }
+	  }
+	}
+
+	// Create histograms
+	// ADC and TDC histogram for each 
+	if(signals[isignal] == "Adc") {
+	  UInt_t nadcbins  = ADC_NBINS;
+	  Double_t hadcmin = ADC_MIN;
+	  Double_t hadcmax = ADC_MAX;
+	} 
+	if(signals[isignal] == "Tdc") {
+	  UInt_t ntdcbins  = TDC_NBINS;
+	  Double_t htdcmin = TDC_MIN;
+	  Double_t htdcmax = TDC_MAX;
+	}
+	
+	if(signals[isignal] == "Adc") {
+	  for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      UInt_t hadcindex = ip*NSIDES*NADCSIGNALS*MAXBARS
+		+iside*NADCSIGNALS*MAXBARS+iadcsignal*MAXBARS+ibar;
+	      TString iadcbarname = Form("%d",ibar+1);
+	      TString adctitle= "hadc"+plane_names[ip]+iadcbarname+sides[iside]
+		+" "+adc_signals[iadcsignal];
+	      TString adcname="uhadc"+plane_names[ip]+iadcbarname+sides[iside]+
+		adc_signals[iadcsignal];
+	      
+	      hadc[hadcindex]=new TH1F(adcname, adctitle, nadcbins, hadcmin, hadcmax);
+	    }
+	  }
+	}
+
+	if(signals[isignal] == "Tdc") {
+	  for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      UInt_t htdcindex = ip*NSIDES*NTDCSIGNALS*MAXBARS
+		+iside*NTDCSIGNALS*MAXBARS+itdcsignal*MAXBARS+ibar;
+	      TString itdcbarname = Form("%d",ibar+1);
+	      TString tdctitle= "htdc"+plane_names[ip]+itdcbarname+sides[iside]
+		+" "+tdc_signals[itdcsignal];
+	      TString tdcname="uhtdc"+plane_names[ip]+itdcbarname+sides[iside]+
+		tdc_signals[itdcsignal];
+	  
+	      htdc[htdcindex]=new TH1F(tdcname, tdctitle, ntdcbins, htdcmin, htdcmax);
+	    }
+	  }
+	}
+	
+      }
+    }
+  }
+
+  // Loop over the events, filling the histograms
+  for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) {
+    T->GetEntry(iev);
+
+    cout << "**************************" << endl;
+    cout << "Event Number = " << iev << endl;
+    cout << "**************************" << endl;
+
+    for(UInt_t ip = 0; ip < NPLANES; ip++){
+      for(UInt_t iside = 0; iside < NSIDES; iside++) {
+	for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) {
+     
+	  if(signals[isignal] == "Adc") {
+	    for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) {
+
+	      UInt_t hadcindex_base = ip*NSIDES*NADCSIGNALS*MAXBARS
+		+iside*NADCSIGNALS*MAXBARS+iadcsignal*MAXBARS;
+
+	      cout << "============= ADC =============" << endl;
+	      cout << "ip = " << ip << ", iside = " << iside << ", iadcsignal = " << iadcsignal << ", hadcindex_base = " << hadcindex_base << endl;
+
+	      cout << "nadchits = " << nadchits[ip][iside][isignal] << endl;
+
+ 	      for(Int_t adc_ihit = 0; adc_ihit < nadchits[ip][iside][isignal]; adc_ihit++) {
+
+		//UInt_t ibar = TMath::Nint(paddles[ip][iside][isignal][adc_ihit]) - 1;
+		UInt_t ibar = TMath::Nint(adc_paddles[ip][iside][isignal][adc_ihit]) - 1;
+
+		cout << "ibar = " << ibar << ", adc_ihit = " << adc_ihit << endl;
+
+		cout << "level 1" << endl;
+			
+		if (adc_signals[iadcsignal] == "Ped") {  
+		  Double_t pedval = ped_values[ip][iside][iadcsignal][adc_ihit];
+		}
+
+		cout << "level 2" << endl;
+
+		if (adc_signals[iadcsignal] == "PedRaw") { 
+		  Double_t pedrawval = pedraw_values[ip][iside][iadcsignal][adc_ihit];
+		}
+		
+		cout << "level 3" << endl;
+
+		// if (hadcindex_base == 0 && ibar == 0) UInt_t hadcindex = 1;
+		// else UInt_t hadcindex = hadcindex_base + ibar;
+
+		UInt_t hadcindex = hadcindex_base + ibar;
+
+		cout << "hadcindex = " << hadcindex << endl;
+
+		if (adc_signals[iadcsignal] == "Ped") {
+		  cout << "pedval = " << pedval << endl;
+		  hadc[hadcindex]->Fill(pedval);
+		}
+		if (adc_signals[iadcsignal] == "PedRaw") {
+		  cout << "pedrawval = " << pedrawval << endl;
+		  hadc[hadcindex]->Fill(pedrawval);
+		}
+
+	      }
+	    }
+	  }
+
+	  if(signals[isignal] == "Tdc") {
+	    for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) {
+
+	      UInt_t htdcindex_base = ip*NSIDES*NTDCSIGNALS*MAXBARS
+		+iside*NTDCSIGNALS*MAXBARS+itdcsignal*MAXBARS;
+
+	      cout << "============= TDC =============" << endl;
+	      cout << "ip = " << ip << ", iside = " << iside << ", itdcsignal = " << itdcsignal << ", htdcindex_base = " << htdcindex_base << endl;
+
+	      cout << "ntdchits = " << ntdchits[ip][iside][isignal] << endl;
+
+	      for(Int_t tdc_ihit = 0; tdc_ihit < ntdchits[ip][iside][isignal]; tdc_ihit++) {
+
+		UInt_t ibar = TMath::Nint(tdc_paddles[ip][iside][isignal][tdc_ihit]) - 1;
+
+		cout << "ibar = " << ibar << endl;
+
+		Double_t tdcval = tdc_values[ip][iside][itdcsignal][tdc_ihit];
+		Double_t tdcrawval = tdcraw_values[ip][iside][itdcsignal][tdc_ihit];
+		UInt_t htdcindex = htdcindex_base + ibar;
+
+		cout << "htdcindex = " << htdcindex << endl;
+
+		if (tdc_signals[itdcsignal] == "Time") {
+		  cout << "Time = " << tdcval << endl;
+		  htdc[htdcindex]->Fill(tdcval);
+		}
+		if (tdc_signals[itdcsignal] == "TimeRaw") {
+		  cout << "RawTime = " << tdcrawval << endl;
+		  htdc[htdcindex]->Fill(tdcrawval);
+		}
+	      }
+	    }
+	  }
+
+	}
+      }
+    }
+  }
+
+  return;
+
+}
+
+void rawdraw(TString histname) {
+
+  TH1F* h;
+
+  h = (TH1F*) gDirectory->Get(histname);
+  if(!h) {
+    UserScript();
+    h = (TH1F*) gDirectory->Get(histname);
+    if(!h) {
+      cout << "User histogram " << histname << " not found" << endl;
+      exit(1);
+    }
+  }
+  h->Draw();
+}
+
diff --git a/onlineGUI/Macros/rawdraw_2d_hhodo.C b/onlineGUI/Macros/rawdraw_2d_hhodo.C
new file mode 100644
index 00000000..980b0a40
--- /dev/null
+++ b/onlineGUI/Macros/rawdraw_2d_hhodo.C
@@ -0,0 +1,275 @@
+// UserScript.C
+//
+// Helper macro to build additional histograms
+
+void UserScript()
+{
+
+  const UInt_t NPLANES  = 4;
+  const UInt_t NSIDES   = 2;
+  const UInt_t MAXBARS  = 16;  // FIX ME: Parameter should be 16
+  const UInt_t NSIGNALS = 2;
+  const UInt_t NADCSIGNALS = 7;
+  const UInt_t NTDCSIGNALS = 2;
+  const UInt_t MAXHITS=16*16;
+
+  const TString SPECTROMETER = "H";
+  const TString DETECTOR = "hod";
+
+  const TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"};
+  const UInt_t  nbars[NPLANES] = {16, 10, 16, 10};
+  const TString sides[NSIDES] = {"neg", "pos"};
+  const TString signals[NSIGNALS] = {"Adc", "Tdc"};
+  const TString adc_signals[NADCSIGNALS] = {"Ped", "PedRaw", "PulseInt", "PulseIntRaw", 
+					    "PulseAmp", "PulseAmpRaw", "PulseTimeRaw"};
+  const TString tdc_signals[NTDCSIGNALS] = {"Time", "TimeRaw"};
+  
+  Double_t adcbit_to_pC = 1.0/(50*4096)*4*1000. ;// 1V/(50 Ohms)/4096*4ns* = .020 pC
+  cout << adcbit_to_pC << endl;
+  Int_t nadchits[NPLANES][NSIDES][NSIGNALS];
+  Int_t ntdchits[NPLANES][NSIDES][NSIGNALS];
+
+  Double_t adc_paddles[NPLANES][NSIDES][NSIGNALS][MAXHITS];
+  Double_t tdc_paddles[NPLANES][NSIDES][NSIGNALS][MAXHITS];
+
+  Double_t ped_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS];
+  Double_t pedraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS];
+
+  Double_t int_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS];
+  Double_t intraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS];
+  
+  Double_t amp_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS];
+  Double_t ampraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS];
+  
+  Double_t ptraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS];
+
+  Double_t tdc_values[NPLANES][NSIDES][NTDCSIGNALS][MAXHITS];
+  Double_t tdcraw_values[NPLANES][NSIDES][NTDCSIGNALS][MAXHITS];
+
+  TH2F* htdc_adc[NPLANES*NSIDES*MAXBARS];
+  TH2F* htdc_tdc[NPLANES*MAXBARS];
+  TH2F* hadc_adc[NPLANES*MAXBARS];
+  TH2F* hadcint_adcint[NPLANES*MAXBARS];
+  TH2F* hatdc_atdc[NPLANES*MAXBARS];
+  TH2F* hadc_atdc[NPLANES*NSIDES*MAXBARS];
+  Int_t adc_ihit, tdc_ihit;
+
+  TTree *T=(TTree*)gDirectory->Get("T");
+  //
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      TString i2dbarname = Form("%d",ibar+1);
+	      TString h2dttitle= "TDC 0.1ns/chan "+plane_names[ip]+i2dbarname+"; Neg ; Pos ";
+	      TString h2dtname="uh2dtdc"+plane_names[ip]+i2dbarname;
+              htdc_tdc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,100,-1000,-500,100,-1000,-500.);
+	    }
+  }
+  //
+  //
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      TString i2dbarname = Form("%d",ibar+1);
+	      TString h2dttitle= "ADC Peak Amp "+plane_names[ip]+i2dbarname+"; Neg (mV); Pos (mV)";
+	      TString h2dtname="uh2dadcpeak"+plane_names[ip]+i2dbarname;
+	      //             hadc_adc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,500,-200,5800,500,-200,5800.);
+	                 hadc_adc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,160,0,800,160,0,800.);
+	      TString h2dttitle= "ADC Int Amp "+plane_names[ip]+i2dbarname+"; Neg (pC); Pos (pC)";
+	      TString h2dtname="uh2dadcint"+plane_names[ip]+i2dbarname;
+	                 hadcint_adcint[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,50,0,100,50,0,100.);
+	    }
+  }
+  //
+  //
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      TString i2dbarname = Form("%d",ibar+1);
+	      TString h2dttitle= "h2dadctdc"+plane_names[ip]+i2dbarname;
+	      TString h2dtname="uh2dadctdc"+plane_names[ip]+i2dbarname;
+              hatdc_atdc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,100,1000,2000,100,1000,2000.);
+	    }
+  }
+  //
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+    for(UInt_t iside = 0; iside < NSIDES; iside++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      UInt_t h2dindex = ip*NSIDES*MAXBARS+iside*MAXBARS+ibar;
+	      TString i2dbarname = Form("%d",ibar+1);
+	      TString h2dtitle= "ADC (pc) vs TDC (0.1ns/chan) "+plane_names[ip]+i2dbarname+sides[iside];
+	      TString h2dname="uh2d"+plane_names[ip]+i2dbarname+sides[iside];
+	      TString h2datitle= "h2dadcAtdc"+plane_names[ip]+i2dbarname+sides[iside];
+	      TString h2daname="uh2dadcAtdc"+plane_names[ip]+i2dbarname+sides[iside];
+              if ( h2dindex < NPLANES*NSIDES*MAXBARS) {
+              htdc_adc[h2dindex]= new TH2F(h2dname,h2dtitle,200,-1000,-500,50,0.,100.);
+              hadc_atdc[h2dindex]= new TH2F(h2daname,h2datitle,50,0,100.,300,1000,2000.);
+	      //	      cout << " index = " << h2dindex << " " << h2dname << endl;
+              } else {
+                cout << " index = " << h2dindex << " too large" << endl;
+	      }
+	    }
+      for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) {
+
+	if(signals[isignal] == "Adc") {  
+	  TString adc_base_name = SPECTROMETER+"."+DETECTOR+"."+
+	    plane_names[ip]+"."+sides[iside]+signals[isignal];
+	  TString adc_ndata_name = "Ndata."+adc_base_name+"Counter";
+	  T->SetBranchAddress(adc_ndata_name, &nadchits[ip][iside][isignal]);
+	  TString adc_paddle_name = adc_base_name+"Counter";
+	  T->SetBranchAddress(adc_paddle_name, &adc_paddles[ip][iside][isignal][0]);
+	  for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) {
+	    if (adc_signals[iadcsignal] == "Ped") {
+	      TString pedlist_name = adc_base_name+"Ped";
+	      T->SetBranchAddress(pedlist_name, &ped_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PedRaw") {
+	      TString pedrawlist_name = adc_base_name+"PedRaw";
+	      T->SetBranchAddress(pedrawlist_name, &pedraw_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseInt") {   
+	      TString intlist_name = adc_base_name+"PulseInt";
+	      T->SetBranchAddress(intlist_name, &int_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseIntRaw") {
+	      TString intrawlist_name = adc_base_name+"PulseIntRaw";
+	      T->SetBranchAddress(intrawlist_name, &intraw_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseAmp") {   
+	      TString amplist_name = adc_base_name+"PulseAmp";
+	      T->SetBranchAddress(amplist_name, &amp_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseAmpRaw") {
+	      TString amprawlist_name = adc_base_name+"PulseAmpRaw";
+	      T->SetBranchAddress(amprawlist_name, &ampraw_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseTimeRaw") {
+	      TString ptrawlist_name = adc_base_name+"PulseTimeRaw";
+	      T->SetBranchAddress(ptrawlist_name, &ptraw_values[ip][iside][iadcsignal][0]);
+	    }
+	  }
+	}
+	
+	if(signals[isignal] == "Tdc") {  
+	  TString tdc_base_name = SPECTROMETER+"."+DETECTOR+"."+
+	    plane_names[ip]+"."+sides[iside]+signals[isignal];
+	  TString tdc_ndata_name = "Ndata."+tdc_base_name+"Counter";
+	  T->SetBranchAddress(tdc_ndata_name, &ntdchits[ip][iside][isignal]);
+	  TString tdc_paddle_name = tdc_base_name+"Counter";
+	  T->SetBranchAddress(tdc_paddle_name, &tdc_paddles[ip][iside][isignal][0]);
+	  for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) {
+	    if (tdc_signals[itdcsignal] == "Time") {
+	      TString tdclist_name = tdc_base_name+"Time";
+	      T->SetBranchAddress(tdclist_name, &tdc_values[ip][iside][itdcsignal][0]);
+	    }
+	    if (tdc_signals[itdcsignal] == "TimeRaw") {
+	      TString tdcrawlist_name = tdc_base_name+"TimeRaw";
+	      T->SetBranchAddress(tdcrawlist_name, &tdcraw_values[ip][iside][itdcsignal][0]);
+	    }
+	  }
+	}
+
+      }
+    }
+  }
+
+  // Loop over the events, filling the histograms
+  cout << " looping over data " << endl;
+  for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) {
+    if (iev%10000==0) cout << " iev = " << iev << endl;
+    T->GetEntry(iev);
+    //
+    Double_t tdcbar_save=-1;
+        for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	  //       cout << iev << " " << ip << " " << ntdchits[ip][0][1]<< " " << ntdchits[ip][1][1] << endl;
+		for(Int_t tdc1_ihit = 0; tdc1_ihit < ntdchits[ip][0][1]; tdc1_ihit++)  {
+ 		UInt_t tdc1bar = TMath::Nint(tdc_paddles[ip][0][1][tdc1_ihit]) - 1;
+		Double_t tdc1val = tdc_values[ip][0][0][tdc1_ihit];
+		for(Int_t tdc2_ihit = 0; tdc2_ihit < ntdchits[ip][1][1]; tdc2_ihit++)  {
+		  UInt_t tdc2bar = TMath::Nint(tdc_paddles[ip][1][1][tdc2_ihit]) - 1;
+		  Double_t tdc2val =tdc_values[ip][1][0][tdc2_ihit];
+		  //                  cout << iev << " " << tdc1_ihit << " " << tdc1val << " " << tdc1bar << " tdc 2 = " << tdc2_ihit << " " << tdc2val   << " " << tdc2bar << endl;
+		  if ( tdc2bar == tdc1bar) htdc_tdc[ip*MAXBARS+tdc1bar]->Fill(tdc1val,tdc2val);
+                  if ( ip==3 && tdc2bar == tdc1bar) tdcbar_save=tdc2bar;
+		}
+		}
+	}
+        for(UInt_t ip = 0; ip < NPLANES; ip++) {
+		//
+		for(Int_t adc1_ihit = 0; adc1_ihit < nadchits[ip][0][0]; adc1_ihit++)  {
+ 		UInt_t adc1bar = TMath::Nint(adc_paddles[ip][0][0][adc1_ihit]) - 1;
+		Double_t adc1val = int_values[ip][0][2][adc1_ihit]*adcbit_to_pC;
+		Double_t adc1pval = amp_values[ip][0][4][adc1_ihit];
+		Double_t adc1tval = ptraw_values[ip][0][6][adc1_ihit];
+		for(Int_t adc2_ihit = 0; adc2_ihit < nadchits[ip][1][0]; adc2_ihit++)  {
+		  UInt_t adc2bar = TMath::Nint(adc_paddles[ip][1][0][adc2_ihit]) - 1;
+		  Double_t adc2val =int_values[ip][1][2][adc2_ihit]*adcbit_to_pC;
+		  Double_t adc2pval =amp_values[ip][1][4][adc2_ihit];
+		  Double_t adc2tval =ptraw_values[ip][1][6][adc2_ihit];
+		  //            cout << iev << " " << adc1_ihit << " " << adc1tval << " " << adc1bar << " adc 2 = " << adc2_ihit << " " << adc2tval   << " " << adc2bar << endl;
+		  if ( adc2bar == adc1bar ) hadc_adc[ip*MAXBARS+adc1bar]->Fill(adc1pval*.244*2,adc2pval*.244*2);
+		  if ( adc2bar == adc1bar ) hadcint_adcint[ip*MAXBARS+adc1bar]->Fill(adc1val,adc2val);
+		  if ( adc2bar == adc1bar) hatdc_atdc[ip*MAXBARS+adc1bar]->Fill(adc1tval,adc2tval);
+		}
+		}
+	}
+    //
+
+     //
+     for(UInt_t ip = 0; ip < NPLANES; ip++) {
+      for(UInt_t iside = 0; iside < NSIDES; iside++) {
+	//
+	      UInt_t hindex_base = ip*NSIDES*MAXBARS+iside*MAXBARS;
+		for(Int_t tdc1_ihit = 0; tdc1_ihit < ntdchits[ip][iside][1]; tdc1_ihit++)  {
+ 		UInt_t tdc1bar = TMath::Nint(tdc_paddles[ip][iside][1][tdc1_ihit]) - 1;
+		Double_t tdc1val = tdc_values[ip][0][0][tdc1_ihit];
+		for(Int_t adc2_ihit = 0; adc2_ihit < nadchits[ip][iside][0]; adc2_ihit++)  {
+		  UInt_t adc2bar = TMath::Nint(adc_paddles[ip][iside][0][adc2_ihit]) - 1;
+		  Double_t adc2val =int_values[ip][iside][2][adc2_ihit];
+		  //                  cout << iev << " " << tdc1_ihit << " " << tdc1val << " " << tdc1bar << " tdc 2 = " << tdc2_ihit << " " << tdc2val   << " " << tdc2bar << endl;
+		  if (tdc1bar==adc2bar) htdc_adc[hindex_base+adc2bar]->Fill(tdc1val,adc2val*adcbit_to_pC);
+		}
+		}
+	//
+      }
+     }
+    
+  }
+  return;
+}
+
+void rawdraw_2d_hhodo(TString histname) {
+
+  TH1F* h;
+
+  h = (TH1F*) gDirectory->Get(histname);
+  if(!h) {
+    UserScript();
+    h = (TH1F*) gDirectory->Get(histname);
+    if(!h) {
+      cout << "User histogram " << histname << " not found" << endl;
+      exit(1);
+    }
+  }
+  TLine *pline = new TLine(0,30.,800.,30.);
+  TLine *pline2 = new TLine(30,0.,30.,800.);
+  // cout << histname.Contains("adcpeak") << endl;
+  h->SetStats(0);
+  h->Draw("colz");
+  if (histname.Contains("adcpeak")) {
+    pline->Draw();
+    pline->SetLineColor(2);
+    pline->SetLineWidth(3);
+    pline2->Draw();
+    pline2->SetLineColor(2);
+    pline2->SetLineWidth(3);
+    h->GetXaxis()->SetTitleOffset(.6);
+    h->GetXaxis()->SetTitleSize(0.08);
+    h->GetYaxis()->SetTitleOffset(.6);
+    h->GetYaxis()->SetTitleSize(0.08);
+  }
+  if (histname.Contains("adcint")) {
+    h->GetXaxis()->SetTitleOffset(.6);
+    h->GetXaxis()->SetTitleSize(0.08);
+    h->GetYaxis()->SetTitleOffset(.6);
+    h->GetYaxis()->SetTitleSize(0.08);
+  }
+}
+
diff --git a/onlineGUI/Macros/rawdraw_2d_phodo.C b/onlineGUI/Macros/rawdraw_2d_phodo.C
new file mode 100644
index 00000000..c9232e0f
--- /dev/null
+++ b/onlineGUI/Macros/rawdraw_2d_phodo.C
@@ -0,0 +1,377 @@
+// UserScript.C
+//
+// Helper macro to build additional histograms
+
+void UserScript()
+{
+  const UInt_t NPLANES  = 4;
+  const UInt_t NSIDES   = 2;
+  const UInt_t MAXBARS  = 21;  // FIX ME: Parameter should be 16
+  const UInt_t NSIGNALS = 2;
+  const UInt_t NADCSIGNALS = 7;
+  const UInt_t NTDCSIGNALS = 2;
+  const UInt_t MAXHITS=128*16;
+
+  const TString SPECTROMETER = "P";
+  const TString DETECTOR = "hod";
+
+  const TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"};
+  const UInt_t  nbars[NPLANES] = {13, 13, 14, 21};
+  const TString sides[NSIDES] = {"neg", "pos"};
+  const TString signals[NSIGNALS] = {"Adc", "Tdc"};
+  const TString adc_signals[NADCSIGNALS] = {"Ped", "PedRaw", "PulseInt", "PulseIntRaw", 
+					    "PulseAmp", "PulseAmpRaw", "PulseTimeRaw"};
+  const TString tdc_signals[NTDCSIGNALS] = {"Time", "TimeRaw"};
+  
+  Double_t adcbit_to_pC = 1.0/(50*4096)*4*1000. ;// 1V/(50 Ohms)/4096*4ns* = .020 pC
+  Double_t adcpeak_to_mV = 1.0/4096.*1000;// 1.0V per 4096 bits
+  Double_t fac_for_disc[4]= {2.0,2.,2.,1.};// Factor to have ADC at FADC match signal at discriminatir assuming split of 2/3 to 1/3( 2Y plane has linear FI/FO not a splitter)
+  cout << adcbit_to_pC << endl;
+  Int_t nadchits[NPLANES][NSIDES];
+  Int_t ntdchits[NPLANES][NSIDES];
+
+  Double_t adc_paddles[NPLANES][NSIDES][MAXHITS];
+  Double_t tdc_paddles[NPLANES][NSIDES][MAXHITS];
+
+  Double_t adc_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS];
+  Double_t tdc_values[NPLANES][NSIDES][NTDCSIGNALS][MAXHITS];
+
+  TH2F* htdc_adc[NPLANES*NSIDES*MAXBARS];
+  TH2F* htdc_dis[NPLANES*MAXBARS][2];
+  Int_t dis_bin[4]={13,13,13,14};
+  Double_t dis_min[4];
+  Double_t dis_max[4];
+  Double_t dis_center_pad1[4]={-33.75,-56.25,-33.75,-56.25};
+  Double_t dis_sign[4]={1.,1.,1.,1.};
+  Double_t dis_space=7.5;
+  Int_t pair_pl[4]={1,0,0,2};
+  Double_t dis_tdc_min[4]={-1600.,-1700.,-1800.,-1900.};
+  Double_t dis_tdc_max[4]={-1100.,-1200.,-1400.,-1100.};
+  const TString opp_plane[4] = {";Y1 plane paddle number; Tdc (.1/chan)",";X1 plane paddle number;Tdc (.1/chan) ",";X1 plane paddle number;Tdc (.1/chan) ",";X2 plane paddle number;Tdc (.1/chan) "};
+  Double_t htdc_tdc_min1[4]={-1600.,-1700.,-1800.,-1900.};
+  Double_t htdc_tdc_max1[4]={-1100.,-1300.,-1400.,-1100.};
+  Double_t htdc_tdc_min2[4]={-1500.,-1700.,-1800.,-1900.};
+  Double_t htdc_tdc_max2[4]={-1200.,-1300.,-1400.,-1100.};
+  Int_t htdc_tdc_bin1[4];
+  Int_t htdc_tdc_bin2[4];
+  Double_t htdc_adc_min1[4]={-1500.,-1700.,-1800.,-1900.};
+  Double_t htdc_adc_max1[4]={-1200.,-1300.,-1400.,-1100.};
+  Double_t htdc_adc_min2[4]={0.,0.,0.,0.};
+  Double_t htdc_adc_max2[4]={250.,250.,250.,250.};
+  Int_t htdc_adc_bin1[4];
+  Int_t htdc_adc_bin2[4];
+  TH2F* htdc_tdc[NPLANES*MAXBARS];
+  TH2F* hadc_adc[NPLANES*MAXBARS];
+  TH2F* hadcint_adcint[NPLANES*MAXBARS];
+  TH2F* hadc_adc_cut[NPLANES*MAXBARS];
+  TH2F* hadcint_adcint_cut[NPLANES*MAXBARS];
+  TH2F* hatdc_atdc[NPLANES*MAXBARS];
+  TH2F* hadc_atdc[NPLANES*NSIDES*MAXBARS];
+  TH2F* hnhits_negtdc_paddle[NPLANES];
+  TH2F* hnhits_postdc_paddle[NPLANES];
+  Int_t adc_ihit, tdc_ihit;
+
+  TTree *T=(TTree*)gDirectory->Get("T");
+  //
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	      TString h2dttitle= "Neg TDC nhits vs paddle Plane "+plane_names[ip]+"; Paddle ; Nhits ";
+	      TString h2dtname="uh1dnegtdcNhitsPad"+plane_names[ip];
+              hnhits_negtdc_paddle[ip]= new TH2F(h2dtname,h2dttitle,nbars[ip],1,nbars[ip]+1,10,0,10);
+	      TString h2dttitle= "Pos TDC nhits vs paddle Plane "+plane_names[ip]+"; Paddle ; Nhits ";
+	      TString h2dtname="uh1dpostdcNhitsPad"+plane_names[ip];
+              hnhits_postdc_paddle[ip]= new TH2F(h2dtname,h2dttitle,nbars[ip],1,nbars[ip]+1,10,0,10);
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      TString i2dbarname = Form("%d",ibar+1);
+	      TString h2dttitle= "TDC 0.1ns/chan "+plane_names[ip]+i2dbarname+"; Neg ; Pos ";
+	      TString h2dtname="uh2dtdc"+plane_names[ip]+i2dbarname;
+              htdc_tdc_bin1[ip]=(htdc_tdc_max1[ip]-htdc_tdc_min1[ip])/10.;
+              htdc_tdc_bin2[ip]=(htdc_tdc_max2[ip]-htdc_tdc_min2[ip])/10.;
+              htdc_tdc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,htdc_tdc_bin1[ip],htdc_tdc_min1[ip],htdc_tdc_max1[ip],htdc_tdc_bin2[ip],htdc_tdc_min2[ip],htdc_tdc_max2[ip]);
+	      TString h2dttitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+opp_plane[ip];
+	      TString h2dtname="uh2dtdcvdisneg"+plane_names[ip]+i2dbarname;
+	      htdc_dis[ip*MAXBARS+ibar][0]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],1,dis_bin[ip]+1,(dis_tdc_max[ip]-dis_tdc_min[ip])/10,dis_tdc_min[ip],dis_tdc_max[ip]);
+	      TString h2dttitle= "Pos PMT Pad "+plane_names[ip]+i2dbarname+opp_plane[ip];
+	      TString h2dtname="uh2dtdcvdispos"+plane_names[ip]+i2dbarname;
+	      htdc_dis[ip*MAXBARS+ibar][1]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],1,dis_bin[ip]+1,(dis_tdc_max[ip]-dis_tdc_min[ip])/10,dis_tdc_min[ip],dis_tdc_max[ip]);
+	    }
+  }
+  //
+  //
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      TString i2dbarname = Form("%d",ibar+1);
+	      TString h2dttitle= "ADC Peak Amp "+plane_names[ip]+i2dbarname+"; Neg (mV); Pos (mV)";
+	      TString h2dtname="uh2dadcpeak"+plane_names[ip]+i2dbarname;
+	      //             hadc_adc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,500,-200,5800,500,-200,5800.);
+	                 hadc_adc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,160,0,800,160,0,800.);
+	      TString h2dtname="uh2dadcpeakcut"+plane_names[ip]+i2dbarname;
+	      //             hadc_adc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,500,-200,5800,500,-200,5800.);
+	                 hadc_adc_cut[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,160,0,800,160,0,800.);
+	      TString h2dttitle= "ADC Int Amp "+plane_names[ip]+i2dbarname+"; Neg (pC); Pos (pC)";
+	      TString h2dtname="uh2dadcint"+plane_names[ip]+i2dbarname;
+	                 hadcint_adcint[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,50,0,100,50,0,100.);
+	      TString h2dtname="uh2dadcintcut"+plane_names[ip]+i2dbarname;
+	                 hadcint_adcint_cut[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,50,0,100,50,0,100.);
+	    }
+  }
+  //
+  //
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      TString i2dbarname = Form("%d",ibar+1);
+	      TString h2dttitle= "h2dadctdc"+plane_names[ip]+i2dbarname;
+	      TString h2dtname="uh2dadctdc"+plane_names[ip]+i2dbarname;
+              hatdc_atdc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,100,1000,2000,100,1000,2000.);
+	    }
+  }
+  //
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+    for(UInt_t iside = 0; iside < NSIDES; iside++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      UInt_t h2dindex = ip*NSIDES*MAXBARS+iside*MAXBARS+ibar;
+	      TString i2dbarname = Form("%d",ibar+1);
+	      TString h2dtitle= "ADC peak (mV) vs TDC (0.1ns/chan) "+plane_names[ip]+i2dbarname+sides[iside];
+	      TString h2dname="uh2d"+plane_names[ip]+i2dbarname+sides[iside];
+	      TString h2datitle= "h2dadcAtdc"+plane_names[ip]+i2dbarname+sides[iside];
+	      TString h2daname="uh2dadcAtdc"+plane_names[ip]+i2dbarname+sides[iside];
+              if ( h2dindex < NPLANES*NSIDES*MAXBARS) {
+              htdc_adc_bin1[ip]=(htdc_adc_max1[ip]-htdc_adc_min1[ip])/10.;
+              htdc_adc_bin2[ip]=(htdc_adc_max2[ip]-htdc_adc_min2[ip])/2.;
+		htdc_adc[h2dindex]= new TH2F(h2dname,h2dtitle,htdc_adc_bin1[ip],htdc_adc_min1[ip],htdc_adc_max1[ip],htdc_adc_bin2[ip],htdc_adc_min2[ip],htdc_adc_max2[ip]);
+              hadc_atdc[h2dindex]= new TH2F(h2daname,h2datitle,50,0,100.,300,1000,2000.);
+	      //	      cout << " index = " << h2dindex << " " << h2dname << endl;
+              } else {
+                cout << " index = " << h2dindex << " too large" << endl;
+	      }
+	    }
+      for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) {
+
+	if(signals[isignal] == "Adc") {  
+	  TString adc_base_name = SPECTROMETER+"."+DETECTOR+"."+
+	    plane_names[ip]+"."+sides[iside]+signals[isignal];
+	  TString adc_ndata_name = "Ndata."+adc_base_name+"Counter";
+	  T->SetBranchAddress(adc_ndata_name, &nadchits[ip][iside]);
+	  TString adc_paddle_name = adc_base_name+"Counter";
+	  T->SetBranchAddress(adc_paddle_name, &adc_paddles[ip][iside][0]);
+	  for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) {
+	    if (adc_signals[iadcsignal] == "Ped") {
+	      TString pedlist_name = adc_base_name+"Ped";
+	      T->SetBranchAddress(pedlist_name, &adc_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PedRaw") {
+	      TString pedrawlist_name = adc_base_name+"PedRaw";
+	      T->SetBranchAddress(pedrawlist_name, &adc_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseInt") {   
+	      TString intlist_name = adc_base_name+"PulseInt";
+	      T->SetBranchAddress(intlist_name, &adc_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseIntRaw") {
+	      TString intrawlist_name = adc_base_name+"PulseIntRaw";
+	      T->SetBranchAddress(intrawlist_name, &adc_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseAmp") {   
+	      TString amplist_name = adc_base_name+"PulseAmp";
+	      T->SetBranchAddress(amplist_name, &adc_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseAmpRaw") {
+	      TString amprawlist_name = adc_base_name+"PulseAmpRaw";
+	      T->SetBranchAddress(amprawlist_name, &adc_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseTimeRaw") {
+	      TString ptrawlist_name = adc_base_name+"PulseTimeRaw";
+	      T->SetBranchAddress(ptrawlist_name, &adc_values[ip][iside][iadcsignal][0]);
+	    }
+	  }
+	}
+	
+	if(signals[isignal] == "Tdc") {  
+	  TString tdc_base_name = SPECTROMETER+"."+DETECTOR+"."+
+	    plane_names[ip]+"."+sides[iside]+signals[isignal];
+	  TString tdc_ndata_name = "Ndata."+tdc_base_name+"Counter";
+	  T->SetBranchAddress(tdc_ndata_name, &ntdchits[ip][iside]);
+	  TString tdc_paddle_name = tdc_base_name+"Counter";
+	  T->SetBranchAddress(tdc_paddle_name, &tdc_paddles[ip][iside][0]);
+	  for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) {
+	    if (tdc_signals[itdcsignal] == "Time") {
+	      TString tdclist_name = tdc_base_name+"Time";
+	      T->SetBranchAddress(tdclist_name, &tdc_values[ip][iside][itdcsignal][0]);
+	    }
+	    if (tdc_signals[itdcsignal] == "TimeRaw") {
+	      TString tdcrawlist_name = tdc_base_name+"TimeRaw";
+	      T->SetBranchAddress(tdcrawlist_name, &tdc_values[ip][iside][itdcsignal][0]);
+	    }
+	  }
+	}
+
+      }
+    }
+  }
+
+  // Loop over the events, filling the histograms
+  //  cout << " looping over data " << endl;
+  Double_t good_pad[4];
+  Double_t good_adc[4][2];
+  Bool_t good_neg[4][MAXBARS],good_pos[4][MAXBARS];
+  for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) {
+    if (iev%1000==0) cout << " iev = " << iev << endl;
+    //       cout << " get entry = " << iev << endl;
+    T->GetEntry(iev);
+    Double_t tdcbarx1_save=-1;
+    Double_t tdcbarx2_save=-10;
+    Double_t tdcbary1_save=-1;
+    Double_t tdcbary2_save=-10;
+     /*
+      for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	  Double_t nhits_neg[21]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
+	  Double_t nhits_pos[21]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
+ 		for(Int_t tdc3_ihit = 0; tdc3_ihit < ntdchits[ip][0]; tdc3_ihit++)  {
+ 		UInt_t tdc3bar = TMath::Nint(tdc_paddles[ip][0][1][tdc3_ihit]) - 1;
+                nhits_neg[tdc3bar]++;
+		}
+		for(Int_t tdc4_ihit = 0; tdc4_ihit < ntdchits[ip][1]; tdc4_ihit++)  {
+ 		UInt_t tdc4bar = TMath::Nint(tdc_paddles[ip][1][1][tdc4_ihit]) - 1;
+                nhits_pos[tdc4bar]++;
+		}
+                for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+ 		  hnhits_negtdc_paddle[ip]->Fill(float(ibar+1),nhits_neg[ibar]);
+ 		  hnhits_postdc_paddle[ip]->Fill(float(ibar+1),nhits_pos[ibar]);
+		}
+       }
+    */
+    //    cout << " start nplane loop" << endl;
+    //   if (ntdchits[0][0]==1&&ntdchits[0][1]==1&&ntdchits[1][0]==1&&ntdchits[1][1]==1&&ntdchits[2][0]==1&&ntdchits[2][1]==1) {
+      if (ntdchits[0][0]==1&&ntdchits[0][1]==1) {
+    // if (1==1) {
+       for(UInt_t ip = 0; ip < NPLANES; ip++) {
+	 //	 	        cout << iev << " " << ip << " " << ntdchits[ip][0]<< " " << ntdchits[ip][1] << endl;
+		for(Int_t tdc1_ihit = 0; tdc1_ihit < ntdchits[ip][0]; tdc1_ihit++)  {
+ 		UInt_t tdc1bar = TMath::Nint(tdc_paddles[ip][0][tdc1_ihit]) - 1;
+		Double_t tdc1val = tdc_values[ip][0][0][tdc1_ihit];
+		for(Int_t tdc2_ihit = 0; tdc2_ihit < ntdchits[ip][1]; tdc2_ihit++)  {
+		  UInt_t tdc2bar = TMath::Nint(tdc_paddles[ip][1][tdc2_ihit]) - 1;
+		  Double_t tdc2val =tdc_values[ip][1][0][tdc2_ihit];
+		  //		                cout << iev << " " << tdc1_ihit << " " << tdc1val << " " << tdc1bar << " tdc 2 = " << tdc2_ihit << " " << tdc2val   << " " << tdc2bar << endl;
+		  if ( tdc2bar == tdc1bar) htdc_tdc[ip*MAXBARS+tdc1bar]->Fill(tdc1val,tdc2val);
+                  if ( ip==0 && tdc2bar == tdc1bar) tdcbarx1_save=tdc2bar;
+                  if ( ip==1 && tdc2bar == tdc1bar) tdcbary1_save=tdc2bar;
+                  if ( ip==2 && tdc2bar == tdc1bar) tdcbarx2_save=tdc2bar;
+                  if ( ip==3 && tdc2bar == tdc1bar) tdcbary2_save=tdc2bar;
+		}
+		}
+		  //
+		for(Int_t tdc1_ihit = 0; tdc1_ihit < ntdchits[ip][0]; tdc1_ihit++)  {
+ 		UInt_t tdc1bar = TMath::Nint(tdc_paddles[ip][0][tdc1_ihit]) - 1;
+		Double_t tdc1val = tdc_values[ip][0][0][tdc1_ihit];
+		for(Int_t tdc3_ihit = 0; tdc3_ihit < ntdchits[pair_pl[ip]][0]; tdc3_ihit++)  {
+ 		UInt_t tdc3bar = TMath::Nint(tdc_paddles[pair_pl[ip]][0][tdc3_ihit]) - 1;
+		for(Int_t tdc4_ihit = 0; tdc4_ihit < ntdchits[pair_pl[ip]][1]; tdc4_ihit++)  {
+		  UInt_t tdc4bar = TMath::Nint(tdc_paddles[pair_pl[ip]][1][tdc4_ihit]) - 1;
+		  if (tdc3bar == tdc4bar) htdc_dis[ip*MAXBARS+tdc1bar][0]->Fill(float(tdc4bar+1),tdc1val);
+		}}		  
+		}
+		//
+		  //
+		for(Int_t tdc2_ihit = 0; tdc2_ihit < ntdchits[ip][1]; tdc2_ihit++)  {
+ 		UInt_t tdc2bar = TMath::Nint(tdc_paddles[ip][1][tdc2_ihit]) - 1;
+		Double_t tdc2val = tdc_values[ip][1][0][tdc2_ihit];
+		for(Int_t tdc3_ihit = 0; tdc3_ihit < ntdchits[pair_pl[ip]][0]; tdc3_ihit++)  {
+ 		UInt_t tdc3bar = TMath::Nint(tdc_paddles[pair_pl[ip]][0][tdc3_ihit]) - 1;
+		for(Int_t tdc4_ihit = 0; tdc4_ihit < ntdchits[pair_pl[ip]][1]; tdc4_ihit++)  {
+		  UInt_t tdc4bar = TMath::Nint(tdc_paddles[pair_pl[ip]][1][tdc4_ihit]) - 1;
+		  if (tdc3bar == tdc4bar) htdc_dis[ip*MAXBARS+tdc2bar][1]->Fill(float(tdc4bar+1),tdc2val);
+		}}		  
+		}
+		//
+	}
+    
+        for(UInt_t ip = 0; ip < NPLANES; ip++) {
+		//
+		for(Int_t adc1_ihit = 0; adc1_ihit < nadchits[ip][0]; adc1_ihit++)  {
+ 		UInt_t adc1bar = TMath::Nint(adc_paddles[ip][0][adc1_ihit]) - 1;
+		Double_t adc1val = adc_values[ip][0][2][adc1_ihit]*adcbit_to_pC;
+		Double_t adc1pval = adc_values[ip][0][4][adc1_ihit]*adcpeak_to_mV*fac_for_disc[ip];
+		Double_t adc1tval = adc_values[ip][0][6][adc1_ihit];
+		for(Int_t adc2_ihit = 0; adc2_ihit < nadchits[ip][1]; adc2_ihit++)  {
+		  UInt_t adc2bar = TMath::Nint(adc_paddles[ip][1][adc2_ihit]) - 1;
+		  Double_t adc2val =adc_values[ip][1][2][adc2_ihit]*adcbit_to_pC;
+		  Double_t adc2pval =adc_values[ip][1][4][adc2_ihit]*adcpeak_to_mV*fac_for_disc[ip];
+		  Double_t adc2tval =adc_values[ip][1][6][adc2_ihit];
+		  if (ip*MAXBARS+adc1bar > NPLANES*MAXBARS)           cout << iev << " " << adc1_ihit << " " << adc1tval << " " << adc1bar << " adc 2 = " << adc2_ihit << " " << adc2tval   << " " << adc2bar << endl;
+		  //		          cout << iev << " " << adc1_ihit << " " << adc1tval << " " << adc1bar << " adc 2 = " << adc2_ihit << " " << adc2tval   << " " << adc2bar << endl;
+		  if ( adc2bar == adc1bar) hadc_adc[ip*MAXBARS+adc1bar]->Fill(adc1pval,adc2pval);
+		  if ( adc2bar == adc1bar && TMath::Abs(tdcbarx1_save-tdcbarx2_save)<2) hadc_adc_cut[ip*MAXBARS+adc1bar]->Fill(adc1pval,adc2pval);
+		  if ( adc2bar == adc1bar) hadcint_adcint[ip*MAXBARS+adc1bar]->Fill(adc1val,adc2val);
+		  if ( adc2bar == adc1bar && TMath::Abs(tdcbarx1_save-tdcbarx2_save)<2) hadcint_adcint_cut[ip*MAXBARS+adc1bar]->Fill(adc1val,adc2val);
+		  if ( adc2bar == adc1bar) hatdc_atdc[ip*MAXBARS+adc1bar]->Fill(adc1tval,adc2tval);
+		}
+		}
+	}
+    //
+
+     //
+     for(UInt_t ip = 0; ip < NPLANES; ip++) {
+      for(UInt_t iside = 0; iside < NSIDES; iside++) {
+	//
+	      UInt_t hindex_base = ip*NSIDES*MAXBARS+iside*MAXBARS;
+	      //		cout << " pl = " << ip+1 << " side = " << iside << " number of adc hits = " << nadchits[ip][iside] << " number of tdc hits = " << nadchits[ip][iside] << endl;
+		for(Int_t tdc1_ihit = 0; tdc1_ihit < ntdchits[ip][iside]; tdc1_ihit++)  {
+ 		UInt_t tdc1bar = TMath::Nint(tdc_paddles[ip][iside][tdc1_ihit]) - 1;
+		Double_t tdc1val = tdc_values[ip][iside][0][tdc1_ihit];
+		for(Int_t adc2_ihit = 0; adc2_ihit < nadchits[ip][iside]; adc2_ihit++)  {
+		  UInt_t adc2bar = TMath::Nint(adc_paddles[ip][iside][adc2_ihit]) - 1;
+		  Double_t adc2val =adc_values[ip][iside][4][adc2_ihit]*adcpeak_to_mV;
+		  //	  Double_t adc2val =adc_values[ip][iside][2][adc2_ihit]*adcbit_to_pC;
+		 
+		  if (hindex_base+adc2bar > NPLANES*NSIDES*MAXBARS)                    cout  << " adc2bar too large " << tdc1_ihit << " " << tdc1val << " " << tdc1bar << " adc 2 = " << adc2_ihit << " " << adc2val   << " " << adc2bar << endl;
+		  //	                          cout << iev << " " << tdc1_ihit << " " << tdc1val << " " << tdc1bar << " adc 2 = " << adc2_ihit << " " << adc2val   << " " << adc2bar << endl;
+		  if (tdc1bar==adc2bar) htdc_adc[hindex_base+adc2bar]->Fill(tdc1val,adc2val);
+		}
+		}
+	//
+      }
+     }
+    }
+     //     cout  << " finish event = " << iev << endl; 
+  }
+  return;
+}
+
+void rawdraw_2d_phodo(TString histname) {
+
+  TH1F* h;
+
+  h = (TH1F*) gDirectory->Get(histname);
+  if(!h) {
+    UserScript();
+    h = (TH1F*) gDirectory->Get(histname);
+    if(!h) {
+      cout << "User histogram " << histname << " not found" << endl;
+      exit(1);
+    }
+  }
+  TLine *pline = new TLine(0,30.,800.,30.);
+  TLine *pline2 = new TLine(30,0.,30.,800.);
+  // cout << histname.Contains("adcpeak") << endl;
+  h->SetStats(0);
+  h->Draw("colz");
+  if (histname.Contains("adcpeak")) {
+    pline->Draw();
+    pline->SetLineColor(2);
+    pline->SetLineWidth(3);
+    pline2->Draw();
+    pline2->SetLineColor(2);
+    pline2->SetLineWidth(3);
+    h->GetXaxis()->SetTitleOffset(.6);
+    h->GetXaxis()->SetTitleSize(0.08);
+    h->GetYaxis()->SetTitleOffset(.6);
+    h->GetYaxis()->SetTitleSize(0.08);
+  }
+  if (histname.Contains("adcint")) {
+    h->GetXaxis()->SetTitleOffset(.6);
+    h->GetXaxis()->SetTitleSize(0.08);
+    h->GetYaxis()->SetTitleOffset(.6);
+    h->GetYaxis()->SetTitleSize(0.08);
+  }
+}
+
diff --git a/onlineGUI/Macros/rawdraw_hhodo.C b/onlineGUI/Macros/rawdraw_hhodo.C
new file mode 100755
index 00000000..56d013a3
--- /dev/null
+++ b/onlineGUI/Macros/rawdraw_hhodo.C
@@ -0,0 +1,349 @@
+// UserScript.C
+//
+// Helper macro to build additional histograms
+
+void UserScript()
+{
+
+  const UInt_t NPLANES  = 4;
+  const UInt_t NSIDES   = 2;
+  const UInt_t MAXBARS  = 32;  // FIX ME: Parameter should be 16
+  const UInt_t NSIGNALS = 2;
+  const UInt_t NADCSIGNALS = 7;
+  const UInt_t NTDCSIGNALS = 2;
+
+  const TString SPECTROMETER = "H";
+  const TString DETECTOR = "hod";
+
+  const TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"};
+  const UInt_t  nbars[NPLANES] = {16, 10, 16, 10};
+  const TString sides[NSIDES] = {"neg", "pos"};
+  const TString signals[NSIGNALS] = {"Adc", "Tdc"};
+  const TString adc_signals[NADCSIGNALS] = {"Ped", "PedRaw", "PulseInt", "PulseIntRaw", 
+					    "PulseAmp", "PulseAmpRaw", "PulseTimeRaw"};
+  const TString tdc_signals[NTDCSIGNALS] = {"Time", "TimeRaw"};
+  
+  const Double_t ADCPED_MIN   = 400.0;
+  const Double_t ADCPED_MAX   = 600.0;
+  const Int_t    ADCPED_NBINS = 200;
+
+  const Double_t ADCPEDRAW_MIN   = 1700.0;
+  const Double_t ADCPEDRAW_MAX   = 2300.0;
+  const Int_t    ADCPEDRAW_NBINS = 600;
+
+  const Double_t ADCINT_MIN   = 0.0;
+  const Double_t ADCINT_MAX   = 25000.0;
+  const Int_t    ADCINT_NBINS = 2500;
+
+  const Double_t ADCINTRAW_MIN   = 0.0;
+  const Double_t ADCINTRAW_MAX   = 25000.0;
+  const Int_t    ADCINTRAW_NBINS = 2500;
+
+  const Double_t ADCAMP_MIN   = 0.0;
+  const Double_t ADCAMP_MAX   = 4100.0;
+  const Int_t    ADCAMP_NBINS = 410;
+
+  const Double_t ADCAMPRAW_MIN   = 0.0;
+  const Double_t ADCAMPRAW_MAX   = 4100.0;
+  const Int_t    ADCAMPRAW_NBINS = 410;
+
+  const Double_t ADCPTRAW_MIN   = 500.0;
+  const Double_t ADCPTRAW_MAX   = 2500.0;
+  const Int_t    ADCPTRAW_NBINS = 200;
+
+  const Double_t TDC_MIN   = -1200.0;
+  const Double_t TDC_MAX   = -800.0;
+  const Int_t    TDC_NBINS = 40;
+
+  const Double_t RAWTDC_MIN   = 3250.0;
+  const Double_t RAWTDC_MAX   = 4250.0;
+  const Int_t    RAWTDC_NBINS = 100;
+
+  Int_t nadchits[NPLANES][NSIDES][NSIGNALS];
+  Int_t ntdchits[NPLANES][NSIDES][NSIGNALS];
+
+  Double_t adc_paddles[NPLANES][NSIDES][NSIGNALS][MAXBARS];
+  Double_t tdc_paddles[NPLANES][NSIDES][NSIGNALS][MAXBARS];
+
+  Double_t ped_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+  Double_t pedraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+
+  Double_t int_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+  Double_t intraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+  
+  Double_t amp_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+  Double_t ampraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+  
+  Double_t ptraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+
+  Double_t tdc_values[NPLANES][NSIDES][NTDCSIGNALS][MAXBARS];
+  Double_t tdcraw_values[NPLANES][NSIDES][NTDCSIGNALS][MAXBARS];
+
+  TH1F* hadc[NPLANES*NSIDES*NADCSIGNALS*MAXBARS];
+  TH1F* htdc[NPLANES*NSIDES*NTDCSIGNALS*MAXBARS];
+
+  Int_t adc_ihit, tdc_ihit;
+
+  TTree *T=(TTree*)gDirectory->Get("T");
+
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+    for(UInt_t iside = 0; iside < NSIDES; iside++) {
+      for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) {
+
+	if(signals[isignal] == "Adc") {  
+	  TString adc_base_name = SPECTROMETER+"."+DETECTOR+"."+
+	    plane_names[ip]+"."+sides[iside]+signals[isignal];
+	  TString adc_ndata_name = "Ndata."+adc_base_name+"Counter";
+	  T->SetBranchAddress(adc_ndata_name, &nadchits[ip][iside][isignal]);
+	  TString adc_paddle_name = adc_base_name+"Counter";
+	  T->SetBranchAddress(adc_paddle_name, &adc_paddles[ip][iside][isignal][0]);
+	  for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) {
+	    if (adc_signals[iadcsignal] == "Ped") {
+	      TString pedlist_name = adc_base_name+"Ped";
+	      T->SetBranchAddress(pedlist_name, &ped_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PedRaw") {
+	      TString pedrawlist_name = adc_base_name+"PedRaw";
+	      T->SetBranchAddress(pedrawlist_name, &pedraw_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseInt") {   
+	      TString intlist_name = adc_base_name+"PulseInt";
+	      T->SetBranchAddress(intlist_name, &int_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseIntRaw") {
+	      TString intrawlist_name = adc_base_name+"PulseIntRaw";
+	      T->SetBranchAddress(intrawlist_name, &intraw_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseAmp") {   
+	      TString amplist_name = adc_base_name+"PulseAmp";
+	      T->SetBranchAddress(amplist_name, &amp_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseAmpRaw") {
+	      TString amprawlist_name = adc_base_name+"PulseAmpRaw";
+	      T->SetBranchAddress(amprawlist_name, &ampraw_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseTimeRaw") {
+	      TString ptrawlist_name = adc_base_name+"PulseTimeRaw";
+	      T->SetBranchAddress(ptrawlist_name, &ptraw_values[ip][iside][iadcsignal][0]);
+	    }
+	  }
+	}
+	
+	if(signals[isignal] == "Tdc") {  
+	  TString tdc_base_name = SPECTROMETER+"."+DETECTOR+"."+
+	    plane_names[ip]+"."+sides[iside]+signals[isignal];
+	  TString tdc_ndata_name = "Ndata."+tdc_base_name+"Counter";
+	  T->SetBranchAddress(tdc_ndata_name, &ntdchits[ip][iside][isignal]);
+	  TString tdc_paddle_name = tdc_base_name+"Counter";
+	  T->SetBranchAddress(tdc_paddle_name, &tdc_paddles[ip][iside][isignal][0]);
+	  for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) {
+	    if (tdc_signals[itdcsignal] == "Time") {
+	      TString tdclist_name = tdc_base_name+"Time";
+	      T->SetBranchAddress(tdclist_name, &tdc_values[ip][iside][itdcsignal][0]);
+	    }
+	    if (tdc_signals[itdcsignal] == "TimeRaw") {
+	      TString tdcrawlist_name = tdc_base_name+"TimeRaw";
+	      T->SetBranchAddress(tdcrawlist_name, &tdcraw_values[ip][iside][itdcsignal][0]);
+	    }
+	  }
+	}
+
+	if(signals[isignal] == "Adc") {
+	  for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      UInt_t hadcindex = ip*NSIDES*NADCSIGNALS*MAXBARS
+		+iside*NADCSIGNALS*MAXBARS+iadcsignal*MAXBARS+ibar;
+	      TString iadcbarname = Form("%d",ibar+1);
+	      TString adctitle= "hadc"+plane_names[ip]+iadcbarname+sides[iside]
+		+" "+adc_signals[iadcsignal];
+	      TString adcname="uhadc"+plane_names[ip]+iadcbarname+sides[iside]+
+		adc_signals[iadcsignal];
+
+	      if (adc_signals[iadcsignal] == "Ped") {
+		UInt_t   nadcbins = ADCPED_NBINS;
+		Double_t hadcmin  = ADCPED_MIN;
+		Double_t hadcmax  = ADCPED_MAX;
+	      }
+	      if (adc_signals[iadcsignal] == "PedRaw") {
+		UInt_t   nadcbins = ADCPEDRAW_NBINS;
+		Double_t hadcmin  = ADCPEDRAW_MIN;
+		Double_t hadcmax  = ADCPEDRAW_MAX;
+	      }
+	      if (adc_signals[iadcsignal] == "PulseInt") {
+		UInt_t   nadcbins = ADCINT_NBINS;
+		Double_t hadcmin  = ADCINT_MIN;
+		Double_t hadcmax  = ADCINT_MAX;
+	      }
+	      if (adc_signals[iadcsignal] == "PulseIntRaw") {
+		UInt_t   nadcbins = ADCINTRAW_NBINS;
+		Double_t hadcmin  = ADCINTRAW_MIN;
+		Double_t hadcmax  = ADCINTRAW_MAX;
+	      }
+	      if (adc_signals[iadcsignal] == "PulseAmp") {
+		UInt_t   nadcbins = ADCAMP_NBINS;
+		Double_t hadcmin  = ADCAMP_MIN;
+		Double_t hadcmax  = ADCAMP_MAX;
+	      }
+	      if (adc_signals[iadcsignal] == "PulseAmpRaw") {
+		UInt_t   nadcbins = ADCAMPRAW_NBINS;
+		Double_t hadcmin  = ADCAMPRAW_MIN;
+		Double_t hadcmax  = ADCAMPRAW_MAX;
+	      }
+	      if (adc_signals[iadcsignal] == "PulseTimeRaw") {
+		UInt_t   nadcbins = ADCPTRAW_NBINS;
+		Double_t hadcmin  = ADCPTRAW_MIN;
+		Double_t hadcmax  = ADCPTRAW_MAX;
+	      }
+	      hadc[hadcindex]=new TH1F(adcname, adctitle, nadcbins, hadcmin, hadcmax);
+	    }
+	  }
+	}
+
+	if(signals[isignal] == "Tdc") {
+	  for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      UInt_t htdcindex = ip*NSIDES*NTDCSIGNALS*MAXBARS
+		+iside*NTDCSIGNALS*MAXBARS+itdcsignal*MAXBARS+ibar;
+	      TString itdcbarname = Form("%d",ibar+1);
+	      TString tdctitle= "htdc"+plane_names[ip]+itdcbarname+sides[iside]
+		+" "+tdc_signals[itdcsignal];
+	      TString tdcname="uhtdc"+plane_names[ip]+itdcbarname+sides[iside]+
+		tdc_signals[itdcsignal];
+
+	      if (tdc_signals[itdcsignal] == "TimeRaw") {
+		UInt_t   ntdcbins = RAWTDC_NBINS;
+		Double_t htdcmin  = RAWTDC_MIN;
+		Double_t htdcmax  = RAWTDC_MAX;
+	      }
+	      if (tdc_signals[itdcsignal] == "Time") {
+		UInt_t   ntdcbins = TDC_NBINS;
+		Double_t htdcmin  = TDC_MIN;
+		Double_t htdcmax  = TDC_MAX;
+	      }
+	      htdc[htdcindex]=new TH1F(tdcname, tdctitle, ntdcbins, htdcmin, htdcmax);
+	    }
+	  }
+	}
+      }
+    }
+  }
+
+  // Loop over the events, filling the histograms
+  for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) {
+    T->GetEntry(iev);
+
+     for(UInt_t ip = 0; ip < NPLANES; ip++) {
+      for(UInt_t iside = 0; iside < NSIDES; iside++) {
+	for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) {
+     
+	  if(signals[isignal] == "Adc") {
+	    for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) {
+
+	      UInt_t hadcindex_base = ip*NSIDES*NADCSIGNALS*MAXBARS
+		+iside*NADCSIGNALS*MAXBARS+iadcsignal*MAXBARS;
+
+	      for(Int_t adc_ihit = 0; adc_ihit < nadchits[ip][iside][isignal]; adc_ihit++) {
+
+		UInt_t ibar = TMath::Nint(adc_paddles[ip][iside][isignal][adc_ihit]) - 1;
+
+		if (adc_signals[iadcsignal] == "Ped")
+		  Double_t pedval = ped_values[ip][iside][iadcsignal][adc_ihit];
+		if (adc_signals[iadcsignal] == "PedRaw")  
+		  Double_t pedrawval = pedraw_values[ip][iside][iadcsignal][adc_ihit];
+		if (adc_signals[iadcsignal] == "PulseInt")
+		  Double_t intval = int_values[ip][iside][iadcsignal][adc_ihit];
+		if (adc_signals[iadcsignal] == "PulseIntRaw")  
+		  Double_t intrawval = intraw_values[ip][iside][iadcsignal][adc_ihit];
+		if (adc_signals[iadcsignal] == "PulseAmp")
+		  Double_t ampval = amp_values[ip][iside][iadcsignal][adc_ihit];
+		if (adc_signals[iadcsignal] == "PulseAmpRaw")  
+		  Double_t amprawval = ampraw_values[ip][iside][iadcsignal][adc_ihit];
+		if (adc_signals[iadcsignal] == "PulseTimeRaw")  
+		  Double_t ptrawval = ptraw_values[ip][iside][iadcsignal][adc_ihit];
+		
+		UInt_t hadcindex = hadcindex_base + ibar;
+
+		// cout << "hadcindex = " << hadcindex << endl;
+
+                if (hadcindex < NPLANES*NSIDES*NADCSIGNALS*MAXBARS) {
+		  if (adc_signals[iadcsignal] == "Ped") {
+		    // cout << "pedval = " << pedval << endl;
+		    hadc[hadcindex]->Fill(pedval);
+		  }
+		  if (adc_signals[iadcsignal] == "PedRaw") {
+		    // cout << "pedrawval = " << pedrawval << endl;
+		    hadc[hadcindex]->Fill(pedrawval);
+		  }
+		  if (adc_signals[iadcsignal] == "PulseInt") {
+		    // cout << "intval = " << intval << endl;
+		    hadc[hadcindex]->Fill(intval);
+		  }
+		  if (adc_signals[iadcsignal] == "PulseIntRaw") {
+		    // cout << "intrawval = " << intrawval << endl;
+		    hadc[hadcindex]->Fill(intrawval);
+		  }
+		  if (adc_signals[iadcsignal] == "PulseAmp") {
+		    // cout << "ampval = " << ampval << endl;
+		    hadc[hadcindex]->Fill(ampval);
+		  }
+		  if (adc_signals[iadcsignal] == "PulseAmpRaw") {
+		    // cout << "amprawval = " << amprawval << endl;
+		    hadc[hadcindex]->Fill(amprawval);
+		  }
+		  if (adc_signals[iadcsignal] == "PulseTimeRaw") {
+		    // cout << "ptrawval = " << ptrawval << endl;
+		    hadc[hadcindex]->Fill(ptrawval);
+		  }
+		}
+	      }
+	    }
+	  }
+
+	  if(signals[isignal] == "Tdc") {
+	    for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) {
+
+	      UInt_t htdcindex_base = ip*NSIDES*NTDCSIGNALS*MAXBARS
+		+iside*NTDCSIGNALS*MAXBARS+itdcsignal*MAXBARS;
+
+	      for(Int_t tdc_ihit = 0; tdc_ihit < ntdchits[ip][iside][isignal]; tdc_ihit++) {
+
+		UInt_t ibar = TMath::Nint(tdc_paddles[ip][iside][isignal][tdc_ihit]) - 1;
+
+		Double_t tdcval = tdc_values[ip][iside][itdcsignal][tdc_ihit];
+		Double_t tdcrawval = tdcraw_values[ip][iside][itdcsignal][tdc_ihit];
+		UInt_t htdcindex = htdcindex_base + ibar;
+
+		if (tdc_signals[itdcsignal] == "Time") {
+		  // cout << "Time = " << tdcval << endl;
+		  htdc[htdcindex]->Fill(tdcval);
+		}
+		if (tdc_signals[itdcsignal] == "TimeRaw") {
+		  // cout << "RawTime = " << tdcrawval << endl;
+		  htdc[htdcindex]->Fill(tdcrawval);
+		}
+	      }
+	    }
+	  }
+	}
+      }
+    }
+  }
+  return;
+}
+
+void rawdraw_hhodo(TString histname) {
+
+  TH1F* h;
+
+  h = (TH1F*) gDirectory->Get(histname);
+  if(!h) {
+    UserScript();
+    h = (TH1F*) gDirectory->Get(histname);
+    if(!h) {
+      cout << "User histogram " << histname << " not found" << endl;
+      exit(1);
+    }
+  }
+  h->Draw();
+}
+
diff --git a/onlineGUI/Macros/rawdraw_phodo.C b/onlineGUI/Macros/rawdraw_phodo.C
new file mode 100755
index 00000000..077221f4
--- /dev/null
+++ b/onlineGUI/Macros/rawdraw_phodo.C
@@ -0,0 +1,349 @@
+// UserScript.C
+//
+// Helper macro to build additional histograms
+
+void UserScript()
+{
+
+  const UInt_t NPLANES  = 4;
+  const UInt_t NSIDES   = 2;
+  const UInt_t MAXBARS  = 100;  // FIX ME: Parameter should be 21
+  const UInt_t NSIGNALS = 2;
+  const UInt_t NADCSIGNALS = 7;
+  const UInt_t NTDCSIGNALS = 2;
+
+  const TString SPECTROMETER = "P";
+  const TString DETECTOR = "hod";
+
+  const TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"};
+  const UInt_t  nbars[NPLANES] = {13, 13, 14, 21};
+  const TString sides[NSIDES] = {"neg", "pos"};
+  const TString signals[NSIGNALS] = {"Adc", "Tdc"};
+  const TString adc_signals[NADCSIGNALS] = {"Ped", "PedRaw", "PulseInt", "PulseIntRaw", 
+					    "PulseAmp", "PulseAmpRaw", "PulseTimeRaw"};
+  const TString tdc_signals[NTDCSIGNALS] = {"Time", "TimeRaw"};
+  
+  const Double_t ADCPED_MIN   = 400.0;
+  const Double_t ADCPED_MAX   = 600.0;
+  const Int_t    ADCPED_NBINS = 200;
+
+  const Double_t ADCPEDRAW_MIN   = 1700.0;
+  const Double_t ADCPEDRAW_MAX   = 2300.0;
+  const Int_t    ADCPEDRAW_NBINS = 600;
+
+  const Double_t ADCINT_MIN   = 0.0;
+  const Double_t ADCINT_MAX   = 25000.0;
+  const Int_t    ADCINT_NBINS = 2500;
+
+  const Double_t ADCINTRAW_MIN   = 0.0;
+  const Double_t ADCINTRAW_MAX   = 25000.0;
+  const Int_t    ADCINTRAW_NBINS = 2500;
+
+  const Double_t ADCAMP_MIN   = 0.0;
+  const Double_t ADCAMP_MAX   = 4100.0;
+  const Int_t    ADCAMP_NBINS = 410;
+
+  const Double_t ADCAMPRAW_MIN   = 0.0;
+  const Double_t ADCAMPRAW_MAX   = 4100.0;
+  const Int_t    ADCAMPRAW_NBINS = 410;
+
+  const Double_t ADCPTRAW_MIN   = 500.0;
+  const Double_t ADCPTRAW_MAX   = 2500.0;
+  const Int_t    ADCPTRAW_NBINS = 200;
+
+  const Double_t TDC_MIN   = -1800.0;
+  const Double_t TDC_MAX   = -600.0;
+  const Int_t    TDC_NBINS = 120;
+
+  const Double_t RAWTDC_MIN   = 4000.0;
+  const Double_t RAWTDC_MAX   = 7000.0;
+  const Int_t    RAWTDC_NBINS = 300;
+
+  Int_t nadchits[NPLANES][NSIDES][NSIGNALS];
+  Int_t ntdchits[NPLANES][NSIDES][NSIGNALS];
+
+  Double_t adc_paddles[NPLANES][NSIDES][NSIGNALS][MAXBARS];
+  Double_t tdc_paddles[NPLANES][NSIDES][NSIGNALS][MAXBARS];
+
+  Double_t ped_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+  Double_t pedraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+
+  Double_t int_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+  Double_t intraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+  
+  Double_t amp_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+  Double_t ampraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+  
+  Double_t ptraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS];
+
+  Double_t tdc_values[NPLANES][NSIDES][NTDCSIGNALS][MAXBARS];
+  Double_t tdcraw_values[NPLANES][NSIDES][NTDCSIGNALS][MAXBARS];
+
+  TH1F* hadc[NPLANES*NSIDES*NADCSIGNALS*MAXBARS];
+  TH1F* htdc[NPLANES*NSIDES*NTDCSIGNALS*MAXBARS];
+
+  Int_t adc_ihit, tdc_ihit;
+
+  TTree *T=(TTree*)gDirectory->Get("T");
+
+  for(UInt_t ip = 0; ip < NPLANES; ip++) {
+    for(UInt_t iside = 0; iside < NSIDES; iside++) {
+      for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) {
+
+	if(signals[isignal] == "Adc") {  
+	  TString adc_base_name = SPECTROMETER+"."+DETECTOR+"."+
+	    plane_names[ip]+"."+sides[iside]+signals[isignal];
+	  TString adc_ndata_name = "Ndata."+adc_base_name+"Counter";
+	  T->SetBranchAddress(adc_ndata_name, &nadchits[ip][iside][isignal]);
+	  TString adc_paddle_name = adc_base_name+"Counter";
+	  T->SetBranchAddress(adc_paddle_name, &adc_paddles[ip][iside][isignal][0]);
+	  for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) {
+	    if (adc_signals[iadcsignal] == "Ped") {
+	      TString pedlist_name = adc_base_name+"Ped";
+	      T->SetBranchAddress(pedlist_name, &ped_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PedRaw") {
+	      TString pedrawlist_name = adc_base_name+"PedRaw";
+	      T->SetBranchAddress(pedrawlist_name, &pedraw_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseInt") {   
+	      TString intlist_name = adc_base_name+"PulseInt";
+	      T->SetBranchAddress(intlist_name, &int_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseIntRaw") {
+	      TString intrawlist_name = adc_base_name+"PulseIntRaw";
+	      T->SetBranchAddress(intrawlist_name, &intraw_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseAmp") {   
+	      TString amplist_name = adc_base_name+"PulseAmp";
+	      T->SetBranchAddress(amplist_name, &amp_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseAmpRaw") {
+	      TString amprawlist_name = adc_base_name+"PulseAmpRaw";
+	      T->SetBranchAddress(amprawlist_name, &ampraw_values[ip][iside][iadcsignal][0]);
+	    }
+	    if (adc_signals[iadcsignal] == "PulseTimeRaw") {
+	      TString ptrawlist_name = adc_base_name+"PulseTimeRaw";
+	      T->SetBranchAddress(ptrawlist_name, &ptraw_values[ip][iside][iadcsignal][0]);
+	    }
+	  }
+	}
+	
+	if(signals[isignal] == "Tdc") {  
+	  TString tdc_base_name = SPECTROMETER+"."+DETECTOR+"."+
+	    plane_names[ip]+"."+sides[iside]+signals[isignal];
+	  TString tdc_ndata_name = "Ndata."+tdc_base_name+"Counter";
+	  T->SetBranchAddress(tdc_ndata_name, &ntdchits[ip][iside][isignal]);
+	  TString tdc_paddle_name = tdc_base_name+"Counter";
+	  T->SetBranchAddress(tdc_paddle_name, &tdc_paddles[ip][iside][isignal][0]);
+	  for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) {
+	    if (tdc_signals[itdcsignal] == "Time") {
+	      TString tdclist_name = tdc_base_name+"Time";
+	      T->SetBranchAddress(tdclist_name, &tdc_values[ip][iside][itdcsignal][0]);
+	    }
+	    if (tdc_signals[itdcsignal] == "TimeRaw") {
+	      TString tdcrawlist_name = tdc_base_name+"TimeRaw";
+	      T->SetBranchAddress(tdcrawlist_name, &tdcraw_values[ip][iside][itdcsignal][0]);
+	    }
+	  }
+	}
+
+	if(signals[isignal] == "Adc") {
+	  for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      UInt_t hadcindex = ip*NSIDES*NADCSIGNALS*MAXBARS
+		+iside*NADCSIGNALS*MAXBARS+iadcsignal*MAXBARS+ibar;
+	      TString iadcbarname = Form("%d",ibar+1);
+	      TString adctitle= "hadc"+plane_names[ip]+iadcbarname+sides[iside]
+		+" "+adc_signals[iadcsignal];
+	      TString adcname="uhadc"+plane_names[ip]+iadcbarname+sides[iside]+
+		adc_signals[iadcsignal];
+
+	      if (adc_signals[iadcsignal] == "Ped") {
+		UInt_t   nadcbins = ADCPED_NBINS;
+		Double_t hadcmin  = ADCPED_MIN;
+		Double_t hadcmax  = ADCPED_MAX;
+	      }
+	      if (adc_signals[iadcsignal] == "PedRaw") {
+		UInt_t   nadcbins = ADCPEDRAW_NBINS;
+		Double_t hadcmin  = ADCPEDRAW_MIN;
+		Double_t hadcmax  = ADCPEDRAW_MAX;
+	      }
+	      if (adc_signals[iadcsignal] == "PulseInt") {
+		UInt_t   nadcbins = ADCINT_NBINS;
+		Double_t hadcmin  = ADCINT_MIN;
+		Double_t hadcmax  = ADCINT_MAX;
+	      }
+	      if (adc_signals[iadcsignal] == "PulseIntRaw") {
+		UInt_t   nadcbins = ADCINTRAW_NBINS;
+		Double_t hadcmin  = ADCINTRAW_MIN;
+		Double_t hadcmax  = ADCINTRAW_MAX;
+	      }
+	      if (adc_signals[iadcsignal] == "PulseAmp") {
+		UInt_t   nadcbins = ADCAMP_NBINS;
+		Double_t hadcmin  = ADCAMP_MIN;
+		Double_t hadcmax  = ADCAMP_MAX;
+	      }
+	      if (adc_signals[iadcsignal] == "PulseAmpRaw") {
+		UInt_t   nadcbins = ADCAMPRAW_NBINS;
+		Double_t hadcmin  = ADCAMPRAW_MIN;
+		Double_t hadcmax  = ADCAMPRAW_MAX;
+	      }
+	      if (adc_signals[iadcsignal] == "PulseTimeRaw") {
+		UInt_t   nadcbins = ADCPTRAW_NBINS;
+		Double_t hadcmin  = ADCPTRAW_MIN;
+		Double_t hadcmax  = ADCPTRAW_MAX;
+	      }
+	      hadc[hadcindex]=new TH1F(adcname, adctitle, nadcbins, hadcmin, hadcmax);
+	    }
+	  }
+	}
+
+	if(signals[isignal] == "Tdc") {
+	  for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) {
+	    for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) {
+	      UInt_t htdcindex = ip*NSIDES*NTDCSIGNALS*MAXBARS
+		+iside*NTDCSIGNALS*MAXBARS+itdcsignal*MAXBARS+ibar;
+	      TString itdcbarname = Form("%d",ibar+1);
+	      TString tdctitle= "htdc"+plane_names[ip]+itdcbarname+sides[iside]
+		+" "+tdc_signals[itdcsignal];
+	      TString tdcname="uhtdc"+plane_names[ip]+itdcbarname+sides[iside]+
+		tdc_signals[itdcsignal];
+
+	      if (tdc_signals[itdcsignal] == "TimeRaw") {
+		UInt_t   ntdcbins = RAWTDC_NBINS;
+		Double_t htdcmin  = RAWTDC_MIN;
+		Double_t htdcmax  = RAWTDC_MAX;
+	      }
+	      if (tdc_signals[itdcsignal] == "Time") {
+		UInt_t   ntdcbins = TDC_NBINS;
+		Double_t htdcmin  = TDC_MIN;
+		Double_t htdcmax  = TDC_MAX;
+	      }
+	      htdc[htdcindex]=new TH1F(tdcname, tdctitle, ntdcbins, htdcmin, htdcmax);
+	    }
+	  }
+	}
+      }
+    }
+  }
+
+  // Loop over the events, filling the histograms
+  for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) {
+    T->GetEntry(iev);
+
+     for(UInt_t ip = 0; ip < NPLANES; ip++) {
+      for(UInt_t iside = 0; iside < NSIDES; iside++) {
+	for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) {
+     
+	  if(signals[isignal] == "Adc") {
+	    for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) {
+
+	      UInt_t hadcindex_base = ip*NSIDES*NADCSIGNALS*MAXBARS
+		+iside*NADCSIGNALS*MAXBARS+iadcsignal*MAXBARS;
+
+	      for(Int_t adc_ihit = 0; adc_ihit < nadchits[ip][iside][isignal]; adc_ihit++) {
+
+		UInt_t ibar = TMath::Nint(adc_paddles[ip][iside][isignal][adc_ihit]) - 1;
+
+		if (adc_signals[iadcsignal] == "Ped")
+		  Double_t pedval = ped_values[ip][iside][iadcsignal][adc_ihit];
+		if (adc_signals[iadcsignal] == "PedRaw")  
+		  Double_t pedrawval = pedraw_values[ip][iside][iadcsignal][adc_ihit];
+		if (adc_signals[iadcsignal] == "PulseInt")
+		  Double_t intval = int_values[ip][iside][iadcsignal][adc_ihit];
+		if (adc_signals[iadcsignal] == "PulseIntRaw")  
+		  Double_t intrawval = intraw_values[ip][iside][iadcsignal][adc_ihit];
+		if (adc_signals[iadcsignal] == "PulseAmp")
+		  Double_t ampval = amp_values[ip][iside][iadcsignal][adc_ihit];
+		if (adc_signals[iadcsignal] == "PulseAmpRaw")  
+		  Double_t amprawval = ampraw_values[ip][iside][iadcsignal][adc_ihit];
+		if (adc_signals[iadcsignal] == "PulseTimeRaw")  
+		  Double_t ptrawval = ptraw_values[ip][iside][iadcsignal][adc_ihit];
+		
+		UInt_t hadcindex = hadcindex_base + ibar;
+
+		// cout << "hadcindex = " << hadcindex << endl;
+		
+		if (hadcindex < NPLANES*NSIDES*NADCSIGNALS*MAXBARS) {
+		  if (adc_signals[iadcsignal] == "Ped") {
+		    // cout << "pedval = " << pedval << endl;
+		    hadc[hadcindex]->Fill(pedval);
+		  }
+		  if (adc_signals[iadcsignal] == "PedRaw") {
+		    // cout << "pedrawval = " << pedrawval << endl;
+		    hadc[hadcindex]->Fill(pedrawval);
+		  }
+		  if (adc_signals[iadcsignal] == "PulseInt") {
+		    // cout << "intval = " << intval << endl;
+		    hadc[hadcindex]->Fill(intval);
+		  }
+		  if (adc_signals[iadcsignal] == "PulseIntRaw") {
+		    // cout << "intrawval = " << intrawval << endl;
+		    hadc[hadcindex]->Fill(intrawval);
+		  }
+		  if (adc_signals[iadcsignal] == "PulseAmp") {
+		    // cout << "ampval = " << ampval << endl;
+		    hadc[hadcindex]->Fill(ampval);
+		  }
+		  if (adc_signals[iadcsignal] == "PulseAmpRaw") {
+		    // cout << "amprawval = " << amprawval << endl;
+		    hadc[hadcindex]->Fill(amprawval);
+		  }
+		  if (adc_signals[iadcsignal] == "PulseTimeRaw") {
+		    // cout << "ptrawval = " << ptrawval << endl;
+		    hadc[hadcindex]->Fill(ptrawval);
+		  }
+		}
+	      }
+	    }
+	  }
+
+	  if(signals[isignal] == "Tdc") {
+	    for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) {
+
+	      UInt_t htdcindex_base = ip*NSIDES*NTDCSIGNALS*MAXBARS
+		+iside*NTDCSIGNALS*MAXBARS+itdcsignal*MAXBARS;
+
+	      for(Int_t tdc_ihit = 0; tdc_ihit < ntdchits[ip][iside][isignal]; tdc_ihit++) {
+
+		UInt_t ibar = TMath::Nint(tdc_paddles[ip][iside][isignal][tdc_ihit]) - 1;
+
+		Double_t tdcval = tdc_values[ip][iside][itdcsignal][tdc_ihit];
+		Double_t tdcrawval = tdcraw_values[ip][iside][itdcsignal][tdc_ihit];
+		UInt_t htdcindex = htdcindex_base + ibar;
+
+		if (tdc_signals[itdcsignal] == "Time") {
+		  // cout << "Time = " << tdcval << endl;
+		  htdc[htdcindex]->Fill(tdcval);
+		}
+		if (tdc_signals[itdcsignal] == "TimeRaw") {
+		  // cout << "RawTime = " << tdcrawval << endl;
+		  htdc[htdcindex]->Fill(tdcrawval);
+		}
+	      }
+	    }
+	  }
+	}
+      }
+    }
+  }
+  return;
+}
+
+void rawdraw_phodo(TString histname) {
+
+  TH1F* h;
+
+  h = (TH1F*) gDirectory->Get(histname);
+  if(!h) {
+    UserScript();
+    h = (TH1F*) gDirectory->Get(histname);
+    if(!h) {
+      cout << "User histogram " << histname << " not found" << endl;
+      exit(1);
+    }
+  }
+  h->Draw();
+}
+
diff --git a/onlineGUI/README.md b/onlineGUI/README.md
new file mode 100644
index 00000000..2f31aaf6
--- /dev/null
+++ b/onlineGUI/README.md
@@ -0,0 +1,37 @@
+onlineGUI
+============================================
+This is the GUI that is used for the monitoring of online replay.
+
+Directory structure
+----------------------
+* Config : directory with the  onlineGUI configuration files
+  *Files in Config:
+    *HMS/HODO/raw_hhodoana.cfg (Plots standard  hisotgrams in DEF-files/HMS/HODO/hhodoana.def )
+    *SHMS/HODO/raw_phodoana.cfg (Plots standard  hisotgrams in DEF-files/SHMS/HODO/phodoana.def )
+    *HMS/HODO/raw_hhodo_2d.cfg (2d plots of Good HMS Hodoscope data, efficiency plots)
+    *HMS/HODO/good_hhodo_2d.cfg (2d plots of Good HMS Hodoscope data, efficiency plots)
+    *SHMS/HODO/good_phodo_2d.cfg (2d of Good SHMS Hodoscope data, efficiency plots)
+* Macros : directory with root macros that can be called by the onlineGUI code
+  * Files in Macro: 
+    * overlay.C (script to overlay 2 histograms)
+    * rawdraw_2d_hhodo.C ( Used by raw_hhodo_2d.cfg)
+    * rawdraw_2d_phodo.C ( Used by raw_phodo_2d.cfg)
+    * gooddraw_2d_hhodo.C ( Used by good_hhodo_2d.cfg)
+    * gooddraw_2d_phodo.C ( Used by good_phodo_2d.cfg)
+    * hodo_efficiency.C ( Used by good_phodo_2d.cfg,good_hhodo_2d.cfg)
+* onlineGUI_v1.2.1: directory with the online.c and other files.
+
+Compiling code
+----------------------
+* In onlineGUI_v1.2.1 directory type: make
+* executable "online" is created in the onlineGUI directory
+
+Documentation and Running the code
+----------------
+* The pdf file  guiHOWTO2007.pdf documents how to use the code
+* One method to run the code is:
+  * online -f Config/hmsdc.cfg -r 60
+  * "60" is the run number
+  * This assumes that hmsdc.cfg as a line such as:protorootfile ../ROOTfiles/hms1190_XXXXX.root
+
+
diff --git a/onlineGUI/onlineGUI_v1.2.1/Makefile b/onlineGUI/onlineGUI_v1.2.1/Makefile
index 51e80b0e..0fee22ee 100644
--- a/onlineGUI/onlineGUI_v1.2.1/Makefile
+++ b/onlineGUI/onlineGUI_v1.2.1/Makefile
@@ -1,6 +1,6 @@
 # Makefile for standalone version of panguin/onlineGUI
-#  - B. Moffit 
-# 
+#  - B. Moffit
+#
 
 # Choose the compiler.
 GCC=g++
@@ -10,14 +10,15 @@ ifdef INSURE
   GLD=insure
 endif
 
+ROOTMVERSION  = $(shell root-config --version | cut -f1 -d.)
 ROOTLIBS      = $(shell root-config --libs)
 ROOTGLIBS     = $(shell root-config --glibs)
 INCLUDES      = -I$(ROOTSYS)/include
 CXX           = $(GCC)
 CXXFLAGS      = -Wall -fno-exceptions -fPIC $(INCLUDES) -fpermissive
 LD            = $(GLD)
-LDFLAGS       = 
-SOFLAGS       = -shared 
+LDFLAGS       =
+SOFLAGS       = -shared
 GLIBS         = $(ROOTGLIBS) -L/usr/X11R6/lib -lXpm -lX11
 LIBS          = $(GLIBS) $(ROOTLIBS) $(ROOTGLIBS)
 
@@ -25,9 +26,13 @@ MAKEDEPEND    = $(GCC)
 
 ALL_LIBS = $(LIBS)
 
-
 CXXFLAGS += -DSTANDALONE
 
+ifeq ($(ROOTMVERSION), 6)
+	CXXFLAGS += -std=c++11
+	MAKEDEPEND += -std=c++11
+endif
+
 # Insert extra headers needed by GetRootFileName.C or GetRunNumber.C
 ifdef PAN_SRC_PATH
 	PANSRCPATH = $(PAN_SRC_PATH)
@@ -42,7 +47,7 @@ endif
 
 SRC = online.C
 DEPS = $(SRC:.C=.d)
-OBJS = $(SRC:.C=.o) 
+OBJS = $(SRC:.C=.o)
 HEAD = $(SRC:.C=.h)
 
 # Make the dictionary
@@ -54,12 +59,12 @@ PROGS = online
 install: all
 	 mv $(PROGS) ../
 
-all: $(PROGS) 
+all: $(PROGS)
 
-$(PROGS): $(OBJS) $(SRC) $(HEAD) 
+$(PROGS): $(OBJS) $(SRC) $(HEAD)
 	rm -f $@
 	@echo "Generating" $@
-	$(LD) $(CXXFLAGS) -o $@ $(OBJS) $(ALL_LIBS) 
+	$(LD) $(CXXFLAGS) -o $@ $(OBJS) $(ALL_LIBS)
 
 # Dictionary
 onlineDict.C: $(DOBJS) onlineLinkDef.h
@@ -71,7 +76,7 @@ clean:
 	rm -f *.o core *~ *.d *.tar *.so  *Dict* $(PROGS)
 
 realclean:  clean
-	rm -f *.d ../$(PROGS) 
+	rm -f *.d ../$(PROGS)
 
 .SUFFIXES:
 .SUFFIXES: .c .cc .cpp .C .o .d
@@ -87,5 +92,3 @@ realclean:  clean
 	      [ -s $@ ] || rm -f $@'
 
 -include $(DEPS)
-
-
diff --git a/onlineGUI/onlineGUI_v1.2.1/guiHOWTO2007.pdf b/onlineGUI/onlineGUI_v1.2.1/guiHOWTO2007.pdf
deleted file mode 100644
index 254bcfaefa1a588802bf9009961886d572a65bc0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 157338
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%0DVQToilz&wAPkqsi+Z915y`-mxYs
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
AkN^Mx

diff --git a/onlineGUI/onlineGUI_v1.2.1/online.C b/onlineGUI/onlineGUI_v1.2.1/online.C
old mode 100644
new mode 100755
index f397908e..ad2a619c
--- a/onlineGUI/onlineGUI_v1.2.1/online.C
+++ b/onlineGUI/onlineGUI_v1.2.1/online.C
@@ -1,2015 +1,2083 @@
-///////////////////////////////////////////////////////////////////
-//  Macro to help with online analysis
-//    B. Moffit (moffit@jlab.org)
-//    - Originally written in Oct. 2003
-//  Documentation and updates available at:
-//    http://www.jlab.org/~moffit/onlineGUI/
-//
-
-#include "online.h"
-#include <string>
-#include <fstream>
-#include <iostream>
-#include <list>
-#include <TMath.h>
-#include <TBranch.h>
-#include <TGClient.h>
-#include <TCanvas.h>
-#include <TStyle.h>
-#include <TROOT.h>
-#include <TGImageMap.h>
-#include <TGFileDialog.h>
-#include <TKey.h>
-#include <TObjString.h>
-#include <TSystem.h>
-#include <TLatex.h>
-#include <TText.h>
-#include <TGraph.h>
-#include "GetRootFileName.C"
-#include "GetRunNumber.C"
-#include "TPaveText.h"
-#ifdef STANDALONE
-#include <TApplication.h>
-#endif
-// #define DEBUGGETFILEOBJECTS
-// #define DEBUGPARSE
-// #define DEBUG
-//#define DEBUG2
-//#define NOISY
-//#define INTERNALSTYLE
-
-TString guiDirectory = "onlineGUI_v1.2.1/";
-
-///////////////////////////////////////////////////////////////////
-//  Class: OnlineConfig
-//
-//     Utility class that reads in a text file (.cfg) and
-//     stores it's contents.
-//
-//
-
-OnlineConfig::OnlineConfig() 
-{
-  // Constructor.  Without an argument, will use default "standard" config
-  fMonitor = kFALSE;
-  OnlineConfig("standard");
-}
-
-OnlineConfig::OnlineConfig(TString anatype) 
-{
-  // Constructor.  Takes the config anatype as the only argument.
-  //  Loads up the configuration file, and stores it's contents for access.
-  
-  confFileName = anatype;
-  if(!confFileName.Contains(".cfg"))
-    confFileName += ".cfg";
-  fMonitor = kFALSE;
-  fFoundCfg = kFALSE;
-
-  // Attempt to find the config file in specified (first argument,
-  // relative or absolute) location, then in guiDirectory
-  fConfFile = new ifstream(confFileName.Data());
-  if ( ! (*fConfFile) ) {
-    cerr << "OnlineConfig() WARNING: config file " << confFileName.Data()
-         << " does not exist" << endl;
-    cerr << " Checking the " << guiDirectory << " directory" << endl;
-    confFileName.Prepend(guiDirectory+"/");
-    fConfFile = new ifstream(confFileName.Data());
-    if ( ! (*fConfFile) ) {
-      // Didn't find it... load up the default config
-      confFileName = guiDirectory+"/default.cfg";
-      cout << "OnlineConfig()  Trying " << confFileName.Data() 
-	   << " as default configuration." << endl
-	   << " (May be ok.)" << endl;
-      fConfFile = new ifstream(confFileName.Data());
-      if ( ! (*fConfFile) ) {
-	cerr << "OnlineConfig() WARNING: no file "
-	     << confFileName.Data() <<endl;
-	cerr << "You need a configuration to run.  Ask an expert."<<endl;
-	fFoundCfg = kFALSE;
-	//      return;
-      } else {
-	fFoundCfg = kTRUE;
-      }
-    } else {
-      fFoundCfg = kTRUE;
-    }
-  } else {
-    fFoundCfg = kTRUE;
-  }
-
-  if(fFoundCfg) {
-  clog << "GUI Configuration loading from " 
-       << confFileName.Data() << endl;
-  }
-
-  ParseFile();
-
-  // Load up a user configurable style (if it exists)
-  TString styleFile = guiDirectory+"onlineGUI_Style.C";
-  if(!gSystem->AccessPathName(styleFile))
-     gROOT->Macro(styleFile);
-
-  fConfFile->close();
-  delete fConfFile;
-
-}
-
-void OnlineConfig::ParseFile() 
-{
-  // Reads in the Config File, and makes the proper calls to put
-  //  the information contained into memory.
-
-  if(!fFoundCfg) {
-    return;
-  }
-
-  TString comment = "#";
-  vector<TString> strvect;
-  TString sinput, sline;
-  while (sline.ReadLine(*fConfFile)) {
-    strvect.clear();
-    // Strip away leading and trailing spaces.
-    sline = sline.Strip(TString::kBoth,' ');
-    // If the line starts with a comment, skip it.
-    if(sline.BeginsWith(comment)) continue;
-    // If the line contains a comment, split it up into two and keep
-    // the uncommented (first) part
-    if(sline.Contains(comment)) {
-      TObjArray *tmpoarr = sline.Tokenize(comment);
-      TObjString *tmpostr = (TObjString*)tmpoarr->First();
-      sline = tmpostr->GetString().Strip(TString::kTrailing,' ');
-      delete tmpoarr;
-    }
-    // Now split up the line according to 's and spaces.  This is for
-    // looking for the histogram using it's title (which may contain
-    // spaces) instead of its name.
-    if(sline.Contains("'")) {
-      TObjArray *tmpoarr = sline.Tokenize("'");
-      Bool_t quote_on_odd = kTRUE;
-      if(!(sline.BeginsWith("'"))) quote_on_odd=kFALSE;
-      TIterator *next = tmpoarr->MakeIterator();
-      TObjString *tmpostr; Bool_t odd=kTRUE;
-      while((tmpostr=(TObjString*)next->Next())!=NULL) {
-	if((quote_on_odd&&odd) || (!quote_on_odd&&!odd)) {
-	  strvect.push_back(tmpostr->GetString());
-	  odd = !odd;
-	} else {
-	  TObjArray *tmpoarr2 = tmpostr->GetString().Tokenize(" ");
-	  TIterator *next2 = tmpoarr2->MakeIterator();
-	  TObjString *tmpostr2;
-	  while((tmpostr2=(TObjString*)next2->Next())!=NULL) {
-	    strvect.push_back(tmpostr2->GetString());
-	  }
-	  delete tmpoarr2;
-	  odd = !odd;
-	}
-      }
-      delete tmpoarr;
-    } else { // No 's.. just split according to spaces
-      TObjArray *tmpoarr2 = sline.Tokenize(" ");
-      TIterator *next2 = tmpoarr2->MakeIterator();
-      TObjString *tmpostr2;
-      while((tmpostr2=(TObjString*)next2->Next())!=NULL) {
-	strvect.push_back(tmpostr2->GetString());
-      }
-      delete tmpoarr2;
-    }
-    sConfFile.push_back(strvect);
-    
-}
-
-#ifdef DEBUGPARSE
-  for(UInt_t ii=0; ii<sConfFile.size(); ii++) {
-    cout << "Line " << ii << endl << "  ";
-    for(UInt_t jj=0; jj<sConfFile[ii].size(); jj++) 
-      cout << sConfFile[ii][jj] << " ";
-    cout << endl;
-  }
-#endif
-
-  cout << "     " << sConfFile.size() << " lines read from " 
-       << confFileName << endl;
-  
-}
-
-Bool_t OnlineConfig::ParseConfig() 
-{
-  //  Goes through each line of the config [must have been ParseFile()'d]
-  //   and interprets.
-
-  if(!fFoundCfg) {
-    return kFALSE;
-  }
-
-  UInt_t command_cnt=0;
-  UInt_t j=0;
-  Bool_t hasMultiPlots=kFALSE;
-  // If statement for each high level command (cut, newpage, etc)
-  for(UInt_t i=0;i<sConfFile.size();i++) {
-    // "newpage" command
-    if(sConfFile[i][0] == "newpage") {
-      // sConfFile[i] is first of pair
-      for(j=i+1;j<sConfFile.size();j++) {
-	if(sConfFile[j][0] != "newpage") {
-	  // Count how many commands within the page
-	  command_cnt++;
-	} else break;
-      }
-      pageInfo.push_back(make_pair(i,command_cnt));
-      i += command_cnt;
-      command_cnt=0;
-    }
-    if(sConfFile[i][0] == "watchfile") {
-      fMonitor = kTRUE;
-    }
-    if(sConfFile[i][0] == "definecut") {
-      if(sConfFile[i].size()>3) {
-	cerr << "cut command has too many arguments" << endl;
-	continue;
-      }
-      TCut tempCut(sConfFile[i][1],sConfFile[i][2]);
-      cutList.push_back(tempCut);
-    }
-    if(sConfFile[i][0] == "rootfile") {
-      if(sConfFile[i].size() != 2) {
-	cerr << "WARNING: rootfile command does not have the "
-	     << "correct number of arguments"
-	     << endl;
-	continue;
-      }
-      if(!rootfilename.IsNull()) {
-	cerr << "WARNING: too many rootfile's defined. " 
-	     << " Will only use the first one." 
-	     << endl;
-	continue;
-      }
-      rootfilename = sConfFile[i][1];
-    }
-    if(sConfFile[i][0] == "goldenrootfile") {
-      if(sConfFile[i].size() != 2) {
-	cerr << "WARNING: goldenfile command does not have the "
-	     << "correct number of arguments"
-	     << endl;
-	continue;
-      }
-      if(!goldenrootfilename.IsNull()) {
-	cerr << "WARNING: too many goldenrootfile's defined. " 
-	     << " Will only use the first one." 
-	     << endl;
-	continue;
-      }
-      goldenrootfilename = sConfFile[i][1];
-    }
-    if(sConfFile[i][0] == "protorootfile") {
-      if(sConfFile[i].size() != 2) {
-	cerr << "WARNING: protorootfile command does not have the "
-	     << "correct number of arguments"
-	     << endl;
-	continue;
-      }
-      if(!protorootfile.IsNull()) {
-	cerr << "WARNING: too many protorootfile's defined. " 
-	     << " Will only use the first one." 
-	     << endl;
-	continue;
-      }
-      protorootfile = sConfFile[i][1];
-    }
-    if(sConfFile[i][0] == "guicolor") {
-      if(sConfFile[i].size() != 2) {
-	cerr << "WARNING: guicolor command does not have the "
-	     << "correct number of arguments (needs 1)"
-	     << endl;
-	continue;
-      }
-      if(!guicolor.IsNull()) {
-	cerr << "WARNING: too many guicolor's defined. " 
-	     << " Will only use the first one." 
-	     << endl;
-	continue;
-      }
-      guicolor = sConfFile[i][1];
-    }
-    if(sConfFile[i][0] == "plotsdir") {
-      if(sConfFile[i].size() != 2) {
-	cerr << "WARNING: plotsdir command does not have the "
-	     << "correct number of arguments (needs 1)"
-	     << endl;
-	continue;
-      }
-      if(!plotsdir.IsNull()) {
-	cerr << "WARNING: too many plotdir's defined. " 
-	     << " Will only use the first one." 
-	     << endl;
-	continue;
-      }
-      plotsdir = sConfFile[i][1];
-    }
-    if(sConfFile[i][0] == "multiplot") {
-      hasMultiPlots = kTRUE;
-    }
-
-  }
-
-  if(hasMultiPlots) {
-    if(!ParseForMultiPlots()) {
-      cerr << "ParseForMultiPlots() Failed" << endl;
-    }
-  }
-
-#ifdef NOISY
-  for(UInt_t i=0; i<GetPageCount(); i++) {
-    cout << "Page " << i << " (" << GetPageTitle(i) << ")"
-	 << " will draw " << GetDrawCount(i) 
-	 << " histograms." << endl;
-  }
-#endif
-
-  cout << "Number of pages defined = " << GetPageCount() << endl;
-  cout << "Number of cuts defined = " << cutList.size() << endl;
-
-  if (fMonitor) 
-    cout << "Will periodically update plots" << endl;
-  if(!goldenrootfilename.IsNull()) {
-    cout << "Will compare chosen histrograms with the golden rootfile: " 
-	 << endl 
-	 << goldenrootfilename << endl;
-  }
-
-  return kTRUE;
-
-}
-
-Bool_t OnlineConfig::ParseForMultiPlots() {
-  // Parse through each line of sConfFile,
-  // and replace each "multiplot" command with a real draw entry
-
-  vector < vector <TString> > newConfFile;
-  for(UInt_t iter=0;iter<sConfFile.size();iter++) {
-    if(sConfFile[iter][0]=="multiplot") {
-      // First argument is the low limit, 
-      // second argument is the high limit
-      UInt_t lolimit = (UInt_t)sConfFile[iter][1].Atoi();
-      UInt_t hilimit = (UInt_t)sConfFile[iter][2].Atoi();
-      
-      // For the rest of the line, replace all of the XXXXX's
-      // with an iteration from lolimit to hilimit.
-      for(UInt_t imult=lolimit;imult<=hilimit;imult++) {
-	vector <TString> newline;
-	for(UInt_t ielem=3; ielem<sConfFile[iter].size();ielem++) {
-	  TString origString = sConfFile[iter][ielem];
-	  TString newString = origString;
-	  newString.ReplaceAll("XXXXX",Form("%d",imult));
-	  newline.push_back(newString);
-	}
-	newConfFile.push_back(newline);
-      }
-    } else {
-      newConfFile.push_back(sConfFile[iter]);
-    }
-  }
-
-#ifdef DEBUG
-  for(UInt_t iter=0;iter<newConfFile.size();iter++) {
-    for(UInt_t iline=0;iline<newConfFile[iter].size();iline++) {
-      cout << newConfFile[iter][iline] << " ";
-    }
-    cout << endl;
-  }
-#endif
-
-  // Out with the old, in with the new.
-  sConfFile.clear();
-  sConfFile = newConfFile;
-
-  // Now need to recalculate pageInfo.
-  UInt_t command_cnt=0;
-  UInt_t j=0;
-
-  pageInfo.clear();
-  // If statement for each high level command (cut, newpage, etc)
-  for(UInt_t i=0;i<sConfFile.size();i++) {
-    // "newpage" command
-    if(sConfFile[i][0] == "newpage") {
-      // sConfFile[i] is first of pair
-      for(j=i+1;j<sConfFile.size();j++) {
-	if(sConfFile[j][0] != "newpage") {
-	  // Count how many commands within the page
-	  command_cnt++;
-	} else break;
-      }
-      pageInfo.push_back(make_pair(i,command_cnt));
-      i += command_cnt;
-      command_cnt=0;
-    }
-  }
-
-  return kTRUE;
-
-}
-
-TCut OnlineConfig::GetDefinedCut(TString ident) {
-  // Returns the defined cut, according to the identifier
-
-  for(UInt_t i=0; i<cutList.size(); i++) {
-    if((TString)cutList[i].GetName() == ident.Data()) {
-      TCut tempCut = cutList[i].GetTitle();
-      return tempCut;
-    }
-  }
-  return "";
-}
-
-vector <TString> OnlineConfig::GetCutIdent() {
-  // Returns a vector of the cut identifiers, specified in config
-  vector <TString> out;
-
-  for(UInt_t i=0; i<cutList.size(); i++) {
-    out.push_back(cutList[i].GetName());
-  }
-
-  return out;
-}
-
-Bool_t OnlineConfig::IsLogx(UInt_t page) {
-// Check if last word on line is "logx"
-
-  UInt_t page_index = pageInfo[page].first;
-  Int_t word_index = sConfFile[page_index].size()-1;
-  if (word_index <= 0) return kFALSE;
-  TString option = sConfFile[page_index][word_index];  
-  if(option == "logx") return kTRUE;
-  return kFALSE;
-
-}
-
-Bool_t OnlineConfig::IsLogy(UInt_t page) {
-// Check if last word on line is "logy"
-
-  UInt_t page_index = pageInfo[page].first;
-  Int_t word_index = sConfFile[page_index].size()-1;
-  if (word_index <= 0) return kFALSE;
-  TString option = sConfFile[page_index][word_index];  
-  if(option == "logy") return kTRUE;
-  return kFALSE;
-
-}
-
-Bool_t OnlineConfig::IsLogz(UInt_t page) {
-// Check if last word on line is "logz"
-
-  UInt_t page_index = pageInfo[page].first;
-  Int_t word_index = sConfFile[page_index].size()-1;
-  if (word_index <= 0) return kFALSE;
-  TString option = sConfFile[page_index][word_index];  
-  if(option == "logz") return kTRUE;
-  return kFALSE;
-
-}
-
-
-pair <UInt_t, UInt_t> OnlineConfig::GetPageDim(UInt_t page) 
-{
-  // If defined in the config, will return those dimensions
-  //  for the indicated page.  Otherwise, will return the
-  //  calculated dimensions required to fit all histograms.
-
-  pair <UInt_t, UInt_t> outDim;
-
-  // This is the page index in sConfFile.
-  UInt_t page_index = pageInfo[page].first;
-  
-  UInt_t size1 = 2;
-  if (IsLogy(page)) size1 = 3;  // last word is "logy"
-  
-  // If the dimensions are defined, return them.
-  if(sConfFile[page_index].size()>size1-1) {
-    if(sConfFile[page_index].size() == size1) {
-      outDim = make_pair(UInt_t(atoi(sConfFile[page_index][1])),
-		       UInt_t(atoi(sConfFile[page_index][1])));
-      return outDim;
-    } else if (sConfFile[page_index].size() == size1+1) {
-      outDim = make_pair(UInt_t(atoi(sConfFile[page_index][1])),
-		       UInt_t(atoi(sConfFile[page_index][2])));
-      return outDim;
-    } else {
-      cout << "Warning: newpage command has too many arguments. "
-	   << "Will automatically determine dimensions of page."
-	   << endl;
-    }
-  }
-  
-  // If not defined, return the "default."
-  UInt_t draw_count = GetDrawCount(page);
-  UInt_t dim = UInt_t(TMath::Nint(sqrt(Double_t(draw_count+1))));
-  outDim = make_pair(dim,dim);
-
-  return outDim;
-}
-
-TString OnlineConfig::GetPageTitle(UInt_t page) 
-{
-  // Returns the title of the page.
-  //  if it is not defined in the config, then return "Page #"
-
-  TString title;
-
-  UInt_t iter_command = pageInfo[page].first+1;
-
-  for(UInt_t i=0; i<pageInfo[page].second; i++) { // go through each command
-    if(sConfFile[iter_command+i][0] == "title") { 
-      // Combine the strings, and return it
-      for (UInt_t j=1; j<sConfFile[iter_command+i].size(); j++) {
-	title += sConfFile[iter_command+i][j];
-	title += " ";
-      }
-      title.Chop();
-      return title;
-    }
-  }
-  title = "Page "; title += page;
-  return title;
-}
-
-vector <UInt_t> OnlineConfig::GetDrawIndex(UInt_t page) 
-{
-  // Returns an index of where to find the draw commands within a page
-  //  within the sConfFile vector
-
-  vector <UInt_t> index;
-  UInt_t iter_command = pageInfo[page].first+1;
-
-  for(UInt_t i=0; i<pageInfo[page].second; i++) {
-    if(sConfFile[iter_command+i][0] != "title") {
-      index.push_back(iter_command+i);
-    }
-  }
-
-  return index;
-}
-
-UInt_t OnlineConfig::GetDrawCount(UInt_t page) 
-{
-  // Returns the number of histograms that have been request for this page
-  UInt_t draw_count=0;
-
-  for(UInt_t i=0; i<pageInfo[page].second; i++) {
-    if(sConfFile[pageInfo[page].first+i+1][0] != "title") draw_count++;
-  }
-
-  return draw_count;
-
-}
-
-drawcommand OnlineConfig::GetDrawCommand(UInt_t page, UInt_t nCommand)
-{
-  // Returns the vector of strings pertaining to a specific page, and 
-  //   draw command from the config.
-  // Return vector of TStrings:
-  //  0: variable
-  //  1: cut - only for Tree variables
-  //  2: type
-  //  3: title 
-  //  4: treename - only for Tree variables
-  //  5: nostat
-  //  6: noshowgolden  - only for Histograms
-  //  This should probably be replaced with an actual structure
-
-  drawcommand out_command;
-  vector <UInt_t> command_vector = GetDrawIndex(page);
-  UInt_t index = command_vector[nCommand];
-
-#ifdef DEBUG
-  cout << "OnlineConfig::GetDrawCommand(" << page << "," 
-       << nCommand << ")" << endl;
-#endif
-
-  // First line is the variable
-  if(sConfFile[index].size()>=1) {
-    out_command.variable = sConfFile[index][0];
-  }
-  if(sConfFile[index].size()>=2) {
-    if((sConfFile[index][1] != "-type") &&
-       (sConfFile[index][1] != "-title") &&
-       (sConfFile[index][1] != "-tree") &&
-       (sConfFile[index][1] != "-noshowgolden") &&
-       (sConfFile[index][1] != "-nostat"))
-      {
-    if(out_command.variable=="macro") {
-      out_command.macro = sConfFile[index][1];
-    } else {
-      out_command.cut = sConfFile[index][1];
-    }
-      }
-  }
-
-  // Now go through the rest of that line..
-  for (UInt_t i=1; i<sConfFile[index].size(); i++) {
-    if(sConfFile[index][i]=="-type") {
-      out_command.type = sConfFile[index][i+1];
-      i = i+1;
-    } else if(sConfFile[index][i]=="-title") {
-      // Put the entire title, surrounded by quotes, as one TString
-      TString title;
-      UInt_t j=0;
-      for(j=i+1; j<sConfFile[index].size(); j++) {
-	TString word = sConfFile[index][j];
-	if( (word.BeginsWith("\"")) && (word.EndsWith("\"")) ) {
-	  title = word.ReplaceAll("\"","");
-	  out_command.title = title;
-	  i = j;
-	  break;
-	} else if(word.BeginsWith("\"")) {
-	  title = word.ReplaceAll("\"","");
-	} else if(word.EndsWith("\"")) {
-	  title += " " + word.ReplaceAll("\"","");
-	  out_command.title = title;
-	  i = j;
-	  break;
-	} else {
-	  title += " " + word;
-	}
-      }
-      // If we got here, and out_command.title is null... then just copy the contents
-      // of "title" to out_command.title (taking out any "'s along the way)
-      if(out_command.title.IsNull())
-	out_command.title = title.ReplaceAll("\"","");
-    } else if(sConfFile[index][i]=="-tree") {
-      out_command.treename = sConfFile[index][i+1];
-      i = i+1;
-    } else if(sConfFile[index][i]=="-nostat") {
-      out_command.nostat = "nostat";
-    } else if(sConfFile[index][i]=="-noshowgolden") {
-      out_command.noshowgolden = "noshowgolden";
-    }
-    
-
-#ifdef DEBUG
-    cout << endl;
-#endif
-  }
-#ifdef DEBUG
-  cout << sConfFile[index].size() << ": ";
-  for(UInt_t i=0; i<sConfFile[index].size(); i++) {
-    cout << sConfFile[index][i] << " ";
-  }
-  cout << endl;
-#endif
-  return out_command;
-}
-
-vector <TString> OnlineConfig::SplitString(TString instring,TString delim) 
-{
-  // Utility to split up a string on the deliminator.
-  //  returns a vector of strings.
-
-  vector <TString> v;
-
-  TString remainingString = instring;
-  TString tempstring = instring;
-  int i;
-
-  while (remainingString.Index(delim) != -1) {
-    i = remainingString.Index(delim);
-    tempstring.Remove(i);
-    v.push_back(tempstring);
-    remainingString.Remove(0,i+1);
-    while(remainingString.Index(delim) == 0) {
-      remainingString.Remove(0,1);
-    }
-    tempstring = remainingString;
-    // Cut out the rest, if it's a comment (starts with #)
-    if(TString(remainingString.Strip(TString::kLeading,' ')).BeginsWith("#")) {
-      tempstring = "";
-      break;
-    }
-  }
-
-  while(tempstring.EndsWith(delim)) {
-    tempstring.Chop();
-  }
-  
-  if(!tempstring.IsNull()) v.push_back(tempstring);
-
-  return v;
-}
-
-void OnlineConfig::OverrideRootFile(UInt_t runnumber) 
-{
-  // Override the ROOT file defined in the cfg file If
-  // protorootfile is used, construct filename using it, otherwise
-  // uses a helper macro "GetRootFileName.C(UInt_t runnumber)
-
-  if(!protorootfile.IsNull()) {
-    TString rn = "";
-    rn += runnumber;
-    protorootfile.ReplaceAll("XXXXX",rn.Data());
-    rootfilename = protorootfile;
-  } else {
-    rootfilename = GetRootFileName(runnumber);
-  }
-
-  cout << "Overridden File name: " << rootfilename << endl;
-}
-
-///////////////////////////////////////////////////////////////////
-//  Class: OnlineGUI
-//
-//    Creates a GUI to display the commands used in OnlineConfig
-//
-//
-
-OnlineGUI::OnlineGUI(OnlineConfig& config, Bool_t printonly,UInt_t RunNum):
-  runNumber(RunNum),
-  timer(0),
-  fFileAlive(kFALSE)
-{
-  // Constructor.  Get the config pointer, and make the GUI.
-
-  fConfig = &config;
-
-  if(printonly) {
-    fPrintOnly=kTRUE;
-    PrintPages();
-  } else {
-    fPrintOnly=kFALSE;
-    CreateGUI(gClient->GetRoot(),200,200);
-  }
-}
-
-void OnlineGUI::CreateGUI(const TGWindow *p, UInt_t w, UInt_t h) 
-{
-  
-  // Open the RootFile.  Die if it doesn't exist.
-  //  unless we're watching a file.
-  fRootFile.RootFile = new TFile(fConfig->GetRootFile(),"READ");
-  if(!fRootFile.RootFile->IsOpen()) {
-    cout << "ERROR:  rootfile: " << fConfig->GetRootFile()
-	 << " does not exist"
-	 << endl;
-    if(fConfig->IsMonitor()) {
-      cout << "Will wait... hopefully.." << endl;
-    } else {
-#ifdef STANDALONE
-      gApplication->Terminate();
-#else
-      return;
-#endif
-    }
-  } else {
-    fFileAlive = kTRUE;
-    ObtainRunNumber();
-    // Open the Root Trees.  Give a warning if it's not there..
-    GetFileObjects(&fRootFile);
-    GetRootTree(&fRootFile);
-    GetTreeVars(&fRootFile);
-    for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) {
-      if(fRootFile.RootTree[i]==0) {
-	fRootFile.RootTree.erase(fRootFile.RootTree.begin() + i);
-      }
-    }
-
-  }
-  TString goldenfilename=fConfig->GetGoldenFile();
-  if(!goldenfilename.IsNull()) {
-    fGoldenFile.RootFile = new TFile(goldenfilename,"READ");
-    if(!fGoldenFile.RootFile->IsOpen()) {
-      cout << "ERROR: goldenrootfile: " << goldenfilename
-	   << " does not exist.  Oh well, no comparison plots."
-	   << endl;
-      doGolden = kFALSE;
-      fGoldenFile.RootFile=NULL;
-    } else {
-      // Open the Root Trees.  Give a warning if it's not there..
-      GetFileObjects(&fGoldenFile);
-      GetRootTree(&fGoldenFile);
-      GetTreeVars(&fGoldenFile);
-      for(UInt_t i=0; i<fGoldenFile.RootTree.size(); i++) {
-        if(fGoldenFile.RootTree[i]==0) {
-	  fGoldenFile.RootTree.erase(fGoldenFile.RootTree.begin() + i);
-        }
-      }
-      doGolden = kTRUE;
-    }
-  } else {
-    doGolden=kFALSE;
-    fGoldenFile.RootFile=NULL;
-  }
-
-
-  // Create the main frame
-  fMain = new TGMainFrame(p,w,h);
-  fMain->Connect("CloseWindow()", "OnlineGUI", this, "MyCloseWindow()");
-  ULong_t lightgreen, lightblue, red, mainguicolor;
-  gClient->GetColorByName("lightgreen",lightgreen);
-  gClient->GetColorByName("lightblue",lightblue);
-  gClient->GetColorByName("red",red);
-
-  Bool_t good_color=kFALSE; 
-  TString usercolor = fConfig->GetGuiColor();
-  if(!usercolor.IsNull()) {
-    good_color = gClient->GetColorByName(usercolor,mainguicolor);
-  }
-
-  if(!good_color) {
-    if(!usercolor.IsNull()) {
-      cout << "Bad guicolor (" << usercolor << ").. using default." << endl;
-    }
-    if(fConfig->IsMonitor()) {
-      // Default background color for Online Monitor
-      mainguicolor = lightgreen;
-    } else {
-      // Default background color for Normal Online Display
-      mainguicolor = lightblue;
-    }
-  }
-
-  fMain->SetBackgroundColor(mainguicolor);
-
-  // Top frame, to hold page buttons and canvas
-  fTopframe = new TGHorizontalFrame(fMain,200,200);
-  fTopframe->SetBackgroundColor(mainguicolor);
-  fMain->AddFrame(fTopframe, new TGLayoutHints(kLHintsExpandX 
-                                              | kLHintsExpandY,10,10,10,1));
-
-  // Create a verticle frame widget with radio buttons
-  //  This will hold the page buttons
-  vframe = new TGVerticalFrame(fTopframe,40,200);
-  vframe->SetBackgroundColor(mainguicolor);
-  TString buff;
-  for(UInt_t i=0; i<fConfig->GetPageCount(); i++) {
-    buff = fConfig->GetPageTitle(i);
-    fRadioPage[i] = new TGRadioButton(vframe,buff,i);
-    fRadioPage[i]->SetBackgroundColor(mainguicolor);
-  }
-
-  fRadioPage[0]->SetState(kButtonDown);
-  current_page = 0;
-
-  for (UInt_t i=0; i<fConfig->GetPageCount(); i++) {
-    vframe->AddFrame(fRadioPage[i], 
-		     new TGLayoutHints(kLHintsLeft |
-				       kLHintsCenterY,5,5,3,4));
-    fRadioPage[i]->Connect("Pressed()", "OnlineGUI", this, "DoRadio()");
-  }
-  if(!fConfig->IsMonitor()) {
-    wile = 
-      new TGPictureButton(vframe,
-			  gClient->GetPicture(guiDirectory+"/defaultPic.xpm"));
-    wile->Connect("Pressed()","OnlineGUI", this,"DoDraw()");
-  } else {
-    wile = 
-      new TGPictureButton(vframe,
-			  gClient->GetPicture(guiDirectory+"/panguin.xpm"));
-    wile->Connect("Pressed()","OnlineGUI", this,"DoDrawClear(&fRootFile)");
-  }
-  wile->SetBackgroundColor(mainguicolor);
-
-  vframe->AddFrame(wile,
-		   new TGLayoutHints(kLHintsBottom|kLHintsLeft,5,10,4,2));
-
-
-  fTopframe->AddFrame(vframe,
-		      new TGLayoutHints(kLHintsCenterX|
-					kLHintsCenterY,2,2,2,2));
-  
-  // Create canvas widget
-  fEcanvas = new TRootEmbeddedCanvas("Ecanvas", fTopframe, 800, 600);
-  fEcanvas->SetBackgroundColor(mainguicolor);
-  fTopframe->AddFrame(fEcanvas, new TGLayoutHints(kLHintsExpandY,10,10,10,1));
-  fCanvas = fEcanvas->GetCanvas();
-
-  // Create the bottom frame.  Contains control buttons
-  fBottomFrame = new TGHorizontalFrame(fMain,1200,200);
-  fBottomFrame->SetBackgroundColor(mainguicolor);
-  fMain->AddFrame(fBottomFrame, new TGLayoutHints(kLHintsExpandX,10,10,10,10));
-  
-  // Create a horizontal frame widget with buttons
-  hframe = new TGHorizontalFrame(fBottomFrame,1200,40);
-  hframe->SetBackgroundColor(mainguicolor);
-  fBottomFrame->AddFrame(hframe,new TGLayoutHints(kLHintsExpandX,200,20,2,2));
-
-  fPrev = new TGTextButton(hframe,"Prev");
-  fPrev->SetBackgroundColor(mainguicolor);
-  fPrev->Connect("Clicked()","OnlineGUI",this,"DrawPrev()");
-  hframe->AddFrame(fPrev, new TGLayoutHints(kLHintsCenterX,5,5,1,1));
-
-  fNext = new TGTextButton(hframe,"Next");
-  fNext->SetBackgroundColor(mainguicolor);
-  fNext->Connect("Clicked()","OnlineGUI",this,"DrawNext()");
-  hframe->AddFrame(fNext, new TGLayoutHints(kLHintsCenterX,5,5,1,1));
-
-  fExit = new TGTextButton(hframe,"Exit GUI");
-  fExit->SetBackgroundColor(red);
-  fExit->Connect("Clicked()","OnlineGUI",this,"CloseGUI()");
-
-  hframe->AddFrame(fExit, new TGLayoutHints(kLHintsCenterX,5,5,1,1));
-  
-  TString Buff;
-  if(runNumber==0) {
-    Buff = "";
-  } else {
-    Buff = "Run #";
-    Buff += runNumber;
-  }
-  TGString labelBuff(Buff);
-  
-  fRunNumber = new TGLabel(hframe,Buff);
-  fRunNumber->SetBackgroundColor(mainguicolor);
-  hframe->AddFrame(fRunNumber,new TGLayoutHints(kLHintsCenterX,5,5,1,1));
-
-  fPrint = new TGTextButton(hframe,"Print To &File");
-  fPrint->SetBackgroundColor(mainguicolor);
-  fPrint->Connect("Clicked()","OnlineGUI",this,"PrintToFile()");
-  hframe->AddFrame(fPrint, new TGLayoutHints(kLHintsCenterX,5,5,1,1));
-
-
-  // Set a name to the main frame
-  if(fConfig->IsMonitor()) {
-    fMain->SetWindowName("Parity ANalysis GUI moNitor");
-  } else {
-    fMain->SetWindowName("Online Analysis GUI");
-  }
-
-  // Map all sub windows to main frame
-  fMain->MapSubwindows();
-  
-  // Initialize the layout algorithm
-  fMain->Resize(fMain->GetDefaultSize());
-  
-  // Map main frame
-  fMain->MapWindow();
-
-#ifdef DEBUG
-  fMain->Print();
-#endif
-
-  if(fFileAlive) DoDraw();
-
-  if(fConfig->IsMonitor()) {
-    timer = new TTimer();
-    if(fFileAlive) {
-      timer->Connect(timer,"Timeout()","OnlineGUI",this,"TimerUpdate()");
-    } else {
-      timer->Connect(timer,"Timeout()","OnlineGUI",this,"CheckRootFile()");
-    }
-    timer->Start(UPDATETIME);
-  }
-
-}
-
-void OnlineGUI::DoDraw() 
-{
-  // The main Drawing Routine.
-
-#ifdef INTERNALSTYLE
-  gStyle->SetOptStat(1110);
-  gStyle->SetStatFontSize(0.1);
-#endif
-  if (fConfig->IsLogx(current_page)) {
-    gStyle->SetOptLogx(1);
-  } else {
-    gStyle->SetOptLogx(0);
-  }
-  if (fConfig->IsLogy(current_page)) {
-    gStyle->SetOptLogy(1);
-  } else {
-    gStyle->SetOptLogy(0);
-  }
-  if (fConfig->IsLogz(current_page)) {
-    gStyle->SetOptLogz(1);
-  } else {
-    gStyle->SetOptLogz(0);
-  }
-#ifdef INTERNALSTYLE
-  gStyle->SetTitleH(0.10);
-  gStyle->SetTitleW(0.40);
-//   gStyle->SetLabelSize(0.10,"X");
-//   gStyle->SetLabelSize(0.10,"Y");
-  gStyle->SetLabelSize(0.05,"X");
-  gStyle->SetLabelSize(0.05,"Y");
-  gStyle->SetPadLeftMargin(0.14);
-  gStyle->SetNdivisions(505,"X");
-  gStyle->SetNdivisions(404,"Y");
-  gStyle->SetPalette(1);
-  gROOT->ForceStyle();
-#endif
-
-  // Determine the dimensions of the canvas..
-  UInt_t draw_count = fConfig->GetDrawCount(current_page);
-#ifdef INTERNALSTYLE
-  if(draw_count>=8) {
-    gStyle->SetLabelSize(0.08,"X");
-    gStyle->SetLabelSize(0.08,"Y");
-  }
-#endif
-//   Int_t dim = Int_t(round(sqrt(double(draw_count))));
-  pair <UInt_t,UInt_t> dim = fConfig->GetPageDim(current_page);
-
-#ifdef DEBUG
-  cout << "Dimensions: " << dim.first << "X" 
-       << dim.second << endl;
-#endif  
-
-  // Create a nice clean canvas.
-  fCanvas->Clear();
-  fCanvas->Divide(dim.first,dim.second);
-
-  drawcommand thiscommand;
-  // Draw the histograms.
-  for(UInt_t i=0; i<draw_count; i++) {    
-    thiscommand = fConfig->GetDrawCommand(current_page,i);
-    thiscommand = fileObject2command(thiscommand,&fRootFile);
-    fCanvas->cd(i+1);
-    if (thiscommand.variable == "macro") {
-      MacroDraw(thiscommand);
-    } else if (thiscommand.objtype.Contains("TH")) {
-      HistDraw(thiscommand);
-    } else if (thiscommand.objtype.Contains("TCanvas")) {
-      CanvasDraw(thiscommand,i+1);
-    } else if (thiscommand.objtype.Contains("TGraph")) {
-      GraphDraw(thiscommand);
-    } else { // otherwise... assume that the objtype is a branch from a tree
-      TreeDraw(thiscommand);
-    }
-  }
-      
-  fCanvas->cd();
-  fCanvas->Update();
-
-  if(!fPrintOnly) {
-    CheckPageButtons();
-  }
-
-}
-
-void OnlineGUI::DrawNext()
-{
-  // Handler for the "Next" button.
-  fRadioPage[current_page]->SetState(kButtonUp);
-  // The following line triggers DoRadio()
-  fRadioPage[current_page+1]->SetState(kButtonDown,true);
-  
-}
-
-void OnlineGUI::DrawPrev()
-{
-  // Handler for the "Prev" button.
-  fRadioPage[current_page]->SetState(kButtonUp);
-  // The following line triggers DoRadio()
-  fRadioPage[current_page-1]->SetState(kButtonDown,true);
-  
-}
-
-void OnlineGUI::DoRadio()
-{
-  // Handle the radio buttons
-  //  Find out which button has been pressed..
-  //   turn off the previous button...
-  //   then draw the appropriate page.
-  // This routine also handles the Draw from the Prev/Next buttons
-  //   - makes a call to DoDraw()
-
-  UInt_t pagecount = fConfig->GetPageCount();
-  TGButton *btn = (TGButton *) gTQSender;
-  UInt_t id = btn->WidgetId();
-  
-  if (id <= pagecount) {  
-    fRadioPage[current_page]->SetState(kButtonUp);
-  }
-
-  current_page = id;
-  if(!fConfig->IsMonitor()) DoDraw();
-
-}
-
-void OnlineGUI::CheckPageButtons() 
-{
-  // Checks the current page to see if it's the first or last page.
-  //  If so... turn off the appropriate button.
-  //  If not.. turn on both buttons.
-
-  if(current_page==0) {
-    fPrev->SetState(kButtonDisabled);
-    if(fConfig->GetPageCount()!=1)
-      fNext->SetState(kButtonUp);
-  } else if(current_page==fConfig->GetPageCount()-1) {
-    fNext->SetState(kButtonDisabled);
-    if(fConfig->GetPageCount()!=1)
-      fPrev->SetState(kButtonUp);
-  } else {
-    fPrev->SetState(kButtonUp);
-    fNext->SetState(kButtonUp);
-  }
-}
-
-void OnlineGUI::GetFileObjects(RootFileObject* fLocalRootFileObj)
-{
-  // Utility to find all of the objects within a File (TTree, TH1F, etc).
-  //  The pair stored in the vector is <ObjName, ObjType>
-  //  For histograms, the title is also stored 
-  //    (in case the the name is not very descriptive... like when
-  //    using h2root)
-  //  If there's no good keys.. do nothing.
-#ifdef DEBUGGETFILEOBJECTS
-  cout << "Keys = " << fLocalRootFileObj->RootFile->ReadKeys() << endl;
-#endif
-  if(fLocalRootFileObj->RootFile->ReadKeys()==0) {
-    fLocalRootFileObj->fUpdate = kFALSE;
-//     delete fLocalRootFileObj->RootFile;
-//     fLocalRootFileObj->RootFile = 0;
-//     CheckRootFile();
-    return;
-  }
-  fLocalRootFileObj->vfileObjects.clear();
-
-  TIter next( (fLocalRootFileObj->RootFile)->GetListOfKeys() );
-  TKey *key = new TKey();
-
-  // Do the search
-  while((key=(TKey*)next())!=0) {
-#ifdef DEBUGGETFILEOBJECTS
-    cout << "Key = " << key << endl;    
-#endif
-    TString objname = key->GetName();
-    TString objtype = key->GetClassName();
-    TString objtitle = key->GetTitle();
-#ifdef DEBUGGETFILEOBJECTS
-    cout << objname << " " << objtype << endl;
-#endif
-
-    if(objtype.Contains("TDirectory")) {
-      TDirectory *thisdir = (TDirectory*)fLocalRootFileObj->RootFile->Get(objname);
-      TIter nextInDir(thisdir->GetListOfKeys());
-      TKey *innerkey = new TKey();
-      while((innerkey=(TKey*)nextInDir())!=0) {
-	      TString iobjname = innerkey->GetName();
-	      TString iobjtype = innerkey->GetClassName();
-	      TString iobjtitle = innerkey->GetTitle();
-	      TString iobjdir = objname;
-#ifdef DEBUGGETFILEOBJECTS
-	      cout << iobjname << " " << iobjtype << endl;
-#endif
-	      fileObject thisObject;
-	      thisObject.name = iobjname;
-	      thisObject.type = iobjtype;
-	      thisObject.title = iobjtitle;
-	      thisObject.directory = objname;
-	      fLocalRootFileObj->vfileObjects.push_back(thisObject);
-	    }
-    } else {
-      fileObject thisObject;
-      thisObject.name = objname;
-      thisObject.type = objtype;
-      thisObject.title = objtitle;
-      thisObject.directory = "";
-      fLocalRootFileObj->vfileObjects.push_back(thisObject);
-    }
-      
-  }
-  fLocalRootFileObj->fUpdate = kTRUE;
-  delete key;
-}
-
-void OnlineGUI::GetTreeVars(RootFileObject* fLocalRootFileObj) 
-{
-  // Utility to find all of the variables (leaf's/branches) within a
-  // Specified TTree and put them within the TreeVars vector.
-  fLocalRootFileObj->TreeVars.clear();
-  TObjArray *branchList;
-  vector <TString> currentTree;
-
-  for(UInt_t i=0; i<fLocalRootFileObj->RootTree.size(); i++) {
-    currentTree.clear();
-    branchList = fLocalRootFileObj->RootTree[i]->GetListOfBranches();
-    TIter next(branchList);
-    TBranch *brc;
-
-    while((brc=(TBranch*)next())!=0) {
-      TString found = brc->GetName();
-      // Not sure if the line below is so smart...
-      currentTree.push_back(found);
-    }
-    fLocalRootFileObj->TreeVars.push_back(currentTree);
-  }
-#ifdef DEBUG2
-  for(UInt_t iTree=0; iTree<fLocalRootFileObj->TreeVars.size(); iTree++) {
-  cout << "In Tree " << iTree << ": " << endl;
-    for(UInt_t i=0; i<fLocalRootFileObj->TreeVars[iTree].size(); i++) {
-      cout << fLocalRootFileObj->TreeVars[iTree][i] << endl;
-    }
-  }
-#endif
-}
-
-
-void OnlineGUI::GetRootTree(RootFileObject* fLocalRootFileObj ) {
-  // Utility to search a ROOT File for ROOT Trees
-  // Fills the RootTree vector
-  fLocalRootFileObj->RootTree.clear();
-
-  list <TString> found;
-  for(UInt_t i=0; i<fLocalRootFileObj->vfileObjects.size(); i++) {
-#ifdef DEBUGGETROOTTREE
-    cout << "Object = " << fLocalRootFileObj->vfileObjects[i].type <<
-      "     Name = " << fLocalRootFileObj->vfileObjects[i].name << endl;
-#endif
-    if(fLocalRootFileObj->vfileObjects[i].type.Contains("TTree"))
-       found.push_back(fLocalRootFileObj->vfileObjects[i].name);
-  }
-
-  // Remove duplicates, then insert into fLocalRootFileObj->RootTree
-  found.unique();
-  UInt_t nTrees = found.size();
-
-  for(UInt_t i=0; i<nTrees; i++) {
-    fLocalRootFileObj->RootTree.push_back( (TTree*) fLocalRootFileObj->RootFile->Get(found.front()) );
-    found.pop_front();
-  }  
-  // Initialize the TreeEntries vector
-  fLocalRootFileObj->TreeEntries.clear();
-  for(UInt_t i=0;i<fLocalRootFileObj->RootTree.size();i++) {
-    fLocalRootFileObj->TreeEntries.push_back(0);
-  }
-  
-}
-
-UInt_t OnlineGUI::GetTreeIndex(TString var, RootFileObject* fLocalRootFileObj ) {
-  // Utility to find out which Tree (in fRootFile.RootTree) has the specified
-  // variable "var".  If the variable is a collection of Tree
-  // variables (e.g. bcm1:lumi1), will only check the first
-  // (e.g. bcm1).  
-  // Returns the correct index.  if not found returns an index 1
-  // larger than fRootFile.RootTree.size()
-
-  //  This is for 2d draws... look for the first only
-  if(var.Contains(":")) {
-    TString first_var = fConfig->SplitString(var,":")[0];
-    var = first_var;
-  }
-
-  //  This is for variables with multiple dimensions.
-  if(var.Contains("[")) {
-    TString first_var = fConfig->SplitString(var,"[")[0];
-    var = first_var;
-  }
-
-  for(UInt_t iTree=0; iTree<fLocalRootFileObj->TreeVars.size(); iTree++) {
-    for(UInt_t ivar=0; ivar<fLocalRootFileObj->TreeVars[iTree].size(); ivar++) {
-      if(var == fLocalRootFileObj->TreeVars[iTree][ivar]) return iTree;
-    }
-  }
-
-  return fLocalRootFileObj->RootTree.size()+1;
-}
-
-UInt_t OnlineGUI::GetTreeIndexFromName(TString name, RootFileObject* fLocalRootFileObj) {
-  // Called by TreeDraw().  Tries to find the Tree index provided the
-  //  name.  If it doesn't match up, return a number that's one larger
-  //  than the number of found trees.
-  for(UInt_t iTree=0; iTree<fLocalRootFileObj->RootTree.size(); iTree++) {
-    TString treename = fLocalRootFileObj->RootTree[iTree]->GetName();
-    if(name == treename) {
-      return iTree;
-    }
-  }
-
-  return fLocalRootFileObj->RootTree.size()+1;
-}
-
-void OnlineGUI::MacroDraw(drawcommand command) {
-  // Called by DoDraw(), this will make a call to the defined macro, and
-  //  plot it in it's own pad.  One plot per macro, please.
-
-  if(command.macro.IsNull()) {
-    cout << "macro command doesn't contain a macro to execute" << endl;
-    return;
-  }
-
-  if(doGolden) fRootFile.RootFile->cd();
-  gROOT->Macro(command.macro);
-  
-}
-
-void OnlineGUI::CanvasDraw(drawcommand command,UInt_t padnum) {
-  // Called by DoDraw(), this will draw the TCanvas in the current Canvas
-  
-  TString rootversion = gROOT->GetVersion();
-  TString slash = "/";
-  TString rootversion_cut = (fConfig->SplitString(rootversion,slash))[0];
-  Double_t ver_num = rootversion_cut.Atof();
-  if(ver_num<5.16) {
-    TString badstring = "TCanvas Drawing Unsupported in ROOT v"+rootversion;
-    BadDraw(badstring);
-    return;
-  }
-
-  TDirectory *fDir;
-  if(command.directory.IsNull()) {
-    fDir = 0;
-  } else {
-    fDir = (TDirectory*)fRootFile.RootFile->Get(command.directory);
-  }
-  
-  if(fDir) fDir->cd();
-  fRootFile.RootFile->cd();
-  TCanvas *tcanv = (TCanvas*)fRootFile.RootFile->Get(command.objname);
-  fCanvas->cd(padnum);
-  tcanv->DrawClonePad();
-  delete tcanv;
-  
-}
-
-void OnlineGUI::GraphDraw(drawcommand command) {
-  // Called by DoDraw(), this will draw the TCanvas in the current Canvas
-  
-  TString rootversion = gROOT->GetVersion();
-  fRootFile.RootFile->cd();
-  TDirectory *fDir;
-  if(command.directory.IsNull()) {
-    fDir = 0;
-  } else {
-    fDir = (TDirectory*)fRootFile.RootFile->Get(command.directory);
-  }
-  
-  if(fDir) fDir->cd();
-  TGraph *thisgraph = (TGraph*)fRootFile.RootFile->Get(command.objname);
-  TString drawopt = command.type;
-  if(drawopt.IsNull()) drawopt = "AP";
-  if(!command.title.IsNull()) thisgraph->SetTitle(command.title);
-  thisgraph->Draw(drawopt);
-  
-}
-
-
-void OnlineGUI::DoDrawClear(RootFileObject* fLocalRootFileObj) {
-  // Utility to grab the number of entries in each tree.  This info is
-  // then used, if watching a file, to "clear" the TreeDraw
-  // histograms, and begin looking at new data.
-  for(UInt_t i=0; i<fLocalRootFileObj->TreeEntries.size(); i++) {
-    fLocalRootFileObj->TreeEntries[i] = (Int_t) fLocalRootFileObj->RootTree[i]->GetEntries();
-  }
-  
-
-}
-
-void OnlineGUI::TimerUpdate() {
-  // Called periodically by the timer, if "watchfile" is indicated
-  // in the config.  Reloads the ROOT file, and updates the current page.
-#ifdef DEBUG
-  cout << "Update Now" << endl;
-#endif
-
-  if(fRootFile.RootFile->IsZombie() || (fRootFile.RootFile->GetSize() == -1)
-     || (fRootFile.RootFile->ReadKeys()==0)) {
-    cout << "New run not yet available.  Waiting..." << endl;
-    fRootFile.RootFile->Close();
-    delete fRootFile.RootFile;
-    fRootFile.RootFile = 0;
-    timer->Reset();
-    timer->Disconnect();
-    timer->Connect(timer,"Timeout()","OnlineGUI",this,"CheckRootFile()");
-    return;
-  }
-  for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) {
-    fRootFile.RootTree[i]->Refresh();
-  }
-  DoDraw();
-  timer->Reset();
-
-}
-
-void OnlineGUI::BadDraw(TString errMessage) {
-  // Routine to display (in Pad) why a particular draw method has
-  // failed.
-  TPaveText *pt = new TPaveText(0.1,0.1,0.9,0.9,"brNDC");
-  pt->SetBorderSize(3);
-  pt->SetFillColor(10);
-  pt->SetTextAlign(22);
-  pt->SetTextFont(72);
-  pt->SetTextColor(2);
-  pt->AddText(errMessage.Data());
-  pt->Draw();
-//   cout << errMessage << endl;
-
-}
-
-
-void OnlineGUI::CheckRootFile() {
-  // Check the path to the rootfile (should follow symbolic links)
-  // ... If found:
-  //   Reopen new root file, 
-  //   Reconnect the timer to TimerUpdate()
-
-  if(gSystem->AccessPathName(fConfig->GetRootFile())==0) {
-    cout << "Found the new run" << endl;
-    if(OpenRootFile()==0) {
-      timer->Reset();
-      timer->Disconnect();
-      timer->Connect(timer,"Timeout()","OnlineGUI",this,"TimerUpdate()");
-    }
-  } else {
-    TString rnBuff = "Waiting for run";
-    fRunNumber->SetText(rnBuff.Data());
-    hframe->Layout();
-  }
-
-}
-
-Int_t OnlineGUI::OpenRootFile() {
-
-
-  fRootFile.RootFile = new TFile(fConfig->GetRootFile(),"READ");
-  if(fRootFile.RootFile->IsZombie() || (fRootFile.RootFile->GetSize() == -1)
-     || (fRootFile.RootFile->ReadKeys()==0)) {
-    cout << "New run not yet available.  Waiting..." << endl;
-    fRootFile.RootFile->Close();
-    delete fRootFile.RootFile;
-    fRootFile.RootFile = 0;
-    timer->Reset();
-    timer->Disconnect();
-    timer->Connect(timer,"Timeout()","OnlineGUI",this,"CheckRootFile()");
-    return -1;
-  }
-
-  // Update the runnumber
-  ObtainRunNumber();
-  if(runNumber != 0) {
-    TString rnBuff = "Run #";
-    rnBuff += runNumber;
-    fRunNumber->SetText(rnBuff.Data());
-    hframe->Layout();
-  }
-
-  // Open the Root Trees.  Give a warning if it's not there..
-  GetFileObjects(&fRootFile);
-  if (fRootFile.fUpdate) { // Only do this stuff if there are valid keys
-    GetRootTree(&fRootFile);
-    GetTreeVars(&fRootFile);
-    for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) {
-      if(fRootFile.RootTree[i]==0) {
-	fRootFile.RootTree.erase(fRootFile.RootTree.begin() + i);
-      }
-    }
-    DoDraw();
-  } else {
-    return -1;
-  }
-  return 0;
-
-}
-
-void OnlineGUI::HistDraw(drawcommand command) {
-  // Called by DoDraw(), this will plot a histogram.
-
-  Bool_t showGolden=kFALSE;
-  if(doGolden) showGolden=kTRUE;
-  Bool_t showStat=kTRUE;
-  TString htitle;
-
-  if(command.noshowgolden=="noshowgolden") 
-    showGolden = kFALSE;
-  if(command.nostat=="nostat")
-      showStat=kFALSE;
-  htitle = command.title;
-
-  TString type=command.type;
-  TDirectory *fDir;
-  
-  if(command.directory.IsNull()) {
-    fDir = 0;
-  } else {
-    fDir = (TDirectory*)fRootFile.RootFile->Get(command.directory);
-  }
-  
-  // Determine dimensionality of histogram, then draw it
-  if(command.objtype.Contains("TH1")) {
-    // Operation for TH1
-    fRootFile.RootFile->cd();
-    if(fDir) fDir->cd();
-    fRootFile.mytemp1d = (TH1D*)gDirectory->Get(command.objname);
-    if(!fRootFile.mytemp1d) BadDraw(command.variable+" not found");
-    if(fRootFile.mytemp1d->GetEntries()==0) {
-      BadDraw("Empty Histogram");
-    } else {
-      if(showGolden) {
-	fGoldenFile.RootFile->cd();
-	if(fDir) fDir->cd();
-	fGoldenFile.mytemp1d = (TH1D*)gDirectory->Get(command.objname);
-	fGoldenFile.mytemp1d->SetLineColor(30);
-	fGoldenFile.mytemp1d->SetFillColor(30);
-	Int_t fillstyle=3027;
-	if(fPrintOnly) fillstyle=3010;
-	fGoldenFile.mytemp1d->SetFillStyle(fillstyle);
-	fRootFile.mytemp1d->SetStats(showStat);
-	fGoldenFile.mytemp1d->SetStats(kFALSE);
-	fGoldenFile.mytemp1d->Draw();
-	if(!htitle.IsNull()) fGoldenFile.mytemp1d->SetTitle(htitle);
-	fRootFile.mytemp1d->Draw("sames"+type);
-      } else {
-	fRootFile.mytemp1d->SetStats(showStat);
-	if(!htitle.IsNull()) fRootFile.mytemp1d->SetTitle(htitle);
-	fRootFile.mytemp1d->Draw(type);
-      }
-    }
-    return;
-  }
-
-  if(command.objtype.Contains("TH2")) {
-    // Operation for TH2
-    if(!showGolden) fRootFile.RootFile->cd();
-    if(fDir) fDir->cd();
-    fRootFile.mytemp2d = (TH2D*)gDirectory->Get(command.objname);
-    if(fRootFile.mytemp2d->GetEntries()==0) {
-      BadDraw("Empty Histogram");
-    } else {
-      if(showGolden) {
-	fGoldenFile.RootFile->cd();
-	if(fDir) fDir->cd();
-	fGoldenFile.mytemp2d = (TH2D*)gDirectory->Get(command.objname);
-	fGoldenFile.mytemp2d->SetMarkerColor(2);
-	fRootFile.mytemp2d->SetStats(showStat);
-	fGoldenFile.mytemp2d->SetStats(kFALSE);
-	fGoldenFile.mytemp2d->Draw(type);
-	if(!htitle.IsNull()) fGoldenFile.mytemp2d->SetTitle(htitle);
-	fRootFile.mytemp2d->Draw("sames"+type);
-      } else {
-	fRootFile.mytemp2d->SetStats(showStat);
-	if(!htitle.IsNull()) fGoldenFile.mytemp2d->SetTitle(htitle);
-	fRootFile.mytemp2d->Draw(type);
-      }
-    }
-    return;
-  }
-
-  if(command.objtype.Contains("TH3")) {
-    // Operation for TH3
-    if(!showGolden) fRootFile.RootFile->cd();
-    if(fDir) fDir->cd();
-    fRootFile.mytemp3d = (TH3D*)gDirectory->Get(command.objname);
-    if(fRootFile.mytemp3d->GetEntries()==0) {
-      BadDraw("Empty Histogram");
-    } else {
-      fRootFile.mytemp3d->Draw();
-      if(showGolden) {
-	fGoldenFile.RootFile->cd();
-	if(fDir) fDir->cd();
-	fGoldenFile.mytemp3d = (TH3D*)gDirectory->Get(command.objname);
-	fGoldenFile.mytemp3d->SetMarkerColor(2);
-	fRootFile.mytemp3d->SetStats(showStat);
-	fGoldenFile.mytemp3d->SetStats(kFALSE);
-	fGoldenFile.mytemp3d->Draw(type);
-	if(!htitle.IsNull()) fGoldenFile.mytemp3d->SetTitle(htitle);
-	fRootFile.mytemp3d->Draw("sames"+type);
-      } else {
-	fRootFile.mytemp3d->SetStats(showStat);
-	if(!htitle.IsNull()) fGoldenFile.mytemp3d->SetTitle(htitle);
-	fRootFile.mytemp3d->Draw(type);
-      }
-    }
-    return;
-  }
-  
-}
-
-drawcommand OnlineGUI::fileObject2command(drawcommand command, RootFileObject* fLocalRootFileObj) {
-  // Fill in gaps in the drawcommand with items from the
-  // vfileObject.  This elimates the need for duplicate code in
-  // the different *Draw routines.
-  for(UInt_t i=0; i<fLocalRootFileObj->vfileObjects.size(); i++) {
-    if(fLocalRootFileObj->vfileObjects[i].name==command.variable ||
-       fLocalRootFileObj->vfileObjects[i].title==command.variable ) {
-      command.objname = fLocalRootFileObj->vfileObjects[i].name;
-      command.objtitle = fLocalRootFileObj->vfileObjects[i].title;
-      command.objtype = fLocalRootFileObj->vfileObjects[i].type;
-      command.directory = fLocalRootFileObj->vfileObjects[i].directory;
-#ifdef DEBUGf2command
-      cout << command.directory << " " 
-	   << command.objtype  << " " 
-	   << command.objname 
-	   << endl;
-#endif
-      return command;
-    }
-  }
-  return command;
-  
-
-}
-
-void OnlineGUI::TreeDraw(drawcommand command) {
-  // Called by DoDraw(), this will plot a Tree Variable
-
-  TString var = command.variable;
-  Bool_t showGolden=kFALSE;
-  if(doGolden) showGolden=kTRUE;
-
-  Bool_t showStat=kTRUE;
-  if(command.nostat=="nostat") showStat=kFALSE;
-
-  //TObject *hobj;
-
-  // Combine the cuts (definecuts and specific cuts)
-  TCut cut = "";
-  TString tempCut;
-  if(!command.cut.IsNull()) {
-    tempCut = command.cut;
-    vector <TString> cutIdents = fConfig->GetCutIdent();
-    for(UInt_t i=0; i<cutIdents.size(); i++) {
-      if(tempCut.Contains(cutIdents[i])) {
-	TString cut_found = (TString)fConfig->GetDefinedCut(cutIdents[i]);
-	tempCut.ReplaceAll(cutIdents[i],cut_found);
-      }
-    }
-    cut = (TCut)tempCut;
-  }
-
-  // Determine which Tree the variable comes from, then draw it.
-  UInt_t iTree;
-  if(command.treename.IsNull()) {
-    iTree = GetTreeIndex(var,&fRootFile);
-  } else {
-    iTree = GetTreeIndexFromName(command.treename,&fRootFile);
-  }
-  TString drawopt = command.type;
-  Int_t errcode=0;
-  if(drawopt.IsNull() && var.Contains(":")) drawopt = "cont";
-  if(drawopt=="scat") drawopt = "";
-
-  fRootFile.RootFile->cd();
-  if (iTree <= fRootFile.RootTree.size() ) {
-    TObjArray* tok = var.Tokenize(">()");
-    TString myvar   = ((TObjString*)tok->First())->GetString();
-    TString hname   = "h";
-    TString histdef = ((TObjString*)tok->Last())->GetString();
-    if(tok->GetEntries() == 1) histdef = "";        // ie "var[0]"
-    if(tok->GetEntries() == 2) {
-      if(! histdef.Contains(",") ) {             // ie "var[0]>>h1"
-        hname = histdef;
-        histdef = "";
-      }
-    }
-    if(tok->GetEntries() == 3) hname = ((TObjString*)tok->At(1))->GetString();  // ie "var[0]>>h1(100,0,100)"
-    delete tok;
-    TString tmp = var + tempCut;
-    hname = Form("%s_%u",hname.Data(),tmp.Hash());      // unique id so caching histos works
-
-    errcode=1;
-    TObject *hobj  = gDirectory->Get(hname);
-    if(hobj == NULL) {
-      errcode = fRootFile.RootTree[iTree]->Draw(myvar+">>"+hname+"("+histdef+")",cut,drawopt,
-				     1000000000,fRootFile.TreeEntries[iTree]);
-      hobj = gDirectory->Get(hname);
-    }
-    TH1F *mainhist = (TH1F*)hobj;
-    mainhist->Draw(drawopt);
-    //tmp = myvar+">>"+hname+"("+histdef+")";
-    //printf("hist: '%s',  opt: '%s',  \"%s\"\n", hname.Data(), drawopt.Data(),tmp.Data());
-
-    if(errcode==-1) {
-      BadDraw(var+" not found");
-    } else if (errcode!=0) {
-      TString htype = hobj->ClassName();
-      if(! htype.Contains("TH1F") ) {
-        //printf("skipping.\n");
-        showGolden=kFALSE;
-      }
-      if(showGolden) {
-        errcode=1;
-        TString goldname = "gold"+hname;
-        TH1F *goldhist = (TH1F*)gDirectory->Get(goldname);
-        if(goldhist == NULL) {
-          goldhist = (TH1F*)mainhist->Clone(hname);
-          goldhist->SetName(goldname);
-          errcode = fGoldenFile.RootTree[iTree]->Project(goldname,myvar,cut);
-        }
-        if(errcode>0) {
-          goldhist->SetFillColor(30);
-	  Int_t fillstyle=3027;
-	  if(fPrintOnly) fillstyle=3010;
-	  goldhist->SetFillStyle(fillstyle);
-          goldhist->Draw(drawopt);
-          mainhist->SetFillColor(0);
-          mainhist->SetFillStyle(1001);
-          mainhist->Draw("same");
-          if(!command.title.IsNull()) goldhist->SetTitle(command.title);
-          if(!showStat)               goldhist->SetStats(kFALSE);
-        }
-      } else {
-        if(!command.title.IsNull()) mainhist->SetTitle(command.title);
-        if(!showStat)               mainhist->SetStats(kFALSE);
-      }
-    } else {
-      BadDraw("Empty Histogram");
-    }
-  } else {
-    BadDraw(var+" not found");
-    if (fConfig->IsMonitor()){
-      // Maybe we missed it... look again.  I dont like the code
-      // below... maybe I can come up with something better
-      GetFileObjects(&fRootFile);
-      GetRootTree(&fRootFile);
-      GetTreeVars(&fRootFile);
-    }
-  }
-
-}
-
-void OnlineGUI::ObtainRunNumber()
-{
-  // Utility to obtain the runnumber through a helper macro
-  //  "GetRunNumber.C"
-  
-  if (runNumber==0) runNumber = GetRunNumber();
-#ifdef DEBUG
-  cout << "Runnumber from file: " << runNumber << endl;
-#endif
-}
-
-void OnlineGUI::PrintToFile()
-{
-  // Routine to print the current page to a File.
-  //  A file dialog pop's up to request the file name.
-  fCanvas = fEcanvas->GetCanvas();
-  gStyle->SetPaperSize(20,24);
-  static TString dir("printouts");
-  TGFileInfo fi;
-  const char *myfiletypes[] = 
-    { "All files","*",
-      "PostScript files","*.ps",
-      "Encapsulated PostScript files","*.eps",
-      "GIF files","*.gif",
-      "JPG files","*.jpg",
-      0,               0 };
-  fi.fFileTypes = myfiletypes;
-  fi.fIniDir    = StrDup(dir.Data());
-
-  new TGFileDialog(gClient->GetRoot(), fMain, kFDSave, &fi);
-  if(fi.fFilename!=NULL) fCanvas->Print(fi.fFilename);
-}
-
-void OnlineGUI::PrintPages() {
-  // Routine to go through each defined page, and print the output to 
-  // a postscript file. (good for making sample histograms).
-  
-  // Open the RootFile
-    //  unless we're watching a file.
-  fRootFile.RootFile = new TFile(fConfig->GetRootFile(),"READ");
-  if(!fRootFile.RootFile->IsOpen()) {
-    cout << "ERROR:  rootfile: " << fConfig->GetRootFile()
-	 << " does not exist"
-	 << endl;
-#ifdef STANDALONE
-    gApplication->Terminate();
-#else
-    return;
-#endif
-  } else {
-    fFileAlive = kTRUE;
-    ObtainRunNumber();
-    // Open the Root Trees.  Give a warning if it's not there..
-    GetFileObjects(&fRootFile);
-    GetRootTree(&fRootFile);
-    GetTreeVars(&fRootFile);
-    for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) {
-      if(fRootFile.RootTree[i]==0) {
-	fRootFile.RootTree.erase(fRootFile.RootTree.begin() + i);
-      }
-    }
-    
-  }
-  TString goldenfilename=fConfig->GetGoldenFile();
-  if(!goldenfilename.IsNull()) {
-    fGoldenFile.RootFile = new TFile(goldenfilename,"READ");
-    if(!fGoldenFile.RootFile->IsOpen()) {
-      cout << "ERROR: goldenrootfile: " << goldenfilename
-	   << " does not exist.  Oh well, no comparison plots."
-	   << endl;
-      doGolden = kFALSE;
-      fGoldenFile.RootFile=NULL;
-    } else {
-      // Open the Root Trees.  Give a warning if it's not there..
-      GetFileObjects(&fGoldenFile);
-      GetRootTree(&fGoldenFile);
-      GetTreeVars(&fGoldenFile);
-      for(UInt_t i=0; i<fGoldenFile.RootTree.size(); i++) {
-        if(fGoldenFile.RootTree[i]==0) {
-	  fGoldenFile.RootTree.erase(fGoldenFile.RootTree.begin() + i);
-        }
-      }
-      doGolden = kTRUE;
-    }
-  } else {
-    doGolden=kFALSE;
-    fGoldenFile.RootFile=NULL;
-  }
-
-  // I'm not sure exactly how this works.  But it does.
-  fCanvas = new TCanvas("fCanvas","trythis",850,1100);
-//   TCanvas *maincanvas = new TCanvas("maincanvas","whatever",850,1100);
-//   maincanvas->SetCanvas(fCanvas);
-  TLatex *lt = new TLatex();
-
-  TString plotsdir = fConfig->GetPlotsDir();
-  Bool_t useJPG = kFALSE;
-  if(!plotsdir.IsNull()) useJPG = kTRUE;
-
-  TString filename = "summaryplots";
-  if(runNumber!=0) {
-    filename += "_";
-    filename += runNumber;
-  }
-  if(useJPG) {
-    filename.Prepend(plotsdir+"/");
-    filename += "_pageXXXX.jpg";
-  }
-  else filename += ".ps";
-
-  TString pagehead = "Summary Plots";
-  if(runNumber!=0) {
-    pagehead += "(Run #";
-    pagehead += runNumber;
-    pagehead += ")";
-  }
-  pagehead += ": ";
-
-  gStyle->SetPalette(1);
-  gStyle->SetTitleX(0.15);
-  gStyle->SetTitleY(0.9);
-  gStyle->SetPadBorderMode(0);
-  gStyle->SetHistLineColor(1);
-  gStyle->SetHistFillColor(1);
-  if(!useJPG) fCanvas->Print(filename+"[");
-  TString origFilename = filename;
-  for(UInt_t i=0; i<fConfig->GetPageCount(); i++) {
-    current_page=i;
-    DoDraw();
-    TString pagename = pagehead + fConfig->GetPageTitle(current_page);
-    lt->SetTextSize(0.025);
-    lt->DrawLatex(0.05,0.98,pagename);
-    if(useJPG) {
-      filename = origFilename;
-      filename.ReplaceAll("XXXX",Form("%d",current_page));
-      cout << "Printing page " << current_page 
-	   << " to file = " << filename << endl;
-    }
-    fCanvas->Print(filename);
-  }
-  if(!useJPG) fCanvas->Print(filename+"]");
-  
-#ifdef STANDALONE
-  gApplication->Terminate();
-#endif
-}
-
-void OnlineGUI::MyCloseWindow()
-{
-  fMain->SendCloseMessage();
-  cout << "OnlineGUI Closed." << endl;
-  if(timer!=NULL) {
-    timer->Stop();
-    delete timer;
-  }
-  delete fPrint;
-  delete fExit;
-  delete fRunNumber;
-  delete fPrev;
-  delete fNext;
-  delete wile;
-  for(UInt_t i=0; i<fConfig->GetPageCount(); i++) 
-    delete fRadioPage[i];
-  delete hframe;
-  delete fEcanvas;
-  delete fBottomFrame;
-  delete vframe;
-  delete fTopframe;
-  delete fMain;
-  if(fGoldenFile.RootFile!=NULL) delete fGoldenFile.RootFile;
-  if(fRootFile.RootFile!=NULL) delete fRootFile.RootFile;
-  delete fConfig;
-
-#ifdef STANDALONE
-  gApplication->Terminate();
-#endif
-}
-
-void OnlineGUI::CloseGUI() 
-{
-  // Routine to take care of the Exit GUI button
-  fMain->SendCloseMessage();
-}
-
-OnlineGUI::~OnlineGUI()
-{
-  //  fMain->SendCloseMessage();
-  if(timer!=NULL) {
-    timer->Stop();
-    delete timer;
-  }
-  delete fPrint;
-  delete fExit;
-  delete fRunNumber;
-  delete fPrev;
-  delete fNext;
-  delete wile;
-  for(UInt_t i=0; i<fConfig->GetPageCount(); i++) 
-    delete fRadioPage[i];
-  delete hframe;
-  delete fEcanvas;
-  delete vframe;
-  delete fBottomFrame;
-  delete fTopframe;
-  delete fMain;
-  if(fGoldenFile.RootFile!=NULL) delete fGoldenFile.RootFile;
-  if(fRootFile.RootFile!=NULL) delete fRootFile.RootFile;
-  delete fConfig;
-}
-
-void online(TString type="standard",UInt_t run=0,Bool_t printonly=kFALSE) 
-{
-  // "main" routine.  Run this at the ROOT commandline.
-
-  if(printonly) {
-    if(!gROOT->IsBatch()) {
-#ifdef STANDALONE
-      gROOT->SetBatch();
-#else
-      cout << "Sorry... the print summary plots option only works "
-	   << "in BATCH mode." << endl;
-      return;
-#endif
-    }
-  }
-
-  OnlineConfig *fconfig = new OnlineConfig(type);
-    //    OnlineConfig *fconfig = new OnlineConfig("halla");
-
-  if(!fconfig->ParseConfig()) {
-#ifdef STANDALONE
-    gApplication->Terminate();
-#else
-    return;
-#endif
-  }
-
-  if(run!=0) fconfig->OverrideRootFile(run);
-
-  new OnlineGUI(*fconfig,printonly,run);
-
-}
-
-#ifdef STANDALONE
-void Usage()
-{
-  cerr << "Usage: online [-r] [-f] [-P]"
-       << endl;
-  cerr << "Options:" << endl;
-  cerr << "  -r : runnumber" << endl;
-  cerr << "  -f : configuration file" << endl;
-  cerr << "  -P : Only Print Summary Plots" << endl;
-  cerr << endl;
-
-}
-
-int main(int argc, char **argv)
-{
-  TString type="default";
-  UInt_t run=0;
-  Bool_t printonly=kFALSE;
-  Bool_t showedUsage=kFALSE;
-
-  TApplication theApp("App",&argc,argv,NULL,-1);
-
-  for(Int_t i=1;i<theApp.Argc();i++)
-    {
-      TString sArg = theApp.Argv(i);
-      if(sArg=="-f") {
-	type = theApp.Argv(++i);
-	cout << " File specifier: "
-	     <<  type << endl;
-      } else if (sArg=="-r") {
-	run = atoi(theApp.Argv(++i));
-	cout << " Runnumber: "
-	     << run << endl;
-      } else if (sArg=="-P") {
-	printonly = kTRUE;
-	cout <<  " PrintOnly" << endl;
-      } else if (sArg=="-h") {
-	if(!showedUsage) Usage();
-	showedUsage=kTRUE;
-	return 0;
-      } else {
-	cerr << "\"" << sArg << "\"" << " not recognized.  Ignored." << endl;
-	if(!showedUsage) Usage();
-	showedUsage=kTRUE;
-      }
-    }
-
-  online(type,run,printonly);
-  theApp.Run();
-
-  return 0;
-}
-
-#endif
+///////////////////////////////////////////////////////////////////
+//  Macro to help with online analysis
+//    B. Moffit (moffit@jlab.org)
+//    - Originally written in Oct. 2003
+//  Documentation and updates available at:
+//    http://www.jlab.org/~moffit/onlineGUI/
+//
+
+#include "online.h"
+#include <string>
+#include <fstream>
+#include <iostream>
+#include <list>
+#include <TMath.h>
+#include <TBranch.h>
+#include <TGClient.h>
+#include <TCanvas.h>
+#include <TStyle.h>
+#include <TROOT.h>
+#include <TGImageMap.h>
+#include <TGFileDialog.h>
+#include <TKey.h>
+#include <TObjString.h>
+#include <TSystem.h>
+#include <TLatex.h>
+#include <TText.h>
+#include <TGraph.h>
+#include "GetRootFileName.C"
+#include "GetRunNumber.C"
+#include "TPaveText.h"
+#ifdef STANDALONE
+#include <TApplication.h>
+#endif
+// #define DEBUGGETFILEOBJECTS
+// #define DEBUGPARSE
+// #define DEBUG
+//#define DEBUG2
+//#define NOISY
+//#define INTERNALSTYLE
+
+//TString guiDirectory = "onlineGUI_v1.2.1/";
+TString guiDirectory = "./";
+
+///////////////////////////////////////////////////////////////////
+//  Class: OnlineConfig
+//
+//     Utility class that reads in a text file (.cfg) and
+//     stores it's contents.
+//
+//
+
+OnlineConfig::OnlineConfig()
+{
+  // Constructor.  Without an argument, will use default "standard" config
+  fMonitor = kFALSE;
+  OnlineConfig("standard");
+}
+
+OnlineConfig::OnlineConfig(TString anatype)
+{
+  // Constructor.  Takes the config anatype as the only argument.
+  //  Loads up the configuration file, and stores it's contents for access.
+
+  confFileName = anatype;
+  configfilestart=anatype;
+  if(!confFileName.Contains(".cfg"))
+    confFileName += ".cfg";
+  fMonitor = kFALSE;
+  fFoundCfg = kFALSE;
+
+  // Attempt to find the config file in specified (first argument,
+  // relative or absolute) location, then in guiDirectory
+  fConfFile = new ifstream(confFileName.Data());
+  if ( ! (*fConfFile) ) {
+    cerr << "OnlineConfig() WARNING: config file " << confFileName.Data()
+         << " does not exist" << endl;
+    cerr << " Checking the " << guiDirectory << " directory" << endl;
+    confFileName.Prepend(guiDirectory+"/");
+    fConfFile = new ifstream(confFileName.Data());
+    if ( ! (*fConfFile) ) {
+      // Didn't find it... load up the default config
+      confFileName = guiDirectory+"/default.cfg";
+      cout << "OnlineConfig()  Trying " << confFileName.Data()
+	   << " as default configuration." << endl
+	   << " (May be ok.)" << endl;
+      fConfFile = new ifstream(confFileName.Data());
+      if ( ! (*fConfFile) ) {
+	cerr << "OnlineConfig() WARNING: no file "
+	     << confFileName.Data() <<endl;
+	cerr << "You need a configuration to run.  Ask an expert."<<endl;
+	fFoundCfg = kFALSE;
+	//      return;
+      } else {
+	fFoundCfg = kTRUE;
+      }
+    } else {
+      fFoundCfg = kTRUE;
+    }
+  } else {
+    fFoundCfg = kTRUE;
+  }
+
+  if(fFoundCfg) {
+  clog << "GUI Configuration loading from "
+       << confFileName.Data() << endl;
+  }
+
+  ParseFile();
+
+  // Load up a user configurable style (if it exists)
+  TString styleFile = guiDirectory+"onlineGUI_Style.C";
+  if(!gSystem->AccessPathName(styleFile))
+     gROOT->Macro(styleFile);
+
+  fConfFile->close();
+  delete fConfFile;
+
+}
+
+void OnlineConfig::ParseFile()
+{
+  // Reads in the Config File, and makes the proper calls to put
+  //  the information contained into memory.
+
+  if(!fFoundCfg) {
+    return;
+  }
+
+  TString comment = "#";
+  vector<TString> strvect;
+  TString sinput, sline;
+  while (sline.ReadLine(*fConfFile)) {
+    strvect.clear();
+    // Strip away leading and trailing spaces.
+    sline = sline.Strip(TString::kBoth,' ');
+    // If the line starts with a comment, skip it.
+    if(sline.BeginsWith(comment)) continue;
+    // If the line contains a comment, split it up into two and keep
+    // the uncommented (first) part
+    if(sline.Contains(comment)) {
+      TObjArray *tmpoarr = sline.Tokenize(comment);
+      TObjString *tmpostr = (TObjString*)tmpoarr->First();
+      sline = tmpostr->GetString().Strip(TString::kTrailing,' ');
+      delete tmpoarr;
+    }
+    // Now split up the line according to 's and spaces.  This is for
+    // looking for the histogram using it's title (which may contain
+    // spaces) instead of its name.
+    if(sline.Contains("'")) {
+      TObjArray *tmpoarr = sline.Tokenize("'");
+      Bool_t quote_on_odd = kTRUE;
+      if(!(sline.BeginsWith("'"))) quote_on_odd=kFALSE;
+      TIterator *next = tmpoarr->MakeIterator();
+      TObjString *tmpostr; Bool_t odd=kTRUE;
+      while((tmpostr=(TObjString*)next->Next())!=NULL) {
+	if((quote_on_odd&&odd) || (!quote_on_odd&&!odd)) {
+	  strvect.push_back(tmpostr->GetString());
+	  odd = !odd;
+	} else {
+	  TObjArray *tmpoarr2 = tmpostr->GetString().Tokenize(" ");
+	  TIterator *next2 = tmpoarr2->MakeIterator();
+	  TObjString *tmpostr2;
+	  while((tmpostr2=(TObjString*)next2->Next())!=NULL) {
+	    strvect.push_back(tmpostr2->GetString());
+	  }
+	  delete tmpoarr2;
+	  odd = !odd;
+	}
+      }
+      delete tmpoarr;
+    } else { // No 's.. just split according to spaces
+      TObjArray *tmpoarr2 = sline.Tokenize(" ");
+      TIterator *next2 = tmpoarr2->MakeIterator();
+      TObjString *tmpostr2;
+      while((tmpostr2=(TObjString*)next2->Next())!=NULL) {
+	strvect.push_back(tmpostr2->GetString());
+      }
+      delete tmpoarr2;
+    }
+    sConfFile.push_back(strvect);
+
+}
+
+#ifdef DEBUGPARSE
+  for(UInt_t ii=0; ii<sConfFile.size(); ii++) {
+    cout << "Line " << ii << endl << "  ";
+    for(UInt_t jj=0; jj<sConfFile[ii].size(); jj++)
+      cout << sConfFile[ii][jj] << " ";
+    cout << endl;
+  }
+#endif
+
+  cout << "     " << sConfFile.size() << " lines read from "
+       << confFileName << endl;
+
+}
+
+Bool_t OnlineConfig::ParseConfig()
+{
+  //  Goes through each line of the config [must have been ParseFile()'d]
+  //   and interprets.
+
+  if(!fFoundCfg) {
+    return kFALSE;
+  }
+
+  UInt_t command_cnt=0;
+  UInt_t j=0;
+  Bool_t hasMultiPlots=kFALSE;
+  canvaswidth = 800;		// Default canvas size
+  canvasheight = 600;
+  // If statement for each high level command (cut, newpage, etc)
+  for(UInt_t i=0;i<sConfFile.size();i++) {
+    // "newpage" command
+    if(sConfFile[i][0] == "newpage") {
+      // sConfFile[i] is first of pair
+      for(j=i+1;j<sConfFile.size();j++) {
+	if(sConfFile[j][0] != "newpage") {
+	  // Count how many commands within the page
+	  command_cnt++;
+	} else break;
+      }
+      pageInfo.push_back(make_pair(i,command_cnt));
+      i += command_cnt;
+      command_cnt=0;
+    }
+    if(sConfFile[i][0] == "watchfile") {
+      fMonitor = kTRUE;
+    }
+    if(sConfFile[i][0] == "definecut") {
+      if(sConfFile[i].size()>3) {
+	cerr << "cut command has too many arguments" << endl;
+	continue;
+      }
+      TCut tempCut(sConfFile[i][1],sConfFile[i][2]);
+      cutList.push_back(tempCut);
+    }
+    if(sConfFile[i][0] == "rootfile") {
+      if(sConfFile[i].size() != 2) {
+	cerr << "WARNING: rootfile command does not have the "
+	     << "correct number of arguments"
+	     << endl;
+	continue;
+      }
+      if(!rootfilename.IsNull()) {
+	cerr << "WARNING: too many rootfile's defined. "
+	     << " Will only use the first one."
+	     << endl;
+	continue;
+      }
+      rootfilename = sConfFile[i][1];
+    }
+    if(sConfFile[i][0] == "goldenrootfile") {
+      if(sConfFile[i].size() != 2) {
+	cerr << "WARNING: goldenfile command does not have the "
+	     << "correct number of arguments"
+	     << endl;
+	continue;
+      }
+      if(!goldenrootfilename.IsNull()) {
+	cerr << "WARNING: too many goldenrootfile's defined. "
+	     << " Will only use the first one."
+	     << endl;
+	continue;
+      }
+      goldenrootfilename = sConfFile[i][1];
+    }
+    if(sConfFile[i][0] == "protorootfile") {
+      if(sConfFile[i].size() != 2) {
+	cerr << "WARNING: protorootfile command does not have the "
+	     << "correct number of arguments"
+	     << endl;
+	continue;
+      }
+      if(!protorootfile.IsNull()) {
+	cerr << "WARNING: too many protorootfile's defined. "
+	     << " Will only use the first one."
+	     << endl;
+	continue;
+      }
+      protorootfile = sConfFile[i][1];
+    }
+    if(sConfFile[i][0] == "guicolor") {
+      if(sConfFile[i].size() != 2) {
+	cerr << "WARNING: guicolor command does not have the "
+	     << "correct number of arguments (needs 1)"
+	     << endl;
+	continue;
+      }
+      if(!guicolor.IsNull()) {
+	cerr << "WARNING: too many guicolor's defined. "
+	     << " Will only use the first one."
+	     << endl;
+	continue;
+      }
+      guicolor = sConfFile[i][1];
+    }
+    if(sConfFile[i][0] == "canvassize") {
+      if(sConfFile[i].size() != 3) {
+	cerr << "WARNING: canvassize command does not have the "
+	     << "correct number of arguments (needs 2)"
+	     << endl;
+	continue;
+      }
+      canvaswidth = UInt_t(atoi(sConfFile[i][1]));
+      canvasheight = UInt_t(atoi(sConfFile[i][2]));
+    }
+    if(sConfFile[i][0] == "plotsdir") {
+      if(sConfFile[i].size() != 2) {
+	cerr << "WARNING: plotsdir command does not have the "
+	     << "correct number of arguments (needs 1)"
+	     << endl;
+	continue;
+      }
+      if(!plotsdir.IsNull()) {
+	cerr << "WARNING: too many plotdir's defined. "
+	     << " Will only use the first one."
+	     << endl;
+	continue;
+      }
+      plotsdir = sConfFile[i][1];
+    }
+    if(sConfFile[i][0] == "multiplot") {
+      hasMultiPlots = kTRUE;
+    }
+
+  }
+
+  if(hasMultiPlots) {
+    if(!ParseForMultiPlots()) {
+      cerr << "ParseForMultiPlots() Failed" << endl;
+    }
+  }
+
+#ifdef NOISY
+  for(UInt_t i=0; i<GetPageCount(); i++) {
+    cout << "Page " << i << " (" << GetPageTitle(i) << ")"
+	 << " will draw " << GetDrawCount(i)
+	 << " histograms." << endl;
+  }
+#endif
+
+  cout << "Number of pages defined = " << GetPageCount() << endl;
+  cout << "Number of cuts defined = " << cutList.size() << endl;
+
+  if (fMonitor)
+    cout << "Will periodically update plots" << endl;
+  if(!goldenrootfilename.IsNull()) {
+    cout << "Will compare chosen histrograms with the golden rootfile: "
+	 << endl
+	 << goldenrootfilename << endl;
+  }
+
+  return kTRUE;
+
+}
+
+Bool_t OnlineConfig::ParseForMultiPlots() {
+  // Parse through each line of sConfFile,
+  // and replace each "multiplot" command with a real draw entry
+
+  vector < vector <TString> > newConfFile;
+  for(UInt_t iter=0;iter<sConfFile.size();iter++) {
+    if(sConfFile[iter][0]=="multiplot") {
+      // First argument is the low limit,
+      // second argument is the high limit
+      UInt_t lolimit = (UInt_t)sConfFile[iter][1].Atoi();
+      UInt_t hilimit = (UInt_t)sConfFile[iter][2].Atoi();
+
+      // For the rest of the line, replace all of the XXXXX's
+      // with an iteration from lolimit to hilimit.
+      for(UInt_t imult=lolimit;imult<=hilimit;imult++) {
+	vector <TString> newline;
+	for(UInt_t ielem=3; ielem<sConfFile[iter].size();ielem++) {
+	  TString origString = sConfFile[iter][ielem];
+	  TString newString = origString;
+	  newString.ReplaceAll("XXXXX",Form("%d",imult));
+	  newline.push_back(newString);
+	}
+	newConfFile.push_back(newline);
+      }
+    } else {
+      newConfFile.push_back(sConfFile[iter]);
+    }
+  }
+
+#ifdef DEBUG
+  for(UInt_t iter=0;iter<newConfFile.size();iter++) {
+    for(UInt_t iline=0;iline<newConfFile[iter].size();iline++) {
+      cout << newConfFile[iter][iline] << " ";
+    }
+    cout << endl;
+  }
+#endif
+
+  // Out with the old, in with the new.
+  sConfFile.clear();
+  sConfFile = newConfFile;
+
+  // Now need to recalculate pageInfo.
+  UInt_t command_cnt=0;
+  UInt_t j=0;
+
+  pageInfo.clear();
+  // If statement for each high level command (cut, newpage, etc)
+  for(UInt_t i=0;i<sConfFile.size();i++) {
+    // "newpage" command
+    if(sConfFile[i][0] == "newpage") {
+      // sConfFile[i] is first of pair
+      for(j=i+1;j<sConfFile.size();j++) {
+	if(sConfFile[j][0] != "newpage") {
+	  // Count how many commands within the page
+	  command_cnt++;
+	} else break;
+      }
+      pageInfo.push_back(make_pair(i,command_cnt));
+      i += command_cnt;
+      command_cnt=0;
+    }
+  }
+
+  return kTRUE;
+
+}
+
+TCut OnlineConfig::GetDefinedCut(TString ident) {
+  // Returns the defined cut, according to the identifier
+
+  for(UInt_t i=0; i<cutList.size(); i++) {
+    if((TString)cutList[i].GetName() == ident.Data()) {
+      TCut tempCut = cutList[i].GetTitle();
+      return tempCut;
+    }
+  }
+  return "";
+}
+
+vector <TString> OnlineConfig::GetCutIdent() {
+  // Returns a vector of the cut identifiers, specified in config
+  vector <TString> out;
+
+  for(UInt_t i=0; i<cutList.size(); i++) {
+    out.push_back(cutList[i].GetName());
+  }
+
+  return out;
+}
+
+Bool_t OnlineConfig::IsLogx(UInt_t page) {
+// Check if last word on line is "logx"
+
+  UInt_t page_index = pageInfo[page].first;
+  Int_t word_index = sConfFile[page_index].size()-1;
+  if (word_index <= 0) return kFALSE;
+  TString option = sConfFile[page_index][word_index];
+  if(option == "logx") return kTRUE;
+  return kFALSE;
+
+}
+
+Bool_t OnlineConfig::IsLogy(UInt_t page) {
+// Check if last word on line is "logy"
+
+  UInt_t page_index = pageInfo[page].first;
+  Int_t word_index = sConfFile[page_index].size()-1;
+  if (word_index <= 0) return kFALSE;
+  TString option = sConfFile[page_index][word_index];
+  if(option == "logy") return kTRUE;
+  return kFALSE;
+
+}
+
+Bool_t OnlineConfig::IsLogz(UInt_t page) {
+// Check if last word on line is "logz"
+
+  UInt_t page_index = pageInfo[page].first;
+  Int_t word_index = sConfFile[page_index].size()-1;
+  if (word_index <= 0) return kFALSE;
+  TString option = sConfFile[page_index][word_index];
+  if(option == "logz") return kTRUE;
+  return kFALSE;
+
+}
+
+
+pair <UInt_t, UInt_t> OnlineConfig::GetPageDim(UInt_t page)
+{
+  // If defined in the config, will return those dimensions
+  //  for the indicated page.  Otherwise, will return the
+  //  calculated dimensions required to fit all histograms.
+
+  pair <UInt_t, UInt_t> outDim;
+
+  // This is the page index in sConfFile.
+  UInt_t page_index = pageInfo[page].first;
+
+  UInt_t size1 = 2;
+
+  if (IsLogx(page)) size1 = 3;  // last word is "logy"
+  if (IsLogy(page)) size1 = 3;  // last word is "logy"
+  if (IsLogz(page)) size1 = 3;  // last word is "logy"
+
+  // If the dimensions are defined, return them.
+  if(sConfFile[page_index].size()>size1-1) {
+    if(sConfFile[page_index].size() == size1) {
+      outDim = make_pair(UInt_t(atoi(sConfFile[page_index][1])),
+		       UInt_t(atoi(sConfFile[page_index][1])));
+      return outDim;
+    } else if (sConfFile[page_index].size() == size1+1) {
+      outDim = make_pair(UInt_t(atoi(sConfFile[page_index][1])),
+		       UInt_t(atoi(sConfFile[page_index][2])));
+      return outDim;
+    } else {
+      cout << "Warning: newpage command has too many arguments. "
+	   << "Will automatically determine dimensions of page."
+	   << endl;
+    }
+  }
+
+  // If not defined, return the "default."
+  UInt_t draw_count = GetDrawCount(page);
+  UInt_t dim = UInt_t(TMath::Nint(sqrt(double(draw_count+1))));
+  outDim = make_pair(dim,dim);
+
+  return outDim;
+}
+
+TString OnlineConfig::GetPageTitle(UInt_t page)
+{
+  // Returns the title of the page.
+  //  if it is not defined in the config, then return "Page #"
+
+  TString title;
+
+  UInt_t iter_command = pageInfo[page].first+1;
+
+  for(UInt_t i=0; i<pageInfo[page].second; i++) { // go through each command
+    if(sConfFile[iter_command+i][0] == "title") {
+      // Combine the strings, and return it
+      for (UInt_t j=1; j<sConfFile[iter_command+i].size(); j++) {
+	title += sConfFile[iter_command+i][j];
+	title += " ";
+      }
+      title.Chop();
+      return title;
+    }
+  }
+  title = "Page "; title += page;
+  return title;
+}
+
+vector <UInt_t> OnlineConfig::GetDrawIndex(UInt_t page)
+{
+  // Returns an index of where to find the draw commands within a page
+  //  within the sConfFile vector
+
+  vector <UInt_t> index;
+  UInt_t iter_command = pageInfo[page].first+1;
+
+  for(UInt_t i=0; i<pageInfo[page].second; i++) {
+    if(sConfFile[iter_command+i][0] != "title") {
+      index.push_back(iter_command+i);
+    }
+  }
+
+  return index;
+}
+
+UInt_t OnlineConfig::GetDrawCount(UInt_t page)
+{
+  // Returns the number of histograms that have been request for this page
+  UInt_t draw_count=0;
+
+  for(UInt_t i=0; i<pageInfo[page].second; i++) {
+    if(sConfFile[pageInfo[page].first+i+1][0] != "title") draw_count++;
+  }
+
+  return draw_count;
+
+}
+
+drawcommand OnlineConfig::GetDrawCommand(UInt_t page, UInt_t nCommand)
+{
+  // Returns the vector of strings pertaining to a specific page, and
+  //   draw command from the config.
+  // Return vector of TStrings:
+  //  0: variable
+  //  1: cut - only for Tree variables
+  //  2: type
+  //  3: title
+  //  4: treename - only for Tree variables
+  //  5: nostat
+  //  6: noshowgolden  - only for Histograms
+  //  This should probably be replaced with an actual structure
+
+  drawcommand out_command;
+  vector <UInt_t> command_vector = GetDrawIndex(page);
+  UInt_t index = command_vector[nCommand];
+
+#ifdef DEBUG
+  cout << "OnlineConfig::GetDrawCommand(" << page << ","
+       << nCommand << ")" << endl;
+#endif
+
+  // First line is the variable
+  if(sConfFile[index].size()>=1) {
+    out_command.variable = sConfFile[index][0];
+  }
+  if(sConfFile[index].size()>=2) {
+    if((sConfFile[index][1] != "-type") &&
+       (sConfFile[index][1] != "-title") &&
+       (sConfFile[index][1] != "-tree") &&
+       (sConfFile[index][1] != "-noshowgolden") &&
+       (sConfFile[index][1] != "-nostat")) {
+      if(out_command.variable=="macro") {
+	out_command.macro = sConfFile[index][1];
+      } else {
+	out_command.cut = sConfFile[index][1];
+      }
+    }
+  }
+
+  // Now go through the rest of that line..
+  for (UInt_t i=1; i<sConfFile[index].size(); i++) {
+    if(sConfFile[index][i]=="-type") {
+      out_command.type = sConfFile[index][i+1];
+      i = i+1;
+    } else if(sConfFile[index][i]=="-title") {
+      // Put the entire title, surrounded by quotes, as one TString
+      TString title;
+      UInt_t j=0;
+      for(j=i+1; j<sConfFile[index].size(); j++) {
+	TString word = sConfFile[index][j];
+	if( (word.BeginsWith("\"")) && (word.EndsWith("\"")) ) {
+	  title = word.ReplaceAll("\"","");
+	  out_command.title = title;
+	  i = j;
+	  break;
+	} else if(word.BeginsWith("\"")) {
+	  title = word.ReplaceAll("\"","");
+	} else if(word.EndsWith("\"")) {
+	  title += " " + word.ReplaceAll("\"","");
+	  out_command.title = title;
+	  i = j;
+	  break;
+	} else {
+	  title += " " + word;
+	}
+      }
+      // If we got here, and out_command.title is null... then just copy the contents
+      // of "title" to out_command.title (taking out any "'s along the way)
+      if(out_command.title.IsNull())
+	out_command.title = title.ReplaceAll("\"","");
+    } else if(sConfFile[index][i]=="-tree") {
+      out_command.treename = sConfFile[index][i+1];
+      i = i+1;
+    } else if(sConfFile[index][i]=="-nostat") {
+      out_command.nostat = "nostat";
+    } else if(sConfFile[index][i]=="-noshowgolden") {
+      out_command.noshowgolden = "noshowgolden";
+    }
+
+
+#ifdef DEBUG
+    cout << endl;
+#endif
+  }
+#ifdef DEBUG
+  cout << sConfFile[index].size() << ": ";
+  for(UInt_t i=0; i<sConfFile[index].size(); i++) {
+    cout << sConfFile[index][i] << " ";
+  }
+  cout << endl;
+#endif
+  return out_command;
+}
+
+vector <TString> OnlineConfig::SplitString(TString instring,TString delim)
+{
+  // Utility to split up a string on the deliminator.
+  //  returns a vector of strings.
+
+  vector <TString> v;
+
+  TString remainingString = instring;
+  TString tempstring = instring;
+  int i;
+
+  while (remainingString.Index(delim) != -1) {
+    i = remainingString.Index(delim);
+    tempstring.Remove(i);
+    v.push_back(tempstring);
+    remainingString.Remove(0,i+1);
+    while(remainingString.Index(delim) == 0) {
+      remainingString.Remove(0,1);
+    }
+    tempstring = remainingString;
+    // Cut out the rest, if it's a comment (starts with #)
+    if(TString(remainingString.Strip(TString::kLeading,' ')).BeginsWith("#")) {
+      tempstring = "";
+      break;
+    }
+  }
+
+  while(tempstring.EndsWith(delim)) {
+    tempstring.Chop();
+  }
+
+  if(!tempstring.IsNull()) v.push_back(tempstring);
+
+  return v;
+}
+
+void OnlineConfig::OverrideRootFile(UInt_t runnumber)
+{
+  // Override the ROOT file defined in the cfg file If
+  // protorootfile is used, construct filename using it, otherwise
+  // uses a helper macro "GetRootFileName.C(UInt_t runnumber)
+
+  if(!protorootfile.IsNull()) {
+    TString rn = "";
+    rn += runnumber;
+    protorootfile.ReplaceAll("XXXXX",rn.Data());
+    rootfilename = protorootfile;
+  } else {
+    rootfilename = GetRootFileName(runnumber);
+  }
+
+  cout << "Overridden File name: " << rootfilename << endl;
+}
+
+///////////////////////////////////////////////////////////////////
+//  Class: OnlineGUI
+//
+//    Creates a GUI to display the commands used in OnlineConfig
+//
+//
+
+OnlineGUI::OnlineGUI(OnlineConfig& config, Bool_t printonly, Bool_t rootonly,UInt_t RunNum):
+  runNumber(RunNum),
+  timer(0),
+  fFileAlive(kFALSE)
+{
+  // Constructor.  Get the config pointer, and make the GUI.
+
+  fConfig = &config;
+
+  if(printonly || rootonly) {
+    fPrintOnly=kTRUE;
+    PrintPages();
+  } else {
+    fPrintOnly=kFALSE;
+    CreateGUI(gClient->GetRoot(),200,200);
+  }
+}
+
+void OnlineGUI::CreateGUI(const TGWindow *p, UInt_t w, UInt_t h)
+{
+
+  // Open the RootFile.  Die if it doesn't exist.
+  //  unless we're watching a file.
+  fRootFile.RootFile = new TFile(fConfig->GetRootFile(),"READ");
+  if(!fRootFile.RootFile->IsOpen()) {
+    cout << "ERROR:  rootfile: " << fConfig->GetRootFile()
+	 << " does not exist"
+	 << endl;
+    if(fConfig->IsMonitor()) {
+      cout << "Will wait... hopefully.." << endl;
+    } else {
+#ifdef STANDALONE
+      gApplication->Terminate();
+#else
+      return;
+#endif
+    }
+  } else {
+    fFileAlive = kTRUE;
+    ObtainRunNumber();
+    // Open the Root Trees.  Give a warning if it's not there..
+    GetFileObjects(&fRootFile);
+    GetRootTree(&fRootFile);
+    GetTreeVars(&fRootFile);
+    for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) {
+      if(fRootFile.RootTree[i]==0) {
+	fRootFile.RootTree.erase(fRootFile.RootTree.begin() + i);
+      }
+    }
+
+  }
+  TString goldenfilename=fConfig->GetGoldenFile();
+  if(!goldenfilename.IsNull()) {
+    fGoldenFile.RootFile = new TFile(goldenfilename,"READ");
+    if(!fGoldenFile.RootFile->IsOpen()) {
+      cout << "ERROR: goldenrootfile: " << goldenfilename
+	   << " does not exist.  Oh well, no comparison plots."
+	   << endl;
+      doGolden = kFALSE;
+      fGoldenFile.RootFile=NULL;
+    } else {
+      // Open the Root Trees.  Give a warning if it's not there..
+      GetFileObjects(&fGoldenFile);
+      GetRootTree(&fGoldenFile);
+      GetTreeVars(&fGoldenFile);
+      for(UInt_t i=0; i<fGoldenFile.RootTree.size(); i++) {
+        if(fGoldenFile.RootTree[i]==0) {
+	  fGoldenFile.RootTree.erase(fGoldenFile.RootTree.begin() + i);
+        }
+      }
+      doGolden = kTRUE;
+    }
+  } else {
+    doGolden=kFALSE;
+    fGoldenFile.RootFile=NULL;
+  }
+
+
+  // Create the main frame
+  fMain = new TGMainFrame(p,w,h);
+  fMain->Connect("CloseWindow()", "OnlineGUI", this, "MyCloseWindow()");
+  ULong_t lightgreen, lightblue, red, mainguicolor;
+  gClient->GetColorByName("lightgreen",lightgreen);
+  gClient->GetColorByName("lightblue",lightblue);
+  gClient->GetColorByName("red",red);
+
+  UInt_t canvas_width = fConfig->GetCanvasWidth();
+  UInt_t canvas_height = fConfig->GetCanvasHeight();
+
+  Bool_t good_color=kFALSE;
+  TString usercolor = fConfig->GetGuiColor();
+  if(!usercolor.IsNull()) {
+    good_color = gClient->GetColorByName(usercolor,mainguicolor);
+  }
+
+  if(!good_color) {
+    if(!usercolor.IsNull()) {
+      cout << "Bad guicolor (" << usercolor << ").. using default." << endl;
+    }
+    if(fConfig->IsMonitor()) {
+      // Default background color for Online Monitor
+      mainguicolor = lightgreen;
+    } else {
+      // Default background color for Normal Online Display
+      mainguicolor = lightblue;
+    }
+  }
+
+  fMain->SetBackgroundColor(mainguicolor);
+
+  // Top frame, to hold page buttons and canvas
+  fTopframe = new TGHorizontalFrame(fMain,200,200);
+  fTopframe->SetBackgroundColor(mainguicolor);
+  fMain->AddFrame(fTopframe, new TGLayoutHints(kLHintsExpandX
+                                              | kLHintsExpandY,10,10,10,1));
+
+  // Create a verticle frame widget with radio buttons
+  //  This will hold the page buttons
+  vframe = new TGVerticalFrame(fTopframe,40,200);
+  vframe->SetBackgroundColor(mainguicolor);
+  TString buff;
+  for(UInt_t i=0; i<fConfig->GetPageCount(); i++) {
+    buff = fConfig->GetPageTitle(i);
+    fRadioPage[i] = new TGRadioButton(vframe,buff,i);
+    fRadioPage[i]->SetBackgroundColor(mainguicolor);
+  }
+
+  fRadioPage[0]->SetState(kButtonDown);
+  current_page = 0;
+
+  for (UInt_t i=0; i<fConfig->GetPageCount(); i++) {
+    vframe->AddFrame(fRadioPage[i],
+		     new TGLayoutHints(kLHintsLeft |
+				       kLHintsCenterY,5,5,3,4));
+    fRadioPage[i]->Connect("Pressed()", "OnlineGUI", this, "DoRadio()");
+  }
+  if(!fConfig->IsMonitor()) {
+    wile =
+      new TGPictureButton(vframe,
+			  gClient->GetPicture(guiDirectory+"/hcsmall.png"));
+    wile->Connect("Pressed()","OnlineGUI", this,"DoDraw()");
+  } else {
+    wile =
+      new TGPictureButton(vframe,
+			  gClient->GetPicture(guiDirectory+"/panguin.xpm"));
+    wile->Connect("Pressed()","OnlineGUI", this,"DoDrawClear(&fRootFile)");
+  }
+  wile->SetBackgroundColor(mainguicolor);
+
+  vframe->AddFrame(wile,
+		   new TGLayoutHints(kLHintsBottom|kLHintsLeft,5,10,4,2));
+
+
+  fTopframe->AddFrame(vframe,
+		      new TGLayoutHints(kLHintsCenterX|
+					kLHintsCenterY,2,2,2,2));
+
+  // Create canvas widget
+  fEcanvas = new TRootEmbeddedCanvas("Ecanvas", fTopframe, canvas_width, canvas_height);
+  fEcanvas->SetBackgroundColor(mainguicolor);
+  fTopframe->AddFrame(fEcanvas, new TGLayoutHints(kLHintsExpandY,10,10,10,1));
+  fCanvas = fEcanvas->GetCanvas();
+
+  // Create the bottom frame.  Contains control buttons
+  fBottomFrame = new TGHorizontalFrame(fMain,canvas_width+400,200);
+  fBottomFrame->SetBackgroundColor(mainguicolor);
+  fMain->AddFrame(fBottomFrame, new TGLayoutHints(kLHintsExpandX,10,10,10,10));
+
+  // Create a horizontal frame widget with buttons
+  hframe = new TGHorizontalFrame(fBottomFrame,canvas_width+400,40);
+  hframe->SetBackgroundColor(mainguicolor);
+  fBottomFrame->AddFrame(hframe,new TGLayoutHints(kLHintsExpandX,200,20,2,2));
+
+  fPrev = new TGTextButton(hframe,"Prev");
+  fPrev->SetBackgroundColor(mainguicolor);
+  fPrev->Connect("Clicked()","OnlineGUI",this,"DrawPrev()");
+  hframe->AddFrame(fPrev, new TGLayoutHints(kLHintsCenterX,5,5,1,1));
+
+  fNext = new TGTextButton(hframe,"Next");
+  fNext->SetBackgroundColor(mainguicolor);
+  fNext->Connect("Clicked()","OnlineGUI",this,"DrawNext()");
+  hframe->AddFrame(fNext, new TGLayoutHints(kLHintsCenterX,5,5,1,1));
+
+  fExit = new TGTextButton(hframe,"Exit GUI");
+  fExit->SetBackgroundColor(red);
+  fExit->Connect("Clicked()","OnlineGUI",this,"CloseGUI()");
+
+  hframe->AddFrame(fExit, new TGLayoutHints(kLHintsCenterX,5,5,1,1));
+
+  TString Buff;
+  if(runNumber==0) {
+    Buff = "";
+  } else {
+    Buff = "Run #";
+    Buff += runNumber;
+  }
+  TGString labelBuff(Buff);
+
+  fRunNumber = new TGLabel(hframe,Buff);
+  fRunNumber->SetBackgroundColor(mainguicolor);
+  hframe->AddFrame(fRunNumber,new TGLayoutHints(kLHintsCenterX,5,5,1,1));
+
+  fPrint = new TGTextButton(hframe,"Print To &File");
+  fPrint->SetBackgroundColor(mainguicolor);
+  fPrint->Connect("Clicked()","OnlineGUI",this,"PrintToFile()");
+  hframe->AddFrame(fPrint, new TGLayoutHints(kLHintsCenterX,5,5,1,1));
+
+
+  // Set a name to the main frame
+  if(fConfig->IsMonitor()) {
+    fMain->SetWindowName("Parity ANalysis GUI moNitor");
+  } else {
+    fMain->SetWindowName("Online Analysis GUI");
+  }
+
+  // Map all sub windows to main frame
+  fMain->MapSubwindows();
+
+  // Initialize the layout algorithm
+  fMain->Resize(fMain->GetDefaultSize());
+
+  // Map main frame
+  fMain->MapWindow();
+
+#ifdef DEBUG
+  fMain->Print();
+#endif
+
+  if(fFileAlive) DoDraw();
+
+  if(fConfig->IsMonitor()) {
+    timer = new TTimer();
+    if(fFileAlive) {
+      timer->Connect(timer,"Timeout()","OnlineGUI",this,"TimerUpdate()");
+    } else {
+      timer->Connect(timer,"Timeout()","OnlineGUI",this,"CheckRootFile()");
+    }
+    timer->Start(UPDATETIME);
+  }
+
+}
+
+void OnlineGUI::DoDraw()
+{
+  // The main Drawing Routine.
+
+#ifdef INTERNALSTYLE
+  gStyle->SetOptStat(1110);
+  gStyle->SetStatFontSize(0.1);
+#endif
+  if (fConfig->IsLogx(current_page)) {
+    gStyle->SetOptLogx(1);
+  } else {
+    gStyle->SetOptLogx(0);
+  }
+  if (fConfig->IsLogy(current_page)) {
+    gStyle->SetOptLogy(1);
+  } else {
+    gStyle->SetOptLogy(0);
+  }
+  if (fConfig->IsLogz(current_page)) {
+    gStyle->SetOptLogz(1);
+  } else {
+    gStyle->SetOptLogz(0);
+  }
+#ifdef INTERNALSTYLE
+  gStyle->SetTitleH(0.10);
+  gStyle->SetTitleW(0.40);
+//   gStyle->SetLabelSize(0.10,"X");
+//   gStyle->SetLabelSize(0.10,"Y");
+  gStyle->SetLabelSize(0.05,"X");
+  gStyle->SetLabelSize(0.05,"Y");
+  gStyle->SetPadLeftMargin(0.14);
+  gStyle->SetNdivisions(505,"X");
+  gStyle->SetNdivisions(404,"Y");
+  gStyle->SetPalette(1);
+  gROOT->ForceStyle();
+#endif
+
+  // Determine the dimensions of the canvas..
+  UInt_t draw_count = fConfig->GetDrawCount(current_page);
+#ifdef INTERNALSTYLE
+  if(draw_count>=8) {
+    gStyle->SetLabelSize(0.08,"X");
+    gStyle->SetLabelSize(0.08,"Y");
+  }
+#endif
+//   Int_t dim = Int_t(round(sqrt(double(draw_count))));
+  pair <UInt_t,UInt_t> dim = fConfig->GetPageDim(current_page);
+
+#ifdef DEBUG
+  cout << "Dimensions: " << dim.first << "X"
+       << dim.second << endl;
+#endif
+
+  // Create a nice clean canvas.
+  fCanvas->Clear();
+  fCanvas->Divide(dim.first,dim.second);
+
+  drawcommand thiscommand;
+  // Draw the histograms.
+  for(UInt_t i=0; i<draw_count; i++) {
+    thiscommand = fConfig->GetDrawCommand(current_page,i);
+    thiscommand = fileObject2command(thiscommand,&fRootFile);
+    fCanvas->cd(i+1);
+    if (thiscommand.variable == "macro") {
+      MacroDraw(thiscommand);
+    } else if (thiscommand.objtype.Contains("TH")) {
+      HistDraw(thiscommand);
+    } else if (thiscommand.objtype.Contains("TCanvas")) {
+      CanvasDraw(thiscommand,i+1);
+    } else if (thiscommand.objtype.Contains("TGraph")) {
+      GraphDraw(thiscommand);
+    } else { // otherwise... assume that the objtype is a branch from a tree
+      TreeDraw(thiscommand);
+    }
+  }
+
+  fCanvas->cd();
+  fCanvas->Update();
+
+  if(!fPrintOnly) {
+    CheckPageButtons();
+  }
+
+}
+
+void OnlineGUI::DrawNext()
+{
+  // Handler for the "Next" button.
+  fRadioPage[current_page]->SetState(kButtonUp);
+  // The following line triggers DoRadio()
+  fRadioPage[current_page+1]->SetState(kButtonDown,true);
+
+}
+
+void OnlineGUI::DrawPrev()
+{
+  // Handler for the "Prev" button.
+  fRadioPage[current_page]->SetState(kButtonUp);
+  // The following line triggers DoRadio()
+  fRadioPage[current_page-1]->SetState(kButtonDown,true);
+
+}
+
+void OnlineGUI::DoRadio()
+{
+  // Handle the radio buttons
+  //  Find out which button has been pressed..
+  //   turn off the previous button...
+  //   then draw the appropriate page.
+  // This routine also handles the Draw from the Prev/Next buttons
+  //   - makes a call to DoDraw()
+
+  UInt_t pagecount = fConfig->GetPageCount();
+  TGButton *btn = (TGButton *) gTQSender;
+  UInt_t id = btn->WidgetId();
+
+  if (id <= pagecount) {
+    fRadioPage[current_page]->SetState(kButtonUp);
+  }
+
+  current_page = id;
+  if(!fConfig->IsMonitor()) DoDraw();
+
+}
+
+void OnlineGUI::CheckPageButtons()
+{
+  // Checks the current page to see if it's the first or last page.
+  //  If so... turn off the appropriate button.
+  //  If not.. turn on both buttons.
+
+  if(current_page==0) {
+    fPrev->SetState(kButtonDisabled);
+    if(fConfig->GetPageCount()!=1)
+      fNext->SetState(kButtonUp);
+  } else if(current_page==fConfig->GetPageCount()-1) {
+    fNext->SetState(kButtonDisabled);
+    if(fConfig->GetPageCount()!=1)
+      fPrev->SetState(kButtonUp);
+  } else {
+    fPrev->SetState(kButtonUp);
+    fNext->SetState(kButtonUp);
+  }
+}
+
+void OnlineGUI::GetFileObjects(RootFileObject* fLocalRootFileObj)
+{
+  // Utility to find all of the objects within a File (TTree, TH1F, etc).
+  //  The pair stored in the vector is <ObjName, ObjType>
+  //  For histograms, the title is also stored
+  //    (in case the the name is not very descriptive... like when
+  //    using h2root)
+  //  If there's no good keys.. do nothing.
+#ifdef DEBUGGETFILEOBJECTS
+  cout << "Keys = " << fLocalRootFileObj->RootFile->ReadKeys() << endl;
+#endif
+  if(fLocalRootFileObj->RootFile->ReadKeys()==0) {
+    fLocalRootFileObj->fUpdate = kFALSE;
+//     delete fLocalRootFileObj->RootFile;
+//     fLocalRootFileObj->RootFile = 0;
+//     CheckRootFile();
+    return;
+  }
+  fLocalRootFileObj->vfileObjects.clear();
+
+  TIter next( (fLocalRootFileObj->RootFile)->GetListOfKeys() );
+  TKey *key = new TKey();
+
+  // Do the search
+  while((key=(TKey*)next())!=0) {
+#ifdef DEBUGGETFILEOBJECTS
+    cout << "Key = " << key << endl;
+#endif
+    TString objname = key->GetName();
+    TString objtype = key->GetClassName();
+    TString objtitle = key->GetTitle();
+#ifdef DEBUGGETFILEOBJECTS
+    cout << objname << " " << objtype << endl;
+#endif
+
+    if(objtype.Contains("TDirectory")) {
+      TDirectory *thisdir = (TDirectory*)fLocalRootFileObj->RootFile->Get(objname);
+      TIter nextInDir(thisdir->GetListOfKeys());
+      TKey *innerkey = new TKey();
+      while((innerkey=(TKey*)nextInDir())!=0) {
+	      TString iobjname = innerkey->GetName();
+	      TString iobjtype = innerkey->GetClassName();
+	      TString iobjtitle = innerkey->GetTitle();
+	      TString iobjdir = objname;
+#ifdef DEBUGGETFILEOBJECTS
+	      cout << iobjname << " " << iobjtype << endl;
+#endif
+	      fileObject thisObject;
+	      thisObject.name = iobjname;
+	      thisObject.type = iobjtype;
+	      thisObject.title = iobjtitle;
+	      thisObject.directory = objname;
+	      fLocalRootFileObj->vfileObjects.push_back(thisObject);
+	    }
+    } else {
+      fileObject thisObject;
+      thisObject.name = objname;
+      thisObject.type = objtype;
+      thisObject.title = objtitle;
+      thisObject.directory = "";
+      fLocalRootFileObj->vfileObjects.push_back(thisObject);
+    }
+
+  }
+  fLocalRootFileObj->fUpdate = kTRUE;
+  delete key;
+}
+
+void OnlineGUI::GetTreeVars(RootFileObject* fLocalRootFileObj)
+{
+  // Utility to find all of the variables (leaf's/branches) within a
+  // Specified TTree and put them within the TreeVars vector.
+  fLocalRootFileObj->TreeVars.clear();
+  TObjArray *branchList;
+  vector <TString> currentTree;
+
+  for(UInt_t i=0; i<fLocalRootFileObj->RootTree.size(); i++) {
+    currentTree.clear();
+    branchList = fLocalRootFileObj->RootTree[i]->GetListOfBranches();
+    TIter next(branchList);
+    TBranch *brc;
+
+    while((brc=(TBranch*)next())!=0) {
+      TString found = brc->GetName();
+      // Not sure if the line below is so smart...
+      currentTree.push_back(found);
+    }
+    fLocalRootFileObj->TreeVars.push_back(currentTree);
+  }
+#ifdef DEBUG2
+  for(UInt_t iTree=0; iTree<fLocalRootFileObj->TreeVars.size(); iTree++) {
+  cout << "In Tree " << iTree << ": " << endl;
+    for(UInt_t i=0; i<fLocalRootFileObj->TreeVars[iTree].size(); i++) {
+      cout << fLocalRootFileObj->TreeVars[iTree][i] << endl;
+    }
+  }
+#endif
+}
+
+
+void OnlineGUI::GetRootTree(RootFileObject* fLocalRootFileObj ) {
+  // Utility to search a ROOT File for ROOT Trees
+  // Fills the RootTree vector
+  fLocalRootFileObj->RootTree.clear();
+
+  list <TString> found;
+  for(UInt_t i=0; i<fLocalRootFileObj->vfileObjects.size(); i++) {
+#ifdef DEBUGGETROOTTREE
+    cout << "Object = " << fLocalRootFileObj->vfileObjects[i].type <<
+      "     Name = " << fLocalRootFileObj->vfileObjects[i].name << endl;
+#endif
+    if(fLocalRootFileObj->vfileObjects[i].type.Contains("TTree"))
+       found.push_back(fLocalRootFileObj->vfileObjects[i].name);
+  }
+
+  // Remove duplicates, then insert into fLocalRootFileObj->RootTree
+  found.unique();
+  UInt_t nTrees = found.size();
+
+  for(UInt_t i=0; i<nTrees; i++) {
+    fLocalRootFileObj->RootTree.push_back( (TTree*) fLocalRootFileObj->RootFile->Get(found.front()) );
+    found.pop_front();
+  }
+  // Initialize the TreeEntries vector
+  fLocalRootFileObj->TreeEntries.clear();
+  for(UInt_t i=0;i<fLocalRootFileObj->RootTree.size();i++) {
+    fLocalRootFileObj->TreeEntries.push_back(0);
+  }
+
+}
+
+UInt_t OnlineGUI::GetTreeIndex(TString var, RootFileObject* fLocalRootFileObj ) {
+  // Utility to find out which Tree (in fRootFile.RootTree) has the specified
+  // variable "var".  If the variable is a collection of Tree
+  // variables (e.g. bcm1:lumi1), will only check the first
+  // (e.g. bcm1).
+  // Returns the correct index.  if not found returns an index 1
+  // larger than fRootFile.RootTree.size()
+
+  //  This is for 2d draws... look for the first only
+  if(var.Contains(":")) {
+    TString first_var = fConfig->SplitString(var,":")[0];
+    var = first_var;
+  }
+
+  //  This is for variables with multiple dimensions.
+  if(var.Contains("[")) {
+    TString first_var = fConfig->SplitString(var,"[")[0];
+    var = first_var;
+  }
+
+  for(UInt_t iTree=0; iTree<fLocalRootFileObj->TreeVars.size(); iTree++) {
+    for(UInt_t ivar=0; ivar<fLocalRootFileObj->TreeVars[iTree].size(); ivar++) {
+      if(var == fLocalRootFileObj->TreeVars[iTree][ivar]) return iTree;
+    }
+  }
+
+  return fLocalRootFileObj->RootTree.size()+1;
+}
+
+UInt_t OnlineGUI::GetTreeIndexFromName(TString name, RootFileObject* fLocalRootFileObj) {
+  // Called by TreeDraw().  Tries to find the Tree index provided the
+  //  name.  If it doesn't match up, return a number that's one larger
+  //  than the number of found trees.
+  for(UInt_t iTree=0; iTree<fLocalRootFileObj->RootTree.size(); iTree++) {
+    TString treename = fLocalRootFileObj->RootTree[iTree]->GetName();
+    if(name == treename) {
+      return iTree;
+    }
+  }
+
+  return fLocalRootFileObj->RootTree.size()+1;
+}
+
+void OnlineGUI::MacroDraw(drawcommand command) {
+  // Called by DoDraw(), this will make a call to the defined macro, and
+  //  plot it in it's own pad.  One plot per macro, please.
+
+  if(command.macro.IsNull()) {
+    cout << "macro command doesn't contain a macro to execute" << endl;
+    return;
+  }
+
+  if(doGolden) fRootFile.RootFile->cd();
+  gROOT->Macro(command.macro);
+
+}
+
+void OnlineGUI::CanvasDraw(drawcommand command,UInt_t padnum) {
+  // Called by DoDraw(), this will draw the TCanvas in the current Canvas
+
+  TString rootversion = gROOT->GetVersion();
+  TString slash = "/";
+  TString rootversion_cut = (fConfig->SplitString(rootversion,slash))[0];
+  Double_t ver_num = rootversion_cut.Atof();
+  if(ver_num<5.16) {
+    TString badstring = "TCanvas Drawing Unsupported in ROOT v"+rootversion;
+    BadDraw(badstring);
+    return;
+  }
+
+  TDirectory *fDir;
+  if(command.directory.IsNull()) {
+    fDir = 0;
+  } else {
+    fDir = (TDirectory*)fRootFile.RootFile->Get(command.directory);
+  }
+
+  if(fDir) fDir->cd();
+  fRootFile.RootFile->cd();
+  TCanvas *tcanv = (TCanvas*)fRootFile.RootFile->Get(command.objname);
+  fCanvas->cd(padnum);
+  tcanv->DrawClonePad();
+  delete tcanv;
+
+}
+
+void OnlineGUI::GraphDraw(drawcommand command) {
+  // Called by DoDraw(), this will draw the TCanvas in the current Canvas
+
+  TString rootversion = gROOT->GetVersion();
+  fRootFile.RootFile->cd();
+  TDirectory *fDir;
+  if(command.directory.IsNull()) {
+    fDir = 0;
+  } else {
+    fDir = (TDirectory*)fRootFile.RootFile->Get(command.directory);
+  }
+
+  if(fDir) fDir->cd();
+  TGraph *thisgraph = (TGraph*)fRootFile.RootFile->Get(command.objname);
+  TString drawopt = command.type;
+  if(drawopt.IsNull()) drawopt = "AP";
+  if(!command.title.IsNull()) thisgraph->SetTitle(command.title);
+  thisgraph->Draw(drawopt);
+
+}
+
+
+void OnlineGUI::DoDrawClear(RootFileObject* fLocalRootFileObj) {
+  // Utility to grab the number of entries in each tree.  This info is
+  // then used, if watching a file, to "clear" the TreeDraw
+  // histograms, and begin looking at new data.
+  for(UInt_t i=0; i<fLocalRootFileObj->TreeEntries.size(); i++) {
+    fLocalRootFileObj->TreeEntries[i] = (Int_t) fLocalRootFileObj->RootTree[i]->GetEntries();
+  }
+
+
+}
+
+void OnlineGUI::TimerUpdate() {
+  // Called periodically by the timer, if "watchfile" is indicated
+  // in the config.  Reloads the ROOT file, and updates the current page.
+#ifdef DEBUG
+  cout << "Update Now" << endl;
+#endif
+
+  if(fRootFile.RootFile->IsZombie() || (fRootFile.RootFile->GetSize() == -1)
+     || (fRootFile.RootFile->ReadKeys()==0)) {
+    cout << "New run not yet available.  Waiting..." << endl;
+    fRootFile.RootFile->Close();
+    delete fRootFile.RootFile;
+    fRootFile.RootFile = 0;
+    timer->Reset();
+    timer->Disconnect();
+    timer->Connect(timer,"Timeout()","OnlineGUI",this,"CheckRootFile()");
+    return;
+  }
+  for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) {
+    fRootFile.RootTree[i]->Refresh();
+  }
+  DoDraw();
+  timer->Reset();
+
+}
+
+void OnlineGUI::BadDraw(TString errMessage) {
+  // Routine to display (in Pad) why a particular draw method has
+  // failed.
+  TPaveText *pt = new TPaveText(0.1,0.1,0.9,0.9,"brNDC");
+  pt->SetBorderSize(3);
+  pt->SetFillColor(10);
+  pt->SetTextAlign(22);
+  pt->SetTextFont(72);
+  pt->SetTextColor(2);
+  pt->AddText(errMessage.Data());
+  pt->Draw();
+//   cout << errMessage << endl;
+
+}
+
+
+void OnlineGUI::CheckRootFile() {
+  // Check the path to the rootfile (should follow symbolic links)
+  // ... If found:
+  //   Reopen new root file,
+  //   Reconnect the timer to TimerUpdate()
+
+  if(gSystem->AccessPathName(fConfig->GetRootFile())==0) {
+    cout << "Found the new run" << endl;
+    if(OpenRootFile()==0) {
+      timer->Reset();
+      timer->Disconnect();
+      timer->Connect(timer,"Timeout()","OnlineGUI",this,"TimerUpdate()");
+    }
+  } else {
+    TString rnBuff = "Waiting for run";
+    fRunNumber->SetText(rnBuff.Data());
+    hframe->Layout();
+  }
+
+}
+
+Int_t OnlineGUI::OpenRootFile() {
+
+
+  fRootFile.RootFile = new TFile(fConfig->GetRootFile(),"READ");
+  if(fRootFile.RootFile->IsZombie() || (fRootFile.RootFile->GetSize() == -1)
+     || (fRootFile.RootFile->ReadKeys()==0)) {
+    cout << "New run not yet available.  Waiting..." << endl;
+    fRootFile.RootFile->Close();
+    delete fRootFile.RootFile;
+    fRootFile.RootFile = 0;
+    timer->Reset();
+    timer->Disconnect();
+    timer->Connect(timer,"Timeout()","OnlineGUI",this,"CheckRootFile()");
+    return -1;
+  }
+
+  // Update the runnumber
+  ObtainRunNumber();
+  if(runNumber != 0) {
+    TString rnBuff = "Run #";
+    rnBuff += runNumber;
+    fRunNumber->SetText(rnBuff.Data());
+    hframe->Layout();
+  }
+
+  // Open the Root Trees.  Give a warning if it's not there..
+  GetFileObjects(&fRootFile);
+  if (fRootFile.fUpdate) { // Only do this stuff if there are valid keys
+    GetRootTree(&fRootFile);
+    GetTreeVars(&fRootFile);
+    for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) {
+      if(fRootFile.RootTree[i]==0) {
+	fRootFile.RootTree.erase(fRootFile.RootTree.begin() + i);
+      }
+    }
+    DoDraw();
+  } else {
+    return -1;
+  }
+  return 0;
+
+}
+
+void OnlineGUI::HistDraw(drawcommand command) {
+  // Called by DoDraw(), this will plot a histogram.
+
+  Bool_t showGolden=kFALSE;
+  if(doGolden) showGolden=kTRUE;
+  Bool_t showStat=kTRUE;
+  TString htitle;
+
+  if(command.noshowgolden=="noshowgolden")
+    showGolden = kFALSE;
+  if(command.nostat=="nostat")
+      showStat=kFALSE;
+  htitle = command.title;
+
+  TString type=command.type;
+  TDirectory *fDir;
+
+  if(command.directory.IsNull()) {
+    fDir = 0;
+  } else {
+    fDir = (TDirectory*)fRootFile.RootFile->Get(command.directory);
+  }
+
+  // Determine dimensionality of histogram, then draw it
+  if(command.objtype.Contains("TH1")) {
+    // Operation for TH1
+    fRootFile.RootFile->cd();
+    if(fDir) fDir->cd();
+    fRootFile.mytemp1d = (TH1D*)gDirectory->Get(command.objname);
+    if(!fRootFile.mytemp1d) BadDraw(command.variable+" not found");
+    if(fRootFile.mytemp1d->GetEntries()==0) {
+      BadDraw("Empty Histogram");
+    } else {
+      if(showGolden) {
+	fGoldenFile.RootFile->cd();
+	if(fDir) fDir->cd();
+	fGoldenFile.mytemp1d = (TH1D*)gDirectory->Get(command.objname);
+	fGoldenFile.mytemp1d->SetLineColor(30);
+	fGoldenFile.mytemp1d->SetFillColor(30);
+	Int_t fillstyle=3027;
+	if(fPrintOnly) fillstyle=3010;
+	fGoldenFile.mytemp1d->SetFillStyle(fillstyle);
+	fRootFile.mytemp1d->SetStats(showStat);
+	fGoldenFile.mytemp1d->SetStats(kFALSE);
+	fGoldenFile.mytemp1d->Draw();
+	if(!htitle.IsNull()) fGoldenFile.mytemp1d->SetTitle(htitle);
+	fRootFile.mytemp1d->Draw("sames"+type);
+      } else {
+	fRootFile.mytemp1d->SetStats(showStat);
+	if(!htitle.IsNull()) fRootFile.mytemp1d->SetTitle(htitle);
+	fRootFile.mytemp1d->Draw(type);
+      }
+    }
+    return;
+  }
+
+  if(command.objtype.Contains("TH2")) {
+    // Operation for TH2
+    if(!showGolden) fRootFile.RootFile->cd();
+    if(fDir) fDir->cd();
+    fRootFile.mytemp2d = (TH2D*)gDirectory->Get(command.objname);
+    if(fRootFile.mytemp2d->GetEntries()==0) {
+      BadDraw("Empty Histogram");
+    } else {
+      if(showGolden) {
+	fGoldenFile.RootFile->cd();
+	if(fDir) fDir->cd();
+	fGoldenFile.mytemp2d = (TH2D*)gDirectory->Get(command.objname);
+	fGoldenFile.mytemp2d->SetMarkerColor(2);
+	fRootFile.mytemp2d->SetStats(showStat);
+	fGoldenFile.mytemp2d->SetStats(kFALSE);
+	fGoldenFile.mytemp2d->Draw(type);
+	if(!htitle.IsNull()) fGoldenFile.mytemp2d->SetTitle(htitle);
+	fRootFile.mytemp2d->Draw("sames"+type);
+      } else {
+	fRootFile.mytemp2d->SetStats(showStat);
+	if(!htitle.IsNull()) fGoldenFile.mytemp2d->SetTitle(htitle);
+	fRootFile.mytemp2d->Draw(type);
+	fRootFile.mytemp2d->Draw("colz");
+      }
+    }
+    return;
+  }
+
+  if(command.objtype.Contains("TH3")) {
+    // Operation for TH3
+    if(!showGolden) fRootFile.RootFile->cd();
+    if(fDir) fDir->cd();
+    fRootFile.mytemp3d = (TH3D*)gDirectory->Get(command.objname);
+    if(fRootFile.mytemp3d->GetEntries()==0) {
+      BadDraw("Empty Histogram");
+    } else {
+      fRootFile.mytemp3d->Draw();
+      if(showGolden) {
+	fGoldenFile.RootFile->cd();
+	if(fDir) fDir->cd();
+	fGoldenFile.mytemp3d = (TH3D*)gDirectory->Get(command.objname);
+	fGoldenFile.mytemp3d->SetMarkerColor(2);
+	fRootFile.mytemp3d->SetStats(showStat);
+	fGoldenFile.mytemp3d->SetStats(kFALSE);
+	fGoldenFile.mytemp3d->Draw(type);
+	if(!htitle.IsNull()) fGoldenFile.mytemp3d->SetTitle(htitle);
+	fRootFile.mytemp3d->Draw("sames"+type);
+      } else {
+	fRootFile.mytemp3d->SetStats(showStat);
+	if(!htitle.IsNull()) fGoldenFile.mytemp3d->SetTitle(htitle);
+	fRootFile.mytemp3d->Draw(type);
+      }
+    }
+    return;
+  }
+
+}
+
+drawcommand OnlineGUI::fileObject2command(drawcommand command, RootFileObject* fLocalRootFileObj) {
+  // Fill in gaps in the drawcommand with items from the
+  // vfileObject.  This elimates the need for duplicate code in
+  // the different *Draw routines.
+  for(UInt_t i=0; i<fLocalRootFileObj->vfileObjects.size(); i++) {
+    if(fLocalRootFileObj->vfileObjects[i].name==command.variable ||
+       fLocalRootFileObj->vfileObjects[i].title==command.variable ) {
+      command.objname = fLocalRootFileObj->vfileObjects[i].name;
+      command.objtitle = fLocalRootFileObj->vfileObjects[i].title;
+      command.objtype = fLocalRootFileObj->vfileObjects[i].type;
+      command.directory = fLocalRootFileObj->vfileObjects[i].directory;
+#ifdef DEBUGf2command
+      cout << command.directory << " "
+	   << command.objtype  << " "
+	   << command.objname
+	   << endl;
+#endif
+      return command;
+    }
+  }
+  return command;
+
+
+}
+
+void OnlineGUI::TreeDraw(drawcommand command) {
+  // Called by DoDraw(), this will plot a Tree Variable
+
+  TString var = command.variable;
+  Bool_t showGolden=kFALSE;
+  if(doGolden) showGolden=kTRUE;
+
+  Bool_t showStat=kTRUE;
+  if(command.nostat=="nostat") showStat=kFALSE;
+
+  //TObject *hobj;
+
+  // Combine the cuts (definecuts and specific cuts)
+  TCut cut = "";
+  TString tempCut;
+  if(!command.cut.IsNull()) {
+    tempCut = command.cut;
+    vector <TString> cutIdents = fConfig->GetCutIdent();
+    for(UInt_t i=0; i<cutIdents.size(); i++) {
+      if(tempCut.Contains(cutIdents[i])) {
+	TString cut_found = (TString)fConfig->GetDefinedCut(cutIdents[i]);
+	tempCut.ReplaceAll(cutIdents[i],cut_found);
+      }
+    }
+    cut = (TCut)tempCut;
+  }
+
+  // Determine which Tree the variable comes from, then draw it.
+  UInt_t iTree;
+  if(command.treename.IsNull()) {
+    iTree = GetTreeIndex(var,&fRootFile);
+  } else {
+    iTree = GetTreeIndexFromName(command.treename,&fRootFile);
+  }
+  TString drawopt = command.type;
+  Int_t errcode=0;
+  if(drawopt.IsNull() && var.Contains(":")) drawopt = "cont";
+  if(drawopt=="scat") drawopt = "";
+
+  fRootFile.RootFile->cd();
+  if (iTree <= fRootFile.RootTree.size() ) {
+    TObjArray* tok = var.Tokenize(">()");
+    TString myvar   = ((TObjString*)tok->First())->GetString();
+    TString hname   = "h";
+    TString histdef = ((TObjString*)tok->Last())->GetString();
+    if(tok->GetEntries() == 1) histdef = "";        // ie "var[0]"
+    if(tok->GetEntries() == 2) {
+      if(! histdef.Contains(",") ) {             // ie "var[0]>>h1"
+        hname = histdef;
+        histdef = "";
+      }
+    }
+    if(tok->GetEntries() == 3) hname = ((TObjString*)tok->At(1))->GetString();  // ie "var[0]>>h1(100,0,100)"
+    delete tok;
+    TString tmp = var + tempCut;
+    hname = Form("%s_%u",hname.Data(),tmp.Hash());      // unique id so caching histos works
+
+    errcode=1;
+    TObject *hobj  = gDirectory->Get(hname);
+    if(hobj == NULL) {
+      errcode = fRootFile.RootTree[iTree]->Draw(myvar+">>"+hname+"("+histdef+")",cut,drawopt,
+				     1000000000,fRootFile.TreeEntries[iTree]);
+      hobj = gDirectory->Get(hname);
+    }
+    TH1F *mainhist = (TH1F*)hobj;
+    mainhist->Draw(drawopt);
+    //tmp = myvar+">>"+hname+"("+histdef+")";
+    //printf("hist: '%s',  opt: '%s',  \"%s\"\n", hname.Data(), drawopt.Data(),tmp.Data());
+
+    if(errcode==-1) {
+      BadDraw(var+" not found");
+    } else if (errcode!=0) {
+      TString htype = hobj->ClassName();
+      if(! htype.Contains("TH1F") ) {
+        //printf("skipping.\n");
+        showGolden=kFALSE;
+      }
+      if(showGolden) {
+        errcode=1;
+        TString goldname = "gold"+hname;
+        TH1F *goldhist = (TH1F*)gDirectory->Get(goldname);
+        if(goldhist == NULL) {
+          goldhist = (TH1F*)mainhist->Clone(hname);
+          goldhist->SetName(goldname);
+          errcode = fGoldenFile.RootTree[iTree]->Project(goldname,myvar,cut);
+        }
+        if(errcode>0) {
+          goldhist->SetFillColor(30);
+	  Int_t fillstyle=3027;
+	  if(fPrintOnly) fillstyle=3010;
+	  goldhist->SetFillStyle(fillstyle);
+          goldhist->Draw(drawopt);
+          mainhist->SetFillColor(0);
+          mainhist->SetFillStyle(1001);
+          mainhist->Draw("same");
+          if(!command.title.IsNull()) goldhist->SetTitle(command.title);
+          if(!showStat)               goldhist->SetStats(kFALSE);
+        }
+      } else {
+        if(!command.title.IsNull()) mainhist->SetTitle(command.title);
+        if(!showStat)               mainhist->SetStats(kFALSE);
+      }
+    } else {
+      BadDraw("Empty Histogram");
+    }
+  } else {
+    BadDraw(var+" not found");
+    if (fConfig->IsMonitor()){
+      // Maybe we missed it... look again.  I dont like the code
+      // below... maybe I can come up with something better
+      GetFileObjects(&fRootFile);
+      GetRootTree(&fRootFile);
+      GetTreeVars(&fRootFile);
+    }
+  }
+
+}
+
+void OnlineGUI::ObtainRunNumber()
+{
+  // Utility to obtain the runnumber through a helper macro
+  //  "GetRunNumber.C"
+
+  if (runNumber==0) runNumber = GetRunNumber();
+#ifdef DEBUG
+  cout << "Runnumber from file: " << runNumber << endl;
+#endif
+}
+
+void OnlineGUI::PrintToFile()
+{
+  // Routine to print the current page to a File.
+  //  A file dialog pop's up to request the file name.
+  fCanvas = fEcanvas->GetCanvas();
+  gStyle->SetPaperSize(20,24);
+  static TString dir(".");
+  TGFileInfo fi;
+  const char *myfiletypes[] =
+    { "All files","*",
+      "PDF files","*.pdf",
+      "PNG files","*.png",
+      "GIF files","*.gif",
+      "JPG files","*.jpg",
+      0,               0 };
+  fi.fFileTypes = myfiletypes;
+  fi.fIniDir    = StrDup(dir.Data());
+  cout << " INitiail = " << fi.fIniDir << endl;
+  new TGFileDialog(gClient->GetRoot(), fMain, kFDSave, &fi);
+  if(fi.fFilename!=NULL) {
+    fCanvas->Print(fi.fFilename);
+  }
+}
+
+void OnlineGUI::PrintPages() {
+  // Routine to go through each defined page, and print the output to
+  // a postscript file. (good for making sample histograms).
+
+  // Open the RootFile
+    //  unless we're watching a file.
+  fRootFile.RootFile = new TFile(fConfig->GetRootFile(),"READ");
+  if(!fRootFile.RootFile->IsOpen()) {
+    cout << "ERROR:  rootfile: " << fConfig->GetRootFile()
+	 << " does not exist"
+	 << endl;
+#ifdef STANDALONE
+    gApplication->Terminate();
+#else
+    return;
+#endif
+  } else {
+    fFileAlive = kTRUE;
+    ObtainRunNumber();
+    // Open the Root Trees.  Give a warning if it's not there..
+    GetFileObjects(&fRootFile);
+    GetRootTree(&fRootFile);
+    GetTreeVars(&fRootFile);
+    for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) {
+      if(fRootFile.RootTree[i]==0) {
+	fRootFile.RootTree.erase(fRootFile.RootTree.begin() + i);
+      }
+    }
+
+  }
+  TString goldenfilename=fConfig->GetGoldenFile();
+  if(!goldenfilename.IsNull()) {
+    fGoldenFile.RootFile = new TFile(goldenfilename,"READ");
+    if(!fGoldenFile.RootFile->IsOpen()) {
+      cout << "ERROR: goldenrootfile: " << goldenfilename
+	   << " does not exist.  Oh well, no comparison plots."
+	   << endl;
+      doGolden = kFALSE;
+      fGoldenFile.RootFile=NULL;
+    } else {
+      // Open the Root Trees.  Give a warning if it's not there..
+      GetFileObjects(&fGoldenFile);
+      GetRootTree(&fGoldenFile);
+      GetTreeVars(&fGoldenFile);
+      for(UInt_t i=0; i<fGoldenFile.RootTree.size(); i++) {
+        if(fGoldenFile.RootTree[i]==0) {
+	  fGoldenFile.RootTree.erase(fGoldenFile.RootTree.begin() + i);
+        }
+      }
+      doGolden = kTRUE;
+    }
+  } else {
+    doGolden=kFALSE;
+    fGoldenFile.RootFile=NULL;
+  }
+
+  // I'm not sure exactly how this works.  But it does.
+  fCanvas = new TCanvas("fCanvas","trythis",850,1100);
+//   TCanvas *maincanvas = new TCanvas("maincanvas","whatever",850,1100);
+//   maincanvas->SetCanvas(fCanvas);
+  TLatex *lt = new TLatex();
+
+  TString plotsdir = fConfig->GetPlotsDir();
+  Bool_t useJPG = kFALSE;
+  if(!plotsdir.IsNull()) useJPG = kTRUE;
+
+  //  TString filename = "summaryplots";
+  TString ConfigStartAll=fConfig->GetConfigStart();
+  TObjArray *tx= ConfigStartAll.Tokenize("/");
+  TString temp=((TObjString *)(tx->At(tx->GetEntries()-1)))->String();
+  Ssiz_t pos=temp.Index(".cfg");
+  TString filename=temp(0,pos);
+  if(runNumber!=0) {
+    filename += "_";
+    filename += runNumber;
+  }
+  if(useJPG) {
+    filename.Prepend(plotsdir+"/");
+    filename += "_pageXXXX.jpg";
+  }
+  else filename += ".pdf";
+
+  TString pagehead = "Summary Plots";
+  if(runNumber!=0) {
+    pagehead += "(Run #";
+    pagehead += runNumber;
+    pagehead += ")";
+  }
+  pagehead += ": ";
+
+  gStyle->SetPalette(1);
+  gStyle->SetTitleX(0.5);
+  gStyle->SetTitleY(0.95);
+  gStyle->SetPadBorderMode(0);
+  gStyle->SetHistLineColor(1);
+  gStyle->SetHistFillColor(1);
+  cout << filename << endl;
+  if(!useJPG) fCanvas->Print(filename+"[");
+  TString origFilename = filename;
+  for(UInt_t i=0; i<fConfig->GetPageCount(); i++) {
+    current_page=i;
+    DoDraw();
+    TString pagename = pagehead + fConfig->GetPageTitle(current_page);
+    lt->SetTextSize(0.025);
+    lt->DrawLatex(0.05,0.98,pagename);
+    if(useJPG) {
+      filename = origFilename;
+      filename.ReplaceAll("XXXX",Form("%d",current_page));
+      cout << "Printing page " << current_page
+	   << " to file = " << filename << endl;
+    }
+    fCanvas->Print(filename);
+  }
+  if(!useJPG) fCanvas->Print(filename+"]");
+  //
+
+  cout << "Writing histograms to root file '" << filename << "'." << endl;
+
+  filename.Resize(filename.Last('.'));
+  filename += ".root";
+  TFile* hroot = new TFile(filename,"recreate");
+
+  UInt_t pageCount = fConfig->GetPageCount();
+  for (UInt_t iPage=0; iPage<pageCount; ++iPage) {
+    UInt_t drawCount = fConfig->GetDrawCount(iPage);
+    for (UInt_t iDraw=0; iDraw<drawCount; ++iDraw) {
+      TString macro = fConfig->GetDrawCommand(iPage, iDraw).macro;
+      if (macro != "") {
+        TString histName = macro.Remove(0, macro.First('\"')+1);
+        histName.Resize(macro.First('\"'));
+
+        fRootFile.RootFile->cd();
+        TH1F* h1f = dynamic_cast<TH1F*>(gDirectory->Get(histName));
+        TH2F* h2f = dynamic_cast<TH2F*>(gDirectory->Get(histName));
+        hroot->cd();
+
+        if (h1f) h1f->Write();
+        else if (h2f) h2f->Write();
+        else cout << histName << " not found!" << endl;
+      }
+    }
+  }
+
+  hroot->Write();
+  hroot->Close();
+  delete hroot;
+
+  cout << "Root file '" << filename << "' done." << endl;
+
+  //
+#ifdef STANDALONE
+  gApplication->Terminate();
+#endif
+}
+
+void OnlineGUI::MyCloseWindow()
+{
+  fMain->SendCloseMessage();
+  cout << "OnlineGUI Closed." << endl;
+  if(timer!=NULL) {
+    timer->Stop();
+    delete timer;
+  }
+  delete fPrint;
+  delete fExit;
+  delete fRunNumber;
+  delete fPrev;
+  delete fNext;
+  delete wile;
+  for(UInt_t i=0; i<fConfig->GetPageCount(); i++)
+    delete fRadioPage[i];
+  delete hframe;
+  delete fEcanvas;
+  delete fBottomFrame;
+  delete vframe;
+  delete fTopframe;
+  delete fMain;
+  if(fGoldenFile.RootFile!=NULL) delete fGoldenFile.RootFile;
+  if(fRootFile.RootFile!=NULL) delete fRootFile.RootFile;
+  delete fConfig;
+
+#ifdef STANDALONE
+  gApplication->Terminate();
+#endif
+}
+
+void OnlineGUI::CloseGUI()
+{
+  // Routine to take care of the Exit GUI button
+  fMain->SendCloseMessage();
+}
+
+OnlineGUI::~OnlineGUI()
+{
+  //  fMain->SendCloseMessage();
+  if(timer!=NULL) {
+    timer->Stop();
+    delete timer;
+  }
+  delete fPrint;
+  delete fExit;
+  delete fRunNumber;
+  delete fPrev;
+  delete fNext;
+  delete wile;
+  for(UInt_t i=0; i<fConfig->GetPageCount(); i++)
+    delete fRadioPage[i];
+  delete hframe;
+  delete fEcanvas;
+  delete vframe;
+  delete fBottomFrame;
+  delete fTopframe;
+  delete fMain;
+  if(fGoldenFile.RootFile!=NULL) delete fGoldenFile.RootFile;
+  if(fRootFile.RootFile!=NULL) delete fRootFile.RootFile;
+  delete fConfig;
+}
+
+void online(TString type="standard",UInt_t run=0,Bool_t printonly=kFALSE,Bool_t rootonly=kFALSE)
+{
+  // "main" routine.  Run this at the ROOT commandline.
+
+  if(printonly || rootonly) {
+    if(!gROOT->IsBatch()) {
+#ifdef STANDALONE
+      gROOT->SetBatch();
+#else
+      cout << "Sorry... the print summary plots option only works "
+	   << "in BATCH mode." << endl;
+      return;
+#endif
+    }
+  }
+
+  OnlineConfig *fconfig = new OnlineConfig(type);
+    //    OnlineConfig *fconfig = new OnlineConfig("halla");
+
+  if(!fconfig->ParseConfig()) {
+#ifdef STANDALONE
+    gApplication->Terminate();
+#else
+    return;
+#endif
+  }
+
+  if(run!=0) fconfig->OverrideRootFile(run);
+
+  new OnlineGUI(*fconfig,printonly,rootonly,run);
+
+}
+
+#ifdef STANDALONE
+void Usage()
+{
+  cerr << "Usage: online [-r] [-f] [-P]"
+       << endl;
+  cerr << "Options:" << endl;
+  cerr << "  -r : runnumber" << endl;
+  cerr << "  -f : configuration file" << endl;
+  cerr << "  -P : Only Print Summary Plots" << endl;
+  cerr << "  -R : Only Rootfile " << endl;
+  cerr << endl;
+
+}
+
+int main(int argc, char **argv)
+{
+  TString type="default";
+  UInt_t run=0;
+  Bool_t printonly=kFALSE;
+  Bool_t rootonly=kFALSE;
+  Bool_t showedUsage=kFALSE;
+
+  TApplication theApp("App",&argc,argv,NULL,-1);
+
+  for(Int_t i=1;i<theApp.Argc();i++)
+    {
+      TString sArg = theApp.Argv(i);
+      if(sArg=="-f") {
+	type = theApp.Argv(++i);
+	cout << " File specifier: "
+	     <<  type << endl;
+      } else if (sArg=="-r") {
+	run = atoi(theApp.Argv(++i));
+	cout << " Runnumber: "
+	     << run << endl;
+      } else if (sArg=="-P") {
+	printonly = kTRUE;
+	cout <<  " PrintOnly" << endl;
+      } else if (sArg=="-R") {
+	rootonly = kTRUE;
+	cout <<  " RootOnly" << endl;
+      } else if (sArg=="-h") {
+	if(!showedUsage) Usage();
+	showedUsage=kTRUE;
+	return 0;
+      } else {
+	cerr << "\"" << sArg << "\"" << " not recognized.  Ignored." << endl;
+	if(!showedUsage) Usage();
+	showedUsage=kTRUE;
+      }
+    }
+
+  online(type,run,printonly,rootonly);
+  theApp.Run();
+
+  return 0;
+}
+
+#endif
diff --git a/onlineGUI/onlineGUI_v1.2.1/online.h b/onlineGUI/onlineGUI_v1.2.1/online.h
old mode 100644
new mode 100755
index 186e0128..6e6e10e2
--- a/onlineGUI/onlineGUI_v1.2.1/online.h
+++ b/onlineGUI/onlineGUI_v1.2.1/online.h
@@ -1,172 +1,179 @@
-///////////////////////////////////////////////////////////////////
-//  Macro to help with online analysis
-//    B. Moffit (moffit@jlab.org)
-//    - Originally written in Oct. 2003
-//  Documentation and updates available at:
-//    http://www.jlab.org/~moffit/onlineGUI/
-//
-
-#include <TTree.h>
-#include <TFile.h>
-#include <TGButton.h>
-#include <TGFrame.h>
-#include <TRootEmbeddedCanvas.h>
-#include "TGLabel.h"
-#include "TGString.h"
-#include <RQ_OBJECT.h>
-#include <TQObject.h>
-#include <vector>
-#include <TString.h>
-#include <TCut.h>
-#include <TTimer.h>
-#include "TH1.h"
-#include "TH2.h"
-#include "TH3.h"
-
-#define UPDATETIME 2000
-
-using namespace std;
-
-/* TTree *raw; */
-/* TFile *file; */
-struct fileObject {
-  TString name;
-  TString title;
-  TString type;
-  TString directory;
-};
-
-struct RootFileObject {
-  TFile*                            RootFile;
-  vector <TTree*>                   RootTree;
-  vector <Int_t>                    TreeEntries;
-  vector < vector <TString> >       TreeVars;
-  Bool_t                            fUpdate;
-  TH1D                             *mytemp1d;
-  TH2D                             *mytemp2d;
-  TH3D                             *mytemp3d;
-  vector <fileObject>               vfileObjects;
-};
-
-struct drawcommand {
-  TString variable;
-  TString cut;
-  TString type;
-  TString title;
-  TString treename;
-  TString nostat;
-  TString noshowgolden;
-  TString macro;
-  TString directory;
-  TString objname;
-  TString objtype;
-  TString objtitle;
-};
-
-class OnlineConfig {
-  RQ_OBJECT("OnlineConfig");
-  // Class that takes care of the config file
-private:
-  TString confFileName;                   // config filename
-  ifstream *fConfFile;                    // original config file
-  void ParseFile();
-  vector < vector <TString> > sConfFile;  // the config file, in memory
-  // pageInfo is the vector of the pages containing the sConfFile index
-  //   and how many commands issued within that page (title, 1d, etc.)
-  TString rootfilename;  //  Just the name
-  TString goldenrootfilename; // Golden rootfile for comparisons
-  TString protorootfile; // Prototype for getting the rootfilename
-  TString guicolor; // User's choice of background color
-  TString plotsdir; // Where to store sample plots.. automatically stored as .jpg's).
-  vector < pair <UInt_t,UInt_t> > pageInfo; 
-  vector <TCut> cutList; 
-  vector <UInt_t> GetDrawIndex(UInt_t);
-  Bool_t fFoundCfg;
-  Bool_t fMonitor;
-  Bool_t ParseForMultiPlots();
-
-public:
-  OnlineConfig();
-  OnlineConfig(TString);
-  Bool_t ParseConfig();
-  TString GetRootFile() { return rootfilename; };
-  TString GetGoldenFile() { return goldenrootfilename; };
-  TString GetGuiColor() { return guicolor; };
-  TString GetPlotsDir() { return plotsdir; };
-  TCut GetDefinedCut(TString ident);
-  vector <TString> GetCutIdent();
-  // Page utilites
-  UInt_t  GetPageCount() { return pageInfo.size(); };
-  pair <UInt_t,UInt_t> GetPageDim(UInt_t);
-  Bool_t IsLogx(UInt_t page);
-  Bool_t IsLogy(UInt_t page);
-  Bool_t IsLogz(UInt_t page);
-  TString GetPageTitle(UInt_t);
-  UInt_t GetDrawCount(UInt_t);           // Number of histograms in a page
-  drawcommand GetDrawCommand(UInt_t,UInt_t);
-  vector <TString> SplitString(TString,TString);
-  void OverrideRootFile(UInt_t);
-  Bool_t IsMonitor() { return fMonitor; };
-};
-
-class OnlineGUI {
-  // Class that takes care of the GUI
-  RQ_OBJECT("OnlineGUI")
-private:
-	//UInt_t fRunNum;
-  TGMainFrame                      *fMain;
-  TGHorizontalFrame                *fTopframe;
-  TGVerticalFrame                  *vframe;
-  TGRadioButton                    *fRadioPage[50];
-  TGPictureButton                  *wile;
-  TRootEmbeddedCanvas              *fEcanvas;
-  TGHorizontalFrame                *fBottomFrame;
-  TGHorizontalFrame                *hframe;
-  TGTextButton                     *fNext;
-  TGTextButton                     *fPrev;
-  TGTextButton                     *fExit;
-  TGLabel                          *fRunNumber;
-  TGTextButton                     *fPrint;
-  TCanvas                          *fCanvas; // Present Embedded canvas
-  OnlineConfig                     *fConfig;
-  UInt_t                            current_page;
-  RootFileObject                    fRootFile;
-  RootFileObject                    fGoldenFile;
-  Bool_t                            doGolden;
-  UInt_t                            runNumber;
-  TTimer                           *timer;
-  Bool_t                            fPrintOnly;
-  Bool_t                            fFileAlive;
-
-public:
-  OnlineGUI(OnlineConfig&,Bool_t,UInt_t RunNum=0);
-  void CreateGUI(const TGWindow *p, UInt_t w, UInt_t h);
-  virtual ~OnlineGUI();
-  void DoDraw();
-  void DrawPrev();
-  void DrawNext();
-  void DoRadio();
-  void CheckPageButtons();
-  // Specific Draw Methods
-  void GetFileObjects(RootFileObject *r);
-  void GetTreeVars(RootFileObject *r);
-  void GetRootTree(RootFileObject *r);
-  UInt_t GetTreeIndex(TString,RootFileObject *r);
-  UInt_t GetTreeIndexFromName(TString, RootFileObject *r);
-  drawcommand fileObject2command(drawcommand,RootFileObject *r);
-  void TreeDraw(drawcommand); 
-  void HistDraw(drawcommand);
-  void MacroDraw(drawcommand);
-  void CanvasDraw(drawcommand,UInt_t);
-  void GraphDraw(drawcommand);
-  void DoDrawClear(RootFileObject *r);
-  void TimerUpdate();
-  void BadDraw(TString);
-  void CheckRootFile();
-  Int_t OpenRootFile();
-  void ObtainRunNumber();
-  void PrintToFile();
-  void PrintPages();
-  void MyCloseWindow();
-  void CloseGUI();
-};
+///////////////////////////////////////////////////////////////////
+//  Macro to help with online analysis
+//    B. Moffit (moffit@jlab.org)
+//    - Originally written in Oct. 2003
+//  Documentation and updates available at:
+//    http://www.jlab.org/~moffit/onlineGUI/
+//
+
+#include <TTree.h>
+#include <TFile.h>
+#include <TGButton.h>
+#include <TGFrame.h>
+#include <TRootEmbeddedCanvas.h>
+#include "TGLabel.h"
+#include "TGString.h"
+#include <RQ_OBJECT.h>
+#include <TQObject.h>
+#include <vector>
+#include <TString.h>
+#include <TCut.h>
+#include <TTimer.h>
+#include "TH1.h"
+#include "TH2.h"
+#include "TH3.h"
+
+#define UPDATETIME 2000
+
+using namespace std;
+
+/* TTree *raw; */
+/* TFile *file; */
+struct fileObject {
+  TString name;
+  TString title;
+  TString type;
+  TString directory;
+};
+
+struct RootFileObject {
+  TFile*                            RootFile;
+  vector <TTree*>                   RootTree;
+  vector <Int_t>                    TreeEntries;
+  vector < vector <TString> >       TreeVars;
+  Bool_t                            fUpdate;
+  TH1D                             *mytemp1d;
+  TH2D                             *mytemp2d;
+  TH3D                             *mytemp3d;
+  vector <fileObject>               vfileObjects;
+};
+
+struct drawcommand {
+  TString variable;
+  TString cut;
+  TString type;
+  TString title;
+  TString treename;
+  TString nostat;
+  TString noshowgolden;
+  TString macro;
+  TString directory;
+  TString objname;
+  TString objtype;
+  TString objtitle;
+};
+
+class OnlineConfig {
+  RQ_OBJECT("OnlineConfig");
+  // Class that takes care of the config file
+private:
+  TString confFileName;                   // config filename
+  ifstream *fConfFile;                    // original config file
+  void ParseFile();
+  vector < vector <TString> > sConfFile;  // the config file, in memory
+  // pageInfo is the vector of the pages containing the sConfFile index
+  //   and how many commands issued within that page (title, 1d, etc.)
+  TString rootfilename;  //  Just the name
+  TString goldenrootfilename; // Golden rootfile for comparisons
+  TString protorootfile; // Prototype for getting the rootfilename
+  TString configfilestart; // 
+  TString guicolor; // User's choice of background color
+  TString plotsdir; // Where to store sample plots.. automatically stored as .jpg's).
+  UInt_t canvaswidth; // Width of histogram canvas
+  UInt_t canvasheight; // Width of histogram canvas
+  vector < pair <UInt_t,UInt_t> > pageInfo; 
+  vector <TCut> cutList; 
+  vector <UInt_t> GetDrawIndex(UInt_t);
+  Bool_t fFoundCfg;
+  Bool_t fMonitor;
+  Bool_t ParseForMultiPlots();
+
+public:
+  OnlineConfig();
+  OnlineConfig(TString);
+  Bool_t ParseConfig();
+  TString GetRootFile() { return rootfilename; };
+  TString GetGoldenFile() { return goldenrootfilename; };
+  TString GetGuiColor() { return guicolor; };
+  TString GetPlotsDir() { return plotsdir; };
+  TCut GetDefinedCut(TString ident);
+  vector <TString> GetCutIdent();
+  // Page utilites
+  UInt_t  GetPageCount() { return pageInfo.size(); };
+  pair <UInt_t,UInt_t> GetPageDim(UInt_t);
+  Bool_t IsLogx(UInt_t page);
+  Bool_t IsLogy(UInt_t page);
+  Bool_t IsLogz(UInt_t page);
+  TString GetPageTitle(UInt_t);
+  UInt_t GetDrawCount(UInt_t);           // Number of histograms in a page
+  drawcommand GetDrawCommand(UInt_t,UInt_t);
+  vector <TString> SplitString(TString,TString);
+  void OverrideRootFile(UInt_t);
+  Bool_t IsMonitor() { return fMonitor; };
+  UInt_t GetCanvasWidth() { return canvaswidth; };
+  UInt_t GetCanvasHeight() { return canvasheight; };
+  TString GetConfigStart() {return configfilestart;}; // 
+};
+
+class OnlineGUI {
+  // Class that takes care of the GUI
+  RQ_OBJECT("OnlineGUI")
+private:
+	//UInt_t fRunNum;
+  TGMainFrame                      *fMain;
+  TGHorizontalFrame                *fTopframe;
+  TGVerticalFrame                  *vframe;
+  TGRadioButton                    *fRadioPage[50];
+  TGPictureButton                  *wile;
+  TRootEmbeddedCanvas              *fEcanvas;
+  TGHorizontalFrame                *fBottomFrame;
+  TGHorizontalFrame                *hframe;
+  TGTextButton                     *fNext;
+  TGTextButton                     *fPrev;
+  TGTextButton                     *fExit;
+  TGLabel                          *fRunNumber;
+  TGTextButton                     *fPrint;
+  TCanvas                          *fCanvas; // Present Embedded canvas
+  OnlineConfig                     *fConfig;
+  UInt_t                            current_page;
+  RootFileObject                    fRootFile;
+  RootFileObject                    fGoldenFile;
+  Bool_t                            doGolden;
+  UInt_t                            runNumber;
+  TTimer                           *timer;
+  Bool_t                            fPrintOnly;
+  Bool_t                            fRootOnly;
+  Bool_t                            fFileAlive;
+
+public:
+  OnlineGUI(OnlineConfig&,Bool_t,Bool_t,UInt_t RunNum=0);
+  void CreateGUI(const TGWindow *p, UInt_t w, UInt_t h);
+  virtual ~OnlineGUI();
+  void DoDraw();
+  void DrawPrev();
+  void DrawNext();
+  void DoRadio();
+  void CheckPageButtons();
+  // Specific Draw Methods
+  void GetFileObjects(RootFileObject *r);
+  void GetTreeVars(RootFileObject *r);
+  void GetRootTree(RootFileObject *r);
+  UInt_t GetTreeIndex(TString,RootFileObject *r);
+  UInt_t GetTreeIndexFromName(TString, RootFileObject *r);
+  drawcommand fileObject2command(drawcommand,RootFileObject *r);
+  void TreeDraw(drawcommand); 
+  void HistDraw(drawcommand);
+  void MacroDraw(drawcommand);
+  void CanvasDraw(drawcommand,UInt_t);
+  void GraphDraw(drawcommand);
+  void DoDrawClear(RootFileObject *r);
+  void TimerUpdate();
+  void BadDraw(TString);
+  void CheckRootFile();
+  Int_t OpenRootFile();
+  void ObtainRunNumber();
+  void PrintToFile();
+  void PrintPages();
+  void MyCloseWindow();
+  void CloseGUI();
+};
diff --git a/onlineGUI/onlineGUI_v1.2.1/onlineDict.C b/onlineGUI/onlineGUI_v1.2.1/onlineDict.C
deleted file mode 100644
index eaf7eebd..00000000
--- a/onlineGUI/onlineGUI_v1.2.1/onlineDict.C
+++ /dev/null
@@ -1,2058 +0,0 @@
-//
-// File generated by /apps/root/PRO/root/bin/rootcint at Mon Dec  5 11:52:05 2016
-
-// Do NOT change. Changes will be lost next time file is generated
-//
-
-#define R__DICTIONARY_FILENAME onlineDict
-#include "RConfig.h" //rootcint 4834
-#if !defined(R__ACCESS_IN_SYMBOL)
-//Break the privacy of classes -- Disabled for the moment
-#define private public
-#define protected public
-#endif
-
-// Since CINT ignores the std namespace, we need to do so in this file.
-namespace std {} using namespace std;
-#include "onlineDict.h"
-
-#include "TClass.h"
-#include "TBuffer.h"
-#include "TMemberInspector.h"
-#include "TInterpreter.h"
-#include "TVirtualMutex.h"
-#include "TError.h"
-
-#ifndef G__ROOT
-#define G__ROOT
-#endif
-
-#include "RtypesImp.h"
-#include "TIsAProxy.h"
-#include "TFileMergeInfo.h"
-
-// Direct notice to TROOT of the dictionary's loading.
-namespace {
-   static struct DictInit {
-      DictInit() {
-         ROOT::RegisterModule();
-      }
-   } __TheDictionaryInitializer;
-}
-
-// START OF SHADOWS
-
-namespace ROOTShadow {
-   namespace Shadow {
-   } // of namespace Shadow
-} // of namespace ROOTShadow
-// END OF SHADOWS
-
-namespace ROOTDict {
-   void OnlineConfig_ShowMembers(void *obj, TMemberInspector &R__insp);
-   static void OnlineConfig_Dictionary();
-   static void *new_OnlineConfig(void *p = 0);
-   static void *newArray_OnlineConfig(Long_t size, void *p);
-   static void delete_OnlineConfig(void *p);
-   static void deleteArray_OnlineConfig(void *p);
-   static void destruct_OnlineConfig(void *p);
-
-   // Function generating the singleton type initializer
-   static ROOT::TGenericClassInfo *GenerateInitInstanceLocal(const ::OnlineConfig*)
-   {
-      ::OnlineConfig *ptr = 0;
-      static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(typeid(::OnlineConfig),0);
-      static ::ROOT::TGenericClassInfo 
-         instance("OnlineConfig", "./online.h", 66,
-                  typeid(::OnlineConfig), ::ROOT::DefineBehavior(ptr, ptr),
-                  0, &OnlineConfig_Dictionary, isa_proxy, 0,
-                  sizeof(::OnlineConfig) );
-      instance.SetNew(&new_OnlineConfig);
-      instance.SetNewArray(&newArray_OnlineConfig);
-      instance.SetDelete(&delete_OnlineConfig);
-      instance.SetDeleteArray(&deleteArray_OnlineConfig);
-      instance.SetDestructor(&destruct_OnlineConfig);
-      return &instance;
-   }
-   ROOT::TGenericClassInfo *GenerateInitInstance(const ::OnlineConfig*)
-   {
-      return GenerateInitInstanceLocal((::OnlineConfig*)0);
-   }
-   // Static variable to force the class initialization
-   static ::ROOT::TGenericClassInfo *_R__UNIQUE_(Init) = GenerateInitInstanceLocal((const ::OnlineConfig*)0x0); R__UseDummy(_R__UNIQUE_(Init));
-
-   // Dictionary for non-ClassDef classes
-   static void OnlineConfig_Dictionary() {
-      ::ROOTDict::GenerateInitInstanceLocal((const ::OnlineConfig*)0x0)->GetClass();
-   }
-
-} // end of namespace ROOTDict
-
-namespace ROOTDict {
-   void OnlineGUI_ShowMembers(void *obj, TMemberInspector &R__insp);
-   static void OnlineGUI_Dictionary();
-   static void delete_OnlineGUI(void *p);
-   static void deleteArray_OnlineGUI(void *p);
-   static void destruct_OnlineGUI(void *p);
-
-   // Function generating the singleton type initializer
-   static ROOT::TGenericClassInfo *GenerateInitInstanceLocal(const ::OnlineGUI*)
-   {
-      ::OnlineGUI *ptr = 0;
-      static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(typeid(::OnlineGUI),0);
-      static ::ROOT::TGenericClassInfo 
-         instance("OnlineGUI", "./online.h", 112,
-                  typeid(::OnlineGUI), ::ROOT::DefineBehavior(ptr, ptr),
-                  0, &OnlineGUI_Dictionary, isa_proxy, 0,
-                  sizeof(::OnlineGUI) );
-      instance.SetDelete(&delete_OnlineGUI);
-      instance.SetDeleteArray(&deleteArray_OnlineGUI);
-      instance.SetDestructor(&destruct_OnlineGUI);
-      return &instance;
-   }
-   ROOT::TGenericClassInfo *GenerateInitInstance(const ::OnlineGUI*)
-   {
-      return GenerateInitInstanceLocal((::OnlineGUI*)0);
-   }
-   // Static variable to force the class initialization
-   static ::ROOT::TGenericClassInfo *_R__UNIQUE_(Init) = GenerateInitInstanceLocal((const ::OnlineGUI*)0x0); R__UseDummy(_R__UNIQUE_(Init));
-
-   // Dictionary for non-ClassDef classes
-   static void OnlineGUI_Dictionary() {
-      ::ROOTDict::GenerateInitInstanceLocal((const ::OnlineGUI*)0x0)->GetClass();
-   }
-
-} // end of namespace ROOTDict
-
-namespace ROOTDict {
-   // Wrapper around operator delete
-   static void delete_OnlineGUI(void *p) {
-      delete ((::OnlineGUI*)p);
-   }
-   static void deleteArray_OnlineGUI(void *p) {
-      delete [] ((::OnlineGUI*)p);
-   }
-   static void destruct_OnlineGUI(void *p) {
-      typedef ::OnlineGUI current_t;
-      ((current_t*)p)->~current_t();
-   }
-} // end of namespace ROOTDict for class ::OnlineGUI
-
-namespace ROOTDict {
-   // Wrappers around operator new
-   static void *new_OnlineConfig(void *p) {
-      return  p ? ::new((::ROOT::TOperatorNewHelper*)p) ::OnlineConfig : new ::OnlineConfig;
-   }
-   static void *newArray_OnlineConfig(Long_t nElements, void *p) {
-      return p ? ::new((::ROOT::TOperatorNewHelper*)p) ::OnlineConfig[nElements] : new ::OnlineConfig[nElements];
-   }
-   // Wrapper around operator delete
-   static void delete_OnlineConfig(void *p) {
-      delete ((::OnlineConfig*)p);
-   }
-   static void deleteArray_OnlineConfig(void *p) {
-      delete [] ((::OnlineConfig*)p);
-   }
-   static void destruct_OnlineConfig(void *p) {
-      typedef ::OnlineConfig current_t;
-      ((current_t*)p)->~current_t();
-   }
-} // end of namespace ROOTDict for class ::OnlineConfig
-
-/********************************************************
-* onlineDict.C
-* CAUTION: DON'T CHANGE THIS FILE. THIS FILE IS AUTOMATICALLY GENERATED
-*          FROM HEADER FILES LISTED IN G__setup_cpp_environmentXXX().
-*          CHANGE THOSE HEADER FILES AND REGENERATE THIS FILE.
-********************************************************/
-
-#ifdef G__MEMTEST
-#undef malloc
-#undef free
-#endif
-
-#if defined(__GNUC__) && __GNUC__ >= 4 && ((__GNUC_MINOR__ == 2 && __GNUC_PATCHLEVEL__ >= 1) || (__GNUC_MINOR__ >= 3))
-#pragma GCC diagnostic ignored "-Wstrict-aliasing"
-#endif
-
-extern "C" void G__cpp_reset_tagtableonlineDict();
-
-extern "C" void G__set_cpp_environmentonlineDict() {
-  G__cpp_reset_tagtableonlineDict();
-}
-#include <new>
-extern "C" int G__cpp_dllrevonlineDict() { return(30051515); }
-
-/*********************************************************
-* Member function Interface Method
-*********************************************************/
-
-/* OnlineConfig */
-static int G__onlineDict_704_0_1(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      G__letint(result7, 85, (long) ((const OnlineConfig*) G__getstructoffset())->GetListOfSignals());
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_2(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->Connect((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1])
-, (void*) G__int(libp->para[2]), (const char*) G__int(libp->para[3])));
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_3(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-   switch (libp->paran) {
-   case 3:
-      G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->Disconnect((const char*) G__int(libp->para[0]), (void*) G__int(libp->para[1])
-, (const char*) G__int(libp->para[2])));
-      break;
-   case 2:
-      G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->Disconnect((const char*) G__int(libp->para[0]), (void*) G__int(libp->para[1])));
-      break;
-   case 1:
-      G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->Disconnect((const char*) G__int(libp->para[0])));
-      break;
-   case 0:
-      G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->Disconnect());
-      break;
-   }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_4(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-   switch (libp->paran) {
-   case 2:
-      ((OnlineConfig*) G__getstructoffset())->HighPriority((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1]));
-      G__setnull(result7);
-      break;
-   case 1:
-      ((OnlineConfig*) G__getstructoffset())->HighPriority((const char*) G__int(libp->para[0]));
-      G__setnull(result7);
-      break;
-   }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_5(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-   switch (libp->paran) {
-   case 2:
-      ((OnlineConfig*) G__getstructoffset())->LowPriority((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1]));
-      G__setnull(result7);
-      break;
-   case 1:
-      ((OnlineConfig*) G__getstructoffset())->LowPriority((const char*) G__int(libp->para[0]));
-      G__setnull(result7);
-      break;
-   }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_6(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-   const int imax = 6, dmax = 8, umax = 50;
-   int objsize, type, i, icnt = 0, dcnt = 0, ucnt = 0;
-   G__value *pval;
-   G__int64 lval[imax] = {0};
-   double dval[dmax] = {0};
-   union { G__int64 lval; double dval; } u[umax] = {{0}};
-   lval[icnt] = G__getstructoffset(); icnt++; // this pointer
-   for (i = 0; i < libp->paran; i++) {
-      type = G__value_get_type(&libp->para[i]);
-      pval = &libp->para[i];
-      if (isupper(type))
-         objsize = G__LONGALLOC;
-      else
-         objsize = G__sizeof(pval);
-      switch (type) {
-         case 'c': case 'b': case 's': case 'r': objsize = sizeof(int); break;
-         case 'f': objsize = sizeof(double); break;
-      }
-#ifdef G__VAARG_PASS_BY_REFERENCE
-      if (objsize > G__VAARG_PASS_BY_REFERENCE) {
-         if (pval->ref > 0x1000) {
-            if (icnt < imax) {
-               lval[icnt] = pval->ref; icnt++;
-            } else {
-               u[ucnt].lval = pval->ref; ucnt++;
-            }
-         } else {
-            if (icnt < imax) {
-               lval[icnt] = G__int(*pval); icnt++;
-            } else {
-               u[ucnt].lval = G__int(*pval); ucnt++;
-            }
-         }
-         type = 'z';
-      }
-#endif
-      switch (type) {
-         case 'n': case 'm':
-            if (icnt < imax) {
-               lval[icnt] = (G__int64)G__Longlong(*pval); icnt++;
-            } else {
-               u[ucnt].lval = (G__int64)G__Longlong(*pval); ucnt++;
-            } break;
-         case 'f': case 'd':
-            if (dcnt < dmax) {
-               dval[dcnt] = G__double(*pval); dcnt++;
-            } else {
-               u[ucnt].dval = G__double(*pval); ucnt++;
-            } break;
-         case 'z': break;
-         case 'u':
-            if (objsize >= 16) {
-               memcpy(&u[ucnt].lval, (void*)pval->obj.i, objsize);
-               ucnt += objsize/8;
-               break;
-            }
-            // objsize < 16 -> fall through
-         case 'g': case 'c': case 'b': case 'r': case 's': case 'h': case 'i':
-         case 'k': case 'l':
-         default:
-            if (icnt < imax) {
-               lval[icnt] = G__int(*pval); icnt++;
-            } else {
-               u[ucnt].lval = G__int(*pval); ucnt++;
-            } break;
-      }
-      if (ucnt >= 50) printf("EmitVA: more than 56 var args\n");
-   }
-      ((OnlineConfig*) G__getstructoffset())->EmitVA((const char*) G__int(libp->para[0]), (Int_t) G__int(libp->para[1]), dval[0], dval[1], dval[2], dval[3], dval[4], dval[5], dval[6], dval[7], lval[3], lval[4], lval[5], u[0].lval, u[1].lval, u[2].lval, u[3].lval, u[4].lval, u[5].lval, u[6].lval, u[7].lval, u[8].lval, u[9].lval, u[10].lval, u[11].lval, u[12].lval, u[13].lval, u[14].lval, u[15].lval, u[16].lval, u[17].lval, u[18].lval, u[19].lval, u[20].lval, u[21].lval, u[22].lval, u[23].lval, u[24].lval, u[25].lval, u[26].lval, u[27].lval, u[28].lval, u[29].lval, u[30].lval, u[31].lval, u[32].lval, u[33].lval, u[34].lval, u[35].lval, u[36].lval, u[37].lval, u[38].lval, u[39].lval, u[40].lval, u[41].lval, u[42].lval, u[43].lval, u[44].lval, u[45].lval, u[46].lval, u[47].lval, u[48].lval, u[49].lval);
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_7(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_8(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_9(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Long_t*) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_10(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Double_t) G__double(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_11(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Long_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_12(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Long64_t) G__Longlong(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_13(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (ULong64_t) G__ULonglong(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_14(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Bool_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_15(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Char_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_16(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (UChar_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_17(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Short_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_18(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (UShort_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_19(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Int_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_20(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (UInt_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_21(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (ULong_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_22(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Float_t) G__double(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_23(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Destroyed();
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_24(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->ChangedBy((const char*) G__int(libp->para[0]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_25(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->Message((const char*) G__int(libp->para[0]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_29(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-   OnlineConfig* p = NULL;
-   char* gvp = (char*) G__getgvp();
-   int n = G__getaryconstruct();
-   if (n) {
-     if ((gvp == (char*)G__PVOID) || (gvp == 0)) {
-       p = new OnlineConfig[n];
-     } else {
-       p = new((void*) gvp) OnlineConfig[n];
-     }
-   } else {
-     if ((gvp == (char*)G__PVOID) || (gvp == 0)) {
-       p = new OnlineConfig;
-     } else {
-       p = new((void*) gvp) OnlineConfig;
-     }
-   }
-   result7->obj.i = (long) p;
-   result7->ref = (long) p;
-   G__set_tagnum(result7,G__get_linked_tagnum(&G__onlineDictLN_OnlineConfig));
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_30(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-   OnlineConfig* p = NULL;
-   char* gvp = (char*) G__getgvp();
-   //m: 1
-   if ((gvp == (char*)G__PVOID) || (gvp == 0)) {
-     p = new OnlineConfig(*((TString*) G__int(libp->para[0])));
-   } else {
-     p = new((void*) gvp) OnlineConfig(*((TString*) G__int(libp->para[0])));
-   }
-   result7->obj.i = (long) p;
-   result7->ref = (long) p;
-   G__set_tagnum(result7,G__get_linked_tagnum(&G__onlineDictLN_OnlineConfig));
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_31(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->ParseConfig());
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_32(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      {
-         TString* pobj;
-         TString xobj = ((OnlineConfig*) G__getstructoffset())->GetRootFile();
-         pobj = new TString(xobj);
-         result7->obj.i = (long) ((void*) pobj);
-         result7->ref = result7->obj.i;
-         G__store_tempobject(*result7);
-      }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_33(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      {
-         TString* pobj;
-         TString xobj = ((OnlineConfig*) G__getstructoffset())->GetGoldenFile();
-         pobj = new TString(xobj);
-         result7->obj.i = (long) ((void*) pobj);
-         result7->ref = result7->obj.i;
-         G__store_tempobject(*result7);
-      }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_34(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      {
-         TString* pobj;
-         TString xobj = ((OnlineConfig*) G__getstructoffset())->GetGuiColor();
-         pobj = new TString(xobj);
-         result7->obj.i = (long) ((void*) pobj);
-         result7->ref = result7->obj.i;
-         G__store_tempobject(*result7);
-      }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_35(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      {
-         TString* pobj;
-         TString xobj = ((OnlineConfig*) G__getstructoffset())->GetPlotsDir();
-         pobj = new TString(xobj);
-         result7->obj.i = (long) ((void*) pobj);
-         result7->ref = result7->obj.i;
-         G__store_tempobject(*result7);
-      }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_36(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      {
-         TCut* pobj;
-         TCut xobj = ((OnlineConfig*) G__getstructoffset())->GetDefinedCut(*((TString*) G__int(libp->para[0])));
-         pobj = new TCut(xobj);
-         result7->obj.i = (long) ((void*) pobj);
-         result7->ref = result7->obj.i;
-         G__store_tempobject(*result7);
-      }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_37(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      {
-         vector<TString>* pobj;
-         vector<TString> xobj = ((OnlineConfig*) G__getstructoffset())->GetCutIdent();
-         pobj = new vector<TString>(xobj);
-         result7->obj.i = (long) ((void*) pobj);
-         result7->ref = result7->obj.i;
-         G__store_tempobject(*result7);
-      }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_38(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      G__letint(result7, 104, (long) ((OnlineConfig*) G__getstructoffset())->GetPageCount());
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_39(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      {
-         pair<UInt_t,UInt_t>* pobj;
-         pair<UInt_t,UInt_t> xobj = ((OnlineConfig*) G__getstructoffset())->GetPageDim((UInt_t) G__int(libp->para[0]));
-         pobj = new pair<UInt_t,UInt_t>(xobj);
-         result7->obj.i = (long) ((void*) pobj);
-         result7->ref = result7->obj.i;
-         G__store_tempobject(*result7);
-      }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_40(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->IsLogx((UInt_t) G__int(libp->para[0])));
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_41(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->IsLogy((UInt_t) G__int(libp->para[0])));
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_42(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->IsLogz((UInt_t) G__int(libp->para[0])));
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_43(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      {
-         TString* pobj;
-         TString xobj = ((OnlineConfig*) G__getstructoffset())->GetPageTitle((UInt_t) G__int(libp->para[0]));
-         pobj = new TString(xobj);
-         result7->obj.i = (long) ((void*) pobj);
-         result7->ref = result7->obj.i;
-         G__store_tempobject(*result7);
-      }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_44(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      G__letint(result7, 104, (long) ((OnlineConfig*) G__getstructoffset())->GetDrawCount((UInt_t) G__int(libp->para[0])));
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_45(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      {
-         drawcommand* pobj;
-         drawcommand xobj = ((OnlineConfig*) G__getstructoffset())->GetDrawCommand((UInt_t) G__int(libp->para[0]), (UInt_t) G__int(libp->para[1]));
-         pobj = new drawcommand(xobj);
-         result7->obj.i = (long) ((void*) pobj);
-         result7->ref = result7->obj.i;
-         G__store_tempobject(*result7);
-      }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_46(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      {
-         vector<TString>* pobj;
-         vector<TString> xobj = ((OnlineConfig*) G__getstructoffset())->SplitString(*((TString*) G__int(libp->para[0])), *((TString*) G__int(libp->para[1])));
-         pobj = new vector<TString>(xobj);
-         result7->obj.i = (long) ((void*) pobj);
-         result7->ref = result7->obj.i;
-         G__store_tempobject(*result7);
-      }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_47(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineConfig*) G__getstructoffset())->OverrideRootFile((UInt_t) G__int(libp->para[0]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_704_0_48(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->IsMonitor());
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-// automatic destructor
-typedef OnlineConfig G__TOnlineConfig;
-static int G__onlineDict_704_0_49(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-   char* gvp = (char*) G__getgvp();
-   long soff = G__getstructoffset();
-   int n = G__getaryconstruct();
-   //
-   //has_a_delete: 0
-   //has_own_delete1arg: 0
-   //has_own_delete2arg: 0
-   //
-   if (!soff) {
-     return(1);
-   }
-   if (n) {
-     if (gvp == (char*)G__PVOID) {
-       delete[] (OnlineConfig*) soff;
-     } else {
-       G__setgvp((long) G__PVOID);
-       for (int i = n - 1; i >= 0; --i) {
-         ((OnlineConfig*) (soff+(sizeof(OnlineConfig)*i)))->~G__TOnlineConfig();
-       }
-       G__setgvp((long)gvp);
-     }
-   } else {
-     if (gvp == (char*)G__PVOID) {
-       delete (OnlineConfig*) soff;
-     } else {
-       G__setgvp((long) G__PVOID);
-       ((OnlineConfig*) (soff))->~G__TOnlineConfig();
-       G__setgvp((long)gvp);
-     }
-   }
-   G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-
-/* OnlineGUI */
-static int G__onlineDict_714_0_1(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      G__letint(result7, 85, (long) ((const OnlineGUI*) G__getstructoffset())->GetListOfSignals());
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_2(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      G__letint(result7, 103, (long) ((OnlineGUI*) G__getstructoffset())->Connect((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1])
-, (void*) G__int(libp->para[2]), (const char*) G__int(libp->para[3])));
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_3(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-   switch (libp->paran) {
-   case 3:
-      G__letint(result7, 103, (long) ((OnlineGUI*) G__getstructoffset())->Disconnect((const char*) G__int(libp->para[0]), (void*) G__int(libp->para[1])
-, (const char*) G__int(libp->para[2])));
-      break;
-   case 2:
-      G__letint(result7, 103, (long) ((OnlineGUI*) G__getstructoffset())->Disconnect((const char*) G__int(libp->para[0]), (void*) G__int(libp->para[1])));
-      break;
-   case 1:
-      G__letint(result7, 103, (long) ((OnlineGUI*) G__getstructoffset())->Disconnect((const char*) G__int(libp->para[0])));
-      break;
-   case 0:
-      G__letint(result7, 103, (long) ((OnlineGUI*) G__getstructoffset())->Disconnect());
-      break;
-   }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_4(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-   switch (libp->paran) {
-   case 2:
-      ((OnlineGUI*) G__getstructoffset())->HighPriority((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1]));
-      G__setnull(result7);
-      break;
-   case 1:
-      ((OnlineGUI*) G__getstructoffset())->HighPriority((const char*) G__int(libp->para[0]));
-      G__setnull(result7);
-      break;
-   }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_5(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-   switch (libp->paran) {
-   case 2:
-      ((OnlineGUI*) G__getstructoffset())->LowPriority((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1]));
-      G__setnull(result7);
-      break;
-   case 1:
-      ((OnlineGUI*) G__getstructoffset())->LowPriority((const char*) G__int(libp->para[0]));
-      G__setnull(result7);
-      break;
-   }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_6(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-   const int imax = 6, dmax = 8, umax = 50;
-   int objsize, type, i, icnt = 0, dcnt = 0, ucnt = 0;
-   G__value *pval;
-   G__int64 lval[imax] = {0};
-   double dval[dmax] = {0};
-   union { G__int64 lval; double dval; } u[umax] = {{0}};
-   lval[icnt] = G__getstructoffset(); icnt++; // this pointer
-   for (i = 0; i < libp->paran; i++) {
-      type = G__value_get_type(&libp->para[i]);
-      pval = &libp->para[i];
-      if (isupper(type))
-         objsize = G__LONGALLOC;
-      else
-         objsize = G__sizeof(pval);
-      switch (type) {
-         case 'c': case 'b': case 's': case 'r': objsize = sizeof(int); break;
-         case 'f': objsize = sizeof(double); break;
-      }
-#ifdef G__VAARG_PASS_BY_REFERENCE
-      if (objsize > G__VAARG_PASS_BY_REFERENCE) {
-         if (pval->ref > 0x1000) {
-            if (icnt < imax) {
-               lval[icnt] = pval->ref; icnt++;
-            } else {
-               u[ucnt].lval = pval->ref; ucnt++;
-            }
-         } else {
-            if (icnt < imax) {
-               lval[icnt] = G__int(*pval); icnt++;
-            } else {
-               u[ucnt].lval = G__int(*pval); ucnt++;
-            }
-         }
-         type = 'z';
-      }
-#endif
-      switch (type) {
-         case 'n': case 'm':
-            if (icnt < imax) {
-               lval[icnt] = (G__int64)G__Longlong(*pval); icnt++;
-            } else {
-               u[ucnt].lval = (G__int64)G__Longlong(*pval); ucnt++;
-            } break;
-         case 'f': case 'd':
-            if (dcnt < dmax) {
-               dval[dcnt] = G__double(*pval); dcnt++;
-            } else {
-               u[ucnt].dval = G__double(*pval); ucnt++;
-            } break;
-         case 'z': break;
-         case 'u':
-            if (objsize >= 16) {
-               memcpy(&u[ucnt].lval, (void*)pval->obj.i, objsize);
-               ucnt += objsize/8;
-               break;
-            }
-            // objsize < 16 -> fall through
-         case 'g': case 'c': case 'b': case 'r': case 's': case 'h': case 'i':
-         case 'k': case 'l':
-         default:
-            if (icnt < imax) {
-               lval[icnt] = G__int(*pval); icnt++;
-            } else {
-               u[ucnt].lval = G__int(*pval); ucnt++;
-            } break;
-      }
-      if (ucnt >= 50) printf("EmitVA: more than 56 var args\n");
-   }
-      ((OnlineGUI*) G__getstructoffset())->EmitVA((const char*) G__int(libp->para[0]), (Int_t) G__int(libp->para[1]), dval[0], dval[1], dval[2], dval[3], dval[4], dval[5], dval[6], dval[7], lval[3], lval[4], lval[5], u[0].lval, u[1].lval, u[2].lval, u[3].lval, u[4].lval, u[5].lval, u[6].lval, u[7].lval, u[8].lval, u[9].lval, u[10].lval, u[11].lval, u[12].lval, u[13].lval, u[14].lval, u[15].lval, u[16].lval, u[17].lval, u[18].lval, u[19].lval, u[20].lval, u[21].lval, u[22].lval, u[23].lval, u[24].lval, u[25].lval, u[26].lval, u[27].lval, u[28].lval, u[29].lval, u[30].lval, u[31].lval, u[32].lval, u[33].lval, u[34].lval, u[35].lval, u[36].lval, u[37].lval, u[38].lval, u[39].lval, u[40].lval, u[41].lval, u[42].lval, u[43].lval, u[44].lval, u[45].lval, u[46].lval, u[47].lval, u[48].lval, u[49].lval);
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_7(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_8(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_9(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Long_t*) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_10(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Double_t) G__double(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_11(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Long_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_12(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Long64_t) G__Longlong(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_13(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (ULong64_t) G__ULonglong(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_14(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Bool_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_15(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Char_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_16(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (UChar_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_17(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Short_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_18(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (UShort_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_19(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Int_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_20(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (UInt_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_21(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (ULong_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_22(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Float_t) G__double(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_23(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Destroyed();
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_24(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->ChangedBy((const char*) G__int(libp->para[0]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_25(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->Message((const char*) G__int(libp->para[0]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_26(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-   OnlineGUI* p = NULL;
-   char* gvp = (char*) G__getgvp();
-   switch (libp->paran) {
-   case 3:
-     //m: 3
-     if ((gvp == (char*)G__PVOID) || (gvp == 0)) {
-       p = new OnlineGUI(
-*(OnlineConfig*) libp->para[0].ref, (Bool_t) G__int(libp->para[1])
-, (UInt_t) G__int(libp->para[2]));
-     } else {
-       p = new((void*) gvp) OnlineGUI(
-*(OnlineConfig*) libp->para[0].ref, (Bool_t) G__int(libp->para[1])
-, (UInt_t) G__int(libp->para[2]));
-     }
-     break;
-   case 2:
-     //m: 2
-     if ((gvp == (char*)G__PVOID) || (gvp == 0)) {
-       p = new OnlineGUI(*(OnlineConfig*) libp->para[0].ref, (Bool_t) G__int(libp->para[1]));
-     } else {
-       p = new((void*) gvp) OnlineGUI(*(OnlineConfig*) libp->para[0].ref, (Bool_t) G__int(libp->para[1]));
-     }
-     break;
-   }
-   result7->obj.i = (long) p;
-   result7->ref = (long) p;
-   G__set_tagnum(result7,G__get_linked_tagnum(&G__onlineDictLN_OnlineGUI));
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_27(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->CreateGUI((TGWindow*) G__int(libp->para[0]), (UInt_t) G__int(libp->para[1])
-, (UInt_t) G__int(libp->para[2]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_28(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->DoDraw();
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_29(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->DrawPrev();
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_30(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->DrawNext();
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_31(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->DoRadio();
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_32(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->CheckPageButtons();
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_33(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->GetFileObjects((RootFileObject*) G__int(libp->para[0]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_34(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->GetTreeVars((RootFileObject*) G__int(libp->para[0]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_35(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->GetRootTree((RootFileObject*) G__int(libp->para[0]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_36(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      G__letint(result7, 104, (long) ((OnlineGUI*) G__getstructoffset())->GetTreeIndex(*((TString*) G__int(libp->para[0])), (RootFileObject*) G__int(libp->para[1])));
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_37(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      G__letint(result7, 104, (long) ((OnlineGUI*) G__getstructoffset())->GetTreeIndexFromName(*((TString*) G__int(libp->para[0])), (RootFileObject*) G__int(libp->para[1])));
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_38(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      {
-         drawcommand* pobj;
-         drawcommand xobj = ((OnlineGUI*) G__getstructoffset())->fileObject2command(*((drawcommand*) G__int(libp->para[0])), (RootFileObject*) G__int(libp->para[1]));
-         pobj = new drawcommand(xobj);
-         result7->obj.i = (long) ((void*) pobj);
-         result7->ref = result7->obj.i;
-         G__store_tempobject(*result7);
-      }
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_39(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->TreeDraw(*((drawcommand*) G__int(libp->para[0])));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_40(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->HistDraw(*((drawcommand*) G__int(libp->para[0])));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_41(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->MacroDraw(*((drawcommand*) G__int(libp->para[0])));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_42(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->CanvasDraw(*((drawcommand*) G__int(libp->para[0])), (UInt_t) G__int(libp->para[1]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_43(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->GraphDraw(*((drawcommand*) G__int(libp->para[0])));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_44(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->DoDrawClear((RootFileObject*) G__int(libp->para[0]));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_45(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->TimerUpdate();
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_46(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->BadDraw(*((TString*) G__int(libp->para[0])));
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_47(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->CheckRootFile();
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_48(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      G__letint(result7, 105, (long) ((OnlineGUI*) G__getstructoffset())->OpenRootFile());
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_49(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->ObtainRunNumber();
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_50(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->PrintToFile();
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_51(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->PrintPages();
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_52(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->MyCloseWindow();
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-static int G__onlineDict_714_0_53(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-      ((OnlineGUI*) G__getstructoffset())->CloseGUI();
-      G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-// automatic destructor
-typedef OnlineGUI G__TOnlineGUI;
-static int G__onlineDict_714_0_54(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
-{
-   char* gvp = (char*) G__getgvp();
-   long soff = G__getstructoffset();
-   int n = G__getaryconstruct();
-   //
-   //has_a_delete: 0
-   //has_own_delete1arg: 0
-   //has_own_delete2arg: 0
-   //
-   if (!soff) {
-     return(1);
-   }
-   if (n) {
-     if (gvp == (char*)G__PVOID) {
-       delete[] (OnlineGUI*) soff;
-     } else {
-       G__setgvp((long) G__PVOID);
-       for (int i = n - 1; i >= 0; --i) {
-         ((OnlineGUI*) (soff+(sizeof(OnlineGUI)*i)))->~G__TOnlineGUI();
-       }
-       G__setgvp((long)gvp);
-     }
-   } else {
-     if (gvp == (char*)G__PVOID) {
-       delete (OnlineGUI*) soff;
-     } else {
-       G__setgvp((long) G__PVOID);
-       ((OnlineGUI*) (soff))->~G__TOnlineGUI();
-       G__setgvp((long)gvp);
-     }
-   }
-   G__setnull(result7);
-   return(1 || funcname || hash || result7 || libp) ;
-}
-
-
-/* Setting up global function */
-
-/*********************************************************
-* Member function Stub
-*********************************************************/
-
-/* OnlineConfig */
-
-/* OnlineGUI */
-
-/*********************************************************
-* Global function Stub
-*********************************************************/
-
-/*********************************************************
-* Get size of pointer to member function
-*********************************************************/
-class G__Sizep2memfunconlineDict {
- public:
-  G__Sizep2memfunconlineDict(): p(&G__Sizep2memfunconlineDict::sizep2memfunc) {}
-    size_t sizep2memfunc() { return(sizeof(p)); }
-  private:
-    size_t (G__Sizep2memfunconlineDict::*p)();
-};
-
-size_t G__get_sizep2memfunconlineDict()
-{
-  G__Sizep2memfunconlineDict a;
-  G__setsizep2memfunc((int)a.sizep2memfunc());
-  return((size_t)a.sizep2memfunc());
-}
-
-
-/*********************************************************
-* virtual base class offset calculation interface
-*********************************************************/
-
-   /* Setting up class inheritance */
-
-/*********************************************************
-* Inheritance information setup/
-*********************************************************/
-extern "C" void G__cpp_setup_inheritanceonlineDict() {
-
-   /* Setting up class inheritance */
-}
-
-/*********************************************************
-* typedef information setup/
-*********************************************************/
-extern "C" void G__cpp_setup_typetableonlineDict() {
-
-   /* Setting up typedef entry */
-   G__search_typename2("Char_t",99,-1,0,-1);
-   G__setnewtype(-1,"Signed Character 1 byte (char)",0);
-   G__search_typename2("UChar_t",98,-1,0,-1);
-   G__setnewtype(-1,"Unsigned Character 1 byte (unsigned char)",0);
-   G__search_typename2("Short_t",115,-1,0,-1);
-   G__setnewtype(-1,"Signed Short integer 2 bytes (short)",0);
-   G__search_typename2("UShort_t",114,-1,0,-1);
-   G__setnewtype(-1,"Unsigned Short integer 2 bytes (unsigned short)",0);
-   G__search_typename2("Int_t",105,-1,0,-1);
-   G__setnewtype(-1,"Signed integer 4 bytes (int)",0);
-   G__search_typename2("UInt_t",104,-1,0,-1);
-   G__setnewtype(-1,"Unsigned integer 4 bytes (unsigned int)",0);
-   G__search_typename2("Long_t",108,-1,0,-1);
-   G__setnewtype(-1,"Signed long integer 8 bytes (long)",0);
-   G__search_typename2("ULong_t",107,-1,0,-1);
-   G__setnewtype(-1,"Unsigned long integer 8 bytes (unsigned long)",0);
-   G__search_typename2("Float_t",102,-1,0,-1);
-   G__setnewtype(-1,"Float 4 bytes (float)",0);
-   G__search_typename2("Double_t",100,-1,0,-1);
-   G__setnewtype(-1,"Double 8 bytes",0);
-   G__search_typename2("Bool_t",103,-1,0,-1);
-   G__setnewtype(-1,"Boolean (0=false, 1=true) (bool)",0);
-   G__search_typename2("Long64_t",110,-1,0,-1);
-   G__setnewtype(-1,"Portable signed long integer 8 bytes",0);
-   G__search_typename2("ULong64_t",109,-1,0,-1);
-   G__setnewtype(-1,"Portable unsigned long integer 8 bytes",0);
-   G__search_typename2("vector<ROOT::TSchemaHelper>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<TVirtualArray*>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("iterator<std::bidirectional_iterator_tag,TObject*,std::ptrdiff_t,const TObject**,const TObject*&>",117,G__get_linked_tagnum(&G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("iterator<bidirectional_iterator_tag,TObject*,std::ptrdiff_t,const TObject**,const TObject*&>",117,G__get_linked_tagnum(&G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("iterator<bidirectional_iterator_tag,TObject*>",117,G__get_linked_tagnum(&G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("iterator<bidirectional_iterator_tag,TObject*,long>",117,G__get_linked_tagnum(&G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("iterator<bidirectional_iterator_tag,TObject*,long,const TObject**>",117,G__get_linked_tagnum(&G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("map<std::string,TObjArray*>",117,G__get_linked_tagnum(&G__onlineDictLN_maplEstringcOTObjArraymUcOlesslEstringgRcOallocatorlEpairlEconstsPstringcOTObjArraymUgRsPgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("map<string,TObjArray*>",117,G__get_linked_tagnum(&G__onlineDictLN_maplEstringcOTObjArraymUcOlesslEstringgRcOallocatorlEpairlEconstsPstringcOTObjArraymUgRsPgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("map<string,TObjArray*>",117,G__get_linked_tagnum(&G__onlineDictLN_maplEstringcOTObjArraymUcOlesslEstringgRcOallocatorlEpairlEconstsPstringcOTObjArraymUgRsPgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("map<string,TObjArray*,less<string> >",117,G__get_linked_tagnum(&G__onlineDictLN_maplEstringcOTObjArraymUcOlesslEstringgRcOallocatorlEpairlEconstsPstringcOTObjArraymUgRsPgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("pair<UInt_t,Int_t>",117,G__get_linked_tagnum(&G__onlineDictLN_pairlEunsignedsPintcOintgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<std::pair<UInt_t,Int_t> >",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<pair<UInt_t,Int_t> >",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<pair<unsigned int,int> >",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("TVectorT<Float_t>",117,G__get_linked_tagnum(&G__onlineDictLN_TVectorTlEfloatgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("TVectorT<Double_t>",117,G__get_linked_tagnum(&G__onlineDictLN_TVectorTlEdoublegR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("TMatrixTBase<Float_t>",117,G__get_linked_tagnum(&G__onlineDictLN_TMatrixTBaselEfloatgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("TMatrixTBase<Double_t>",117,G__get_linked_tagnum(&G__onlineDictLN_TMatrixTBaselEdoublegR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<TTree*>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlETTreemUcOallocatorlETTreemUgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETTreemUcOallocatorlETTreemUgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETTreemUcOallocatorlETTreemUgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETTreemUcOallocatorlETTreemUgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETTreemUcOallocatorlETTreemUgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<Int_t>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEintcOallocatorlEintgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEintcOallocatorlEintgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEintcOallocatorlEintgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEintcOallocatorlEintgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEintcOallocatorlEintgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<int>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEintcOallocatorlEintgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<TString>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETStringcOallocatorlETStringgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETStringcOallocatorlETStringgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<vector<TString> >",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<vector<TString,allocator<TString> > >",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<fileObject>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEfileObjectcOallocatorlEfileObjectgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEfileObjectcOallocatorlEfileObjectgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEfileObjectcOallocatorlEfileObjectgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEfileObjectcOallocatorlEfileObjectgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEfileObjectcOallocatorlEfileObjectgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("pair<UInt_t,UInt_t>",117,G__get_linked_tagnum(&G__onlineDictLN_pairlEunsignedsPintcOunsignedsPintgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<pair<UInt_t,UInt_t> >",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<pair<unsigned int,unsigned int> >",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<TCut>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlETCutcOallocatorlETCutgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETCutcOallocatorlETCutgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETCutcOallocatorlETCutgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETCutcOallocatorlETCutgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETCutcOallocatorlETCutgRsPgR));
-   G__setnewtype(-1,NULL,0);
-   G__search_typename2("vector<UInt_t>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEunsignedsPintcOallocatorlEunsignedsPintgRsPgR),0,-1);
-   G__setnewtype(-1,NULL,0);
-}
-
-/*********************************************************
-* Data Member information setup/
-*********************************************************/
-
-   /* Setting up class,struct,union tag member variable */
-
-   /* OnlineConfig */
-static void G__setup_memvarOnlineConfig(void) {
-   G__tag_memvar_setup(G__get_linked_tagnum(&G__onlineDictLN_OnlineConfig));
-   { OnlineConfig *p; p=(OnlineConfig*)0x1000; if (p) { }
-   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TQObjSender),-1,-1,4,"fQObject=",0,(char*)NULL);
-   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TString),-1,-1,4,"confFileName=",0,"config filename");
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_basic_ifstreamlEcharcOchar_traitslEchargRsPgR),G__defined_typename("ifstream"),-1,4,"fConfFile=",0,"original config file");
-   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR),G__defined_typename("vector<vector<TString> >"),-1,4,"sConfFile=",0,"the config file, in memory");
-   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TString),-1,-1,4,"rootfilename=",0,"Just the name");
-   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TString),-1,-1,4,"goldenrootfilename=",0,"Golden rootfile for comparisons");
-   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TString),-1,-1,4,"protorootfile=",0,"Prototype for getting the rootfilename");
-   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TString),-1,-1,4,"guicolor=",0,"User's choice of background color");
-   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TString),-1,-1,4,"plotsdir=",0,"Where to store sample plots.. automatically stored as .jpg's).");
-   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR),G__defined_typename("vector<pair<UInt_t,UInt_t> >"),-1,4,"pageInfo=",0,(char*)NULL);
-   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETCutcOallocatorlETCutgRsPgR),G__defined_typename("vector<TCut>"),-1,4,"cutList=",0,(char*)NULL);
-   G__memvar_setup((void*)0,103,0,0,-1,G__defined_typename("Bool_t"),-1,4,"fFoundCfg=",0,(char*)NULL);
-   G__memvar_setup((void*)0,103,0,0,-1,G__defined_typename("Bool_t"),-1,4,"fMonitor=",0,(char*)NULL);
-   }
-   G__tag_memvar_reset();
-}
-
-
-   /* OnlineGUI */
-static void G__setup_memvarOnlineGUI(void) {
-   G__tag_memvar_setup(G__get_linked_tagnum(&G__onlineDictLN_OnlineGUI));
-   { OnlineGUI *p; p=(OnlineGUI*)0x1000; if (p) { }
-   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TQObjSender),-1,-1,4,"fQObject=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGMainFrame),-1,-1,4,"fMain=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGHorizontalFrame),-1,-1,4,"fTopframe=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGVerticalFrame),-1,-1,4,"vframe=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGRadioButton),-1,-1,4,"fRadioPage[50]=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGPictureButton),-1,-1,4,"wile=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TRootEmbeddedCanvas),-1,-1,4,"fEcanvas=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGHorizontalFrame),-1,-1,4,"fBottomFrame=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGHorizontalFrame),-1,-1,4,"hframe=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGTextButton),-1,-1,4,"fNext=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGTextButton),-1,-1,4,"fPrev=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGTextButton),-1,-1,4,"fExit=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGLabel),-1,-1,4,"fRunNumber=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGTextButton),-1,-1,4,"fPrint=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TCanvas),-1,-1,4,"fCanvas=",0,"Present Embedded canvas");
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_OnlineConfig),-1,-1,4,"fConfig=",0,(char*)NULL);
-   G__memvar_setup((void*)0,104,0,0,-1,G__defined_typename("UInt_t"),-1,4,"current_page=",0,(char*)NULL);
-   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_RootFileObject),-1,-1,4,"fRootFile=",0,(char*)NULL);
-   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_RootFileObject),-1,-1,4,"fGoldenFile=",0,(char*)NULL);
-   G__memvar_setup((void*)0,103,0,0,-1,G__defined_typename("Bool_t"),-1,4,"doGolden=",0,(char*)NULL);
-   G__memvar_setup((void*)0,104,0,0,-1,G__defined_typename("UInt_t"),-1,4,"runNumber=",0,(char*)NULL);
-   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TTimer),-1,-1,4,"timer=",0,(char*)NULL);
-   G__memvar_setup((void*)0,103,0,0,-1,G__defined_typename("Bool_t"),-1,4,"fPrintOnly=",0,(char*)NULL);
-   G__memvar_setup((void*)0,103,0,0,-1,G__defined_typename("Bool_t"),-1,4,"fFileAlive=",0,(char*)NULL);
-   G__memvar_setup((void*)0,108,0,0,-1,-1,-1,4,"G__virtualinfo=",0,(char*)NULL);
-   }
-   G__tag_memvar_reset();
-}
-
-extern "C" void G__cpp_setup_memvaronlineDict() {
-}
-/***********************************************************
-************************************************************
-************************************************************
-************************************************************
-************************************************************
-************************************************************
-************************************************************
-***********************************************************/
-
-/*********************************************************
-* Member function information setup for each class
-*********************************************************/
-static void G__setup_memfuncOnlineConfig(void) {
-   /* OnlineConfig */
-   G__tag_memfunc_setup(G__get_linked_tagnum(&G__onlineDictLN_OnlineConfig));
-   G__memfunc_setup("GetListOfSignals",1602,G__onlineDict_704_0_1, 85, G__get_linked_tagnum(&G__onlineDictLN_TList), -1, 0, 0, 1, 1, 8, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Connect",714,G__onlineDict_704_0_2, 103, -1, G__defined_typename("Bool_t"), 0, 4, 1, 1, 0, 
-"C - - 10 - sig C - - 10 - cl "
-"Y - - 0 - rcvr C - - 10 - slt", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Disconnect",1034,G__onlineDict_704_0_3, 103, -1, G__defined_typename("Bool_t"), 0, 3, 1, 1, 0, 
-"C - - 10 '0' sig Y - - 0 '0' rcvr "
-"C - - 10 '0' slt", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("HighPriority",1250,G__onlineDict_704_0_4, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal_name C - - 10 '0' slot_name", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("LowPriority",1172,G__onlineDict_704_0_5, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal_name C - - 10 '0' slot_name", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("EmitVA",550,G__onlineDict_704_0_6, 121, -1, -1, 0, 2, 8, 1, 0, 
-"C - - 10 - signal i - 'Int_t' 0 - nargs", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_7, 121, -1, -1, 0, 1, 1, 1, 0, "C - - 10 - signal", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_8, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal C - - 10 - params", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_9, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal L - 'Long_t' 0 - paramArr", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_10, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal d - 'Double_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_11, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal l - 'Long_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_12, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal n - 'Long64_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_13, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal m - 'ULong64_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_14, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal g - 'Bool_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_15, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal c - 'Char_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_16, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal b - 'UChar_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_17, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal s - 'Short_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_18, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal r - 'UShort_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_19, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal i - 'Int_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_20, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal h - 'UInt_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_21, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal k - 'ULong_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_704_0_22, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal f - 'Float_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Destroyed",947,G__onlineDict_704_0_23, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("ChangedBy",869,G__onlineDict_704_0_24, 121, -1, -1, 0, 1, 1, 1, 0, "C - - 10 - method", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Message",709,G__onlineDict_704_0_25, 121, -1, -1, 0, 1, 1, 1, 0, "C - - 10 - msg", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("ParseFile",891,(G__InterfaceMethod) NULL, 121, -1, -1, 0, 0, 1, 4, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetDrawIndex",1190,(G__InterfaceMethod) NULL, 117, G__get_linked_tagnum(&G__onlineDictLN_vectorlEunsignedsPintcOallocatorlEunsignedsPintgRsPgR), G__defined_typename("vector<UInt_t>"), 0, 1, 1, 4, 0, "h - 'UInt_t' 0 - -", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("ParseForMultiPlots",1855,(G__InterfaceMethod) NULL, 103, -1, G__defined_typename("Bool_t"), 0, 0, 1, 4, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("OnlineConfig",1211,G__onlineDict_704_0_29, 105, G__get_linked_tagnum(&G__onlineDictLN_OnlineConfig), -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("OnlineConfig",1211,G__onlineDict_704_0_30, 105, G__get_linked_tagnum(&G__onlineDictLN_OnlineConfig), -1, 0, 1, 1, 1, 0, "u 'TString' - 0 - -", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("ParseConfig",1105,G__onlineDict_704_0_31, 103, -1, G__defined_typename("Bool_t"), 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetRootFile",1092,G__onlineDict_704_0_32, 117, G__get_linked_tagnum(&G__onlineDictLN_TString), -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetGoldenFile",1273,G__onlineDict_704_0_33, 117, G__get_linked_tagnum(&G__onlineDictLN_TString), -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetGuiColor",1092,G__onlineDict_704_0_34, 117, G__get_linked_tagnum(&G__onlineDictLN_TString), -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetPlotsDir",1105,G__onlineDict_704_0_35, 117, G__get_linked_tagnum(&G__onlineDictLN_TString), -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetDefinedCut",1275,G__onlineDict_704_0_36, 117, G__get_linked_tagnum(&G__onlineDictLN_TCut), -1, 0, 1, 1, 1, 0, "u 'TString' - 0 - ident", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetCutIdent",1088,G__onlineDict_704_0_37, 117, G__get_linked_tagnum(&G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR), G__defined_typename("vector<TString>"), 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetPageCount",1190,G__onlineDict_704_0_38, 104, -1, G__defined_typename("UInt_t"), 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetPageDim",951,G__onlineDict_704_0_39, 117, G__get_linked_tagnum(&G__onlineDictLN_pairlEunsignedsPintcOunsignedsPintgR), G__defined_typename("pair<UInt_t,UInt_t>"), 0, 1, 1, 1, 0, "h - 'UInt_t' 0 - -", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("IsLogx",598,G__onlineDict_704_0_40, 103, -1, G__defined_typename("Bool_t"), 0, 1, 1, 1, 0, "h - 'UInt_t' 0 - page", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("IsLogy",599,G__onlineDict_704_0_41, 103, -1, G__defined_typename("Bool_t"), 0, 1, 1, 1, 0, "h - 'UInt_t' 0 - page", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("IsLogz",600,G__onlineDict_704_0_42, 103, -1, G__defined_typename("Bool_t"), 0, 1, 1, 1, 0, "h - 'UInt_t' 0 - page", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetPageTitle",1183,G__onlineDict_704_0_43, 117, G__get_linked_tagnum(&G__onlineDictLN_TString), -1, 0, 1, 1, 1, 0, "h - 'UInt_t' 0 - -", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetDrawCount",1207,G__onlineDict_704_0_44, 104, -1, G__defined_typename("UInt_t"), 0, 1, 1, 1, 0, "h - 'UInt_t' 0 - -", "Number of histograms in a page", (void*) NULL, 0);
-   G__memfunc_setup("GetDrawCommand",1389,G__onlineDict_704_0_45, 117, G__get_linked_tagnum(&G__onlineDictLN_drawcommand), -1, 0, 2, 1, 1, 0, 
-"h - 'UInt_t' 0 - - h - 'UInt_t' 0 - -", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("SplitString",1155,G__onlineDict_704_0_46, 117, G__get_linked_tagnum(&G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR), G__defined_typename("vector<TString>"), 0, 2, 1, 1, 0, 
-"u 'TString' - 0 - - u 'TString' - 0 - -", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("OverrideRootFile",1636,G__onlineDict_704_0_47, 121, -1, -1, 0, 1, 1, 1, 0, "h - 'UInt_t' 0 - -", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("IsMonitor",932,G__onlineDict_704_0_48, 103, -1, G__defined_typename("Bool_t"), 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   // automatic destructor
-   G__memfunc_setup("~OnlineConfig", 1337, G__onlineDict_704_0_49, (int) ('y'), -1, -1, 0, 0, 1, 1, 0, "", (char*) NULL, (void*) NULL, 0);
-   G__tag_memfunc_reset();
-}
-
-static void G__setup_memfuncOnlineGUI(void) {
-   /* OnlineGUI */
-   G__tag_memfunc_setup(G__get_linked_tagnum(&G__onlineDictLN_OnlineGUI));
-   G__memfunc_setup("GetListOfSignals",1602,G__onlineDict_714_0_1, 85, G__get_linked_tagnum(&G__onlineDictLN_TList), -1, 0, 0, 1, 1, 8, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Connect",714,G__onlineDict_714_0_2, 103, -1, G__defined_typename("Bool_t"), 0, 4, 1, 1, 0, 
-"C - - 10 - sig C - - 10 - cl "
-"Y - - 0 - rcvr C - - 10 - slt", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Disconnect",1034,G__onlineDict_714_0_3, 103, -1, G__defined_typename("Bool_t"), 0, 3, 1, 1, 0, 
-"C - - 10 '0' sig Y - - 0 '0' rcvr "
-"C - - 10 '0' slt", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("HighPriority",1250,G__onlineDict_714_0_4, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal_name C - - 10 '0' slot_name", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("LowPriority",1172,G__onlineDict_714_0_5, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal_name C - - 10 '0' slot_name", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("EmitVA",550,G__onlineDict_714_0_6, 121, -1, -1, 0, 2, 8, 1, 0, 
-"C - - 10 - signal i - 'Int_t' 0 - nargs", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_7, 121, -1, -1, 0, 1, 1, 1, 0, "C - - 10 - signal", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_8, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal C - - 10 - params", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_9, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal L - 'Long_t' 0 - paramArr", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_10, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal d - 'Double_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_11, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal l - 'Long_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_12, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal n - 'Long64_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_13, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal m - 'ULong64_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_14, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal g - 'Bool_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_15, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal c - 'Char_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_16, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal b - 'UChar_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_17, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal s - 'Short_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_18, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal r - 'UShort_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_19, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal i - 'Int_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_20, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal h - 'UInt_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_21, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal k - 'ULong_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Emit",399,G__onlineDict_714_0_22, 121, -1, -1, 0, 2, 1, 1, 0, 
-"C - - 10 - signal f - 'Float_t' 0 - param", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Destroyed",947,G__onlineDict_714_0_23, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("ChangedBy",869,G__onlineDict_714_0_24, 121, -1, -1, 0, 1, 1, 1, 0, "C - - 10 - method", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("Message",709,G__onlineDict_714_0_25, 121, -1, -1, 0, 1, 1, 1, 0, "C - - 10 - msg", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("OnlineGUI",842,G__onlineDict_714_0_26, 105, G__get_linked_tagnum(&G__onlineDictLN_OnlineGUI), -1, 0, 3, 1, 1, 0, 
-"u 'OnlineConfig' - 1 - - g - 'Bool_t' 0 - - "
-"h - 'UInt_t' 0 '0' RunNum", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("CreateGUI",825,G__onlineDict_714_0_27, 121, -1, -1, 0, 3, 1, 1, 0, 
-"U 'TGWindow' - 10 - p h - 'UInt_t' 0 - w "
-"h - 'UInt_t' 0 - h", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("DoDraw",577,G__onlineDict_714_0_28, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("DrawPrev",811,G__onlineDict_714_0_29, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("DrawNext",813,G__onlineDict_714_0_30, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("DoRadio",674,G__onlineDict_714_0_31, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("CheckPageButtons",1610,G__onlineDict_714_0_32, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetFileObjects",1386,G__onlineDict_714_0_33, 121, -1, -1, 0, 1, 1, 1, 0, "U 'RootFileObject' - 0 - r", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetTreeVars",1100,G__onlineDict_714_0_34, 121, -1, -1, 0, 1, 1, 1, 0, "U 'RootFileObject' - 0 - r", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetRootTree",1108,G__onlineDict_714_0_35, 121, -1, -1, 0, 1, 1, 1, 0, "U 'RootFileObject' - 0 - r", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetTreeIndex",1192,G__onlineDict_714_0_36, 104, -1, G__defined_typename("UInt_t"), 0, 2, 1, 1, 0, 
-"u 'TString' - 0 - - U 'RootFileObject' - 0 - r", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GetTreeIndexFromName",1981,G__onlineDict_714_0_37, 104, -1, G__defined_typename("UInt_t"), 0, 2, 1, 1, 0, 
-"u 'TString' - 0 - - U 'RootFileObject' - 0 - r", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("fileObject2command",1800,G__onlineDict_714_0_38, 117, G__get_linked_tagnum(&G__onlineDictLN_drawcommand), -1, 0, 2, 1, 1, 0, 
-"u 'drawcommand' - 0 - - U 'RootFileObject' - 0 - r", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("TreeDraw",798,G__onlineDict_714_0_39, 121, -1, -1, 0, 1, 1, 1, 0, "u 'drawcommand' - 0 - -", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("HistDraw",806,G__onlineDict_714_0_40, 121, -1, -1, 0, 1, 1, 1, 0, "u 'drawcommand' - 0 - -", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("MacroDraw",896,G__onlineDict_714_0_41, 121, -1, -1, 0, 1, 1, 1, 0, "u 'drawcommand' - 0 - -", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("CanvasDraw",1002,G__onlineDict_714_0_42, 121, -1, -1, 0, 2, 1, 1, 0, 
-"u 'drawcommand' - 0 - - h - 'UInt_t' 0 - -", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("GraphDraw",896,G__onlineDict_714_0_43, 121, -1, -1, 0, 1, 1, 1, 0, "u 'drawcommand' - 0 - -", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("DoDrawClear",1064,G__onlineDict_714_0_44, 121, -1, -1, 0, 1, 1, 1, 0, "U 'RootFileObject' - 0 - r", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("TimerUpdate",1124,G__onlineDict_714_0_45, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("BadDraw",661,G__onlineDict_714_0_46, 121, -1, -1, 0, 1, 1, 1, 0, "u 'TString' - 0 - -", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("CheckRootFile",1282,G__onlineDict_714_0_47, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("OpenRootFile",1206,G__onlineDict_714_0_48, 105, -1, G__defined_typename("Int_t"), 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("ObtainRunNumber",1531,G__onlineDict_714_0_49, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("PrintToFile",1104,G__onlineDict_714_0_50, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("PrintPages",1021,G__onlineDict_714_0_51, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("MyCloseWindow",1332,G__onlineDict_714_0_52, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   G__memfunc_setup("CloseGUI",731,G__onlineDict_714_0_53, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
-   // automatic destructor
-   G__memfunc_setup("~OnlineGUI", 968, G__onlineDict_714_0_54, (int) ('y'), -1, -1, 0, 0, 1, 1, 0, "", (char*) NULL, (void*) NULL, 1);
-   G__tag_memfunc_reset();
-}
-
-
-/*********************************************************
-* Member function information setup
-*********************************************************/
-extern "C" void G__cpp_setup_memfunconlineDict() {
-}
-
-/*********************************************************
-* Global variable information setup for each class
-*********************************************************/
-static void G__cpp_setup_global0() {
-
-   /* Setting up global variables */
-   G__resetplocal();
-
-}
-
-static void G__cpp_setup_global1() {
-}
-
-static void G__cpp_setup_global2() {
-}
-
-static void G__cpp_setup_global3() {
-}
-
-static void G__cpp_setup_global4() {
-}
-
-static void G__cpp_setup_global5() {
-
-   G__resetglobalenv();
-}
-extern "C" void G__cpp_setup_globalonlineDict() {
-  G__cpp_setup_global0();
-  G__cpp_setup_global1();
-  G__cpp_setup_global2();
-  G__cpp_setup_global3();
-  G__cpp_setup_global4();
-  G__cpp_setup_global5();
-}
-
-/*********************************************************
-* Global function information setup for each class
-*********************************************************/
-static void G__cpp_setup_func0() {
-   G__lastifuncposition();
-
-}
-
-static void G__cpp_setup_func1() {
-}
-
-static void G__cpp_setup_func2() {
-}
-
-static void G__cpp_setup_func3() {
-}
-
-static void G__cpp_setup_func4() {
-}
-
-static void G__cpp_setup_func5() {
-}
-
-static void G__cpp_setup_func6() {
-}
-
-static void G__cpp_setup_func7() {
-}
-
-static void G__cpp_setup_func8() {
-}
-
-static void G__cpp_setup_func9() {
-}
-
-static void G__cpp_setup_func10() {
-}
-
-static void G__cpp_setup_func11() {
-}
-
-static void G__cpp_setup_func12() {
-}
-
-static void G__cpp_setup_func13() {
-}
-
-static void G__cpp_setup_func14() {
-}
-
-static void G__cpp_setup_func15() {
-}
-
-static void G__cpp_setup_func16() {
-}
-
-static void G__cpp_setup_func17() {
-}
-
-static void G__cpp_setup_func18() {
-}
-
-static void G__cpp_setup_func19() {
-}
-
-static void G__cpp_setup_func20() {
-}
-
-static void G__cpp_setup_func21() {
-}
-
-static void G__cpp_setup_func22() {
-}
-
-static void G__cpp_setup_func23() {
-}
-
-static void G__cpp_setup_func24() {
-}
-
-static void G__cpp_setup_func25() {
-}
-
-static void G__cpp_setup_func26() {
-}
-
-static void G__cpp_setup_func27() {
-}
-
-static void G__cpp_setup_func28() {
-}
-
-static void G__cpp_setup_func29() {
-}
-
-static void G__cpp_setup_func30() {
-}
-
-static void G__cpp_setup_func31() {
-}
-
-static void G__cpp_setup_func32() {
-}
-
-static void G__cpp_setup_func33() {
-
-   G__resetifuncposition();
-}
-
-extern "C" void G__cpp_setup_funconlineDict() {
-  G__cpp_setup_func0();
-  G__cpp_setup_func1();
-  G__cpp_setup_func2();
-  G__cpp_setup_func3();
-  G__cpp_setup_func4();
-  G__cpp_setup_func5();
-  G__cpp_setup_func6();
-  G__cpp_setup_func7();
-  G__cpp_setup_func8();
-  G__cpp_setup_func9();
-  G__cpp_setup_func10();
-  G__cpp_setup_func11();
-  G__cpp_setup_func12();
-  G__cpp_setup_func13();
-  G__cpp_setup_func14();
-  G__cpp_setup_func15();
-  G__cpp_setup_func16();
-  G__cpp_setup_func17();
-  G__cpp_setup_func18();
-  G__cpp_setup_func19();
-  G__cpp_setup_func20();
-  G__cpp_setup_func21();
-  G__cpp_setup_func22();
-  G__cpp_setup_func23();
-  G__cpp_setup_func24();
-  G__cpp_setup_func25();
-  G__cpp_setup_func26();
-  G__cpp_setup_func27();
-  G__cpp_setup_func28();
-  G__cpp_setup_func29();
-  G__cpp_setup_func30();
-  G__cpp_setup_func31();
-  G__cpp_setup_func32();
-  G__cpp_setup_func33();
-}
-
-/*********************************************************
-* Class,struct,union,enum tag information setup
-*********************************************************/
-/* Setup class/struct taginfo */
-G__linked_taginfo G__onlineDictLN_TString = { "TString" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_vectorlEunsignedsPintcOallocatorlEunsignedsPintgRsPgR = { "vector<unsigned int,allocator<unsigned int> >" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_basic_ifstreamlEcharcOchar_traitslEchargRsPgR = { "basic_ifstream<char,char_traits<char> >" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR = { "vector<ROOT::TSchemaHelper,allocator<ROOT::TSchemaHelper> >" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR = { "reverse_iterator<vector<ROOT::TSchemaHelper,allocator<ROOT::TSchemaHelper> >::iterator>" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TList = { "TList" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TTimer = { "TTimer" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_vectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgR = { "vector<TVirtualArray*,allocator<TVirtualArray*> >" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<TVirtualArray*,allocator<TVirtualArray*> >::iterator>" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR = { "iterator<bidirectional_iterator_tag,TObject*,long,const TObject**,const TObject*&>" , 115 , -1 };
-G__linked_taginfo G__onlineDictLN_maplEstringcOTObjArraymUcOlesslEstringgRcOallocatorlEpairlEconstsPstringcOTObjArraymUgRsPgRsPgR = { "map<string,TObjArray*,less<string>,allocator<pair<const string,TObjArray*> > >" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TCut = { "TCut" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TQObjSender = { "TQObjSender" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TGWindow = { "TGWindow" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_pairlEunsignedsPintcOintgR = { "pair<unsigned int,int>" , 115 , -1 };
-G__linked_taginfo G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR = { "vector<pair<unsigned int,int>,allocator<pair<unsigned int,int> > >" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<pair<unsigned int,int>,allocator<pair<unsigned int,int> > >::iterator>" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TGTextButton = { "TGTextButton" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TGVerticalFrame = { "TGVerticalFrame" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TGHorizontalFrame = { "TGHorizontalFrame" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TGMainFrame = { "TGMainFrame" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TGPictureButton = { "TGPictureButton" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TGRadioButton = { "TGRadioButton" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TCanvas = { "TCanvas" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TRootEmbeddedCanvas = { "TRootEmbeddedCanvas" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TGLabel = { "TGLabel" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TVectorTlEfloatgR = { "TVectorT<float>" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TVectorTlEdoublegR = { "TVectorT<double>" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TMatrixTBaselEfloatgR = { "TMatrixTBase<float>" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_TMatrixTBaselEdoublegR = { "TMatrixTBase<double>" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_RootFileObject = { "RootFileObject" , 115 , -1 };
-G__linked_taginfo G__onlineDictLN_vectorlETTreemUcOallocatorlETTreemUgRsPgR = { "vector<TTree*,allocator<TTree*> >" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlETTreemUcOallocatorlETTreemUgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<TTree*,allocator<TTree*> >::iterator>" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_vectorlEintcOallocatorlEintgRsPgR = { "vector<int,allocator<int> >" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlEintcOallocatorlEintgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<int,allocator<int> >::iterator>" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR = { "vector<TString,allocator<TString> >" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlETStringcOallocatorlETStringgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<TString,allocator<TString> >::iterator>" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR = { "vector<vector<TString,allocator<TString> >,allocator<vector<TString,allocator<TString> > > >" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<vector<TString,allocator<TString> >,allocator<vector<TString,allocator<TString> > > >::iterator>" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_vectorlEfileObjectcOallocatorlEfileObjectgRsPgR = { "vector<fileObject,allocator<fileObject> >" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlEfileObjectcOallocatorlEfileObjectgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<fileObject,allocator<fileObject> >::iterator>" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_drawcommand = { "drawcommand" , 115 , -1 };
-G__linked_taginfo G__onlineDictLN_OnlineConfig = { "OnlineConfig" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_pairlEunsignedsPintcOunsignedsPintgR = { "pair<unsigned int,unsigned int>" , 115 , -1 };
-G__linked_taginfo G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR = { "vector<pair<unsigned int,unsigned int>,allocator<pair<unsigned int,unsigned int> > >" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<pair<unsigned int,unsigned int>,allocator<pair<unsigned int,unsigned int> > >::iterator>" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_vectorlETCutcOallocatorlETCutgRsPgR = { "vector<TCut,allocator<TCut> >" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlETCutcOallocatorlETCutgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<TCut,allocator<TCut> >::iterator>" , 99 , -1 };
-G__linked_taginfo G__onlineDictLN_OnlineGUI = { "OnlineGUI" , 99 , -1 };
-
-/* Reset class/struct taginfo */
-extern "C" void G__cpp_reset_tagtableonlineDict() {
-  G__onlineDictLN_TString.tagnum = -1 ;
-  G__onlineDictLN_vectorlEunsignedsPintcOallocatorlEunsignedsPintgRsPgR.tagnum = -1 ;
-  G__onlineDictLN_basic_ifstreamlEcharcOchar_traitslEchargRsPgR.tagnum = -1 ;
-  G__onlineDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR.tagnum = -1 ;
-  G__onlineDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR.tagnum = -1 ;
-  G__onlineDictLN_TList.tagnum = -1 ;
-  G__onlineDictLN_TTimer.tagnum = -1 ;
-  G__onlineDictLN_vectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgR.tagnum = -1 ;
-  G__onlineDictLN_reverse_iteratorlEvectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgRcLcLiteratorgR.tagnum = -1 ;
-  G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR.tagnum = -1 ;
-  G__onlineDictLN_maplEstringcOTObjArraymUcOlesslEstringgRcOallocatorlEpairlEconstsPstringcOTObjArraymUgRsPgRsPgR.tagnum = -1 ;
-  G__onlineDictLN_TCut.tagnum = -1 ;
-  G__onlineDictLN_TQObjSender.tagnum = -1 ;
-  G__onlineDictLN_TGWindow.tagnum = -1 ;
-  G__onlineDictLN_pairlEunsignedsPintcOintgR.tagnum = -1 ;
-  G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR.tagnum = -1 ;
-  G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgRcLcLiteratorgR.tagnum = -1 ;
-  G__onlineDictLN_TGTextButton.tagnum = -1 ;
-  G__onlineDictLN_TGVerticalFrame.tagnum = -1 ;
-  G__onlineDictLN_TGHorizontalFrame.tagnum = -1 ;
-  G__onlineDictLN_TGMainFrame.tagnum = -1 ;
-  G__onlineDictLN_TGPictureButton.tagnum = -1 ;
-  G__onlineDictLN_TGRadioButton.tagnum = -1 ;
-  G__onlineDictLN_TCanvas.tagnum = -1 ;
-  G__onlineDictLN_TRootEmbeddedCanvas.tagnum = -1 ;
-  G__onlineDictLN_TGLabel.tagnum = -1 ;
-  G__onlineDictLN_TVectorTlEfloatgR.tagnum = -1 ;
-  G__onlineDictLN_TVectorTlEdoublegR.tagnum = -1 ;
-  G__onlineDictLN_TMatrixTBaselEfloatgR.tagnum = -1 ;
-  G__onlineDictLN_TMatrixTBaselEdoublegR.tagnum = -1 ;
-  G__onlineDictLN_RootFileObject.tagnum = -1 ;
-  G__onlineDictLN_vectorlETTreemUcOallocatorlETTreemUgRsPgR.tagnum = -1 ;
-  G__onlineDictLN_reverse_iteratorlEvectorlETTreemUcOallocatorlETTreemUgRsPgRcLcLiteratorgR.tagnum = -1 ;
-  G__onlineDictLN_vectorlEintcOallocatorlEintgRsPgR.tagnum = -1 ;
-  G__onlineDictLN_reverse_iteratorlEvectorlEintcOallocatorlEintgRsPgRcLcLiteratorgR.tagnum = -1 ;
-  G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR.tagnum = -1 ;
-  G__onlineDictLN_reverse_iteratorlEvectorlETStringcOallocatorlETStringgRsPgRcLcLiteratorgR.tagnum = -1 ;
-  G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR.tagnum = -1 ;
-  G__onlineDictLN_reverse_iteratorlEvectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgRcLcLiteratorgR.tagnum = -1 ;
-  G__onlineDictLN_vectorlEfileObjectcOallocatorlEfileObjectgRsPgR.tagnum = -1 ;
-  G__onlineDictLN_reverse_iteratorlEvectorlEfileObjectcOallocatorlEfileObjectgRsPgRcLcLiteratorgR.tagnum = -1 ;
-  G__onlineDictLN_drawcommand.tagnum = -1 ;
-  G__onlineDictLN_OnlineConfig.tagnum = -1 ;
-  G__onlineDictLN_pairlEunsignedsPintcOunsignedsPintgR.tagnum = -1 ;
-  G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR.tagnum = -1 ;
-  G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgRcLcLiteratorgR.tagnum = -1 ;
-  G__onlineDictLN_vectorlETCutcOallocatorlETCutgRsPgR.tagnum = -1 ;
-  G__onlineDictLN_reverse_iteratorlEvectorlETCutcOallocatorlETCutgRsPgRcLcLiteratorgR.tagnum = -1 ;
-  G__onlineDictLN_OnlineGUI.tagnum = -1 ;
-}
-
-
-extern "C" void G__cpp_setup_tagtableonlineDict() {
-
-   /* Setting up class,struct,union tag entry */
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TString);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlEunsignedsPintcOallocatorlEunsignedsPintgRsPgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_basic_ifstreamlEcharcOchar_traitslEchargRsPgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TList);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TTimer);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgRcLcLiteratorgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_maplEstringcOTObjArraymUcOlesslEstringgRcOallocatorlEpairlEconstsPstringcOTObjArraymUgRsPgRsPgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TCut);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TQObjSender);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TGWindow);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_pairlEunsignedsPintcOintgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgRcLcLiteratorgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TGTextButton);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TGVerticalFrame);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TGHorizontalFrame);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TGMainFrame);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TGPictureButton);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TGRadioButton);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TCanvas);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TRootEmbeddedCanvas);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TGLabel);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TVectorTlEfloatgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TVectorTlEdoublegR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TMatrixTBaselEfloatgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_TMatrixTBaselEdoublegR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_RootFileObject);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlETTreemUcOallocatorlETTreemUgRsPgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlETTreemUcOallocatorlETTreemUgRsPgRcLcLiteratorgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlEintcOallocatorlEintgRsPgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlEintcOallocatorlEintgRsPgRcLcLiteratorgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlETStringcOallocatorlETStringgRsPgRcLcLiteratorgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgRcLcLiteratorgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlEfileObjectcOallocatorlEfileObjectgRsPgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlEfileObjectcOallocatorlEfileObjectgRsPgRcLcLiteratorgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_drawcommand);
-   G__tagtable_setup(G__get_linked_tagnum_fwd(&G__onlineDictLN_OnlineConfig),sizeof(OnlineConfig),-1,33024,(char*)NULL,G__setup_memvarOnlineConfig,G__setup_memfuncOnlineConfig);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_pairlEunsignedsPintcOunsignedsPintgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgRcLcLiteratorgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlETCutcOallocatorlETCutgRsPgR);
-   G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlETCutcOallocatorlETCutgRsPgRcLcLiteratorgR);
-   G__tagtable_setup(G__get_linked_tagnum_fwd(&G__onlineDictLN_OnlineGUI),sizeof(OnlineGUI),-1,33792,(char*)NULL,G__setup_memvarOnlineGUI,G__setup_memfuncOnlineGUI);
-}
-extern "C" void G__cpp_setuponlineDict(void) {
-  G__check_setup_version(30051515,"G__cpp_setuponlineDict()");
-  G__set_cpp_environmentonlineDict();
-  G__cpp_setup_tagtableonlineDict();
-
-  G__cpp_setup_inheritanceonlineDict();
-
-  G__cpp_setup_typetableonlineDict();
-
-  G__cpp_setup_memvaronlineDict();
-
-  G__cpp_setup_memfunconlineDict();
-  G__cpp_setup_globalonlineDict();
-  G__cpp_setup_funconlineDict();
-
-   if(0==G__getsizep2memfunc()) G__get_sizep2memfunconlineDict();
-  return;
-}
-class G__cpp_setup_initonlineDict {
-  public:
-    G__cpp_setup_initonlineDict() { G__add_setup_func("onlineDict",(G__incsetup)(&G__cpp_setuponlineDict)); G__call_setup_funcs(); }
-   ~G__cpp_setup_initonlineDict() { G__remove_setup_func("onlineDict"); }
-};
-G__cpp_setup_initonlineDict G__cpp_setup_initializeronlineDict;
-
-- 
GitLab