From d7facb5b866a00155252e791241f09446b4d6e6c Mon Sep 17 00:00:00 2001
From: Cdaq Account <cdaq@cdaql1.jlab.org>
Date: Thu, 2 Feb 2017 16:28:34 -0500
Subject: [PATCH] Updates for hodoscope new HMS Hodo timing offsets for 3/4
 trigger save old HMS Hodo timing for 4/4 trigger new SHMS Hodo timing offsets
 for 3/4 trigger Updated HMS and SHMS onlineGUI config and macros

---
 .gitignore                                    |   3 +-
 .rootrc                                       |   1 +
 DEF-files/HMS/HODO/hhodoana.def               |  56 ++-
 MAPS/db_cratemap.dat                          |  29 +-
 PARAM/HMS/HODO/hhodo.param                    |   2 +-
 PARAM/HMS/HODO/hhodo_4of4trigger.param        | 190 ++++++++++
 PARAM/SHMS/HODO/phodo.param                   |   2 +-
 onlineGUI/.gitignore                          |   1 +
 onlineGUI/.rootrc                             |   2 +
 onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg   |   3 +-
 .../Config/HMS/HODO/good_hhodo_2d_dis.cfg     |   3 +-
 onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg    |   2 +-
 onlineGUI/Config/SHMS/HODO/good_phodo_2d.cfg  | 352 ++++++++++++++++++
 onlineGUI/Config/SHMS/HODO/raw_phodo_2d.cfg   |  12 +
 onlineGUI/Config/SHMS/HODO/raw_phodoana.cfg   | 130 +++++++
 onlineGUI/Macros/gooddraw_2d_hhodo.C          |   4 +-
 onlineGUI/Macros/gooddraw_2d_phodo.C          | 278 ++++++++++++++
 onlineGUI/Macros/hodo_efficiency.C            |   4 +-
 onlineGUI/Macros/rawdraw_2d_phodo.C           |  27 +-
 onlineGUI/README.md                           |  16 +-
 onlineGUI/onlineGUI_v1.2.1/online.C           |  37 +-
 onlineGUI/onlineGUI_v1.2.1/online.h           |   3 +-
 22 files changed, 1091 insertions(+), 66 deletions(-)
 create mode 100644 .rootrc
 create mode 100644 PARAM/HMS/HODO/hhodo_4of4trigger.param
 create mode 100644 onlineGUI/.rootrc
 create mode 100644 onlineGUI/Config/SHMS/HODO/good_phodo_2d.cfg
 create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodoana.cfg
 create mode 100644 onlineGUI/Macros/gooddraw_2d_phodo.C

diff --git a/.gitignore b/.gitignore
index 60234d01..ab3ace4c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,5 @@
 ROOTfiles/*
 #*
 hcana
-raw
\ No newline at end of file
+raw
+.root_history
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/DEF-files/HMS/HODO/hhodoana.def b/DEF-files/HMS/HODO/hhodoana.def
index 9fc89d0f..cc424fc3 100644
--- a/DEF-files/HMS/HODO/hhodoana.def
+++ b/DEF-files/HMS/HODO/hhodoana.def
@@ -38,15 +38,16 @@ TH2F hhodo_1y_neg_rawped_vs_pad 'HMS 1Y- Raw Pulse Pedestal vs. Paddle Number; P
 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 4000 0 40000
-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 4000 0 40000
-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 4000 0 40000
-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 4000 0 40000
 
-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 4000 0 40000
-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 4000 0 40000
-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 4000 0 40000
-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 4000 0 40000
+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
@@ -78,15 +79,6 @@ TH2F hhodo_1y_neg_raw_tdc_time_vs_pad 'HMS 1Y- Raw TDC Time vs. Paddle Number; P
 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_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 400 0 4000
-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 400 0 4000
-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 400 0 4000
-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 400 0 4000
-
-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 400 0 4000
-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 400 0 4000
-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 400 0 4000
-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 400 0 4000
 
 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
@@ -98,6 +90,36 @@ TH2F hhodo_1y_neg_pi_vs_pad 'HMS 1Y- Pulse Integral vs. Paddle Number; Paddle Nu
 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_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 200 0 10000
+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 200 0 10000
+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 200 0 10000
+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 200 0 10000
+
+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 200 0 10000
+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 200 0 10000
+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 200 0 10000
+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 200 0 10000
+
+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_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 1000 0 10000
+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 1000 0 10000
+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 1000 0 10000
+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 1000 0 10000
+
+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 1000 0 10000
+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 1000 0 10000
+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 1000 0 10000
+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 1000 0 10000
+
 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
diff --git a/MAPS/db_cratemap.dat b/MAPS/db_cratemap.dat
index a414bcc2..0b1ddd36 100644
--- a/MAPS/db_cratemap.dat
+++ b/MAPS/db_cratemap.dat
@@ -19,6 +19,22 @@
   20     1190    1190
 
 
+==== Crate 3 type vme Bank Decoding
+# slot  model   bank
+  4      1190    1190
+  5      1190    1190
+  7      1190    1190
+  8      1190    1190
+  10     1190    1190
+  13     1190    1190
+  14     1190    1190
+  16     1190    1190
+  17     1190    1190
+
+
+==== Crate 5 type vme Bank Decoding
+# slot  model   bank
+
 ==== Crate 2 type vme Bank Decoding
 # slot  model   bank
   3      250     250
@@ -35,17 +51,6 @@
   19     1190    1190
   20     1190    1190
 
-==== Crate 3 type vme Bank Decoding
-# slot  model   bank
-  4      1190    1190
-  5      1190    1190
-  7      1190    1190
-  8      1190    1190
-  10     1190    1190
-  13     1190    1190
-  14     1190    1190
-  16     1190    1190
-  17     1190    1190
 
 
 ==== Crate 4 type vme Bank Decoding
@@ -67,8 +72,6 @@
   19     250     250
   20     250     250
 
-==== Crate 5 type vme Bank Decoding
-# slot  model   bank
 
 ==== Crate 6 type vme Bank Decoding
 # slot  model   bank
diff --git a/PARAM/HMS/HODO/hhodo.param b/PARAM/HMS/HODO/hhodo.param
index abc4171d..4c994a57 100644
--- a/PARAM/HMS/HODO/hhodo.param
+++ b/PARAM/HMS/HODO/hhodo.param
@@ -7,7 +7,7 @@ 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 = 1300, 1300, 1300, 1300
+  hhodo_tdc_offset = 1100, 1100, 1250, 1250
 ; hstart_time_center  center of allowed time window (ns)
    hstart_time_center = 32.                                                     
 ; hstart_time_slop    1/2 width of time window                                  
diff --git a/PARAM/HMS/HODO/hhodo_4of4trigger.param b/PARAM/HMS/HODO/hhodo_4of4trigger.param
new file mode 100644
index 00000000..abc4171d
--- /dev/null
+++ b/PARAM/HMS/HODO/hhodo_4of4trigger.param
@@ -0,0 +1,190 @@
+; 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 = 1300, 1300, 1300, 1300
+; 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/SHMS/HODO/phodo.param b/PARAM/SHMS/HODO/phodo.param
index f97bf18e..000a8899 100644
--- a/PARAM/SHMS/HODO/phodo.param
+++ b/PARAM/SHMS/HODO/phodo.param
@@ -7,7 +7,7 @@ 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 = 1800, 1800, 1800, 1800
+  phodo_tdc_offset = 1300, 1300, 1300, 1300
 ; pstart_time_center  center of allowed time window                             
    pstart_time_center = 32.                                                     
 ; hstart_time_slop    1/2 width of time window                                  
diff --git a/onlineGUI/.gitignore b/onlineGUI/.gitignore
index 1b2ec82a..b7de8db4 100644
--- a/onlineGUI/.gitignore
+++ b/onlineGUI/.gitignore
@@ -3,3 +3,4 @@ online
 *.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/HODO/good_hhodo_2d.cfg b/onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg
index ea319285..3f6f3f06 100644
--- a/onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg
+++ b/onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg
@@ -1,5 +1,4 @@
-#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
-protorootfile ../ROOTfiles/test_XXXXX.root
+protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
 guicolor lightblue
 canvassize 800 800
 newpage 4 4
diff --git a/onlineGUI/Config/HMS/HODO/good_hhodo_2d_dis.cfg b/onlineGUI/Config/HMS/HODO/good_hhodo_2d_dis.cfg
index dcfbabab..edd09396 100644
--- a/onlineGUI/Config/HMS/HODO/good_hhodo_2d_dis.cfg
+++ b/onlineGUI/Config/HMS/HODO/good_hhodo_2d_dis.cfg
@@ -1,5 +1,4 @@
-#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
-protorootfile ../ROOTfiles/test_XXXXX.root
+protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
 guicolor lightblue
 canvassize 800 800
 newpage 4 4
diff --git a/onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg b/onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg
index 8d3f72a7..4754dad3 100644
--- a/onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg
+++ b/onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg
@@ -1,5 +1,5 @@
 #protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
-protorootfile ../ROOTfiles/test_XXXXX.root
+protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
 guicolor lightblue
 canvassize 800 800
 newpage 4 4
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..3fd0676b
--- /dev/null
+++ b/onlineGUI/Config/SHMS/HODO/good_phodo_2d.cfg
@@ -0,0 +1,352 @@
+#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+protorootfile ../ROOTfiles/phodo_replay_XXXXX.root
+guicolor lightblue
+canvassize 800 800
+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("uhdidneg1y10","uhshouldneg1y11")
+macro Macros/hodo_efficiency.C("uhdidneg1y10","uhshouldneg1y12")
+macro Macros/hodo_efficiency.C("uhdidneg1y10","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("uhdidpos1y10","uhshouldpos1y11")
+macro Macros/hodo_efficiency.C("uhdidpos1y10","uhshouldpos1y12")
+macro Macros/hodo_efficiency.C("uhdidpos1y10","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("uhdidneg2y1","uhshouldneg2y7")
+macro Macros/hodo_efficiency.C("uhdidneg2y2","uhshouldneg2y8")
+macro Macros/hodo_efficiency.C("uhdidneg2y3","uhshouldneg2y9")
+macro Macros/hodo_efficiency.C("uhdidneg2y4","uhshouldneg2y10")
+macro Macros/hodo_efficiency.C("uhdidneg2y5","uhshouldneg2y11")
+macro Macros/hodo_efficiency.C("uhdidneg2y6","uhshouldneg2y12")
+macro Macros/hodo_efficiency.C("uhdidneg2y7","uhshouldneg2y13")
+macro Macros/hodo_efficiency.C("uhdidneg2y8","uhshouldneg2y14")
+macro Macros/hodo_efficiency.C("uhdidneg2y9","uhshouldneg2y15")
+macro Macros/hodo_efficiency.C("uhdidneg2y10","uhshouldneg2y16")
+newpage 3 4
+title Y2 Eff Pos PMT
+macro Macros/hodo_efficiency.C("uhdidpos2y2","uhshouldpos2y7")
+macro Macros/hodo_efficiency.C("uhdidpos2y3","uhshouldpos2y8")
+macro Macros/hodo_efficiency.C("uhdidpos2y4","uhshouldpos2y9")
+macro Macros/hodo_efficiency.C("uhdidpos2y5","uhshouldpos2y10")
+macro Macros/hodo_efficiency.C("uhdidpos2y6","uhshouldpos2y11")
+macro Macros/hodo_efficiency.C("uhdidpos2y7","uhshouldpos2y12")
+macro Macros/hodo_efficiency.C("uhdidpos2y8","uhshouldpos2y13")
+macro Macros/hodo_efficiency.C("uhdidpos2y9","uhshouldpos2y14")
+macro Macros/hodo_efficiency.C("uhdidpos2y10","uhshouldpos2y15")
+macro Macros/hodo_efficiency.C("uhdidpos2y10","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/raw_phodo_2d.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodo_2d.cfg
index 29da09c2..af177db3 100644
--- a/onlineGUI/Config/SHMS/HODO/raw_phodo_2d.cfg
+++ b/onlineGUI/Config/SHMS/HODO/raw_phodo_2d.cfg
@@ -118,6 +118,18 @@ 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")
diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodoana.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodoana.cfg
new file mode 100644
index 00000000..82313b77
--- /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_h1x_multi
+phodo_h1y_multi
+phodo_h2x_multi
+phodo_h2y_multi
+newpage 2 2
+title SHMS Hodo Raw ADC Occupancy
+macro Macros/overlay.C("phodo_h1xp_adc_occu","phodo_h1xm_adc_occu")
+macro Macros/overlay.C("phodo_h1yp_adc_occu","phodo_h1ym_adc_occu")
+macro Macros/overlay.C("phodo_h2xp_adc_occu","phodo_h2xm_adc_occu")
+macro Macros/overlay.C("phodo_h2yp_adc_occu","phodo_h2ym_adc_occu")
+newpage 2 2
+title SHMS Hodo Raw TDC Occupancy
+macro Macros/overlay.C("phodo_h1xp_tdc_occu","phodo_h1xm_tdc_occu")
+macro Macros/overlay.C("phodo_h1yp_tdc_occu","phodo_h1ym_tdc_occu")
+macro Macros/overlay.C("phodo_h2xp_tdc_occu","phodo_h2xm_tdc_occu")
+macro Macros/overlay.C("phodo_h2yp_tdc_occu","phodo_h2ym_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/Macros/gooddraw_2d_hhodo.C b/onlineGUI/Macros/gooddraw_2d_hhodo.C
index 89c3fa19..4c28b069 100644
--- a/onlineGUI/Macros/gooddraw_2d_hhodo.C
+++ b/onlineGUI/Macros/gooddraw_2d_hhodo.C
@@ -36,8 +36,8 @@ void UserScript()
   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]={45.,45.,35.,35.};
-  Double_t adc_tdc_ymax[4]={65.,65.,55.,55.};
+  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];
 
diff --git a/onlineGUI/Macros/gooddraw_2d_phodo.C b/onlineGUI/Macros/gooddraw_2d_phodo.C
new file mode 100644
index 00000000..a6ef9a47
--- /dev/null
+++ b/onlineGUI/Macros/gooddraw_2d_phodo.C
@@ -0,0 +1,278 @@
+// 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.,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]={13,13,21,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,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][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;
+      for(UInt_t ip = 0; ip < NPLANES; 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;
+		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_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
index ebc5686c..a8dd7cd0 100644
--- a/onlineGUI/Macros/hodo_efficiency.C
+++ b/onlineGUI/Macros/hodo_efficiency.C
@@ -10,8 +10,8 @@ void hodo_efficiency(TString hist1name, TString hist2name){
     TH1F* Hratio=(TH1F*)H1->Clone();
     Hratio->Divide(H1,H2,1,1,"B");
     Hratio->SetStats(0);
-    //    Hratio->SetMinimum(0.4);
-    Hratio->SetMaximum(1.1);
+    Hratio->SetMinimum(0.95);
+    Hratio->SetMaximum(1.05);
     Hratio->Draw("EP");
     Hratio->GetXaxis()->SetTitleOffset(.6);
     Hratio->GetXaxis()->SetTitleSize(0.08);
diff --git a/onlineGUI/Macros/rawdraw_2d_phodo.C b/onlineGUI/Macros/rawdraw_2d_phodo.C
index c9056361..6ec7a400 100644
--- a/onlineGUI/Macros/rawdraw_2d_phodo.C
+++ b/onlineGUI/Macros/rawdraw_2d_phodo.C
@@ -52,6 +52,8 @@ void UserScript()
   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];
@@ -83,9 +85,14 @@ void UserScript()
 	      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.);
 	    }
   }
   //
@@ -185,9 +192,12 @@ void UserScript()
   for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) {
     if (iev%1000==0) cout << " iev = " << iev << endl;
     T->GetEntry(iev);
-    /*
-    Double_t tdcbar_save=-1;
-       for(UInt_t ip = 0; ip < NPLANES; ip++) {
+    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][1]; tdc3_ihit++)  {
@@ -214,7 +224,10 @@ void UserScript()
 		  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;
+                  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;
 		}
 		}
 	}
@@ -231,8 +244,10 @@ void UserScript()
 		  Double_t adc2pval =amp_values[ip][1][4][adc2_ihit]*adcpeak_to_mV*fac_for_disc[ip];
 		  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,adc2pval);
-		  if ( adc2bar == adc1bar ) hadcint_adcint[ip*MAXBARS+adc1bar]->Fill(adc1val,adc2val);
+		  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);
 		}
 		}
diff --git a/onlineGUI/README.md b/onlineGUI/README.md
index 6b91ee4a..2f31aaf6 100644
--- a/onlineGUI/README.md
+++ b/onlineGUI/README.md
@@ -1,14 +1,24 @@
 onlineGUI
 ============================================
-This is the GUI that is used in Hall A for the monitoring of online replay.
+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.C (script to plot the individual TDc and ADC for HMS hodoscope using the tree. Good example for other scripts)
+    * 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
diff --git a/onlineGUI/onlineGUI_v1.2.1/online.C b/onlineGUI/onlineGUI_v1.2.1/online.C
index f4429539..4838bb1c 100755
--- a/onlineGUI/onlineGUI_v1.2.1/online.C
+++ b/onlineGUI/onlineGUI_v1.2.1/online.C
@@ -733,7 +733,7 @@ void OnlineConfig::OverrideRootFile(UInt_t runnumber)
 //
 //
 
-OnlineGUI::OnlineGUI(OnlineConfig& config, Bool_t printonly,UInt_t RunNum):
+OnlineGUI::OnlineGUI(OnlineConfig& config, Bool_t printonly, Bool_t rootonly,UInt_t RunNum):
   runNumber(RunNum),
   timer(0),
   fFileAlive(kFALSE)
@@ -742,7 +742,7 @@ OnlineGUI::OnlineGUI(OnlineConfig& config, Bool_t printonly,UInt_t RunNum):
 
   fConfig = &config;
 
-  if(printonly) {
+  if(printonly || rootonly) {
     fPrintOnly=kTRUE;
     PrintPages();
   } else {
@@ -1749,20 +1749,22 @@ void OnlineGUI::PrintToFile()
   //  A file dialog pop's up to request the file name.
   fCanvas = fEcanvas->GetCanvas();
   gStyle->SetPaperSize(20,24);
-  static TString dir("printouts");
+  static TString dir(".");
   TGFileInfo fi;
   const char *myfiletypes[] = 
     { "All files","*",
-      "PostScript files","*.ps",
-      "Encapsulated PostScript files","*.eps",
+      "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);
+  if(fi.fFilename!=NULL) {
+    fCanvas->Print(fi.fFilename);
+  }
 }
 
 void OnlineGUI::PrintPages() {
@@ -1856,8 +1858,8 @@ void OnlineGUI::PrintPages() {
   pagehead += ": ";
 
   gStyle->SetPalette(1);
-  gStyle->SetTitleX(0.15);
-  gStyle->SetTitleY(0.9);
+  gStyle->SetTitleX(0.5);
+  gStyle->SetTitleY(0.95);
   gStyle->SetPadBorderMode(0);
   gStyle->SetHistLineColor(1);
   gStyle->SetHistFillColor(1);
@@ -1879,7 +1881,9 @@ void OnlineGUI::PrintPages() {
     fCanvas->Print(filename);
   }
   if(!useJPG) fCanvas->Print(filename+"]");
-  
+  //
+  TFile *hroot = new TFile(filename+"_hist.root","recreate");
+  //
 #ifdef STANDALONE
   gApplication->Terminate();
 #endif
@@ -1948,11 +1952,11 @@ OnlineGUI::~OnlineGUI()
   delete fConfig;
 }
 
-void online(TString type="standard",UInt_t run=0,Bool_t printonly=kFALSE) 
+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) {
+  if(printonly || rootonly) {
     if(!gROOT->IsBatch()) {
 #ifdef STANDALONE
       gROOT->SetBatch();
@@ -1977,7 +1981,7 @@ void online(TString type="standard",UInt_t run=0,Bool_t printonly=kFALSE)
 
   if(run!=0) fconfig->OverrideRootFile(run);
 
-  new OnlineGUI(*fconfig,printonly,run);
+  new OnlineGUI(*fconfig,printonly,rootonly,run);
 
 }
 
@@ -1990,6 +1994,7 @@ void Usage()
   cerr << "  -r : runnumber" << endl;
   cerr << "  -f : configuration file" << endl;
   cerr << "  -P : Only Print Summary Plots" << endl;
+  cerr << "  -R : Only Rootfile " << endl;
   cerr << endl;
 
 }
@@ -1999,6 +2004,7 @@ 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);
@@ -2017,6 +2023,9 @@ int main(int argc, char **argv)
       } 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;
@@ -2028,7 +2037,7 @@ int main(int argc, char **argv)
       }
     }
 
-  online(type,run,printonly);
+  online(type,run,printonly,rootonly);
   theApp.Run();
 
   return 0;
diff --git a/onlineGUI/onlineGUI_v1.2.1/online.h b/onlineGUI/onlineGUI_v1.2.1/online.h
index f9e07614..6e6e10e2 100755
--- a/onlineGUI/onlineGUI_v1.2.1/online.h
+++ b/onlineGUI/onlineGUI_v1.2.1/online.h
@@ -142,10 +142,11 @@ private:
   UInt_t                            runNumber;
   TTimer                           *timer;
   Bool_t                            fPrintOnly;
+  Bool_t                            fRootOnly;
   Bool_t                            fFileAlive;
 
 public:
-  OnlineGUI(OnlineConfig&,Bool_t,UInt_t RunNum=0);
+  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();
-- 
GitLab