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 0000000000000000000000000000000000000000..ea319285c9aba859d7e24e85ff4fcfc95dac9721
--- /dev/null
+++ b/onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg
@@ -0,0 +1,364 @@
+#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+protorootfile ../ROOTfiles/test_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 0000000000000000000000000000000000000000..dcfbababd1da63fbea4c5ceb4ca4a0ff75bee87b
--- /dev/null
+++ b/onlineGUI/Config/HMS/HODO/good_hhodo_2d_dis.cfg
@@ -0,0 +1,124 @@
+#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root
+protorootfile ../ROOTfiles/test_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/Macros/gooddraw_2d_hhodo.C b/onlineGUI/Macros/gooddraw_2d_hhodo.C
new file mode 100644
index 0000000000000000000000000000000000000000..89c3fa19f299752bc487631b386543d2b102cc4c
--- /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]={45.,45.,35.,35.};
+  Double_t adc_tdc_ymax[4]={65.,65.,55.,55.};
+  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/hodo_efficiency.C b/onlineGUI/Macros/hodo_efficiency.C
new file mode 100644
index 0000000000000000000000000000000000000000..ebc5686c0173c71a1d9fae3386379c72c87d38fc
--- /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.4);
+    Hratio->SetMaximum(1.1);
+    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/overlay.C b/onlineGUI/Macros/overlay.C
index 97eab883a9d4ab8e28ceff11e3fe807b66f23b11..ac7f038903b18602e4f67416b16dbcb274f6aca1 100755
--- a/onlineGUI/Macros/overlay.C
+++ b/onlineGUI/Macros/overlay.C
@@ -15,6 +15,10 @@ void overlay(TString hist1name, TString hist2name, Bool_t golden=false,TString s
   } else {
     H1->SetLineColor(4);
     H2->SetLineColor(2);
+    H1->SetStats(0);
+    H2->SetStats(0);
+    H1->SetMinimum(0);
+    H2->SetMinimum(0);
   }
 
   if(golden){
@@ -37,6 +41,10 @@ void overlay(TString hist1name, TString hist2name, Bool_t golden=false,TString s
       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 {