From b57558e4ae96a70dad84ab73bba501ffd70c2f9c Mon Sep 17 00:00:00 2001
From: Hall C Online Analyzer User <brad.hallc-online@swatter.net>
Date: Wed, 24 Jan 2018 16:54:42 -0500
Subject: [PATCH] Spring 2018 ver7 (#368)

* Update scaler maps

* Update singles and coin report files

* Update hodo calib

* Add Dipankgar's monitoring scripts
---
 MAPS/SCALERS/db_HScalevt.dat                | 138 +++++----
 MAPS/SCALERS/db_PScalevt.dat                | 146 +++++----
 MAPS/SCALERS/scaler.map                     |  50 ++-
 PARAM/SHMS/HODO/CALIB/phodo_calib.param     | 178 +++++++++++
 SCRIPTS/COIN/MONITOR/Bean_counter.C         | 254 ++++++++++++++++
 SCRIPTS/COIN/MONITOR/Bean_counter_carbon.C  | 230 ++++++++++++++
 SCRIPTS/COIN/MONITOR/coin_histo.C           | 119 ++++++++
 SCRIPTS/COIN/MONITOR/coin_yield.root        | Bin 0 -> 6904 bytes
 SCRIPTS/COIN/MONITOR/temp.sh                |  13 +
 SCRIPTS/COIN/MONITOR/yield.README           |  11 +
 SCRIPTS/COIN/MONITOR/yield_calc.C           | 125 ++++++++
 SCRIPTS/COIN/MONITOR/yield_graph.C          |  50 +++
 TEMPLATES/COIN/SCALERS/coinscalers.template | 319 +++++++++++++++-----
 TEMPLATES/HMS/SCALERS/hscalers.template     |  46 ++-
 TEMPLATES/SHMS/SCALERS/pscalers.template    |  50 ++-
 15 files changed, 1512 insertions(+), 217 deletions(-)
 create mode 100644 SCRIPTS/COIN/MONITOR/Bean_counter.C
 create mode 100644 SCRIPTS/COIN/MONITOR/Bean_counter_carbon.C
 create mode 100644 SCRIPTS/COIN/MONITOR/coin_histo.C
 create mode 100644 SCRIPTS/COIN/MONITOR/coin_yield.root
 create mode 100755 SCRIPTS/COIN/MONITOR/temp.sh
 create mode 100644 SCRIPTS/COIN/MONITOR/yield.README
 create mode 100644 SCRIPTS/COIN/MONITOR/yield_calc.C
 create mode 100644 SCRIPTS/COIN/MONITOR/yield_graph.C

diff --git a/MAPS/SCALERS/db_HScalevt.dat b/MAPS/SCALERS/db_HScalevt.dat
index 46a9ff16..8df635f6 100644
--- a/MAPS/SCALERS/db_HScalevt.dat
+++ b/MAPS/SCALERS/db_HScalevt.dat
@@ -93,6 +93,8 @@ variable 2 5 1 .hod.2x4.posScaler HMS 2X+ paddle 4
 variable 2 5 2 .hod.2x4.posScalerRate HMS 2X+ paddle 4
 variable 5 26 1 .hEL_LO.scaler HMS EL_LO
 variable 5 26 2 .hEL_LO.scalerRate HMS EL_LO
+variable 4 7 1 .pTRIG1_CP.scaler pTRIG1 Copy
+variable 4 7 2 .pTRIG1_CP.scalerRate pTRIG1 Copy
 variable 6 25 1 .BCM4A.scaler BCM4a
 variable 6 25 2 .BCM4A.scalerRate BCM4a
 variable 6 25 3 .BCM4A.scalerCurrent BCM4a
@@ -104,6 +106,26 @@ variable 6 26 4 .BCM4B.scalerCharge BCM4b
 variable 6 31 1 .1Mhz.scaler 1MHz
 variable 6 31 2 .1Mhz.scalerRate 1MHz
 variable 6 31 5 .1Mhz.scalerTime 1MHz
+variable 6 21 1 .Empty_58.scaler Empty
+variable 6 21 2 .Empty_58.scalerRate Empty
+variable 6 22 1 .Empty_59.scaler Empty
+variable 6 22 2 .Empty_59.scalerRate Empty
+variable 6 17 1 .Empty_54.scaler Empty
+variable 6 17 2 .Empty_54.scalerRate Empty
+variable 6 18 1 .Empty_55.scaler Empty
+variable 6 18 2 .Empty_55.scalerRate Empty
+variable 6 19 1 .Empty_56.scaler Empty
+variable 6 19 2 .Empty_56.scalerRate Empty
+variable 6 20 1 .Empty_57.scaler Empty
+variable 6 20 2 .Empty_57.scalerRate Empty
+variable 5 23 1 .Empty_50.scaler Empty
+variable 5 23 2 .Empty_50.scalerRate Empty
+variable 5 30 1 .Empty_51.scaler Empty
+variable 5 30 2 .Empty_51.scalerRate Empty
+variable 5 31 1 .Empty_52.scaler Empty
+variable 5 31 2 .Empty_52.scalerRate Empty
+variable 6 16 1 .Empty_53.scaler Empty
+variable 6 16 2 .Empty_53.scalerRate Empty
 variable 1 1 1 .hod.1y3.posScaler HMS 1Y+ paddle 3
 variable 1 1 2 .hod.1y3.posScalerRate HMS 1Y+ paddle 3
 variable 1 17 1 .hod.1y3.negScaler HMS 1Y- paddle 3
@@ -112,10 +134,10 @@ variable 0 8 1 .hod.1x9.posScaler HMS 1X+ paddle 9
 variable 0 8 2 .hod.1x9.posScalerRate HMS 1X+ paddle 9
 variable 0 24 1 .hod.1x9.negScaler HMS 1X- paddle 9
 variable 0 24 2 .hod.1x9.negScalerRate HMS 1X- paddle 9
-variable 4 12 1 .Empty_29.scaler Empty
-variable 4 12 2 .Empty_29.scalerRate Empty
-variable 4 7 1 .Empty_28.scaler Empty
-variable 4 7 2 .Empty_28.scalerRate Empty
+variable 4 15 1 .Empty_29.scaler Empty
+variable 4 15 2 .Empty_29.scalerRate Empty
+variable 4 14 1 .Empty_28.scaler Empty
+variable 4 14 2 .Empty_28.scalerRate Empty
 variable 2 27 1 .hod.2x15.negScaler HMS 2X- paddle 15
 variable 2 27 2 .hod.2x15.negScalerRate HMS 2X- paddle 15
 variable 3 26 1 .Empty_20.scaler Empty
@@ -130,8 +152,8 @@ variable 3 31 1 .Empty_24.scaler Empty
 variable 3 31 2 .Empty_24.scalerRate Empty
 variable 2 11 1 .hod.2x15.posScaler HMS 2X+ paddle 15
 variable 2 11 2 .hod.2x15.posScalerRate HMS 2X+ paddle 15
-variable 4 5 1 .Empty_26.scaler Empty
-variable 4 5 2 .Empty_26.scalerRate Empty
+variable 4 12 1 .Empty_26.scaler Empty
+variable 4 12 2 .Empty_26.scalerRate Empty
 variable 5 28 1 .hEL_REAL.scaler HMS EL_REAL
 variable 5 28 2 .hEL_REAL.scalerRate HMS EL_REAL
 variable 3 21 1 .hod.2y4.negScaler HMS 2Y- paddle 4
@@ -154,8 +176,6 @@ variable 2 1 1 .hod.2x3.posScaler HMS 2X+ paddle 3
 variable 2 1 2 .hod.2x3.posScalerRate HMS 2X+ paddle 3
 variable 4 9 1 .hPRE100.scaler HMS PRE100
 variable 4 9 2 .hPRE100.scalerRate HMS PRE100
-variable 4 16 1 .hL1ACCP.scaler HMS L1 Accept
-variable 4 16 2 .hL1ACCP.scalerRate HMS L1 Accept
 variable 0 5 1 .hod.1x4.posScaler HMS 1X+ paddle 4
 variable 0 5 2 .hod.1x4.posScalerRate HMS 1X+ paddle 4
 variable 5 20 1 .pEL_REAL.scaler SHMS EL_REAL
@@ -164,6 +184,10 @@ variable 1 24 1 .hod.1y9.negScaler HMS 1Y- paddle 9
 variable 1 24 2 .hod.1y9.negScalerRate HMS 1Y- paddle 9
 variable 1 8 1 .hod.1y9.posScaler HMS 1Y+ paddle 9
 variable 1 8 2 .hod.1y9.posScalerRate HMS 1Y+ paddle 9
+variable 6 24 1 .Empty_61.scaler Empty
+variable 6 24 2 .Empty_61.scalerRate Empty
+variable 6 23 1 .Empty_60.scaler Empty
+variable 6 23 2 .Empty_60.scalerRate Empty
 variable 6 7 1 .ASUM.scaler HMS ASUM
 variable 6 7 2 .ASUM.scalerRate HMS ASUM
 variable 1 6 1 .hod.1y6.posScaler HMS 1Y+ paddle 6
@@ -208,6 +232,8 @@ variable 5 12 1 .hTRIG3.scaler HMS TRIG3
 variable 5 12 2 .hTRIG3.scalerRate HMS TRIG3
 variable 5 11 1 .hTRIG2.scaler HMS TRIG2
 variable 5 11 2 .hTRIG2.scalerRate HMS TRIG2
+variable 6 4 1 .S1XS1Y.scaler HMS S1T
+variable 6 4 2 .S1XS1Y.scalerRate HMS S1T
 variable 0 12 1 .hod.1x10.posScaler HMS 1X+ paddle 10
 variable 0 12 2 .hod.1x10.posScalerRate HMS 1X+ paddle 10
 variable 0 28 1 .hod.1x10.negScaler HMS 1X- paddle 10
@@ -236,26 +262,26 @@ variable 1 20 1 .hod.1y2.negScaler HMS 1Y- paddle 2
 variable 1 20 2 .hod.1y2.negScalerRate HMS 1Y- paddle 2
 variable 1 4 1 .hod.1y2.posScaler HMS 1Y+ paddle 2
 variable 1 4 2 .hod.1y2.posScalerRate HMS 1Y+ paddle 2
-variable 5 23 1 .Empty_38.scaler Empty
-variable 5 23 2 .Empty_38.scalerRate Empty
-variable 5 30 1 .Empty_39.scaler Empty
-variable 5 30 2 .Empty_39.scalerRate Empty
-variable 4 15 1 .Empty_32.scaler Empty
-variable 4 15 2 .Empty_32.scalerRate Empty
-variable 5 6 1 .Empty_33.scaler Empty
-variable 5 6 2 .Empty_33.scalerRate Empty
-variable 4 13 1 .Empty_30.scaler Empty
-variable 4 13 2 .Empty_30.scalerRate Empty
-variable 4 14 1 .Empty_31.scaler Empty
-variable 4 14 2 .Empty_31.scalerRate Empty
-variable 5 9 1 .Empty_36.scaler Empty
-variable 5 9 2 .Empty_36.scalerRate Empty
-variable 5 22 1 .Empty_37.scaler Empty
-variable 5 22 2 .Empty_37.scalerRate Empty
-variable 5 7 1 .Empty_34.scaler Empty
-variable 5 7 2 .Empty_34.scalerRate Empty
-variable 5 8 1 .Empty_35.scaler Empty
-variable 5 8 2 .Empty_35.scalerRate Empty
+variable 4 25 1 .Empty_38.scaler Empty
+variable 4 25 2 .Empty_38.scalerRate Empty
+variable 4 26 1 .Empty_39.scaler Empty
+variable 4 26 2 .Empty_39.scalerRate Empty
+variable 4 19 1 .Empty_32.scaler Empty
+variable 4 19 2 .Empty_32.scalerRate Empty
+variable 4 20 1 .Empty_33.scaler Empty
+variable 4 20 2 .Empty_33.scalerRate Empty
+variable 4 17 1 .Empty_30.scaler Empty
+variable 4 17 2 .Empty_30.scalerRate Empty
+variable 4 18 1 .Empty_31.scaler Empty
+variable 4 18 2 .Empty_31.scalerRate Empty
+variable 4 23 1 .Empty_36.scaler Empty
+variable 4 23 2 .Empty_36.scalerRate Empty
+variable 4 24 1 .Empty_37.scaler Empty
+variable 4 24 2 .Empty_37.scalerRate Empty
+variable 4 21 1 .Empty_34.scaler Empty
+variable 4 21 2 .Empty_34.scalerRate Empty
+variable 4 22 1 .Empty_35.scaler Empty
+variable 4 22 2 .Empty_35.scalerRate Empty
 variable 0 0 1 .hod.1x1.posScaler HMS 1X+ paddle 1
 variable 0 0 2 .hod.1x1.posScalerRate HMS 1X+ paddle 1
 variable 0 16 1 .hod.1x1.negScaler HMS 1X- paddle 1
@@ -274,8 +300,8 @@ variable 2 31 1 .hod.2x16.negScaler HMS 2X- paddle 16
 variable 2 31 2 .hod.2x16.negScalerRate HMS 2X- paddle 16
 variable 4 11 1 .hPRE200.scaler HMS PRE200
 variable 4 11 2 .hPRE200.scalerRate HMS PRE200
-variable 4 6 1 .Empty_27.scaler Empty
-variable 4 6 2 .Empty_27.scalerRate Empty
+variable 4 13 1 .Empty_27.scaler Empty
+variable 4 13 2 .Empty_27.scalerRate Empty
 variable 0 30 1 .hod.1x14.negScaler HMS 1X- paddle 14
 variable 0 30 2 .hod.1x14.negScalerRate HMS 1X- paddle 14
 variable 0 14 1 .hod.1x14.posScaler HMS 1X+ paddle 14
@@ -284,18 +310,20 @@ variable 2 4 1 .hod.2x2.posScaler HMS 2X+ paddle 2
 variable 2 4 2 .hod.2x2.posScalerRate HMS 2X+ paddle 2
 variable 2 20 1 .hod.2x2.negScaler HMS 2X- paddle 2
 variable 2 20 2 .hod.2x2.negScalerRate HMS 2X- paddle 2
+variable 4 16 1 .hL1ACCP.scaler HMS L1 Accept
+variable 4 16 2 .hL1ACCP.scalerRate HMS L1 Accept
 variable 6 29 1 .BCM17.scaler BCM17
 variable 6 29 2 .BCM17.scalerRate BCM17
 variable 6 29 3 .BCM17.scalerCurrent BCM17
 variable 6 29 4 .BCM17.scalerCharge BCM17
-variable 6 18 1 .Empty_43.scaler Empty
-variable 6 18 2 .Empty_43.scalerRate Empty
+variable 5 24 1 .hSTOF.scaler HMS STOF
+variable 5 24 2 .hSTOF.scalerRate HMS STOF
 variable 1 23 1 .hod.1y8.negScaler HMS 1Y- paddle 8
 variable 1 23 2 .hod.1y8.negScalerRate HMS 1Y- paddle 8
 variable 1 7 1 .hod.1y8.posScaler HMS 1Y+ paddle 8
 variable 1 7 2 .hod.1y8.posScalerRate HMS 1Y+ paddle 8
-variable 6 4 1 .S1XS1Y.scaler HMS S1T
-variable 6 4 2 .S1XS1Y.scalerRate HMS S1T
+variable 5 6 1 .Empty_45.scaler Empty
+variable 5 6 2 .Empty_45.scalerRate Empty
 variable 0 4 1 .hod.1x2.posScaler HMS 1X+ paddle 2
 variable 0 4 2 .hod.1x2.posScalerRate HMS 1X+ paddle 2
 variable 0 20 1 .hod.1x2.negScaler HMS 1X- paddle 2
@@ -342,8 +370,6 @@ variable 3 6 1 .hod.2y6.posScaler HMS 2Y+ paddle 6
 variable 3 6 2 .hod.2y6.posScalerRate HMS 2Y+ paddle 6
 variable 3 22 1 .hod.2y6.negScaler HMS 2Y- paddle 6
 variable 3 22 2 .hod.2y6.negScalerRate HMS 2Y- paddle 6
-variable 6 20 1 .Empty_45.scaler Empty
-variable 6 20 2 .Empty_45.scalerRate Empty
 variable 4 1 1 .pPRE100.scaler SHMS PRE100
 variable 4 1 2 .pPRE100.scalerRate SHMS PRE100
 variable 0 26 1 .hod.1x13.negScaler HMS 1X- paddle 13
@@ -370,6 +396,8 @@ variable 1 5 1 .hod.1y4.posScaler HMS 1Y+ paddle 4
 variable 1 5 2 .hod.1y4.posScalerRate HMS 1Y+ paddle 4
 variable 1 21 1 .hod.1y4.negScaler HMS 1Y- paddle 4
 variable 1 21 2 .hod.1y4.negScalerRate HMS 1Y- paddle 4
+variable 4 5 1 .1MHz_CP.scaler 1 Mhz Copy
+variable 4 5 2 .1MHz_CP.scalerRate 1 Mhz Copy
 variable 0 22 1 .hod.1x6.negScaler HMS 1X- paddle 6
 variable 0 22 2 .hod.1x6.negScalerRate HMS 1X- paddle 6
 variable 0 6 1 .hod.1x6.posScaler HMS 1X+ paddle 6
@@ -392,28 +420,30 @@ variable 2 2 1 .hod.2x5.posScaler HMS 2X+ paddle 5
 variable 2 2 2 .hod.2x5.posScalerRate HMS 2X+ paddle 5
 variable 5 16 1 .pSTOF.scaler SHMS STOF
 variable 5 16 2 .pSTOF.scalerRate SHMS STOF
+variable 4 6 1 .EDTM_CP.scaler EDTM Copy
+variable 4 6 2 .EDTM_CP.scalerRate EDTM Copy
 variable 6 11 1 .PRLO.scaler HMS PRLO
 variable 6 11 2 .PRLO.scalerRate HMS PRLO
-variable 6 24 1 .Empty_49.scaler Empty
-variable 6 24 2 .Empty_49.scalerRate Empty
-variable 6 23 1 .Empty_48.scaler Empty
-variable 6 23 2 .Empty_48.scalerRate Empty
-variable 5 24 1 .hSTOF.scaler HMS STOF
-variable 5 24 2 .hSTOF.scalerRate HMS STOF
-variable 6 17 1 .Empty_42.scaler Empty
-variable 6 17 2 .Empty_42.scalerRate Empty
-variable 6 16 1 .Empty_41.scaler Empty
-variable 6 16 2 .Empty_41.scalerRate Empty
-variable 5 31 1 .Empty_40.scaler Empty
-variable 5 31 2 .Empty_40.scalerRate Empty
-variable 6 22 1 .Empty_47.scaler Empty
-variable 6 22 2 .Empty_47.scalerRate Empty
-variable 6 21 1 .Empty_46.scaler Empty
-variable 6 21 2 .Empty_46.scalerRate Empty
+variable 5 22 1 .Empty_49.scaler Empty
+variable 5 22 2 .Empty_49.scalerRate Empty
+variable 5 9 1 .Empty_48.scaler Empty
+variable 5 9 2 .Empty_48.scalerRate Empty
+variable 4 30 1 .Empty_43.scaler Empty
+variable 4 30 2 .Empty_43.scalerRate Empty
+variable 4 29 1 .Empty_42.scaler Empty
+variable 4 29 2 .Empty_42.scalerRate Empty
+variable 4 28 1 .Empty_41.scaler Empty
+variable 4 28 2 .Empty_41.scalerRate Empty
+variable 4 27 1 .Empty_40.scaler Empty
+variable 4 27 2 .Empty_40.scalerRate Empty
+variable 5 8 1 .Empty_47.scaler Empty
+variable 5 8 2 .Empty_47.scalerRate Empty
+variable 5 7 1 .Empty_46.scaler Empty
+variable 5 7 2 .Empty_46.scalerRate Empty
 variable 6 8 1 .BSUM.scaler HMS BSUM
 variable 6 8 2 .BSUM.scalerRate HMS BSUM
-variable 6 19 1 .Empty_44.scaler Empty
-variable 6 19 2 .Empty_44.scalerRate Empty
+variable 4 31 1 .Empty_44.scaler Empty
+variable 4 31 2 .Empty_44.scalerRate Empty
 variable 0 1 1 .hod.1x3.posScaler HMS 1X+ paddle 3
 variable 0 1 2 .hod.1x3.posScalerRate HMS 1X+ paddle 3
 variable 0 17 1 .hod.1x3.negScaler HMS 1X- paddle 3
diff --git a/MAPS/SCALERS/db_PScalevt.dat b/MAPS/SCALERS/db_PScalevt.dat
index a438e701..c3d01e3e 100644
--- a/MAPS/SCALERS/db_PScalevt.dat
+++ b/MAPS/SCALERS/db_PScalevt.dat
@@ -14,36 +14,48 @@ variable 3 15 1 .hod.2y16.negScaler SHMS 2y- paddle 16
 variable 3 15 2 .hod.2y16.negScalerRate SHMS 2y- paddle 16
 variable 6 29 1 .hEL_CLEAN.scaler HMS EL_CLEAN
 variable 6 29 2 .hEL_CLEAN.scalerRate HMS EL_CLEAN
+variable 5 16 1 .pL1ACCP.scaler SHMS L1 Accept
+variable 5 16 2 .pL1ACCP.scalerRate SHMS L1 Accept
 variable 7 11 1 .PRLO.scaler SHMS PRLO
 variable 7 11 2 .PRLO.scalerRate SHMS PRLO
 variable 7 10 1 .EDTM.scaler SHMS EDTM
 variable 7 10 2 .EDTM.scalerRate SHMS EDTM
+variable 7 23 1 .Empty_76.scaler Empty
+variable 7 23 2 .Empty_76.scalerRate Empty
 variable 0 23 1 .hod.1x8.negScaler SHMS 1X- paddle 8
 variable 0 23 2 .hod.1x8.negScalerRate SHMS 1X- paddle 8
 variable 0 7 1 .hod.1x8.posScaler SHMS 1X+ paddle 8
 variable 0 7 2 .hod.1x8.posScalerRate SHMS 1X+ paddle 8
 variable 7 4 1 .S1XS1Y.scaler SHMS S1T
 variable 7 4 2 .S1XS1Y.scalerRate SHMS S1T
+variable 7 22 1 .Empty_75.scaler Empty
+variable 7 22 2 .Empty_75.scalerRate Empty
 variable 0 1 1 .hod.1x3.posScaler SHMS 1X+ paddle 3
 variable 0 1 2 .hod.1x3.posScalerRate SHMS 1X+ paddle 3
 variable 0 17 1 .hod.1x3.negScaler SHMS 1X- paddle 3
 variable 0 17 2 .hod.1x3.negScalerRate SHMS 1X- paddle 3
+variable 7 16 1 .Empty_69.scaler Empty
+variable 7 16 2 .Empty_69.scalerRate Empty
+variable 7 15 1 .Empty_68.scaler Empty
+variable 7 15 2 .Empty_68.scalerRate Empty
 variable 6 25 1 .hEL_LO_LO.scaler HMS EL_LO_LO
 variable 6 25 2 .hEL_LO_LO.scalerRate HMS EL_LO_LO
-variable 7 23 1 .Empty_65.scaler Empty
-variable 7 23 2 .Empty_65.scalerRate Empty
-variable 7 22 1 .Empty_64.scaler Empty
-variable 7 22 2 .Empty_64.scalerRate Empty
+variable 6 31 1 .Empty_65.scaler Empty
+variable 6 31 2 .Empty_65.scalerRate Empty
+variable 6 30 1 .Empty_64.scaler Empty
+variable 6 30 2 .Empty_64.scalerRate Empty
+variable 7 14 1 .Empty_67.scaler Empty
+variable 7 14 2 .Empty_67.scalerRate Empty
 variable 4 1 1 .hod.2y19.negScaler SHMS 2y- paddle 19
 variable 4 1 2 .hod.2y19.negScalerRate SHMS 2y- paddle 19
-variable 7 19 1 .Empty_61.scaler Empty
-variable 7 19 2 .Empty_61.scalerRate Empty
+variable 6 9 1 .Empty_61.scaler Empty
+variable 6 9 2 .Empty_61.scalerRate Empty
 variable 4 17 1 .hod.2y19.posScaler SHMS 2y+ paddle 19
 variable 4 17 2 .hod.2y19.posScalerRate SHMS 2y+ paddle 19
-variable 7 21 1 .Empty_63.scaler Empty
-variable 7 21 2 .Empty_63.scalerRate Empty
-variable 7 20 1 .Empty_62.scaler Empty
-variable 7 20 2 .Empty_62.scalerRate Empty
+variable 6 23 1 .Empty_63.scaler Empty
+variable 6 23 2 .Empty_63.scalerRate Empty
+variable 6 22 1 .Empty_62.scaler Empty
+variable 6 22 2 .Empty_62.scalerRate Empty
 variable 3 19 1 .hod.2y7.posScaler SHMS 2y+ paddle 7
 variable 3 19 2 .hod.2y7.posScalerRate SHMS 2y+ paddle 7
 variable 3 3 1 .hod.2y7.negScaler SHMS 2y- paddle 7
@@ -64,6 +76,8 @@ variable 2 29 1 .hod.2x12.negScaler SHMS 2X- paddle 12
 variable 2 29 2 .hod.2x12.negScalerRate SHMS 2X- paddle 12
 variable 2 13 1 .hod.2x12.posScaler SHMS 2X+ paddle 12
 variable 2 13 2 .hod.2x12.posScalerRate SHMS 2X+ paddle 12
+variable 5 6 1 .EDTM_CP.scaler EDTM Copy
+variable 5 6 2 .EDTM_CP.scalerRate EDTM Copy
 variable 3 29 1 .hod.2y12.posScaler SHMS 2y+ paddle 12
 variable 3 29 2 .hod.2y12.posScalerRate SHMS 2y+ paddle 12
 variable 2 8 1 .hod.2x9.posScaler SHMS 2X+ paddle 9
@@ -113,6 +127,8 @@ variable 7 31 2 .1Mhz.scalerRate 1MHz
 variable 7 31 5 .1Mhz.scalerTime 1MHz
 variable 0 11 1 .Empty.scaler Empty
 variable 0 11 2 .Empty.scalerRate Empty
+variable 5 17 1 .pEDTM_V2.scaler SHMS EDTM V2
+variable 5 17 2 .pEDTM_V2.scalerRate SHMS EDTM V2
 variable 2 21 1 .hod.2x4.negScaler SHMS 2X- paddle 4
 variable 2 21 2 .hod.2x4.negScalerRate SHMS 2X- paddle 4
 variable 3 23 1 .hod.2y8.posScaler SHMS 2y+ paddle 8
@@ -137,8 +153,6 @@ variable 5 2 1 .pPRE150.scaler SHMS PRE150
 variable 5 2 2 .pPRE150.scalerRate SHMS PRE150
 variable 5 10 1 .hPRE150.scaler HMS PRE150
 variable 5 10 2 .hPRE150.scalerRate HMS PRE150
-variable 5 16 1 .pL1ACCP.scaler  SHMS L1 Accept
-variable 5 16 2 .pL1ACCP.scalerRate  SHMS L1 Accept
 variable 0 15 1 .Empty_3.scaler Empty
 variable 0 15 2 .Empty_3.scalerRate Empty
 variable 3 9 1 .hod.2y11.negScaler SHMS 2y- paddle 11
@@ -161,10 +175,20 @@ variable 0 8 1 .hod.1x9.posScaler SHMS 1X+ paddle 9
 variable 0 8 2 .hod.1x9.posScalerRate SHMS 1X+ paddle 9
 variable 0 24 1 .hod.1x9.negScaler SHMS 1X- paddle 9
 variable 0 24 2 .hod.1x9.negScalerRate SHMS 1X- paddle 9
+variable 5 7 1 .pTRIG1_CP.scaler SHMS pTRIG1 Copy
+variable 5 7 2 .pTRIG1_CP.scalerRate SHMS pTRIG1 Copy
 variable 4 4 1 .hod.2y18.negScaler SHMS 2y- paddle 18
 variable 4 4 2 .hod.2y18.negScalerRate SHMS 2y- paddle 18
+variable 7 24 1 .Empty_77.scaler Empty
+variable 7 24 2 .Empty_77.scalerRate Empty
+variable 7 21 1 .Empty_74.scaler Empty
+variable 7 21 2 .Empty_74.scalerRate Empty
 variable 6 20 1 .pEL_REAL.scaler SHMS EL_REAL
 variable 6 20 2 .pEL_REAL.scalerRate SHMS EL_REAL
+variable 7 19 1 .Empty_72.scaler Empty
+variable 7 19 2 .Empty_72.scalerRate Empty
+variable 7 20 1 .Empty_73.scaler Empty
+variable 7 20 2 .Empty_73.scalerRate Empty
 variable 4 20 1 .hod.2y18.posScaler SHMS 2y+ paddle 18
 variable 4 20 2 .hod.2y18.posScalerRate SHMS 2y+ paddle 18
 variable 6 11 1 .hTRIG2.scaler HMS  TRIG2
@@ -177,22 +201,20 @@ variable 3 5 1 .hod.2y4.negScaler SHMS 2y- paddle 4
 variable 3 5 2 .hod.2y4.negScalerRate SHMS 2y- paddle 4
 variable 3 21 1 .hod.2y4.posScaler SHMS 2y+ paddle 4
 variable 3 21 2 .hod.2y4.posScalerRate SHMS 2y+ paddle 4
-variable 7 24 1 .Empty_66.scaler Empty
-variable 7 24 2 .Empty_66.scalerRate Empty
-variable 7 18 1 .Empty_60.scaler Empty
-variable 7 18 2 .Empty_60.scalerRate Empty
+variable 7 13 1 .Empty_66.scaler Empty
+variable 7 13 2 .Empty_66.scalerRate Empty
+variable 6 8 1 .Empty_60.scaler Empty
+variable 6 8 2 .Empty_60.scalerRate Empty
 variable 0 26 1 .hod.1x13.negScaler SHMS 1X- paddle 13
 variable 0 26 2 .hod.1x13.negScalerRate SHMS 1X- paddle 13
 variable 0 10 1 .hod.1x13.posScaler SHMS 1X+ paddle 13
 variable 0 10 2 .hod.1x13.posScalerRate SHMS 1X+ paddle 13
-variable 2 26 1 .hod.2x13.negScaler SHMS 2X- paddle 13
-variable 2 26 2 .hod.2x13.negScalerRate SHMS 2X- paddle 13
-variable 6 31 1 .Empty_54.scaler Empty
-variable 6 31 2 .Empty_54.scalerRate Empty
+variable 5 28 1 .Empty_54.scaler Empty
+variable 5 28 2 .Empty_54.scalerRate Empty
 variable 2 10 1 .hod.2x13.posScaler SHMS 2X+ paddle 13
 variable 2 10 2 .hod.2x13.posScalerRate SHMS 2X+ paddle 13
-variable 6 23 1 .Empty_52.scaler Empty
-variable 6 23 2 .Empty_52.scalerRate Empty
+variable 5 26 1 .Empty_52.scaler Empty
+variable 5 26 2 .Empty_52.scalerRate Empty
 variable 2 17 1 .hod.2x3.negScaler SHMS 2X- paddle 3
 variable 2 17 2 .hod.2x3.negScalerRate SHMS 2X- paddle 3
 variable 2 1 1 .hod.2x3.posScaler SHMS 2X+ paddle 3
@@ -273,6 +295,8 @@ variable 3 28 1 .hod.2y10.posScaler SHMS 2y+ paddle 10
 variable 3 28 2 .hod.2y10.posScalerRate SHMS 2y+ paddle 10
 variable 2 23 1 .hod.2x8.negScaler SHMS 2X- paddle 8
 variable 2 23 2 .hod.2x8.negScalerRate SHMS 2X- paddle 8
+variable 7 17 1 .Empty_70.scaler Empty
+variable 7 17 2 .Empty_70.scalerRate Empty
 variable 2 3 1 .hod.2x7.posScaler SHMS 2X+ paddle 7
 variable 2 3 2 .hod.2x7.posScalerRate SHMS 2X+ paddle 7
 variable 6 18 1 .pEL_LO.scaler SHMS EL_LO
@@ -283,6 +307,8 @@ variable 2 5 1 .hod.2x4.posScaler SHMS 2X+ paddle 4
 variable 2 5 2 .hod.2x4.posScalerRate SHMS 2X+ paddle 4
 variable 1 4 1 .hod.1y2.negScaler SHMS 1Y- paddle 2
 variable 1 4 2 .hod.1y2.negScalerRate SHMS 1Y- paddle 2
+variable 7 18 1 .Empty_71.scaler Empty
+variable 7 18 2 .Empty_71.scalerRate Empty
 variable 1 20 1 .hod.1y2.posScaler SHMS 1Y+ paddle 2
 variable 1 20 2 .hod.1y2.posScalerRate SHMS 1Y+ paddle 2
 variable 7 29 1 .BCM17.scaler BCM17
@@ -297,26 +323,26 @@ variable 1 18 1 .hod.1y5.posScaler SHMS 1Y+ paddle 5
 variable 1 18 2 .hod.1y5.posScalerRate SHMS 1Y+ paddle 5
 variable 1 2 1 .hod.1y5.negScaler SHMS 1Y- paddle 5
 variable 1 2 2 .hod.1y5.negScalerRate SHMS 1Y- paddle 5
-variable 5 12 1 .Empty_43.scaler Empty
-variable 5 12 2 .Empty_43.scalerRate Empty
-variable 5 7 1 .Empty_42.scaler Empty
-variable 5 7 2 .Empty_42.scalerRate Empty
-variable 5 6 1 .Empty_41.scaler Empty
-variable 5 6 2 .Empty_41.scalerRate Empty
+variable 5 15 1 .Empty_43.scaler Empty
+variable 5 15 2 .Empty_43.scalerRate Empty
+variable 5 14 1 .Empty_42.scaler Empty
+variable 5 14 2 .Empty_42.scalerRate Empty
+variable 5 13 1 .Empty_41.scaler Empty
+variable 5 13 2 .Empty_41.scalerRate Empty
 variable 0 0 1 .hod.1x1.posScaler SHMS 1X+ paddle 1
 variable 0 0 2 .hod.1x1.posScalerRate SHMS 1X+ paddle 1
-variable 6 6 1 .Empty_47.scaler Empty
-variable 6 6 2 .Empty_47.scalerRate Empty
+variable 5 21 1 .Empty_47.scaler Empty
+variable 5 21 2 .Empty_47.scalerRate Empty
 variable 0 16 1 .hod.1x1.negScaler SHMS 1X- paddle 1
 variable 0 16 2 .hod.1x1.negScalerRate SHMS 1X- paddle 1
-variable 5 14 1 .Empty_45.scaler Empty
-variable 5 14 2 .Empty_45.scalerRate Empty
-variable 5 13 1 .Empty_44.scaler Empty
-variable 5 13 2 .Empty_44.scalerRate Empty
-variable 6 8 1 .Empty_49.scaler Empty
-variable 6 8 2 .Empty_49.scalerRate Empty
-variable 6 7 1 .Empty_48.scaler Empty
-variable 6 7 2 .Empty_48.scalerRate Empty
+variable 5 19 1 .Empty_45.scaler Empty
+variable 5 19 2 .Empty_45.scalerRate Empty
+variable 5 18 1 .Empty_44.scaler Empty
+variable 5 18 2 .Empty_44.scalerRate Empty
+variable 5 23 1 .Empty_49.scaler Empty
+variable 5 23 2 .Empty_49.scalerRate Empty
+variable 5 22 1 .Empty_48.scaler Empty
+variable 5 22 2 .Empty_48.scalerRate Empty
 variable 6 4 1 .pTRIG5.scaler SHMS TRIG5
 variable 6 4 2 .pTRIG5.scalerRate SHMS TRIG5
 variable 6 3 1 .pTRIG4.scaler SHMS TRIG4
@@ -345,10 +371,10 @@ variable 2 4 1 .hod.2x2.posScaler SHMS 2X+ paddle 2
 variable 2 4 2 .hod.2x2.posScalerRate SHMS 2X+ paddle 2
 variable 2 20 1 .hod.2x2.negScaler SHMS 2X- paddle 2
 variable 2 20 2 .hod.2x2.negScalerRate SHMS 2X- paddle 2
-variable 5 5 1 .Empty_40.scaler Empty
-variable 5 5 2 .Empty_40.scalerRate Empty
-variable 5 15 1 .Empty_46.scaler Empty
-variable 5 15 2 .Empty_46.scalerRate Empty
+variable 5 12 1 .Empty_40.scaler Empty
+variable 5 12 2 .Empty_40.scalerRate Empty
+variable 5 20 1 .Empty_46.scaler Empty
+variable 5 20 2 .Empty_46.scalerRate Empty
 variable 4 0 1 .hod.2y17.negScaler SHMS 2y- paddle 17
 variable 4 0 2 .hod.2y17.negScalerRate SHMS 2y- paddle 17
 variable 4 16 1 .hod.2y17.posScaler SHMS 2y+ paddle 17
@@ -427,6 +453,8 @@ variable 6 16 1 .pSTOF.scaler SHMS STOF
 variable 6 16 2 .pSTOF.scalerRate SHMS STOF
 variable 2 6 1 .hod.2x6.posScaler SHMS 2X+ paddle 6
 variable 2 6 2 .hod.2x6.posScalerRate SHMS 2X+ paddle 6
+variable 5 5 1 .1MHz_CP.scaler 1 MHz Copy
+variable 5 5 2 .1MHz_CP.scalerRate 1 MHz Copy
 variable 5 9 1 .hPRE100.scaler HMS PRE100
 variable 5 9 2 .hPRE100.scalerRate HMS PRE100
 variable 4 25 1 .Empty_21.scaler Empty
@@ -463,24 +491,24 @@ variable 1 5 1 .hod.1y4.negScaler SHMS 1Y- paddle 4
 variable 1 5 2 .hod.1y4.negScalerRate SHMS 1Y- paddle 4
 variable 0 22 1 .hod.1x6.negScaler SHMS 1X- paddle 6
 variable 0 22 2 .hod.1x6.negScalerRate SHMS 1X- paddle 6
-variable 7 13 1 .Empty_55.scaler Empty
-variable 7 13 2 .Empty_55.scalerRate Empty
-variable 7 14 1 .Empty_56.scaler Empty
-variable 7 14 2 .Empty_56.scalerRate Empty
-variable 7 15 1 .Empty_57.scaler Empty
-variable 7 15 2 .Empty_57.scalerRate Empty
-variable 6 9 1 .Empty_50.scaler Empty
-variable 6 9 2 .Empty_50.scalerRate Empty
-variable 6 22 1 .Empty_51.scaler Empty
-variable 6 22 2 .Empty_51.scalerRate Empty
+variable 5 29 1 .Empty_55.scaler Empty
+variable 5 29 2 .Empty_55.scalerRate Empty
+variable 5 30 1 .Empty_56.scaler Empty
+variable 5 30 2 .Empty_56.scalerRate Empty
+variable 5 31 1 .Empty_57.scaler Empty
+variable 5 31 2 .Empty_57.scalerRate Empty
+variable 5 24 1 .Empty_50.scaler Empty
+variable 5 24 2 .Empty_50.scalerRate Empty
+variable 5 25 1 .Empty_51.scaler Empty
+variable 5 25 2 .Empty_51.scalerRate Empty
 variable 0 6 1 .hod.1x6.posScaler SHMS 1X+ paddle 6
 variable 0 6 2 .hod.1x6.posScalerRate SHMS 1X+ paddle 6
-variable 6 30 1 .Empty_53.scaler Empty
-variable 6 30 2 .Empty_53.scalerRate Empty
-variable 7 16 1 .Empty_58.scaler Empty
-variable 7 16 2 .Empty_58.scalerRate Empty
-variable 7 17 1 .Empty_59.scaler Empty
-variable 7 17 2 .Empty_59.scalerRate Empty
+variable 5 27 1 .Empty_53.scaler Empty
+variable 5 27 2 .Empty_53.scalerRate Empty
+variable 6 6 1 .Empty_58.scaler Empty
+variable 6 6 2 .Empty_58.scalerRate Empty
+variable 6 7 1 .Empty_59.scaler Empty
+variable 6 7 2 .Empty_59.scalerRate Empty
 variable 5 11 1 .hPRE200.scaler HMS PRE200
 variable 5 11 2 .hPRE200.scalerRate HMS PRE200
 variable 4 9 1 .Empty_32.scaler Empty
@@ -495,6 +523,8 @@ variable 3 20 1 .hod.2y2.posScaler SHMS 2y+ paddle 2
 variable 3 20 2 .hod.2y2.posScalerRate SHMS 2y+ paddle 2
 variable 7 9 1 .NCER.scaler SHMS NGC
 variable 7 9 2 .NCER.scalerRate SHMS NGC
+variable 2 26 1 .hod.2x13.negScaler SHMS 2X- paddle 13
+variable 2 26 2 .hod.2x13.negScalerRate SHMS 2X- paddle 13
 variable 2 18 1 .hod.2x5.negScaler SHMS 2X- paddle 5
 variable 2 18 2 .hod.2x5.negScalerRate SHMS 2X- paddle 5
 variable 2 2 1 .hod.2x5.posScaler SHMS 2X+ paddle 5
diff --git a/MAPS/SCALERS/scaler.map b/MAPS/SCALERS/scaler.map
index 2d806b8e..ca4fc525 100755
--- a/MAPS/SCALERS/scaler.map
+++ b/MAPS/SCALERS/scaler.map
@@ -201,9 +201,9 @@ pPRE100      0    4     4    1     1    -1  SHMS PRE100
 pPRE150      0    4     4    2     1    -1  SHMS PRE150
 pPRE200      0    4     4    3     1    -1  SHMS PRE200
 10/4         0    4     4    4     1    -1  Empty
-10/5         0    4     4    5     1    -1  Empty
-10/6         0    4     4    6     1    -1  Empty
-10/7         0    4     4    7     1    -1  Empty
+1MHz_CP      0    4     4    5     1    -1  1 Mhz Copy
+EDTM_CP      0    4     4    6     1    -1  EDTM Copy
+pTRIG1_CP    0    4     4    7     1    -1  pTRIG1 Copy
 hPRE40       0    4     4    8     1    -1  HMS PRE40
 hPRE100      0    4     4    9     1    -1  HMS PRE100
 hPRE150      0    4     4    10    1    -1  HMS PRE150
@@ -212,9 +212,22 @@ hPRE200      0    4     4    11    1    -1  HMS PRE200
 10/13        0    4     4    13    1    -1  Empty
 10/14        0    4     4    14    1    -1  Empty
 10/15        0    4     4    15    1    -1  Empty
-
-# desc      hel crate slot start nchan page long-description
-hL1ACCP       0    4     4    16     1    -1  HMS L1 Accept
+hL1ACCP      0    4     4    16    1    -1  HMS L1 Accept
+10/17        0    4     4    17    1    -1  Empty
+10/18        0    4     4    18    1    -1  Empty
+10/19        0    4     4    19    1    -1  Empty
+10/20        0    4     4    20    1    -1  Empty
+10/21        0    4     4    21    1    -1  Empty
+10/22        0    4     4    22    1    -1  Empty
+10/23        0    4     4    23    1    -1  Empty
+10/24        0    4     4    24    1    -1  Empty
+10/25        0    4     4    25    1    -1  Empty
+10/26        0    4     4    26    1    -1  Empty
+10/27        0    4     4    27    1    -1  Empty
+10/28        0    4     4    28    1    -1  Empty
+10/29        0    4     4    29    1    -1  Empty
+10/30        0    4     4    30    1    -1  Empty
+10/31        0    4     4    31    1    -1  Empty
 
 # desc      hel crate slot start nchan page long-description
 pTRIG1       0    4     5    0     1    -1  SHMS TRIG1
@@ -483,9 +496,9 @@ pPRE100      0    5     5    1     1    -1  SHMS PRE100
 pPRE150      0    5     5    2     1    -1  SHMS PRE150
 pPRE200      0    5     5    3     1    -1  SHMS PRE200
 11/4         0    5     5    4     1    -1  Empty
-11/5         0    5     5    5     1    -1  Empty
-11/6         0    5     5    6     1    -1  Empty
-11/7         0    5     5    7     1    -1  Empty
+1MHz_CP      0    5     5    5     1    -1  1 MHz Copy
+EDTM_CP      0    5     5    6     1    -1  EDTM Copy
+pTRIG1_CP    0    5     5    7     1    -1  SHMS pTRIG1 Copy
 hPRE40       0    5     5    8     1    -1  HMS PRE40
 hPRE100      0    5     5    9     1    -1  HMS PRE100
 hPRE150      0    5     5    10    1    -1  HMS PRE150
@@ -494,9 +507,22 @@ hPRE200      0    5     5    11    1    -1  HMS PRE200
 11/13        0    5     5    13    1    -1  Empty
 11/14        0    5     5    14    1    -1  Empty
 11/15        0    5     5    15    1    -1  Empty
-
-# desc      hel crate slot start nchan page long-description
-pL1ACCP       0    5     5    16     1    -1  SHMS L1 Accept
+pL1ACCP      0    5     5    16    1    -1  SHMS L1 Accept
+pEDTM_V2     0    5     5    17    1    -1  SHMS EDTM V2
+11/18        0    5     5    18    1    -1  Empty
+11/19        0    5     5    19    1    -1  Empty
+11/20        0    5     5    20    1    -1  Empty
+11/21        0    5     5    21    1    -1  Empty
+11/22        0    5     5    22    1    -1  Empty
+11/23        0    5     5    23    1    -1  Empty
+11/24        0    5     5    24    1    -1  Empty
+11/25        0    5     5    25    1    -1  Empty
+11/26        0    5     5    26    1    -1  Empty
+11/27        0    5     5    27    1    -1  Empty
+11/28        0    5     5    28    1    -1  Empty
+11/29        0    5     5    29    1    -1  Empty
+11/30        0    5     5    30    1    -1  Empty
+11/31        0    5     5    31    1    -1  Empty
 
 # desc      hel crate slot start nchan page long-description
 pTRIG1       0    5     6    0     1    -1  SHMS TRIG1
diff --git a/PARAM/SHMS/HODO/CALIB/phodo_calib.param b/PARAM/SHMS/HODO/CALIB/phodo_calib.param
index 7dfa3130..a44c7885 100644
--- a/PARAM/SHMS/HODO/CALIB/phodo_calib.param
+++ b/PARAM/SHMS/HODO/CALIB/phodo_calib.param
@@ -593,3 +593,181 @@ phodo_neg_sigma =  100.00,  100.00,  100.00,  100.00
                    100.00,  100.00,  100.00,  100.00
                    100.00,  100.00,  100.00,  100.00
                    100.00,  100.00,  100.00,  100.00
+
+; New calibration by Simona on 10/23/18
+
+phodo_pos_invadc_offset = -0.00, -0.00, -0.00, -0.00
+                          -6.88, -0.00, 0.41, -0.00
+                          -2.64, -0.00, 12.50, -0.00
+                          1.41, -3.87, 0.72, -0.00
+                          -1.48, -5.63, 9.81, 25.26
+                          -2.23, -5.77, 0.41, 24.92
+                          0.35, -3.84, 1.54, 23.65
+                          -6.99, -3.56, 0.90, 22.51
+                          -1.34, -4.54, 1.79, 23.90
+                          -0.00, 4.11, 1.17, 22.12
+                          -3.81, -4.29, -0.21, 22.91
+                          -0.03, -0.00, 2.51, 22.77
+                          -0.00, -0.00, 2.91, 23.88
+                          -0.00, -0.00, -0.00, 23.50
+                          -0.00, -0.00, -0.00, 22.77
+                          -0.00, -0.00, -0.00, 25.55
+			  -0.00, -0.00, -0.00, 23.13
+			  -0.00, -0.00, -0.00, -0.00
+			  -0.00, -0.00, -0.00, -0.00
+			  -0.00, -0.00, -0.00, -0.00
+			  -0.00, -0.00, -0.00, -0.00  
+
+phodo_neg_invadc_offset = -0.00, -0.00, -0.00, -0.00
+                          -15.09, -0.00, -5.59, -0.00
+                          -7.23, -0.00, 15.44, -0.00
+                          -12.02, -3.47, -6.16, -0.00
+                          -9.90, -3.83, 10.17, 14.93
+                          -12.69, -3.31, -7.17, 17.39
+                          -9.48, -2.64, -5.78, 16.32
+                          -9.07, -4.48, -4.93, 15.31
+                          -7.98, -3.99, -8.00, 15.54
+                          -10.44, 6.18, -6.79, 14.16
+                          -3.71, -5.00, -4.71, 14.82
+                          -10.47, -0.00, -4.49, 15.24
+                          -0.00, -0.00, -5.43, 14.04
+                          -0.00, -0.00, -0.00, 16.25
+                          -0.00, -0.00, -0.00, 16.80
+                          -0.00, -0.00, -0.00, 15.01
+			  -0.00, -0.00, -0.00, 16.75
+			  -0.00, -0.00, -0.00, -0.00
+			  -0.00, -0.00, -0.00, -0.00
+			  -0.00, -0.00, -0.00, -0.00
+			  -0.00, -0.00, -0.00, -0.00
+
+phodo_pos_invadc_linear = 15.00, 15.00, 15.00, 15.00
+                          14.85, 15.00, 15.00, 15.00
+                          15.00, 15.00, 14.66, 15.00
+                          15.00, 14.25, 15.00, 15.00
+                          15.00, 13.03, 15.00, 14.66
+                          14.70, 14.87, 15.00, 13.42
+                          15.00, 14.26, 15.00, 13.09
+                          15.00, 14.16, 15.00, 13.50
+                          15.00, 14.95, 15.00, 13.27
+                          14.45, 14.68, 14.91, 13.16
+                          13.11, 15.00, 15.00, 13.15
+                          13.93, 15.00, 15.00, 13.24
+                          15.00, 15.00, 15.00, 13.17
+                          15.00, 15.00, 15.00, 13.56
+                          15.00, 15.00, 15.00, 13.16
+                          15.00, 15.00, 15.00, 13.07
+			  15.00, 15.00, 15.00, 14.03
+			  15.00, 15.00, 15.00, 15.00
+			  15.00, 15.00, 15.00, 15.00
+			  15.00, 15.00, 15.00, 15.00
+			  15.00, 15.00, 15.00, 15.00
+
+phodo_neg_invadc_linear = 15.00, 15.00, 15.00, 15.00
+                          13.79, 15.00, 14.84, 15.00
+                          14.00, 15.00, 15.00, 15.00
+                          11.75, 15.00, 14.99, 15.00
+                          14.44, 15.00, 15.00, 13.09
+                          14.34, 15.00, 14.48, 14.36
+                          10.90, 15.00, 14.36, 14.42
+                          14.99, 15.00, 15.00, 15.00
+                          15.00, 15.00, 14.62, 14.08
+                          13.44, 15.00, 15.00, 14.50
+                          14.67, 15.00, 15.00, 14.16
+                          13.92, 15.00, 15.00, 13.69
+                          15.00, 15.00, 14.91, 14.14
+                          15.00, 15.00, 15.00, 14.44
+                          15.00, 15.00, 15.00, 14.23
+                          15.00, 15.00, 15.00, 14.50
+			  15.00, 15.00, 15.00, 15.00
+			  15.00, 15.00, 15.00, 15.00
+			  15.00, 15.00, 15.00, 15.00
+			  15.00, 15.00, 15.00, 15.00
+			  15.00, 15.00, 15.00, 15.00
+
+phodo_pos_invadc_adc= -0.00, -0.00, -0.00, -0.00
+                          15.39, -0.00, 15.23, -0.00
+                          16.13, -0.00, 15.81, -0.00
+                          18.97, 15.66, 16.03, -0.00
+                          14.78, 16.11, 15.95, 21.22
+                          15.75, 12.98, 14.06, 23.45
+                          17.07, 12.87, 14.00, 21.30
+                          14.66, 13.27, 14.21, 22.46
+                          18.17, 14.61, 15.12, 20.78
+                          19.35, 18.22, 14.49, 21.10
+                          16.43, 12.22, 15.35, 17.62
+                          21.03, -0.00, 15.98, 21.51
+                          -0.00, -0.00, 16.31, 20.01
+                          -0.00, -0.00, -0.00, 20.45
+                          -0.00, -0.00, -0.00, 19.99
+                          -0.00, -0.00, -0.00, 22.47
+			  -0.00, -0.00, -0.00, 29.40
+			  -0.00, -0.00, -0.00, -0.00
+			  -0.00, -0.00, -0.00, -0.00
+			  -0.00, -0.00, -0.00, -0.00
+			  -0.00, -0.00, -0.00, -0.00
+
+phodo_neg_invadc_adc= -0.00, -0.00, -0.00, -0.00
+                          18.70, -0.00, 16.52, -0.00
+                          17.38, -0.00, 22.22, -0.00
+                          18.24, 13.01, 16.82, -0.00
+                          14.66, 14.85, 18.60, 18.41
+                          15.57, 15.18, 15.45, 20.08
+                          25.60, 13.18, 15.43, 20.82
+                          16.67, 14.05, 16.13, 20.76
+                          16.25, 15.09, 15.74, 19.74
+                          16.36, 19.60, 16.06, 21.32
+                          23.43, 15.49, 16.18, 22.55
+                          15.32, -0.00, 15.65, 19.81
+                          -0.00, -0.00, 14.33, 20.62
+                          -0.00, -0.00, -0.00, 20.14
+                          -0.00, -0.00, -0.00, 23.15
+                          -0.00, -0.00, -0.00, 21.47
+			  -0.00, -0.00, -0.00, 21.41
+			  -0.00, -0.00, -0.00, -0.00
+			  -0.00, -0.00, -0.00, -0.00
+			  -0.00, -0.00, -0.00, -0.00
+			  -0.00, -0.00, -0.00, -0.00
+
+phodo_pos_sigma = 100.00, 100.00, 100.00, 100.00
+                          0.64, 100.00, 0.73, 100.00
+                          0.64, 100.00, 0.73, 100.00
+                          0.70, 0.71, 0.71, 100.00
+                          0.65, 0.90, 0.82, 0.52
+                          0.74, 0.67, 0.56, 0.72
+                          0.55, 0.64, 0.85, 0.85
+                          0.62, 0.74, 0.73, 0.79
+                          0.77, 0.69, 0.79, 0.62
+                          0.70, 0.52, 0.72, 0.55
+                          0.75, 0.42, 0.75, 0.57
+                          0.95, 100.00, 0.93, 0.67
+                          100.00, 100.00, 0.78, 0.73
+                          100.00, 100.00, 100.00, 0.60
+                          100.00, 100.00, 100.00, 0.70
+                          100.00, 100.00, 100.00, 0.40
+			  100.00, 100.00, 100.00, 0.56
+			  100.00, 100.00, 100.00, 100.00
+			  100.00, 100.00, 100.00, 100.00
+			  100.00, 100.00, 100.00, 100.00
+			  100.00, 100.00, 100.00, 100.00
+
+phodo_neg_sigma = 100.00, 100.00, 100.00, 100.00
+                          0.76, 100.00, 0.78, 100.00
+                          0.67, 100.00, 0.76, 100.00
+                          0.82, 0.59, 0.82, 100.00
+                          0.66, 0.71, 0.88, 0.37
+                          0.66, 0.66, 0.69, 0.60
+                          0.66, 0.71, 0.79, 0.80
+                          0.59, 0.71, 0.70, 0.75
+                          0.66, 0.74, 0.84, 0.65
+                          0.66, 0.65, 0.69, 0.62
+                          1.08, 0.52, 0.76, 0.67
+                          0.75, 100.00, 0.89, 0.77
+                          100.00, 100.00, 0.63, 0.74
+                          100.00, 100.00, 100.00, 0.71
+                          100.00, 100.00, 100.00, 0.72
+                          100.00, 100.00, 100.00, 0.56
+			  100.00, 100.00, 100.00, 0.54
+			  100.00, 100.00, 100.00, 100.00
+			  100.00, 100.00, 100.00, 100.00
+			  100.00, 100.00, 100.00, 100.00
+			  100.00, 100.00, 100.00, 100.00
diff --git a/SCRIPTS/COIN/MONITOR/Bean_counter.C b/SCRIPTS/COIN/MONITOR/Bean_counter.C
new file mode 100644
index 00000000..d95bb962
--- /dev/null
+++ b/SCRIPTS/COIN/MONITOR/Bean_counter.C
@@ -0,0 +1,254 @@
+// Filename: Bean_counter.C
+// Description: delta, xptar,yptar, ytar distributions for SHMS and HMS and W, Em, Pm and Cointime distributions 
+// are plotted and the number of good counts are printed out to add to the count of good events.
+// Needs runnumber, and if target is "h" or "c"
+
+void Bean_counter(Int_t runNumber, Int_t targ){
+
+ //read the input file from data
+  TString fileNameD = "/net/cdaq/cdaql3data/cdaq/hallc-online/ROOTfiles/" ;
+  fileNameD += "coin_replay_production_"; //read the root file from data
+  fileNameD += runNumber; //read the root file from data
+  fileNameD += "_-1.root"; //read the root file from data
+  TFile *f1 = new TFile(fileNameD);
+  TTree *tt = (TTree*)f1->Get("T");
+  //get the relevant branch
+  int nentriesD = tt->GetEntries();
+  cout<<"Entries:\t"<<nentriesD<<endl;
+  TString fileO;
+   fileO += "/net/cdaq/cdaql3data/cdaq/hallc-online/run_"; //read the root file from data
+   fileO += runNumber; //read the root file from data
+   fileO += "_hists_coin.root"; //read the root file from data
+
+  TFile *fout = new TFile(fileO,"RECREATE");
+
+  gROOT->SetBatch(kTRUE);
+
+  
+  //make histograms:
+  TH1D *h_hdelta = new TH1D("h_hdelta","HMS DELTA (%)",100,-12,12);
+  TH1D *h_hxptar = new TH1D("h_hxptar","HMS XPTAR (rad)",100,-0.1,0.1);
+  TH1D *h_hyptar = new TH1D("h_hyptar","HMS YPTAR (rad)",100,-0.08,0.08);
+  TH1D *h_hytar = new TH1D("h_hytar","HMS YTAR (cm)",100,-12.0,12.0);
+
+  TH1D *h_pdelta = new TH1D("h_pdelta","SHMS DELTA (%)",100,-12,12);
+  TH1D *h_pxptar = new TH1D("h_pxptar","SHMS XPTAR (rad)",100,-0.06,0.06);
+  TH1D *h_pyptar = new TH1D("h_pyptar","SHMS YPTAR (rad)",100,-0.06,0.06);
+  TH1D *h_pytar = new TH1D("h_pytar","SHMS YTAR (cm)",100,-12.0,12.0);
+
+  TH1D *h_Emd = new TH1D("h_Emd","Missing Energy (GeV)",200,-0.2,0.2);
+  TH1D *h_Wd = new TH1D("h_Wd","W (GeV)", 150, 0, 2);
+  TH1D *h_pmd = new TH1D("h_pmd","Pm (GeV/c)", 100, -0.2, 0.2);
+  TH1D *h1PcointimeROC1 = new TH1D("SHMS ROC1 Corrected Coin Time","SHMS ROC1 Corrected Coin Time; cointime [ns]", 200, -10, 10);    
+  TH1D *h1PcointimeROC2 = new TH1D("SHMS ROC2 Corrected Coin Time","SHMS ROC2 Corrected Coin Time; cointime [ns]", 200, -10, 10); 
+
+
+  Double_t HgtrX, HgtrTh, HgtrY, HgtrPh, hdelta, PgtrX, PgtrTh, PgtrY, PgtrPh, pdelta;
+  Double_t HgtrBetaCalc, PgtrBetaCalc, evtType, PgtrP, HgtrP, PhodStatus, PhodStartTime, PhodfpHitsTime;
+  Double_t cointime, HhodStatus, HhodStartTime, HhodfpHitsTime, SHMSpartMass, HMSpartMass;
+  Double_t pkinW, pEm, pPm, pbeta, hbeta, hcalepr, hcaletot, hcernpe, pcaletot, pcalepr, pcernpe;
+  Double_t TcoinpTRIG1_ROC1_tdcTimeRaw, TcoinpTRIG4_ROC1_tdcTimeRaw, TcoinpTRIG1_ROC2_tdcTimeRaw;
+  Double_t TcoinhTRIG1_ROC1_tdcTimeRaw, TcoinhTRIG1_ROC2_tdcTimeRaw, TcoinhTRIG4_ROC1_tdcTimeRaw;
+  Double_t TcoinhTRIG4_ROC2_tdcTimeRaw, TcoinpTRIG4_ROC2_tdcTimeRaw;
+
+  int cnts=0;
+  TCut hpdelta;
+  TCut evtCut;                                                                   
+  TCut eBetaCut;                                                                 
+  TCut pBetaCut;                                                                 
+  TCut cerCut;                                                                   
+  TCut calCut;                                                                   
+  TCut hodoTimeCut;
+  TCut Wcut;
+  TCut Emcut;
+  TCut Pmcut;                                                              
+
+  tt->SetBranchAddress("P.gtr.p", &PgtrP); 
+  tt->SetBranchAddress("H.gtr.p", &HgtrP); 
+  tt->SetBranchAddress("P.gtr.beta", &pbeta);                                                                                 
+  tt->SetBranchAddress("H.gtr.beta", &hbeta); 
+  tt->SetBranchAddress("H.gtr.dp", &hdelta);                                                                                
+  tt->SetBranchAddress("P.gtr.dp", &pdelta);                                                                                
+                                                                                                                            
+  tt->SetBranchAddress("P.cal.eprtracknorm", &pcalepr);                                                                    
+  tt->SetBranchAddress("P.cal.etottracknorm", &pcaletot);                                                                  
+  tt->SetBranchAddress("P.hgcer.npeSum", &pcernpe);                                                 
+                                                                                                             
+  tt->SetBranchAddress("H.cal.eprtracknorm", &hcalepr);                                            
+  tt->SetBranchAddress("H.cal.etottracknorm", &hcaletot);                                          
+  tt->SetBranchAddress("H.cer.npeSum", &hcernpe); 
+  tt->SetBranchAddress("H.kin.primary.W", &pkinW);                                                    
+  tt->SetBranchAddress("P.kin.secondary.emiss", &pEm);                                                    
+  tt->SetBranchAddress("P.kin.secondary.pmiss", &pPm);                                                    
+                                                                                                              
+  tt->SetBranchAddress("P.hod.goodstarttime", &PhodStatus);                                              
+  tt->SetBranchAddress("P.hod.starttime", &PhodStartTime);                                               
+  tt->SetBranchAddress("P.hod.fpHitsTime", &PhodfpHitsTime);                                             
+                                                                                                             
+  tt->SetBranchAddress("H.hod.goodstarttime", &HhodStatus);                                              
+  tt->SetBranchAddress("H.hod.starttime", &HhodStartTime);                                               
+  tt->SetBranchAddress("H.hod.fpHitsTime", &HhodfpHitsTime);                                             
+                                                                                                             
+  tt->SetBranchAddress("H.gtr.x", &HgtrX);                                                               
+  tt->SetBranchAddress("H.gtr.th", &HgtrTh);                                                             
+  tt->SetBranchAddress("H.gtr.y", &HgtrY);                                                               
+  tt->SetBranchAddress("H.gtr.ph", &HgtrPh);                                                             
+
+  tt->SetBranchAddress("P.gtr.x", &PgtrX);                                                               
+  tt->SetBranchAddress("P.gtr.th", &PgtrTh);                                                             
+  tt->SetBranchAddress("P.gtr.y", &PgtrY);                                                               
+  tt->SetBranchAddress("P.gtr.ph", &PgtrPh);                                                             
+                                                                                                             
+  tt->SetBranchAddress("T.coin.pTRIG1_ROC1_tdcTimeRaw", &TcoinpTRIG1_ROC1_tdcTimeRaw);                   
+  tt->SetBranchAddress("T.coin.pTRIG4_ROC1_tdcTimeRaw", &TcoinpTRIG4_ROC1_tdcTimeRaw);
+  tt->SetBranchAddress("T.coin.pTRIG1_ROC2_tdcTimeRaw", &TcoinpTRIG1_ROC2_tdcTimeRaw);                   
+  tt->SetBranchAddress("T.coin.pTRIG4_ROC2_tdcTimeRaw", &TcoinpTRIG4_ROC2_tdcTimeRaw);                   
+                                                                                                             
+  tt->SetBranchAddress("T.coin.hTRIG1_ROC1_tdcTimeRaw", &TcoinhTRIG1_ROC1_tdcTimeRaw);                   
+  tt->SetBranchAddress("T.coin.hTRIG4_ROC1_tdcTimeRaw", &TcoinhTRIG4_ROC1_tdcTimeRaw);                   
+  tt->SetBranchAddress("T.coin.hTRIG1_ROC2_tdcTimeRaw", &TcoinhTRIG1_ROC2_tdcTimeRaw);                   
+  tt->SetBranchAddress("T.coin.hTRIG4_ROC2_tdcTimeRaw", &TcoinhTRIG4_ROC2_tdcTimeRaw);                   
+
+   SHMSpartMass = 0.93827208; // proton mass in GeV/c^2                 
+   HMSpartMass = 0.000510998; // electron mass in GeV/c^2                 
+   hpdelta = "P.gtr.dp > -10 && P.gtr.dp < 10 && H.gtr.dp > -8 && H.gtr.dp < 8";
+   eBetaCut = "P.gtr.beta > 0.8 && P.gtr.beta < 1.3";                        
+   pBetaCut = "H.gtr.beta > 0.8 &&  H.gtr.beta < 1.3";                       
+   cerCut = "P.hgcer.npeSum < 0.1 && H.cer.npeSum > 0.5";                    
+   calCut = "H.cal.etottracknorm > 0.8 && H.cal.etottracknorm < 1.5 && H.cal.eprtracknorm  > 0.2";         
+   hodoTimeCut ="P.hod.goodstarttime == 1 && H.hod.goodstarttime == 1";      
+   Wcut = "H.kin.primary.W >0.75 && H.kin.primary.W < 1.1";
+
+  
+
+  TCanvas *canvas1 = new TCanvas("canvas1","canvas1");                           
+  tt->Draw("P.hod.starttime >> SHMShodoStartTime", eBetaCut && pBetaCut && cerCut && calCut && hodoTimeCut);  
+  TH1D *h1PhodoStartTime = (TH1D*)gDirectory->Get("SHMShodoStartTime");
+  h1PhodoStartTime->GetXaxis()->SetTitle("SHMS hodo start time [ns]");           
+  Double_t PhodoStartTimeMean = h1PhodoStartTime->GetMean();                     
+  TCanvas *canvas2 = new TCanvas("canvas2","canvas2");                           
+  tt->Draw("H.hod.starttime >> HMShodoStartTime", eBetaCut && pBetaCut && cerCut && calCut && hodoTimeCut);  
+  TH1D *h1HhodoStartTime = (TH1D*)gDirectory->Get("HMShodoStartTime");           
+  h1HhodoStartTime->GetXaxis()->SetTitle("HMS hodo start time [ns]");            
+  Double_t HhodoStartTimeMean = h1HhodoStartTime->GetMean();                     
+
+ 
+  Double_t pOffset = 3.0; //9.5 + 10;  // in ns                                  
+  Double_t hOffset = 335;                                                        
+  Double_t speedOfLight = 29.9792; // in cm/ns                                   
+  Double_t SHMScentralPathLen = 18.1*100;  // SHMS Target to focal plane path length converted to cm  
+  Double_t SHMSpathLength = 18.1*100;      // For now assume that it's same as SHMScentralPathLen  
+  Double_t HMScentralPathLen = 22*100;     // HMS Target to focal plane path length converted to cm
+  Double_t DeltaHMSpathLength;             // For now assume that it's same as HMScentralPathLen 
+  Double_t SHMScoinCorr = 0.0;                                                   
+  Double_t HMScoinCorr = 0.0;                                                    
+  Double_t SHMSrawCoinTimeROC1;                                                  
+  Double_t SHMSrawCoinTimeROC2;                                                  
+  Double_t HMSrawCoinTimeROC1;                                                   
+  Double_t HMSrawCoinTimeROC2;                                                   
+                                                                                   
+  Double_t SHMScorrCoinTimeROC1;                                                 
+  Double_t SHMScorrCoinTimeROC2;                                                 
+  Double_t HMScorrCoinTimeROC1;                                                  
+  Double_t HMScorrCoinTimeROC2;                                                  
+ 
+  for (int kk=0; kk<nentriesD; kk++){
+    tt->GetEntry(kk);
+    if (kk % 50000 == 0) cout << kk*100/nentriesD << "   % of data done" << endl;
+      evtType = tt->GetLeaf("fEvtHdr.fEvtType")->GetValue(); 
+    if (pbeta>0.8 && pbeta<1.3 && hbeta>0.8 && hbeta<1.2 && hcernpe>0.1 && hcaletot >0.8 && hcaletot<1.2 && PhodStatus == 1 && HhodStatus ==1 && hdelta > -10 && hdelta < 10 && pdelta > -12 && pdelta < 12 && pcernpe < 0.1) 
+    { 
+	DeltaHMSpathLength = 12.462*HgtrTh + 0.1138*HgtrTh*HgtrX - 0.0154*HgtrX - 72.292*HgtrTh*HgtrTh - 0.0000544*HgtrX*HgtrX - 116.52*HgtrPh*HgtrPh;               
+      PgtrBetaCalc = PgtrP/sqrt(PgtrP*PgtrP + SHMSpartMass*SHMSpartMass);        
+      HgtrBetaCalc = HgtrP/sqrt(HgtrP*HgtrP + HMSpartMass*HMSpartMass);          
+      SHMScoinCorr = SHMScentralPathLen / (speedOfLight*PgtrBetaCalc) + (SHMSpathLength - SHMScentralPathLen) / speedOfLight*PgtrBetaCalc + (PhodoStartTimeMean - PhodfpHitsTime);                                                                   
+      HMScoinCorr = HMScentralPathLen / (speedOfLight*HgtrBetaCalc) + DeltaHMSpathLength / speedOfLight*HgtrBetaCalc + (HhodoStartTimeMean - HhodfpHitsTime);      
+      SHMScorrCoinTimeROC1 = (TcoinpTRIG1_ROC1_tdcTimeRaw*0.1 - SHMScoinCorr) - (TcoinpTRIG4_ROC1_tdcTimeRaw*0.1 - HMScoinCorr) - pOffset; // 0.1 to convert to ns 
+      SHMScorrCoinTimeROC2 = (TcoinpTRIG1_ROC2_tdcTimeRaw*0.1 - SHMScoinCorr) - (TcoinpTRIG4_ROC2_tdcTimeRaw*0.1 - HMScoinCorr) - pOffset;                         
+      h1PcointimeROC1->Fill(SHMScorrCoinTimeROC1);                               
+      h1PcointimeROC2->Fill(SHMScorrCoinTimeROC2);
+      if (targ == 1)
+       {
+       if (pkinW > 0.75 && pkinW < 1.15)
+        {
+        h_hdelta->Fill(hdelta);
+        h_hxptar->Fill(HgtrPh);
+        h_hyptar->Fill(HgtrTh);
+        h_hytar->Fill(HgtrY);
+        h_pdelta->Fill(pdelta);
+        h_pxptar->Fill(PgtrPh);
+        h_pyptar->Fill(PgtrTh);
+        h_pytar->Fill(PgtrY);
+        h_Emd->Fill(pEm+0.025);
+        h_Wd->Fill(pkinW);
+        h_pmd->Fill(pPm-0.04);
+        cnts++;
+        }
+      }
+      else if (targ == 2)
+      {
+       if (pkinW > 0.5 && pkinW < 1.5)
+        {
+        h_hdelta->Fill(hdelta);
+        h_hxptar->Fill(HgtrPh);
+        h_hyptar->Fill(HgtrTh);
+        h_hytar->Fill(HgtrY);
+        h_pdelta->Fill(pdelta);
+        h_pxptar->Fill(PgtrPh);
+        h_pyptar->Fill(PgtrTh);
+        h_pytar->Fill(PgtrY);
+        h_Emd->Fill(pEm+0.025);
+        h_Wd->Fill(pkinW);
+        h_pmd->Fill(pPm-0.04);
+        cnts++;
+        }
+      }
+    }
+      
+  }
+
+
+
+  gROOT->SetBatch(kFALSE);
+
+  TCanvas *can1 = new TCanvas ("can1","can1");
+  can1->Divide(4,2);
+
+  can1->cd(1);
+  h_hdelta->Draw();  
+  can1->cd(2);
+  h_hxptar->Draw();  
+  can1->cd(3);
+  h_hyptar->Draw();  
+  can1->cd(4);
+  h_hytar->Draw();  
+  can1->cd(5);
+  h_pdelta->Draw();  
+  can1->cd(6);
+  h_pxptar->Draw();  
+  can1->cd(7);
+  h_pyptar->Draw();  
+  can1->cd(8);
+  h_pytar->Draw();  
+  //  can1->SaveAs("tmp1.pdf");
+
+  TCanvas *can2 = new TCanvas ("can2","can2");
+  can2->Divide(2,2);
+  can2->cd(1);
+  h_Wd->Draw();
+  can2->cd(2); 
+  h_Emd->Draw(); 
+  can2->cd(3); 
+  h_pmd->Draw(); 
+  can2->cd(4); 
+  h1PcointimeROC1->Draw();
+
+  // can2->SaveAs("tmp.pdf");
+
+  fout->Write();
+  //  fout->Close();
+  cout << "-------------------------------------------------------------------------------------------------------" << endl;
+  cout << "NOTE:>>>>  " << cnts <<"  <<<<<  GOOD EVENTS have passed all cuts (update the white board and excel sheet)" << endl;
+  cout << "-------------------------------------------------------------------------------------------------------" << endl;
+
+}
diff --git a/SCRIPTS/COIN/MONITOR/Bean_counter_carbon.C b/SCRIPTS/COIN/MONITOR/Bean_counter_carbon.C
new file mode 100644
index 00000000..b48402a3
--- /dev/null
+++ b/SCRIPTS/COIN/MONITOR/Bean_counter_carbon.C
@@ -0,0 +1,230 @@
+// Filename: Bean_counter_carbon.C
+// Description: delta, xptar,yptar, ytar distributions for SHMS and HMS and W, Em, Pm and Cointime distributions 
+// are plotted and the number of good counts are printed out to add to the count of good events.
+// Needs runnumber, 
+
+void Bean_counter_carbon(Int_t runNumber){
+
+ //read the input file from data
+  TString fileNameD = "/net/cdaq/cdaql3data/cdaq/hallc-online/ROOTfiles/" ;
+  fileNameD += "coin_replay_production_"; //read the root file from data
+  fileNameD += runNumber; //read the root file from data
+  fileNameD += "_-1.root"; //read the root file from data
+  TFile *f1 = new TFile(fileNameD);
+  TTree *tt = (TTree*)f1->Get("T");
+  //get the relevant branch
+  int nentriesD = tt->GetEntries();
+  cout<<"Entries:\t"<<nentriesD<<endl;
+  TString fileO;
+   fileO += "/net/cdaq/cdaql3data/cdaq/hallc-online/run_"; //read the root file from data
+   fileO += runNumber; //read the root file from data
+   fileO += "_hists_coin.root"; //read the root file from data
+
+  TFile *fout = new TFile(fileO,"RECREATE");
+
+  gROOT->SetBatch(kTRUE);
+
+  
+  //make histograms:
+  TH1D *h_hdelta = new TH1D("h_hdelta","HMS DELTA (%)",100,-12,12);
+  TH1D *h_hxptar = new TH1D("h_hxptar","HMS XPTAR (rad)",100,-0.1,0.1);
+  TH1D *h_hyptar = new TH1D("h_hyptar","HMS YPTAR (rad)",100,-0.08,0.08);
+  TH1D *h_hytar = new TH1D("h_hytar","HMS YTAR (cm)",100,-12.0,12.0);
+
+  TH1D *h_pdelta = new TH1D("h_pdelta","SHMS DELTA (%)",100,-12,12);
+  TH1D *h_pxptar = new TH1D("h_pxptar","SHMS XPTAR (rad)",100,-0.06,0.06);
+  TH1D *h_pyptar = new TH1D("h_pyptar","SHMS YPTAR (rad)",100,-0.06,0.06);
+  TH1D *h_pytar = new TH1D("h_pytar","SHMS YTAR (cm)",100,-12.0,12.0);
+
+  TH1D *h_Emd = new TH1D("h_Emd","Missing Energy (GeV)",200,-0.2,0.2);
+  TH1D *h_Wd = new TH1D("h_Wd","W (GeV)", 150, 0, 2);
+  TH1D *h_pmd = new TH1D("h_pmd","Pm (GeV/c)", 100, -0.2, 0.2);
+  TH1D *h1PcointimeROC1 = new TH1D("SHMS ROC1 Corrected Coin Time","SHMS ROC1 Corrected Coin Time; cointime [ns]", 200, -10, 10);    
+  TH1D *h1PcointimeROC2 = new TH1D("SHMS ROC2 Corrected Coin Time","SHMS ROC2 Corrected Coin Time; cointime [ns]", 200, -10, 10); 
+
+
+  Double_t HgtrX, HgtrTh, HgtrY, HgtrPh, hdelta, PgtrX, PgtrTh, PgtrY, PgtrPh, pdelta;// Ep, Epp, p_e, p_p, defEm;
+  Double_t HgtrBetaCalc, PgtrBetaCalc, evtType, PgtrP, HgtrP, PhodStatus, PhodStartTime, PhodfpHitsTime;
+  Double_t cointime, HhodStatus, HhodStartTime, HhodfpHitsTime, SHMSpartMass, HMSpartMass;
+  Double_t pkinW, pEm, pPm, pbeta, hbeta, hcalepr, hcaletot, hcernpe, pcaletot, pcalepr, pcernpe;
+  Double_t TcoinpTRIG1_ROC1_tdcTimeRaw, TcoinpTRIG4_ROC1_tdcTimeRaw, TcoinpTRIG1_ROC2_tdcTimeRaw;
+  Double_t TcoinhTRIG1_ROC1_tdcTimeRaw, TcoinhTRIG1_ROC2_tdcTimeRaw, TcoinhTRIG4_ROC1_tdcTimeRaw;
+  Double_t TcoinhTRIG4_ROC2_tdcTimeRaw, TcoinpTRIG4_ROC2_tdcTimeRaw;
+
+  int cnts=0;
+  TCut hpdelta;
+  TCut evtCut;                                                                   
+  TCut eBetaCut;                                                                 
+  TCut pBetaCut;                                                                 
+  TCut cerCut;                                                                   
+  TCut calCut;                                                                   
+  TCut hodoTimeCut;
+  TCut Wcut;
+  TCut Emcut;
+  TCut Pmcut;                                                              
+
+  tt->SetBranchAddress("P.gtr.p", &PgtrP); 
+  tt->SetBranchAddress("H.gtr.p", &HgtrP); 
+  tt->SetBranchAddress("P.gtr.beta", &pbeta);                                                                                 
+  tt->SetBranchAddress("H.gtr.beta", &hbeta); 
+  tt->SetBranchAddress("H.gtr.dp", &hdelta);                                                                                
+  tt->SetBranchAddress("P.gtr.dp", &pdelta);                                                                                
+                                                                                                                            
+  tt->SetBranchAddress("P.cal.eprtracknorm", &pcalepr);                                                                    
+  tt->SetBranchAddress("P.cal.etottracknorm", &pcaletot);                                                                  
+  tt->SetBranchAddress("P.hgcer.npeSum", &pcernpe);                                                 
+                                                                                                             
+  tt->SetBranchAddress("H.cal.eprtracknorm", &hcalepr);                                            
+  tt->SetBranchAddress("H.cal.etottracknorm", &hcaletot);                                          
+  tt->SetBranchAddress("H.cer.npeSum", &hcernpe); 
+  tt->SetBranchAddress("H.kin.primary.W", &pkinW);                                                    
+  tt->SetBranchAddress("P.kin.secondary.emiss", &pEm);                                                    
+  tt->SetBranchAddress("P.kin.secondary.pmiss", &pPm);                                                    
+                                                                                                              
+  tt->SetBranchAddress("P.hod.goodstarttime", &PhodStatus);                                              
+  tt->SetBranchAddress("P.hod.starttime", &PhodStartTime);                                               
+  tt->SetBranchAddress("P.hod.fpHitsTime", &PhodfpHitsTime);                                             
+                                                                                                             
+  tt->SetBranchAddress("H.hod.goodstarttime", &HhodStatus);                                              
+  tt->SetBranchAddress("H.hod.starttime", &HhodStartTime);                                               
+  tt->SetBranchAddress("H.hod.fpHitsTime", &HhodfpHitsTime);                                             
+                                                                                                             
+  tt->SetBranchAddress("H.gtr.x", &HgtrX);                                                               
+  tt->SetBranchAddress("H.gtr.th", &HgtrTh);                                                             
+  tt->SetBranchAddress("H.gtr.y", &HgtrY);                                                               
+  tt->SetBranchAddress("H.gtr.ph", &HgtrPh);                                                             
+
+  tt->SetBranchAddress("P.gtr.x", &PgtrX);                                                               
+  tt->SetBranchAddress("P.gtr.th", &PgtrTh);                                                             
+  tt->SetBranchAddress("P.gtr.y", &PgtrY);                                                               
+  tt->SetBranchAddress("P.gtr.ph", &PgtrPh);                                                             
+                                                                                                             
+  tt->SetBranchAddress("T.coin.pTRIG1_ROC1_tdcTimeRaw", &TcoinpTRIG1_ROC1_tdcTimeRaw);                   
+  tt->SetBranchAddress("T.coin.pTRIG4_ROC1_tdcTimeRaw", &TcoinpTRIG4_ROC1_tdcTimeRaw);
+  tt->SetBranchAddress("T.coin.pTRIG1_ROC2_tdcTimeRaw", &TcoinpTRIG1_ROC2_tdcTimeRaw);                   
+  tt->SetBranchAddress("T.coin.pTRIG4_ROC2_tdcTimeRaw", &TcoinpTRIG4_ROC2_tdcTimeRaw);                   
+                                                                                                             
+  tt->SetBranchAddress("T.coin.hTRIG1_ROC1_tdcTimeRaw", &TcoinhTRIG1_ROC1_tdcTimeRaw);                   
+  tt->SetBranchAddress("T.coin.hTRIG4_ROC1_tdcTimeRaw", &TcoinhTRIG4_ROC1_tdcTimeRaw);                   
+  tt->SetBranchAddress("T.coin.hTRIG1_ROC2_tdcTimeRaw", &TcoinhTRIG1_ROC2_tdcTimeRaw);                   
+  tt->SetBranchAddress("T.coin.hTRIG4_ROC2_tdcTimeRaw", &TcoinhTRIG4_ROC2_tdcTimeRaw);                   
+
+   SHMSpartMass = 0.93827208; // proton mass in GeV/c^2                 
+   HMSpartMass = 0.000510998; // electron mass in GeV/c^2                 
+   hpdelta = "P.gtr.dp > -10 && P.gtr.dp < 10 && H.gtr.dp > -8 && H.gtr.dp < 8";
+   eBetaCut = "P.gtr.beta > 0.8 && P.gtr.beta < 1.3";                        
+   pBetaCut = "H.gtr.beta > 0.8 &&  H.gtr.beta < 1.3";                       
+   cerCut = "P.hgcer.npeSum < 0.1 && H.cer.npeSum > 0.5";                    
+   calCut = "H.cal.etottracknorm > 0.8 && H.cal.etottracknorm < 1.5 && H.cal.eprtracknorm  > 0.2";         
+   hodoTimeCut ="P.hod.goodstarttime == 1 && H.hod.goodstarttime == 1";      
+   Wcut = "H.kin.primary.W >0.75 && H.kin.primary.W < 1.1";
+
+  
+
+  TCanvas *canvas1 = new TCanvas("canvas1","canvas1");                           
+  tt->Draw("P.hod.starttime >> SHMShodoStartTime", eBetaCut && pBetaCut && cerCut && calCut && hodoTimeCut);  
+  TH1D *h1PhodoStartTime = (TH1D*)gDirectory->Get("SHMShodoStartTime");
+  h1PhodoStartTime->GetXaxis()->SetTitle("SHMS hodo start time [ns]");           
+  Double_t PhodoStartTimeMean = h1PhodoStartTime->GetMean();                     
+  TCanvas *canvas2 = new TCanvas("canvas2","canvas2");                           
+  tt->Draw("H.hod.starttime >> HMShodoStartTime", eBetaCut && pBetaCut && cerCut && calCut && hodoTimeCut);  
+  TH1D *h1HhodoStartTime = (TH1D*)gDirectory->Get("HMShodoStartTime");           
+  h1HhodoStartTime->GetXaxis()->SetTitle("HMS hodo start time [ns]");            
+  Double_t HhodoStartTimeMean = h1HhodoStartTime->GetMean();                     
+
+ 
+  Double_t pOffset = 3.0; //9.5 + 10;  // in ns                                  
+  Double_t hOffset = 335;                                                        
+  Double_t speedOfLight = 29.9792; // in cm/ns                                   
+  Double_t SHMScentralPathLen = 18.1*100;  // SHMS Target to focal plane path length converted to cm  
+  Double_t SHMSpathLength = 18.1*100;      // For now assume that it's same as SHMScentralPathLen  
+  Double_t HMScentralPathLen = 22*100;     // HMS Target to focal plane path length converted to cm
+  Double_t DeltaHMSpathLength;             // For now assume that it's same as HMScentralPathLen 
+  Double_t SHMScoinCorr = 0.0;                                                   
+  Double_t HMScoinCorr = 0.0;                                                    
+  Double_t SHMSrawCoinTimeROC1;                                                  
+  Double_t SHMSrawCoinTimeROC2;                                                  
+  Double_t HMSrawCoinTimeROC1;                                                   
+  Double_t HMSrawCoinTimeROC2;                                                   
+                                                                                   
+  Double_t SHMScorrCoinTimeROC1;                                                 
+  Double_t SHMScorrCoinTimeROC2;                                                 
+  Double_t HMScorrCoinTimeROC1;                                                  
+  Double_t HMScorrCoinTimeROC2;                                                  
+ 
+  for (int kk=0; kk<nentriesD; kk++){
+    tt->GetEntry(kk);
+    if (kk % 50000 == 0) cout << kk*100/nentriesD << "   % of data done" << endl;
+      evtType = tt->GetLeaf("fEvtHdr.fEvtType")->GetValue(); 
+       if (pbeta>0.7 && pbeta<1.5 && hbeta>0.8 && hbeta<1.2 && hcernpe>0 && hcaletot >0.6 && hcaletot<1.5 && PhodStatus == 1 && HhodStatus ==1 && hdelta > -10 && hdelta < 10 && pdelta > -12 && pdelta < 12 && pcernpe < 0.5) 
+      { 
+	DeltaHMSpathLength = 12.462*HgtrTh + 0.1138*HgtrTh*HgtrX - 0.0154*HgtrX - 72.292*HgtrTh*HgtrTh - 0.0000544*HgtrX*HgtrX - 116.52*HgtrPh*HgtrPh;               
+      PgtrBetaCalc = PgtrP/sqrt(PgtrP*PgtrP + SHMSpartMass*SHMSpartMass);        
+      HgtrBetaCalc = HgtrP/sqrt(HgtrP*HgtrP + HMSpartMass*HMSpartMass);          
+      SHMScoinCorr = SHMScentralPathLen / (speedOfLight*PgtrBetaCalc) + (SHMSpathLength - SHMScentralPathLen) / speedOfLight*PgtrBetaCalc + (PhodoStartTimeMean - PhodfpHitsTime);                                                                   
+      HMScoinCorr = HMScentralPathLen / (speedOfLight*HgtrBetaCalc) + DeltaHMSpathLength / speedOfLight*HgtrBetaCalc + (HhodoStartTimeMean - HhodfpHitsTime);      
+      SHMScorrCoinTimeROC1 = (TcoinpTRIG1_ROC1_tdcTimeRaw*0.1 - SHMScoinCorr) - (TcoinpTRIG4_ROC1_tdcTimeRaw*0.1 - HMScoinCorr) - pOffset; // 0.1 to convert to ns 
+      SHMScorrCoinTimeROC2 = (TcoinpTRIG1_ROC2_tdcTimeRaw*0.1 - SHMScoinCorr) - (TcoinpTRIG4_ROC2_tdcTimeRaw*0.1 - HMScoinCorr) - pOffset;                         
+      h1PcointimeROC1->Fill(SHMScorrCoinTimeROC1);                               
+      h1PcointimeROC2->Fill(SHMScorrCoinTimeROC2);
+      h_hdelta->Fill(hdelta);
+      h_hxptar->Fill(HgtrPh);
+      h_hyptar->Fill(HgtrTh);
+      h_hytar->Fill(HgtrY);
+      h_pdelta->Fill(pdelta);
+      h_pxptar->Fill(PgtrPh);
+      h_pyptar->Fill(PgtrTh);
+      h_pytar->Fill(PgtrY);
+      h_Emd->Fill(pEm+0.025);
+      h_Wd->Fill(pkinW);
+      h_pmd->Fill(pPm-0.04);
+      cnts++;
+      }
+      
+  }
+
+
+
+  gROOT->SetBatch(kFALSE);
+
+  TCanvas *can1 = new TCanvas ("can1","can1");
+  can1->Divide(4,2);
+
+  can1->cd(1);
+  h_hdelta->Draw();  
+  can1->cd(2);
+  h_hxptar->Draw();  
+  can1->cd(3);
+  h_hyptar->Draw();  
+  can1->cd(4);
+  h_hytar->Draw();  
+  can1->cd(5);
+  h_pdelta->Draw();  
+  can1->cd(6);
+  h_pxptar->Draw();  
+  can1->cd(7);
+  h_pyptar->Draw();  
+  can1->cd(8);
+  h_pytar->Draw();  
+  //  can1->SaveAs("tmp1.pdf");
+
+  TCanvas *can2 = new TCanvas ("can2","can2");
+  can2->Divide(2,2);
+  can2->cd(1);
+  h_Wd->Draw();
+  can2->cd(2); 
+  h_Emd->Draw(); 
+  can2->cd(3); 
+  h_pmd->Draw(); 
+  can2->cd(4); 
+  h1PcointimeROC1->Draw();
+
+  // can2->SaveAs("tmp.pdf");
+
+  fout->Write();
+  //  fout->Close();
+  cout << "-------------------------------------------------------------------------------------------------------" << endl;
+  cout << "NOTE:>>>>  " << cnts <<"  <<<<<  GOOD EVENTS have passed all cuts (update the white board and excel sheet)" << endl;
+  cout << "-------------------------------------------------------------------------------------------------------" << endl;
+
+}
diff --git a/SCRIPTS/COIN/MONITOR/coin_histo.C b/SCRIPTS/COIN/MONITOR/coin_histo.C
new file mode 100644
index 00000000..33dc1f0a
--- /dev/null
+++ b/SCRIPTS/COIN/MONITOR/coin_histo.C
@@ -0,0 +1,119 @@
+// Small code to check the histograms for the coincidence runs 
+
+#include "TFile.h"
+#include "TTree.h"
+#include "TH1F.h"
+#include "TF1.h"
+#include "TGraph.h"
+#include <fstream>
+#include <iostream>
+#include <TROOT.h>
+
+
+void 
+
+coin_histo(){
+
+  Int_t run_NUM ;
+  cout << "hms_run_NUM "<< endl;
+  cin >> run_NUM ; 
+  
+  
+  TFile *f = new TFile(Form("/net/cdaq/cdaql3data/cdaq/hallc-online/ROOTfiles/coin_replay_production_%d_-1.root",run_NUM),"READ"); // %d : expects integer; %f expects float
+  
+  
+  TTree *T = (TTree*)f->Get("T");
+  
+  
+  Int_t totev = T->GetEntries();
+  cout << totev << endl;
+  
+
+  // Read the branch 
+  
+  Double_t HkinQ2;
+  Double_t HkinW;
+  Double_t pkinpmiss;
+  Double_t pkinemiss; 
+  Double_t Hgtrdp;
+  Double_t Hgtrbeta;
+  Double_t Pgtrdp;
+  Double_t Pgtrbeta;
+  Double_t Hgtrph;
+  Double_t Hgtrth;
+  Double_t Hgtry;
+  Double_t Pgtrph;
+  Double_t Pgtrth;
+  Double_t Pgtry;
+  Double_t hcernpe; 
+  Double_t pcernpe;
+  Double_t hcalepr;
+  Double_t hcaletot;
+  
+
+
+
+  T->SetBranchAddress("H.kin.primary.Q2", &HkinQ2);  
+  T->SetBranchAddress("H.kin.primary.W", &HkinW); 
+  T->SetBranchAddress("P.kin.secondary.pmiss",&pkinpmiss);
+  T->SetBranchAddress("P.kin.secondary.emiss",&pkinemiss);
+  T->SetBranchAddress("H.gtr.dp",&Hgtrdp);
+  T->SetBranchAddress("H.gtr.beta",&Hgtrbeta);
+  T->SetBranchAddress("P.gtr.dp",&Pgtrdp);
+  T->SetBranchAddress("P.gtr.beta",&Pgtrbeta);
+  T->SetBranchAddress("H.gtr.ph",&Hgtrph);
+  T->SetBranchAddress("H.gtr.th",&Hgtrth);
+  T->SetBranchAddress("H.gtr.y",&Hgtry);
+  T->SetBranchAddress("P.gtr.ph",&Pgtrph);
+  T->SetBranchAddress("P.gtr.th",&Pgtrth);
+  T->SetBranchAddress("P.gtr.y",&Pgtry);
+  T->SetBranchAddress("H.cal.eprtracknorm", &hcalepr);
+  T->SetBranchAddress("P.hgcer.npeSum", &pcernpe);
+  T->SetBranchAddress("H.cer.npeSum", &hcernpe);
+  T->SetBranchAddress("H.cal.etottracknorm", &hcaletot);
+
+  //Creating the histogram 
+  TH1F* hHkinQ2 =new TH1F("HkinQ2","HkinQ2",50,5,15);
+  TH1F* hHkinW = new TH1F("HkinW","HkinW",50,0,2);
+  TH1F* hpkinpmiss = new TH1F("pkinpmiss","pkinpmiss",50,-0.2,0.2);
+  TH1F* hpkinemiss = new TH1F("pkinemiss","pkinemiss",50,-100,100);
+  TH1F* hHgtrdp = new TH1F("Hgtrdp","Hgtrdp",50,-15,15);
+  TH1F* hHgtrbeta = new TH1F("Hgtrbeta","hgtrbeta",50,0.5,1.5);
+  TH1F* hPgtrdp = new TH1F("Pgtrdp","Pgtrdp",100,-15,15);
+  TH1F* hPgtrbeta= new TH1F("Pgtrbeta","Pgtrbeta",50,0.5,1.5);
+  TH1F* hHgtrph = new TH1F("Hgtrph","Hgtrph",50,-0.1,0.1);
+  TH1F* hHgtrth= new TH1F("Hgtrth","Hgtrth",50,-0.1,0.1);
+  TH1F* hHgtry=new TH1F("Hgtry","Hgtry",50,-10,10);
+  TH1F* hPgtrph = new TH1F("Pgtrph","Pgtrph",50, -0.1, 0.1);
+  TH1F* hPgtrth= new TH1F("Pgtrth","Pgtrth",50,-0.1,0.1);
+  TH1F* hPgtry=new TH1F("Pgtry","Pgtry",50,-10,10);
+  TH1F* hHcernpe=new TH1F("hcernpe","hcernpe",50,0,20);
+  TH1F* hPcernpe=new TH1F("pcernpe","pcernpe",50,0,20);
+  TH1F* hHcaletot=new TH1F("hcaletot","hcaletot",50,0,2.0);
+  TH1F* hHcalepr=new TH1F("hcalepr","hcalepr",50,0,2.0);
+  
+  //Fill the Histogram 
+  for (Int_t iev = 0 ; iev < totev ;iev ++){
+    T->GetEntry(iev);
+    hHcalepr->Fill(hcalepr);
+    hHcaletot->Fill(hcaletot);
+    hHcernpe->Fill(hcernpe);
+    hPcernpe->Fill(pcernpe);
+    hHkinQ2 ->Fill(HkinQ2);
+    hHkinW ->Fill(HkinW);
+    hpkinpmiss ->Fill(pkinpmiss);
+    hpkinemiss ->Fill(pkinemiss);
+    hHgtrdp ->Fill(Hgtrdp);
+    hHgtrbeta -> Fill(Hgtrbeta);
+    hPgtrdp -> Fill(Pgtrdp);
+    hPgtrbeta-> Fill(Pgtrbeta);
+    hHgtrph -> Fill(Hgtrph);
+    hHgtrth-> Fill(Hgtrth);
+    hHgtry->Fill(Hgtry);
+    hPgtrph->Fill(Pgtrph);
+    hPgtrth->Fill(Pgtrth);
+    hPgtry->Fill(Pgtry);
+    
+    
+  }
+}
diff --git a/SCRIPTS/COIN/MONITOR/coin_yield.root b/SCRIPTS/COIN/MONITOR/coin_yield.root
new file mode 100644
index 0000000000000000000000000000000000000000..a95e65fcc1d0ca6cfb100fe174b6ab654dfa0dd7
GIT binary patch
literal 6904
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

literal 0
HcmV?d00001

diff --git a/SCRIPTS/COIN/MONITOR/temp.sh b/SCRIPTS/COIN/MONITOR/temp.sh
new file mode 100755
index 00000000..d0e2c2ef
--- /dev/null
+++ b/SCRIPTS/COIN/MONITOR/temp.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+../../../hcana -q "yield_calc.C(2023,1,1)"
+../../../hcana -q "yield_calc.C(2046,1,1)"
+../../../hcana -q "yield_calc.C(2047,1,1)"
+../../../hcana -q "yield_calc.C(2048,1,1)"
+../../../hcana -q "yield_calc.C(2049,1,1)"
+../../../hcana -q "yield_calc.C(2050,1,1)"
+../../../hcana -q "yield_calc.C(2051,1,1)"
+../../../hcana -q "yield_calc.C(2052,1,1)"
+../../../hcana -q "yield_calc.C(2053,1,1)"
+../../../hcana -q "yield_calc.C(2054,1,1)"
+../../../hcana -q "yield_calc.C(2055,3,1)"
+../../../hcana -q "yield_calc.C(2056,2,1)"
diff --git a/SCRIPTS/COIN/MONITOR/yield.README b/SCRIPTS/COIN/MONITOR/yield.README
new file mode 100644
index 00000000..530f1cd0
--- /dev/null
+++ b/SCRIPTS/COIN/MONITOR/yield.README
@@ -0,0 +1,11 @@
+1) Calculate yield
+	1) ../hcana yield_calc.C
+	2) Enter run number
+	3) Enter index specifying target
+
+	It will warn you if you're overwriting a run already in coin_yield.root,
+	but this might be what you want to do!
+
+2) Plot yield per run
+	1) ../hcana yield_graph.C
+	2) Make sure yield hasn't fluctuated
diff --git a/SCRIPTS/COIN/MONITOR/yield_calc.C b/SCRIPTS/COIN/MONITOR/yield_calc.C
new file mode 100644
index 00000000..adf9043d
--- /dev/null
+++ b/SCRIPTS/COIN/MONITOR/yield_calc.C
@@ -0,0 +1,125 @@
+void yield_calc(Int_t RunNumber = 0, Int_t TargetType = 0, Int_t KinematicsType = 0)
+{
+
+	// Get RunNumber if not provided.
+	if(RunNumber == 0) {
+		cout << "Enter a Run Number (-1 to exit): ";
+		cin >> RunNumber;
+		if( RunNumber<=0 ) return;
+	}
+
+	// Get if not provided.
+	if(TargetType == 0) {
+		cout << "Enter a target (1=LH2, 2=6% Carbon, 3=dummy, -1 to exit): ";
+		cin >> TargetType;
+		if( TargetType<=0 ) return;
+	}
+
+	// Get KinematicsType if not provided.
+	//if(KinematicsType == 0) {
+	//	cout << "Enter a kinematics index (see yield.README; -1 to exit): ";
+	//	cin >> KinematicsType;
+	//	if( KinematicsType<=0 ) return;
+	//}
+
+	// Open root file
+	char* ROOTFileNamePattern = "../../../ROOTfiles/coin_replay_production_%d_-1.root";
+	TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber);
+	TFile* hcanaF  = new TFile(ROOTFileName);
+	TTree* tsp = (TTree*)hcanaF->Get("TSP");
+	TTree* tsh = (TTree*)hcanaF->Get("TSH");
+
+	// Set up tree variables
+	double pQ_BCM1, pQ_BCM2, pN_trig, pQ_avg;
+	tsp->SetBranchAddress("P.BCM1.scalerChargeCut",&pQ_BCM1);
+	tsp->SetBranchAddress("P.BCM2.scalerChargeCut",&pQ_BCM2);
+	tsp->SetBranchAddress("P.pTRIG6.scalerCut",&pN_trig);
+
+	double hQ_BCM1, hQ_BCM2, hN_trig, hQ_avg;
+	tsh->SetBranchAddress("H.BCM1.scalerChargeCut",&hQ_BCM1);
+	tsh->SetBranchAddress("H.BCM2.scalerChargeCut",&hQ_BCM2);
+	tsh->SetBranchAddress("H.hTRIG6.scalerCut",&hN_trig);
+
+	// correct value is last in the scaler tree?
+	int pN=tsp->GetEntries()-1; 
+	int hN=tsp->GetEntries()-1; 
+	tsp->GetEntry(pN);
+	tsh->GetEntry(hN);
+
+	// Yield per mC
+	double pYield = 1000 * pN_trig / ((pQ_BCM1 + pQ_BCM2)/2.0);
+	double hYield = 1000 * hN_trig / ((hQ_BCM1 + hQ_BCM2)/2.0);
+
+	delete hcanaF;
+
+	// Open old data, copy to new tree.
+	// We skip if an old datum's run number matches the one the user specified.
+	TFile* newYieldF = new TFile("coin_yield_new.root", "RECREATE");
+	TTree* TY_new = new TTree("Y","coin_yield tree");
+	int run_new, tgt_new, kin_new, pN_trig_new, hN_trig_new;
+	double pYpc_new, hYpc_new, pQ_new, hQ_new;
+	TY_new->Branch("run",&run_new);
+	TY_new->Branch("tgt",&tgt_new);
+	TY_new->Branch("kin",&kin_new);
+	TY_new->Branch("pYpc",&pYpc_new);
+	TY_new->Branch("hYpc",&hYpc_new);
+	TY_new->Branch("pN_trig",&pN_trig_new);
+	TY_new->Branch("hN_trig",&hN_trig_new);
+	TY_new->Branch("pQ",&pQ_new);
+	TY_new->Branch("hQ",&hQ_new);
+
+	TFile* yieldF = new TFile("coin_yield.root","READ");
+	TTree* TY_old = (TTree*)yieldF->Get("Y");
+
+	int run_old, tgt_old, kin_old, pN_trig_old, hN_trig_old;
+	double pYpc_old, hYpc_old, pQ_old, hQ_old;
+	TY_old->SetBranchAddress("run",&run_old);
+	TY_old->SetBranchAddress("tgt",&tgt_old);
+	TY_old->SetBranchAddress("kin",&kin_old);
+	TY_old->SetBranchAddress("pYpc",&pYpc_old);
+	TY_old->SetBranchAddress("hYpc",&hYpc_old);
+	TY_old->SetBranchAddress("pN_trig",&pN_trig_old);
+	TY_old->SetBranchAddress("hN_trig",&hN_trig_old);
+	TY_old->SetBranchAddress("pQ",&pQ_old);
+	TY_old->SetBranchAddress("hQ",&hQ_old);
+
+	newYieldF->cd();
+	for (int i=0; i<TY_old->GetEntries(); i++) {
+		TY_old->GetEntry(i);
+
+		// Skip if matches user specified run
+		if (run_old == RunNumber) {
+			cout << "WARNING: Overwriting run " << RunNumber << endl;
+			continue;
+		}
+
+		run_new     = run_old;
+		tgt_new     = tgt_old;
+		kin_new     = kin_old;
+		pYpc_new    = pYpc_old;
+		hYpc_new    = hYpc_old;
+		pN_trig_new = pN_trig_old;
+		hN_trig_new = pN_trig_old;
+		pQ_new      = pQ_old;
+		hQ_new      = hQ_old;
+
+		TY_new->Fill();
+	}
+
+	// Add user specified run
+	run_new     = RunNumber;
+	tgt_new     = TargetType;
+	kin_new     = KinematicsType;
+	pYpc_new    = pYield;
+	hYpc_new    = hYield;
+	pN_trig_new = pN_trig;
+	hN_trig_new = hN_trig;
+	pQ_new      = ((pQ_BCM1 + pQ_BCM2)/2.0) / 1000.0;
+	hQ_new      = ((hQ_BCM1 + hQ_BCM2)/2.0) / 1000.0;
+	TY_new->Fill();
+
+	// Rename new root file to old one
+	newYieldF->Write();
+	newYieldF->Close();
+	gSystem->Exec("mv coin_yield_new.root coin_yield.root");
+}
diff --git a/SCRIPTS/COIN/MONITOR/yield_graph.C b/SCRIPTS/COIN/MONITOR/yield_graph.C
new file mode 100644
index 00000000..9024e411
--- /dev/null
+++ b/SCRIPTS/COIN/MONITOR/yield_graph.C
@@ -0,0 +1,50 @@
+void yield_graph() {
+	TFile* yieldF = new TFile("coin_yield.root","READ");
+	TTree* TY=(TTree*)yieldF->Get("Y");
+
+	gStyle->SetOptTitle(kFALSE);
+	gStyle->SetPalette(1);
+
+	TCut hCut = "tgt==1";
+	Y->Draw("run:pYpc:(sqrt(pN_trig)/pQ)",hCut,"goff");
+	TGraphErrors* gHydrogen = new TGraphErrors(Y->GetEntries(),Y->GetV1(),Y->GetV2(),0,Y->GetV3());
+
+	TCut cCut = "tgt==2";
+	Y->Draw("run:pYpc:(sqrt(pN_trig)/pQ)",cCut,"goff");
+	TGraphErrors* gCarbon = new TGraphErrors(Y->GetEntries(),Y->GetV1(),Y->GetV2(),0,Y->GetV3());
+
+	TCut dCut = "tgt==3";
+	Y->Draw("run:pYpc:(sqrt(pN_trig)/pQ)",dCut,"goff");
+	TGraphErrors* gDummy = new TGraphErrors(Y->GetEntries(),Y->GetV1(),Y->GetV2(),0,Y->GetV3());
+
+	gHydrogen->SetLineColor(kRed);
+	gCarbon->SetLineColor(kGreen);
+	gDummy->SetLineColor(kBlack);
+
+	// Get min and max run number
+	Y->Draw("run>>htemp","","goff");
+	int runMin = htemp->GetXaxis()->GetXmin() - 5;
+	int runMax = htemp->GetXaxis()->GetXmax() + 5;
+
+	TCanvas* c = new TCanvas("c", "Coincidence yield per run", 800, 600);
+	int maxYield = 20;
+	c->DrawFrame(runMin,0,runMax,maxYield);
+
+	TMultiGraph *mg = new TMultiGraph("mg", "Coincidence yield per run");
+	mg->Add(gHydrogen);
+	mg->Add(gCarbon);
+	//mg->Add(gDummy);
+	mg->SetTitle("Coincidence yield per run"); //doesn't work??
+	mg->GetXaxis()->SetTitle("Run Number");
+	mg->GetYaxis()->SetTitle("Yield per mC");
+
+	mg->Draw("P");
+	
+	TLegend *leg = new TLegend(0.15, 0.7, 0.25, 0.8); 
+	leg->SetFillColor(0); 
+	leg->AddEntry(gHydrogen, "Hydrogen", "lp"); 
+	leg->AddEntry(gCarbon, "Carbon", "lp"); 
+	//leg->AddEntry(gDummy, "Dummy", "lp");
+	leg->Draw();
+
+}
diff --git a/TEMPLATES/COIN/SCALERS/coinscalers.template b/TEMPLATES/COIN/SCALERS/coinscalers.template
index 8b1b2041..c4993c08 100644
--- a/TEMPLATES/COIN/SCALERS/coinscalers.template
+++ b/TEMPLATES/COIN/SCALERS/coinscalers.template
@@ -16,8 +16,7 @@ SHMS P Central : {ppcentral}
 SHMS Angle : {ptheta_lab}
 
 SHMS Run Length   : {P.1Mhz.scalerTime:%.3f} sec
-
-HMS Run Length   : {H.1Mhz.scalerTime:%.3f} sec
+HMS Run Length    : {H.1Mhz.scalerTime:%.3f} sec
 
 ***********
 * Beamline
@@ -100,26 +99,112 @@ Ps6_factor : {gpconfig_ti_ps_factors[5]}
 * Triggers 
 ***********
 
-=:=:=:=:=:=:=:  
-= 3/4 Trigger
-=:=:=:=:=:=:=:
+=:=:=:=:=:=:=:=:=:=  
+= SHMS 3/4 Trigger
+=:=:=:=:=:=:=:=:=:=
 
 Total SHMS 3/4 Triggers       : {P.pTRIG1.scaler}
 Pre-Scaled SHMS 3/4 Triggers  : {(P.pTRIG1.scaler/gpconfig_ti_ps_factors[0]):%.0f}
-Estimated SHMS 3/4 Triggers   : {P.pTRIG1.scalerRate*(P.1Mhz.scaler/1000000.):%.0f}
+Estimated SHMS 3/4 Triggers   : {P.pTRIG1.scalerRate*P.1Mhz.scalerTime:%.0f}
 SHMS 3/4 Trigger Rate         : {P.pTRIG1.scalerRate/1000.:%.3f} kHz
 Accepted SHMS Triggers        : {pTRIG1_ROC2.npassed}
 SHMS Event Types              : {SHMS_Pretrig.npassed}
 
+=:=:=:=:=:=:=:=:=:  
+= HMS 3/4 Trigger
+=:=:=:=:=:=:=:=:=:
+
+Total HMS 3/4 Triggers       : {H.hTRIG1.scaler}
+Pre-Scaled HMS 3/4 Triggers  : {(H.hTRIG1.scaler/gpconfig_ti_ps_factors[0]):%.0f}
+HMS 3/4 Trigger Rate         : {H.hTRIG1.scalerRate/1000.:%.3f} kHz
+Estimated HMS 3/4 Triggers   : {H.hTRIG1.scalerRate*H.1Mhz.scalerTime:%.0f}
+Accepted HMS Triggers        : {pTRIG4_ROC2.npassed}
+HMS Event Types              : {HMS_Pretrig.npassed}
+
+=:=:=:=:
+= EDTM
+=:=:=:=:
+
+SHMS EDTM Triggers           : {P.EDTM.scaler}
+SHMS Estimated EDTM Triggers : {P.EDTM.scalerRate*P.1Mhz.scalerTime:%.0f}
+SHMS EDTM Trigger Rate       : {P.EDTM.scalerRate/1000.:%.3f} kHz
+SHMS Accepted EDTM Triggers  : {SHMS_edtm_accepted.npassed}
+
+HMS EDTM Triggers           : {H.EDTM.scaler}
+HMS Estimated EDTM Triggers : {H.EDTM.scalerRate*H.1Mhz.scalerTime:%.0f}
+HMS EDTM Trigger Rate       : {H.EDTM.scalerRate/1000.:%.3f} kHz
+HMS Accepted EDTM Triggers  : {HMS_edtm_accepted.npassed}
+
+Number of EDTM V2  : {P.pEDTM_V2.scaler}
+EDTM V2 Rate       : {P.pEDTM_V2.scalerRate/1000.:%.3f} kHz
+EDTM/EDTM_V2 Ratio : {P.EDTM.scaler/P.pEDTM_V2.scaler}
+
 =:=:=:=:=:=:=:=:=:=:=:=:
-= Physics 3/4 Triggers
+= SHMS Level 1 Accept
 =:=:=:=:=:=:=:=:=:=:=:=:
 
+Number of L1A    : {P.pL1ACCP.scaler}
+L1A Rate         : {P.pL1ACCP.scalerRate/1000.:%.3f} kHz
+pTRIG1/L1A       : {P.pTRIG1.scaler/P.pL1ACCP.scaler}
+
+=:=:=:=:=:=:=:=:=:=:
+= HMS Level 1 Accept
+=:=:=:=:=:=:=:=:=:=:
+
+Number of L1A    : {H.hL1ACCP.scaler}
+L1A Rate         : {H.hL1ACCP.scalerRate/1000.:%.3f} kHz
+hTRIG1/L1A       : {H.hTRIG1.scaler/H.hL1ACCP.scaler}
+
+=:=:=:=:=:=:=:=:=:=:
+= HMS Sanity Checks
+=:=:=:=:=:=:=:=:=:=:
+
+EDTM Scaler Counts      : {H.EDTM.scaler}
+EDTM Copy Scaler Counts : {H.EDTM_CP.scaler}
+Ratio                   : {H.EDTM.scaler/H.EDTM_CP.scaler}
+
+pTRIG1 Scaler Counts      : {H.pTRIG1.scaler}
+pTRIG1 Copy Scaler Counts : {H.pTRIG1_CP.scaler}
+Ratio                     : {H.pTRIG1.scaler/H.pTRIG1_CP.scaler}
+
+1 MHz Scaler Counts      : {H.1Mhz.scaler}
+1 MHz Copy Scaler Counts : {H.1MHz_CP.scaler}
+Ratio                    : {H.1Mhz.scaler/H.1MHz_CP.scaler}
+
+=:=:=:=:=:=:=:=:=:=:
+= SHMS Sanity Checks
+=:=:=:=:=:=:=:=:=:=:
+
+EDTM Scaler Counts      : {P.EDTM.scaler}
+EDTM Copy Scaler Counts : {P.EDTM_CP.scaler}
+Ratio                   : {P.EDTM.scaler/P.EDTM_CP.scaler}
+
+pTRIG1 Scaler Counts      : {P.pTRIG1.scaler}
+pTRIG1 Copy Scaler Counts : {P.pTRIG1_CP.scaler}
+Ratio                     : {P.pTRIG1.scaler/P.pTRIG1_CP.scaler}
+
+1 MHz Scaler Counts      : {P.1Mhz.scaler}
+1 MHz Copy Scaler Counts : {P.1MHz_CP.scaler}
+Ratio                    : {P.1Mhz.scaler/P.1MHz_CP.scaler}
+
+=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
+= SHMS Physics 3/4 Triggers
+=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
+
 SHMS Physics 3/4 Triggers           : {P.pTRIG1.scaler - P.EDTM.scaler}
-SHMS Estimated Physics 3/4 Triggers : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)*(P.1Mhz.scaler/1000000.):%.0f}
+SHMS Estimated Physics 3/4 Triggers : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)*P.1Mhz.scalerTime:%.0f}
 SHMS Physics 3/4 Trigger Rate       : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)/1000.:%.3f} kHz
 SHMS Accepted Physics Triggers      : {SHMS_physics_accepted.npassed}
 
+=:=:=:=:=:=:=:=:=:=:=:=:=:=:
+= HMS Physics 3/4 Triggers
+=:=:=:=:=:=:=:=:=:=:=:=:=:=:
+
+Physics 3/4 Triggers           : {H.hTRIG1.scaler - H.EDTM.scaler}
+Estimated Physics 3/4 Triggers : {(H.hTRIG1.scalerRate - H.EDTM.scalerRate)*H.1Mhz.scalerTime:%.0f}
+Physics 3/4 Trigger Rate       : {(H.hTRIG1.scalerRate - H.EDTM.scalerRate)/1000.:%.3f} kHz
+Accepted Physics Triggers      : {HMS_physics_accepted.npassed}
+
 =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
 = Coin Trigger TDC Data scalers
 =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
@@ -205,22 +290,6 @@ SHMS_hTRIG4 :  	{P.hTRIG4.scaler} 	[ {(P.hTRIG4.scaler/P.1Mhz.scalerTime)/1000.:
 SHMS_hTRIG5 :  	{P.hTRIG5.scaler} 	[ {(P.hTRIG5.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
 SHMS_hTRIG6 :  	{P.hTRIG6.scaler} 	[ {(P.hTRIG6.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
 
-=:=:=:=:
-= EDTM
-=:=:=:=:
-
-SHMS EDTM Triggers           : {P.EDTM.scaler}
-SHMS Estimated EDTM Triggers : {P.EDTM.scalerRate*(P.1Mhz.scaler/1000000.):%.0f}
-SHMS EDTM Trigger Rate       : {P.EDTM.scalerRate/1000.:%.3f} kHz
-SHMS Accepted EDTM Triggers  : {SHMS_edtm_accepted.npassed}
-
-HMS EDTM Triggers           : {H.EDTM.scaler}
-HMS Estimated EDTM Triggers : {H.EDTM.scalerRate*(H.1Mhz.scaler/1000000.):%.0f}
-HMS EDTM Trigger Rate       : {H.EDTM.scalerRate/1000.:%.3f} kHz
-HMS Accepted EDTM Triggers  : {HMS_edtm_accepted.npassed}
-
-
-
 =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
 = Live/Dead Time Calculations
 =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
@@ -264,44 +333,6 @@ ROC2 OG 6 GeV Electronic Dead Time (100, 200) : {((P.pPRE100.scaler - P.pPRE200.
 ROC2 OG 6 GeV Electronic Live Time (150, 200) : {100.0 - ((P.pPRE150.scaler - P.pPRE200.scaler)/P.pPRE150.scaler):%3.4f} %
 ROC2 OG 6 GeV Electronic Dead Time (150, 200) : {((P.pPRE150.scaler - P.pPRE200.scaler)/P.pPRE150.scaler):%3.4f} %
 
-=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
-= Live/Dead Time Calculations WITH BEAM CUTS (Only count scaler reads when there is beam) 
-NOTE: This will only work if ther is only one input enabled, as the L1Acc is an 'OR' of all inputs
-=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
-
-Fraction on BEAM ON TIME:                                        {P.1Mhz.scalerTimeCut/P.1Mhz.scalerTime}
-
-
-Total EDTM Counts:                                               {P.EDTM.scaler}
-EDTM Scaler Counts w/Beam > {gBCM_Current_threshold} uA:         {P.EDTM.scalerCut}
-Pre-ScaleD Ps4 EDTM Counts w/Beam > {gBCM_Current_threshold} uA: {P.EDTM.scalerCut/gpconfig_ti_ps_factors[3]}
-
-EDTM Scaler Counts w/Beam < {gBCM_Current_threshold} uA:   {P.EDTM.scaler - P.EDTM.scalerCut}
-PreScaled Ps4 EDTM Scaler Counts w/Beam < {gBCM_Current_threshold} uA:   {(P.EDTM.scaler - P.EDTM.scalerCut)/gpconfig_ti_ps_factors[3]}
-
-
-L1 Acc scaler:                                               {P.pL1ACCP.scaler}
-PTRIG4_ROC2:                                                 {pTRIG4_ROC2.npassed}
-
-L1 Acc scaler w/Beam > {gBCM_Current_threshold} uA:          {P.pL1ACCP.scalerCut}
-L1 Acc scaler w/Beam < {gBCM_Current_threshold} uA:          {P.pL1ACCP.scaler - P.pL1ACCP.scalerCut}
-
-
-EDTM L1 Acc w/Beam > {gBCM_Current_threshold} uA:   {SHMS_edtm_accepted.npassed*(P.1Mhz.scalerTimeCut/P.1Mhz.scalerTime)}
-
-
-Pre-Scaled Ps4 Total Live Time  w/Beam > {gBCM_Current_threshold} uA: {(SHMS_edtm_accepted.npassed*(P.1Mhz.scalerTimeCut/P.1Mhz.scalerTime)) / ( P.EDTM.scalerCut/gpconfig_ti_ps_factors[3])*100.0:%3.4f} %
-Pre-Scaled Ps4 Total Live Time ver.2                                : {(SHMS_edtm_accepted.npassed - (P.pL1ACCP.scaler - P.pL1ACCP.scalerCut) ) / (P.EDTM.scalerCut/gpconfig_ti_ps_factors[3])*100.0:%3.4f} %
-
-ROC2 Pre-Scaled Ps1  Computer Live Time : {(P.pL1ACCP.scalerCut / (P.pTRIG1.scalerCut/gpconfig_ti_ps_factors[0]))*100.0:%3.4f} % 
-ROC2 Pre-Scaled Ps2  Computer Live Time : {(P.pL1ACCP.scalerCut / (P.pTRIG2.scalerCut/gpconfig_ti_ps_factors[1]))*100.0:%3.4f} % 
-ROC2 Pre-Scaled Ps3  Computer Live Time : {(P.pL1ACCP.scalerCut / (P.pTRIG3.scalerCut/gpconfig_ti_ps_factors[2]))*100.0:%3.4f} % 
-ROC2 Pre-Scaled Ps4  Computer Live Time : {(P.pL1ACCP.scalerCut / (P.pTRIG4.scalerCut/gpconfig_ti_ps_factors[3]))*100.0:%3.4f} % 
-ROC2 Pre-Scaled Ps5  Computer Live Time : {(P.pL1ACCP.scalerCut / (P.pTRIG5.scalerCut/gpconfig_ti_ps_factors[4]))*100.0:%3.4f} % 
-ROC2 Pre-Scaled Ps6  Computer Live Time : {(P.pL1ACCP.scalerCut / (P.pTRIG6.scalerCut/gpconfig_ti_ps_factors[5]))*100.0:%3.4f} % 
-
-
-
 =:=:=:=:=:=:=:=:=:
 = SHMS Hodoscopes
 =:=:=:=:=:=:=:=:=:
@@ -314,9 +345,9 @@ P2Y : {P.S2Y.scaler} [ {(P.S2Y.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND b
 P1XP1Y : {P.S1XS1Y.scaler} [ {(P.S1XS1Y.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between P1X and P1Y planes 
 P2XP2Y : {P.S2XS2Y.scaler} [ {(P.S2XS2Y.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between P2X and P2Y planes                                           
 
-=:=:=:=:=:=:=:=:=:=:=:=:=
-= Aerogel, HGC, NGC, CAL
-=:=:=:=:=:=:=:=:=:=:=:=:=
+=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
+= SHMS Aerogel, HGC, NGC, CAL
+=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
 AERO : {P.AERO.scaler} [ {(P.AERO.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] Aerogel sum currently not available
 HGC  : {P.HCER.scaler} [ {(P.HCER.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
@@ -324,13 +355,13 @@ NGC  : {P.NCER.scaler} [ {(P.NCER.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
 PRLO : {P.PRLO.scaler} [ {(P.PRLO.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
 PRHI : {P.PRHI.scaler} [ {(P.PRHI.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
 
-*******************
-* Hardware Scalers
-*******************
+************************
+* SHMS Hardware Scalers
+************************
 
-=:=:=:=:=:=:=:
-= HODOSCOPES
-=:=:=:=:=:=:=:
+=:=:=:=:=:=:=:=:=:
+= SHMS HODOSCOPES
+=:=:=:=:=:=:=:=:=:
 
 Scint	Counts		Rate
 P1X1+:  {P.hod.1x1.posScaler} [ {(P.hod.1x1.posScalerRate/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
@@ -462,3 +493,149 @@ P2Y18-: {P.hod.2y18.negScaler} [ {(P.hod.2y18.negScaler/P.1Mhz.scalerTime)/1000.
 P2Y19-: {P.hod.2y19.negScaler} [ {(P.hod.2y19.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
 P2Y20-: {P.hod.2y20.negScaler} [ {(P.hod.2y20.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
 P2Y21-: {P.hod.2y21.negScaler} [ {(P.hod.2y21.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+=:=:=:=:=:=:=:=:=:
+= HMS Hodoscopes
+=:=:=:=:=:=:=:=:=:
+
+H1X : {H.S1X.scaler} [ {(H.S1X.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of H1X 
+H1Y : {H.S1Y.scaler} [ {(H.S1Y.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of H1Y
+H2X : {H.S2X.scaler} [ {(H.S2X.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of H2X
+H2Y : {H.S2Y.scaler} [ {(H.S2Y.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of H2Y
+
+H1XH1Y : {H.S1XS1Y.scaler} [ {(H.S1XS1Y.scaler/H.1Mhz.scalerTime)/1000.:%.3f}  kHz ] AND between H1X and H1Y planes 
+H2XH2Y : {H.S2XS2Y.scaler} [ {(H.S2XS2Y.scaler/H.1Mhz.scalerTime)/1000.:%.3f}  kHz ] AND between H2X and H2Y planes
+
+=:=:=:=:=:=:=:=:
+= HMS CER, CAL
+=:=:=:=:=:=:=:=:
+
+CER  :	     {H.CER.scaler}   [ {(H.CER.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+PRLO :       {H.PRLO.scaler}  [ {(H.PRLO.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+PRHI :       {H.PRHI.scaler}  [ {(H.PRHI.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+SHLO : 	     {H.SHLO.scaler}  [ {(H.SHLO.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+ASUM : 	     {H.ASUM.scaler}  [ {(H.ASUM.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+BSUM :	     {H.BSUM.scaler}  [ {(H.BSUM.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+CSUM :	     {H.CSUM.scaler}  [ {(H.CSUM.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+DSUM :	     {H.DSUM.scaler}  [ {(H.DSUM.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+**********************
+* HMS Hardware Scalers
+**********************
+
+=:=:=:=:=:=:=:=:
+= HMS HODOSCOPES
+=:=:=:=:=:=:=:=:
+
+Scint	Counts		Rate
+H1X1+:  {H.hod.1x1.posScaler} [ {(H.hod.1x1.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X2+:  {H.hod.1x2.posScaler} [ {(H.hod.1x2.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X3+:  {H.hod.1x3.posScaler} [ {(H.hod.1x3.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X4+:  {H.hod.1x4.posScaler} [ {(H.hod.1x4.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X5+:  {H.hod.1x5.posScaler} [ {(H.hod.1x5.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X6+:  {H.hod.1x6.posScaler} [ {(H.hod.1x6.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X7+:  {H.hod.1x7.posScaler} [ {(H.hod.1x7.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X8+:  {H.hod.1x8.posScaler} [ {(H.hod.1x8.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X9+:  {H.hod.1x9.posScaler} [ {(H.hod.1x9.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X10+: {H.hod.1x10.posScaler} [ {(H.hod.1x10.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X11+: {H.hod.1x11.posScaler} [ {(H.hod.1x11.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] 
+H1X12+: {H.hod.1x12.posScaler} [ {(H.hod.1x12.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X13+: {H.hod.1x13.posScaler} [ {(H.hod.1x13.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X14+: {H.hod.1x14.posScaler} [ {(H.hod.1x14.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X15+: {H.hod.1x15.posScaler} [ {(H.hod.1x15.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X16+: {H.hod.1x16.posScaler} [ {(H.hod.1x16.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+H1X1-:  {H.hod.1x1.negScaler} [ {(H.hod.1x1.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X2-:  {H.hod.1x2.negScaler} [ {(H.hod.1x2.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X3-:  {H.hod.1x3.negScaler} [ {(H.hod.1x3.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X4-:  {H.hod.1x4.negScaler} [ {(H.hod.1x4.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X5-:  {H.hod.1x5.negScaler} [ {(H.hod.1x5.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X6-:  {H.hod.1x6.negScaler} [ {(H.hod.1x6.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X7-:  {H.hod.1x7.negScaler} [ {(H.hod.1x7.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X8-:  {H.hod.1x8.negScaler} [ {(H.hod.1x8.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X9-:  {H.hod.1x9.negScaler} [ {(H.hod.1x9.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X10-: {H.hod.1x10.negScaler} [ {(H.hod.1x10.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X11-: {H.hod.1x11.negScaler} [ {(H.hod.1x11.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X12-: {H.hod.1x12.negScaler} [ {(H.hod.1x12.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X13-: {H.hod.1x13.negScaler} [ {(H.hod.1x13.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X14-: {H.hod.1x14.negScaler} [ {(H.hod.1x14.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X15-: {H.hod.1x15.negScaler} [ {(H.hod.1x15.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1X16-: {H.hod.1x16.negScaler} [ {(H.hod.1x16.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+ 
+H1Y1+:  {H.hod.1y1.posScaler} [ {(H.hod.1y1.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y2+:  {H.hod.1y2.posScaler} [ {(H.hod.1y2.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y3+:  {H.hod.1y3.posScaler} [ {(H.hod.1y3.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y4+:  {H.hod.1y4.posScaler} [ {(H.hod.1y4.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y5+:  {H.hod.1y5.posScaler} [ {(H.hod.1y5.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y6+:  {H.hod.1y6.posScaler} [ {(H.hod.1y6.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y7+:  {H.hod.1y7.posScaler} [ {(H.hod.1y7.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y8+:  {H.hod.1y8.posScaler} [ {(H.hod.1y8.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y9+:  {H.hod.1y9.posScaler} [ {(H.hod.1y9.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y10+: {H.hod.1y10.posScaler} [ {(H.hod.1y10.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+H1Y1-:  {H.hod.1y1.negScaler} [ {(H.hod.1y1.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y2-:  {H.hod.1y2.negScaler} [ {(H.hod.1y2.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y3-:  {H.hod.1y3.negScaler} [ {(H.hod.1y3.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y4-:  {H.hod.1y4.negScaler} [ {(H.hod.1y4.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y5-:  {H.hod.1y5.negScaler} [ {(H.hod.1y5.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y6-:  {H.hod.1y6.negScaler} [ {(H.hod.1y6.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y7-:  {H.hod.1y7.negScaler} [ {(H.hod.1y7.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y8-:  {H.hod.1y8.negScaler} [ {(H.hod.1y8.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y9-:  {H.hod.1y9.negScaler} [ {(H.hod.1y9.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H1Y10-: {H.hod.1y10.negScaler} [ {(H.hod.1y10.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+H2X1+:  {H.hod.2x1.posScaler} [ {(H.hod.2x1.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X2+:  {H.hod.2x2.posScaler} [ {(H.hod.2x2.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X3+:  {H.hod.2x3.posScaler} [ {(H.hod.2x3.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X4+:  {H.hod.2x4.posScaler} [ {(H.hod.2x4.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X5+:  {H.hod.2x5.posScaler} [ {(H.hod.2x5.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X6+:  {H.hod.2x6.posScaler} [ {(H.hod.2x6.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X7+:  {H.hod.2x7.posScaler} [ {(H.hod.2x7.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X8+:  {H.hod.2x8.posScaler} [ {(H.hod.2x8.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X9+:  {H.hod.2x9.posScaler} [ {(H.hod.2x9.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X10+: {H.hod.2x10.posScaler} [ {(H.hod.2x10.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X11+: {H.hod.2x11.posScaler} [ {(H.hod.2x11.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X12+: {H.hod.2x12.posScaler} [ {(H.hod.2x12.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X13+: {H.hod.2x13.posScaler} [ {(H.hod.2x13.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X14+: {H.hod.2x14.posScaler} [ {(H.hod.2x14.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X15+: {H.hod.2x15.posScaler} [ {(H.hod.2x15.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X16+: {H.hod.2x16.posScaler} [ {(H.hod.2x16.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+H2X1-:  {H.hod.2x1.negScaler} [ {(H.hod.2x1.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X2-:  {H.hod.2x2.negScaler} [ {(H.hod.2x2.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X3-:  {H.hod.2x3.negScaler} [ {(H.hod.2x3.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X4-:  {H.hod.2x4.negScaler} [ {(H.hod.2x4.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X5-:  {H.hod.2x5.negScaler} [ {(H.hod.2x5.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X6-:  {H.hod.2x6.negScaler} [ {(H.hod.2x6.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X7-:  {H.hod.2x7.negScaler} [ {(H.hod.2x7.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X8-:  {H.hod.2x8.negScaler} [ {(H.hod.2x8.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X9-:  {H.hod.2x9.negScaler} [ {(H.hod.2x9.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X10-: {H.hod.2x10.negScaler} [ {(H.hod.2x10.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X11-: {H.hod.2x11.negScaler} [ {(H.hod.2x11.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X12-: {H.hod.2x12.negScaler} [ {(H.hod.2x12.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X13-: {H.hod.2x13.negScaler} [ {(H.hod.2x13.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X14-: {H.hod.2x14.negScaler} [ {(H.hod.2x14.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X15-: {H.hod.2x15.negScaler} [ {(H.hod.2x15.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2X16-: {H.hod.2x16.negScaler} [ {(H.hod.2x16.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+H2Y1+:  {H.hod.2y1.posScaler} [ {(H.hod.2y1.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y2+:  {H.hod.2y2.posScaler} [ {(H.hod.2y2.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y3+:  {H.hod.2y3.posScaler} [ {(H.hod.2y3.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] 
+H2Y4+:  {H.hod.2y4.posScaler} [ {(H.hod.2y4.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y5+:  {H.hod.2y5.posScaler} [ {(H.hod.2y5.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y6+:  {H.hod.2y6.posScaler} [ {(H.hod.2y6.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y7+:  {H.hod.2y7.posScaler} [ {(H.hod.2y7.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y8+:  {H.hod.2y8.posScaler} [ {(H.hod.2y8.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y9+:  {H.hod.2y9.posScaler} [ {(H.hod.2y9.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y10+: {H.hod.2y10.posScaler} [ {(H.hod.2y10.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+H2Y1-:  {H.hod.2y1.negScaler} [ {(H.hod.2y1.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y2-:  {H.hod.2y2.negScaler} [ {(H.hod.2y2.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y3-:  {H.hod.2y3.negScaler} [ {(H.hod.2y3.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y4-:  {H.hod.2y4.negScaler} [ {(H.hod.2y4.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y5-:  {H.hod.2y5.negScaler} [ {(H.hod.2y5.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y6-:  {H.hod.2y6.negScaler} [ {(H.hod.2y6.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y7-:  {H.hod.2y7.negScaler} [ {(H.hod.2y7.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y8-:  {H.hod.2y8.negScaler} [ {(H.hod.2y8.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y9-:  {H.hod.2y9.negScaler} [ {(H.hod.2y9.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+H2Y10-: {H.hod.2y10.negScaler} [ {(H.hod.2y10.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
diff --git a/TEMPLATES/HMS/SCALERS/hscalers.template b/TEMPLATES/HMS/SCALERS/hscalers.template
index 97d41262..237062a4 100644
--- a/TEMPLATES/HMS/SCALERS/hscalers.template
+++ b/TEMPLATES/HMS/SCALERS/hscalers.template
@@ -64,17 +64,50 @@ Ps6_factor = {ghconfig_ti_ps_factors[5]}
 
 Total HMS 3/4 Triggers       : {H.hTRIG1.scaler}
 Pre-Scaled HMS 3/4 Triggers  : {(H.hTRIG1.scaler/ghconfig_ti_ps_factors[0]):%.0f}
-Estimated HMS 3/4 Triggers   : {H.hTRIG1.scalerRate*(H.1Mhz.scaler/1000000.):%.0f}
 HMS 3/4 Trigger Rate         : {H.hTRIG1.scalerRate/1000.:%.3f} kHz
+Estimated HMS 3/4 Triggers   : {H.hTRIG1.scalerRate*H.1Mhz.scalerTime:%.0f}
 Accepted HMS Triggers        : {TRIG1.npassed}
 HMS Event Types              : {HMS_Pretrig.npassed}
 
+=:=:=:=:
+= EDTM
+=:=:=:=:
+
+EDTM Triggers           : {H.EDTM.scaler}
+Estimated EDTM Triggers : {H.EDTM.scalerRate*H.1Mhz.scalerTime:%.0f}
+EDTM Trigger Rate       : {H.EDTM.scalerRate/1000.:%.3f} kHz
+Accepted EDTM Triggers  : {edtm_accepted.npassed}
+
+=:=:=:=:=:=:=:=:
+= Level 1 Accept
+=:=:=:=:=:=:=:=:
+
+Number of L1A    : {H.hL1ACCP.scaler}
+L1A Rate         : {H.hL1ACCP.scalerRate/1000.:%.3f} kHz
+hTRIG1/L1A       : {H.hTRIG1.scaler/H.hL1ACCP.scaler}
+
+=:=:=:=:=:=:=:=:
+= Sanity Checks
+=:=:=:=:=:=:=:=:
+
+EDTM Scaler Counts      : {H.EDTM.scaler}
+EDTM Copy Scaler Counts : {H.EDTM_CP.scaler}
+Ratio                   : {H.EDTM.scaler/H.EDTM_CP.scaler}
+
+pTRIG1 Scaler Counts      : {H.pTRIG1.scaler}
+pTRIG1 Copy Scaler Counts : {H.pTRIG1_CP.scaler}
+Ratio                     : {H.pTRIG1.scaler/H.pTRIG1_CP.scaler}
+
+1 MHz Scaler Counts      : {H.1Mhz.scaler}
+1 MHz Copy Scaler Counts : {H.1MHz_CP.scaler}
+Ratio                    : {H.1Mhz.scaler/H.1MHz_CP.scaler}
+
 =:=:=:=:=:=:=:=:=:=:=:=:
 = Physics 3/4 Triggers
 =:=:=:=:=:=:=:=:=:=:=:=:
 
 Physics 3/4 Triggers           : {H.hTRIG1.scaler - H.EDTM.scaler}
-Estimated Physics 3/4 Triggers : {(H.hTRIG1.scalerRate - H.EDTM.scalerRate)*(H.1Mhz.scaler/1000000.):%.0f}
+Estimated Physics 3/4 Triggers : {(H.hTRIG1.scalerRate - H.EDTM.scalerRate)*H.1Mhz.scalerTime:%.0f}
 Physics 3/4 Trigger Rate       : {(H.hTRIG1.scalerRate - H.EDTM.scalerRate)/1000.:%.3f} kHz
 Accepted Physics Triggers      : {physics_accepted.npassed}
 
@@ -121,15 +154,6 @@ hTRIG4_cut :  	{H.hTRIG4.scalerCut} 	[ {(H.hTRIG4.scaler/H.1Mhz.scalerTime)/1000
 hTRIG5_cut :  	{H.hTRIG5.scalerCut} 	[ {(H.hTRIG5.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
 hTRIG6_cut :  	{H.hTRIG6.scalerCut} 	[ {(H.hTRIG6.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
 
-=:=:=:=:
-= EDTM
-=:=:=:=:
-
-EDTM Triggers           : {H.EDTM.scaler}
-Estimated EDTM Triggers : {H.EDTM.scalerRate*(H.1Mhz.scaler/1000000.):%.0f}
-EDTM Trigger Rate       : {H.EDTM.scalerRate/1000.:%.3f} kHz
-Accepted EDTM Triggers  : {edtm_accepted.npassed}
-
 =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
 = Live/Dead Time Calculations
 =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
diff --git a/TEMPLATES/SHMS/SCALERS/pscalers.template b/TEMPLATES/SHMS/SCALERS/pscalers.template
index 3e94837b..5911ee47 100644
--- a/TEMPLATES/SHMS/SCALERS/pscalers.template
+++ b/TEMPLATES/SHMS/SCALERS/pscalers.template
@@ -63,17 +63,54 @@ Ps6_factor = {gpconfig_ti_ps_factors[5]}
 
 Total SHMS 3/4 Triggers       : {P.pTRIG1.scaler}
 Pre-Scaled SHMS 3/4 Triggers  : {(P.pTRIG1.scaler/gpconfig_ti_ps_factors[0]):%.0f}
-Estimated SHMS 3/4 Triggers   : {P.pTRIG1.scalerRate*(P.1Mhz.scaler/1000000.):%.0f}
 SHMS 3/4 Trigger Rate         : {P.pTRIG1.scalerRate/1000.:%.3f} kHz
+Estimated SHMS 3/4 Triggers   : {P.pTRIG1.scalerRate*P.1Mhz.scalerTime:%.0f}
 Accepted SHMS Triggers        : {TRIG1.npassed}
 SHMS Event Types              : {SHMS_Pretrig.npassed}
 
+=:=:=:=:
+= EDTM
+=:=:=:=:
+
+EDTM Triggers           : {P.EDTM.scaler}
+Estimated EDTM Triggers : {P.EDTM.scalerRate*P.1Mhz.scalerTime:%.0f}
+EDTM Trigger Rate       : {P.EDTM.scalerRate/1000.:%.3f} kHz
+Accepted EDTM Triggers  : {edtm_accepted.npassed}
+
+Number of EDTM V2  : {P.pEDTM_V2.scaler}
+EDTM V2 Rate       : {P.pEDTM_V2.scalerRate/1000.:%.3f} kHz
+EDTM/EDTM_V2 Ratio : {P.EDTM.scaler/P.pEDTM_V2.scaler}
+
+=:=:=:=:=:=:=:=:
+= Level 1 Accept
+=:=:=:=:=:=:=:=:
+
+Number of L1A    : {P.pL1ACCP.scaler}
+L1A Rate         : {P.pL1ACCP.scalerRate/1000.:%.3f} kHz
+pTRIG1/L1A       : {P.pTRIG1.scaler/P.pL1ACCP.scaler}
+
+=:=:=:=:=:=:=:=:
+= Sanity Checks
+=:=:=:=:=:=:=:=:
+
+EDTM Scaler Counts      : {P.EDTM.scaler}
+EDTM Copy Scaler Counts : {P.EDTM_CP.scaler}
+Ratio                   : {P.EDTM.scaler/P.EDTM_CP.scaler}
+
+pTRIG1 Scaler Counts      : {P.pTRIG1.scaler}
+pTRIG1 Copy Scaler Counts : {P.pTRIG1_CP.scaler}
+Ratio                     : {P.pTRIG1.scaler/P.pTRIG1_CP.scaler}
+
+1 MHz Scaler Counts      : {P.1Mhz.scaler}
+1 MHz Copy Scaler Counts : {P.1MHz_CP.scaler}
+Ratio                    : {P.1Mhz.scaler/P.1MHz_CP.scaler}
+
 =:=:=:=:=:=:=:=:=:=:=:=:
 = Physics 3/4 Triggers
 =:=:=:=:=:=:=:=:=:=:=:=:
 
 Physics 3/4 Triggers           : {P.pTRIG1.scaler - P.EDTM.scaler}
-Estimated Physics 3/4 Triggers : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)*(P.1Mhz.scaler/1000000.):%.0f}
+Estimated Physics 3/4 Triggers : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)*P.1Mhz.scalerTime:%.0f}
 Physics 3/4 Trigger Rate       : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)/1000.:%.3f} kHz
 Accepted Physics Triggers      : {physics_accepted.npassed}
 
@@ -120,15 +157,6 @@ pTRIG4_cut :  	{P.pTRIG4.scalerCut} 	[ {(P.pTRIG4.scaler/P.1Mhz.scalerTime)/1000
 pTRIG5_cut :  	{P.pTRIG5.scalerCut} 	[ {(P.pTRIG5.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
 pTRIG6_cut :  	{P.pTRIG6.scalerCut} 	[ {(P.pTRIG6.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
 
-=:=:=:=:
-= EDTM
-=:=:=:=:
-
-EDTM Triggers           : {P.EDTM.scaler}
-Estimated EDTM Triggers : {P.EDTM.scalerRate*(P.1Mhz.scaler/1000000.):%.0f}
-EDTM Trigger Rate       : {P.EDTM.scalerRate/1000.:%.3f} kHz
-Accepted EDTM Triggers  : {edtm_accepted.npassed}
-
 =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
 = Live/Dead Time Calculations
 =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
-- 
GitLab