diff --git a/DBASE/COIN/STD/ep.database b/DBASE/COIN/STD/ep.database
new file mode 100644
index 0000000000000000000000000000000000000000..4d1639816cf84f08d708a928a8cae60e1196ecdd
--- /dev/null
+++ b/DBASE/COIN/STD/ep.database
@@ -0,0 +1,4 @@
+0-99999
+g_ctp_parm_filename ="DBASE/COIN/GEN/general.param"
+g_ctp_kinematics_filename ="DBASE/COIN/STD/ep.kinematics"
+g_ctp_calib_filename ="DBASE/COIN/GEN/default_det_calib_files.param"
diff --git a/DBASE/COIN/STD/ep.kinematics b/DBASE/COIN/STD/ep.kinematics
new file mode 100644
index 0000000000000000000000000000000000000000..02d5c0d446ad2e7e9a3d8f412fb999fb8eea6d8d
--- /dev/null
+++ b/DBASE/COIN/STD/ep.kinematics
@@ -0,0 +1,115 @@
+#
+# Need to set htheta_lab to a NEGATIVE value
+# Need to set ptheta_lab to a POSITIVE value
+# 1H   gtargmass_amu = 1.00794
+# 12C  gtargmass_amu = 12.0107
+# 27Al gtargmass_amu = 26.98
+#
+
+0-99999
+gpbeam = 6.4
+gtargmass_amu=12.0107
+htheta_lab = -15.
+ptheta_lab = 15.
+hpcentral = 3.
+ppcentral = 3.
+hpartmass = 0.00051099
+ppartmass = 0.00051099
+
+
+
+
+
+1711-1721
+gpbeam=2.221
+hpartmass = 0.938272
+ppartmass = 0.00051099
+
+1722
+gpbeam=2.221
+hpartmass = 0.00051099
+ppartmass = 0.938272
+
+
+1711-1712
+hpcentral = 0.957
+ppcentral = 1.816
+htheta_lab = -53.33
+ptheta_lab = 25.01
+
+1711
+gtargmass_amu = 1.00794
+
+1712
+gtargmass_amu = 26.98
+
+1713-1716
+hpcentral = 1.136
+ppcentral = 1.816
+htheta_lab = -47.9
+ptheta_lab = 30.0
+
+1713
+gtargmass_amu = 1.00794
+
+1714-1715
+gtargmass_amu = 26.98
+
+1716
+gtargmass_amu = 1.00794
+
+1717-1718
+hpcentral = 1.136
+ppcentral = 1.686
+htheta_lab = -47.9
+ptheta_lab = 30.0
+
+1717
+gtargmass_amu = 26.98
+
+1718
+gtargmass_amu = 1.00794
+
+1719-1720
+hpcentral = 1.136
+ppcentral = 1.555
+htheta_lab = -47.9
+ptheta_lab = 30.0
+
+1719
+gtargmass_amu = 1.00794
+
+1720
+gtargmass_amu = 26.98
+
+1721-1722
+hpcentral = 0.936
+ppcentral = 2.012
+htheta_lab = -65.1
+ptheta_lab = 25.0
+
+1721
+gtargmass_amu = 26.98
+
+1722
+gtargmass_amu = 1.00794
+
+1851-1867
+gpbeam=6.405
+hpartmass = 0.938272
+ppartmass = 0.00051099
+gtargmass_amu=1.00794
+htheta_lab = -27.5
+ptheta_lab = 27.5
+hpcentral = 3.609
+ppcentral = 3.609
+
+1869-9999
+gpbeam=6.405
+ppartmass = 0.938272
+hpartmass = 0.00051099
+gtargmass_amu=1.00794
+htheta_lab = -27.5
+ptheta_lab = 27.5
+hpcentral = 3.609
+ppcentral = 3.609
diff --git a/DBASE/COIN/STD/standard.kinematics b/DBASE/COIN/STD/standard.kinematics
index 9cfd2980faea4edd351cb9234bf3c08681fa65b1..5071050cbb32f996b1ce46bf57a31399cd1b3418 100644
--- a/DBASE/COIN/STD/standard.kinematics
+++ b/DBASE/COIN/STD/standard.kinematics
@@ -84,12 +84,32 @@ gtargmass_amu = 26.98
 1722
 gtargmass_amu = 1.00794
 
-1851-1855
+1851-1867
 gpbeam = 6.405
 gtargmass_amu = 1.00794
 htheta_lab = -27.5
 ptheta_lab = 27.6
 hpcentral = 3.609
-ppcentral = 3.609
+ppcentral = 3.609*0.985
+hpartmass = 0.93827231
+ppartmass = 0.00051099
+
+1884-1892
+gpbeam = 6.405
+gtargmass_amu = 1.00794
+htheta_lab = -20.0
+ptheta_lab = 20.0
+hpcentral = 3.609
+ppcentral = 2.5*0.985
+ppartmass = 0.93827231
+hpartmass = 0.00051099
+
+1893-1910
+gpbeam = 6.405
+gtargmass_amu = 1.00794
+htheta_lab = -27.54
+ptheta_lab = 27.50
+hpcentral = 3.609
+ppcentral = 3.609*0.985
 hpartmass = 0.93827231
 ppartmass = 0.00051099
diff --git a/DEF-files/COIN/EPICS/epics_short.def b/DEF-files/COIN/EPICS/epics_short.def
new file mode 100644
index 0000000000000000000000000000000000000000..9a3f82a7ec71605a2ecab6282a4d78d93e4e45ec
--- /dev/null
+++ b/DEF-files/COIN/EPICS/epics_short.def
@@ -0,0 +1,13 @@
+block T.coin.*
+
+begin epics
+IBC3H00CRCUR4
+hac_bcm_average
+ibcm1
+ibcm2
+iunser
+itov3out
+itov4out
+end epics
+
+
diff --git a/DEF-files/COIN/PRODUCTION/coin_production_ep.def b/DEF-files/COIN/PRODUCTION/coin_production_ep.def
new file mode 100644
index 0000000000000000000000000000000000000000..4b6b8e19bb748e917906d4e0cacf8761eb135e12
--- /dev/null
+++ b/DEF-files/COIN/PRODUCTION/coin_production_ep.def
@@ -0,0 +1,33 @@
+block T.coin.hTRIG*
+block T.coin.pTRIG*
+
+
+block H.cer.npe*
+block H.cal.e*
+block H.hod.*time
+block H.hod.*Time
+block H.gtr.*
+block H.kin.*
+
+block P.hgcer.npe*
+block P.cal.e*
+block P.hod.*time
+block P.hod.*Time
+block P.gtr.*
+block P.kin.*
+
+begin epics
+IBC3H00CRCUR4
+hac_bcm_average
+ibcm1
+ibcm2
+iunser
+itov3out
+itov4out
+end epics
+
+
+#include "DEF-files/COIN/PRODUCTION/GTR/coin_gtr_histos.def"
+#include "DEF-files/COIN/PRODUCTION/KIN/coin_pElec_hProt_kin_histos.def"
+#include "DEF-files/COIN/PRODUCTION/TRIG/coin_trig_histos.def"
+
diff --git a/DEF-files/COIN/PRODUCTION/coin_production_ep_cuts.def b/DEF-files/COIN/PRODUCTION/coin_production_ep_cuts.def
new file mode 100644
index 0000000000000000000000000000000000000000..099b70e3a00c966cbd563461ba091d2a7f892b74
--- /dev/null
+++ b/DEF-files/COIN/PRODUCTION/coin_production_ep_cuts.def
@@ -0,0 +1,50 @@
+#include "DEF-files/HMS/PRODUCTION/hstackana_production_cuts.def"
+#include "DEF-files/SHMS/PRODUCTION/pstackana_production_cuts.def"
+
+Block: RawDecode
+
+Pedestal_event       g.evtyp == 99
+SHMS_event           g.evtyp == 1
+HMS_event            g.evtyp == 2
+BOTH_SINGLES_event   g.evtyp == 3
+COIN_ONLY_event      g.evtyp == 4
+SHMS_COIN_event      g.evtyp == 5
+HMS_COIN_event       g.evtyp == 6 
+COIN_ALL_event       g.evtyp == 7
+ALL_events           SHMS_event || HMS_event || BOTH_SINGLES_event || COIN_ONLY_event || COIN_ALL_event
+
+RawDecode_master  ALL_events
+
+Block: Decode
+
+goodctime         ALL_events        #LOOSE CUT AROUND COINTIME PEAK (3 beam buckets)
+tightctime        ALL_events        #TIGHT CUT AROUND COINTIME PEAK (1 beam buckets)
+ranctime          ALL_events        #CUT AWAY FROM COINTIME PEAK (4 beam buckets)
+
+Decode_master     ALL_events
+
+Block: CoarseTracking
+CoarseTracking_master ALL_events
+
+Block: CoarseReconstruct
+CoarseReconstruct_master ALL_events
+
+Block: Tracking
+Tracking_master  ALL_events
+
+Block: Reconstruct
+Reconstruct_master ALL_events
+
+hcleantrack        H.gtr.index > -1
+pcleantrack        P.gtr.index > -1
+ccleantrack        hcleantrack && pcleantrack
+
+coincut            ccleantrack && goodctime
+tight_coin         ccleantrack && tightctime
+ran_coincut        ccleantrack && ranctime
+
+e_cut_cal          P.cal.etottracknorm > 0.6 && P.cal.etottracknorm < 2.0
+e_cut_cer          P.hgcer.npeSum > 5.0 && P.ngcer.npeSum > 15.0
+select_e_cut       e_cut_cal && e_cut_cer
+betacut_proton     H.gtr.beta > 0.6 && H.gtr.beta < 0.8
+coincut_ep         ccleantrack && select_e_cut && betacut_proton
diff --git a/DEF-files/COIN/PRODUCTION/coin_production_pElec_hProt.def b/DEF-files/COIN/PRODUCTION/coin_production_pElec_hProt.def
index 695e459799173f832bf15c078861d928b546b03a..9db5c46f0df82abc24e336db959be6c10df71f6d 100644
--- a/DEF-files/COIN/PRODUCTION/coin_production_pElec_hProt.def
+++ b/DEF-files/COIN/PRODUCTION/coin_production_pElec_hProt.def
@@ -1,4 +1,5 @@
-block T.coin.*
+block T.coin.hTRIG*
+block T.coin.pTRIG*
 
 block H.cer.*
 block H.dc.*
diff --git a/DEF-files/COIN/SCALERS/coinscaler_cuts.def b/DEF-files/COIN/SCALERS/coinscaler_cuts.def
new file mode 100644
index 0000000000000000000000000000000000000000..feab2385c0bc75ef8eea0054ff7a2542c166a36c
--- /dev/null
+++ b/DEF-files/COIN/SCALERS/coinscaler_cuts.def
@@ -0,0 +1,53 @@
+# Report file for SHMS stack
+
+Block: RawDecode
+
+Pedestal_event     g.evtyp == 99
+SHMS_event         g.evtyp == 1
+HMS_event          g.evtyp == 2
+COIN_event         g.evtyp >= 4&&g.evtyp<8
+
+SHMS_Pretrig  pTRIG1_ROC2 || pTRIG2_ROC2 || pTRIG3_ROC2
+HMS_Pretrig   pTRIG4_ROC2
+COIN_Pretrig  pTRIG6_ROC2 
+
+RawDecode_master  1
+
+Block: Decode
+
+pTRIG1_ROC2         T.coin.pTRIG1_ROC2_tdcTimeRaw > 0
+pTRIG2_ROC2         T.coin.pTRIG2_ROC2_tdcTimeRaw > 0
+pTRIG3_ROC2         T.coin.pTRIG3_ROC2_tdcTimeRaw > 0
+pTRIG4_ROC2         T.coin.pTRIG4_ROC2_tdcTimeRaw > 0
+pTRIG5_ROC2         T.coin.pTRIG5_ROC2_tdcTimeRaw > 0
+pTRIG6_ROC2         T.coin.pTRIG6_ROC2_tdcTimeRaw > 0
+
+pTRIG1_ROC1         T.coin.pTRIG1_ROC1_tdcTimeRaw > 0
+pTRIG2_ROC1         T.coin.pTRIG2_ROC1_tdcTimeRaw > 0
+pTRIG3_ROC1         T.coin.pTRIG3_ROC1_tdcTimeRaw > 0
+pTRIG4_ROC1         T.coin.pTRIG4_ROC1_tdcTimeRaw > 0
+pTRIG5_ROC1         T.coin.pTRIG5_ROC1_tdcTimeRaw > 0
+pTRIG6_ROC1         T.coin.pTRIG6_ROC1_tdcTimeRaw > 0
+
+shms_trigs             SHMS_event
+SHMS_edtm_accepted     T.coin.pEDTM_tdcTime != 0.0
+SHMS_physics_accepted  T.coin.pEDTM_tdcTime == 0.0
+HMS_edtm_accepted      T.coin.hEDTM_tdcTime != 0.0
+HMS_physics_accepted   T.coin.hEDTM_tdcTime == 0.0
+
+Decode_master     1
+
+Block: CoarseTracking
+CoarseTracking_master 1
+
+Block: CoarseReconstruct
+CoarseReconstruct_master 1
+
+Block: Tracking
+Tracking_master 1
+
+Block: Reconstruct
+Reconstruct_master 1
+
+Block: Physics
+Physics_master 1
\ No newline at end of file
diff --git a/DEF-files/HMS/PRODUCTION/hstackana_production_cuts.def b/DEF-files/HMS/PRODUCTION/hstackana_production_cuts.def
index 2bcdb3ca96470dc6771af857b8fed57b7b90e46e..5729b108f2b12063e2c3b0d97a7ddfcbe8a559bc 100644
--- a/DEF-files/HMS/PRODUCTION/hstackana_production_cuts.def
+++ b/DEF-files/HMS/PRODUCTION/hstackana_production_cuts.def
@@ -12,6 +12,10 @@ HMS_COIN_event       g.evtyp == 6
 COIN_ALL_event       g.evtyp == 7
 ALL_events           SHMS_event || HMS_event || BOTH_SINGLES_event || COIN_ONLY_event || COIN_ALL_event
 
+RawDecode_master  1
+
+Block: Decode
+
 hcut_TRIG1        T.hms.hTRIG1_tdcTimeRaw > 0
 hcut_TRIG2        T.hms.hTRIG2_tdcTimeRaw > 0
 hcut_TRIG3        T.hms.hTRIG3_tdcTimeRaw > 0
@@ -21,10 +25,6 @@ hms_trigs         HMS_event
 hcut_edtm_accepted     T.hms.hEDTM_tdcTime != 0.0
 hcut_physics_accepted  T.hms.hEDTM_tdcTime == 0.0
 
-RawDecode_master  1
-
-Block: Decode
-
 Decode_master     ALL_events
 
 Block: CoarseTracking
diff --git a/DEF-files/HMS/SCALERS/hscaler_cuts.def b/DEF-files/HMS/SCALERS/hscaler_cuts.def
index 362d74661986c6b36a396d90ffe2d01508c9cd6e..397473eba8fc2459712606020bdb126d4a9a1774 100644
--- a/DEF-files/HMS/SCALERS/hscaler_cuts.def
+++ b/DEF-files/HMS/SCALERS/hscaler_cuts.def
@@ -7,6 +7,12 @@ HMS_event          g.evtyp == 2
 SHMS_event         g.evtyp == 1
 COIN_event         g.evtyp == 4
 
+RawDecode_master  1
+
+Block: Decode
+
+Decode_master     HMS_event
+
 TRIG1        T.hms.hTRIG1_tdcTimeRaw > 0
 TRIG2        T.hms.hTRIG2_tdcTimeRaw > 0
 TRIG3        T.hms.hTRIG3_tdcTimeRaw > 0
@@ -16,12 +22,6 @@ hms_trigs         HMS_event
 edtm_accepted     T.hms.hEDTM_tdcTime != 0.0
 physics_accepted  T.hms.hEDTM_tdcTime == 0.0
 
-RawDecode_master  1
-
-Block: Decode
-
-Decode_master     HMS_event
-
 Block: CoarseTracking
 CoarseTracking_master HMS_event
 
diff --git a/DEF-files/SHMS/PRODUCTION/pstackana_production_cuts.def b/DEF-files/SHMS/PRODUCTION/pstackana_production_cuts.def
index f5502d32591ff1b8d61dc0e468f26576f65eb4f1..f66a5a4cab051b2e4e21aa7cdca6ed67f1fba948 100644
--- a/DEF-files/SHMS/PRODUCTION/pstackana_production_cuts.def
+++ b/DEF-files/SHMS/PRODUCTION/pstackana_production_cuts.def
@@ -12,6 +12,10 @@ HMS_COIN_event       g.evtyp == 6
 COIN_ALL_event       g.evtyp == 7
 ALL_events           SHMS_event || HMS_event || BOTH_SINGLES_event || COIN_ONLY_event || COIN_ALL_event
 
+RawDecode_master  1
+
+Block: Decode
+
 pcut_TRIG1         T.shms.pTRIG1_tdcTimeRaw > 0
 pcut_TRIG2         T.shms.pTRIG2_tdcTimeRaw > 0
 pcut_TRIG3         T.shms.pTRIG3_tdcTimeRaw > 0
@@ -21,10 +25,6 @@ shms_trigs        SHMS_event
 pcut_edtm_accepted     T.shms.pEDTM_tdcTime != 0.0
 pcut_physics_accepted  T.shms.pEDTM_tdcTime == 0.0
 
-RawDecode_master  1
-
-Block: Decode
-
 pcut_good_S1_time         T.shms.p1T_tdcTime > 241 && T.shms.p1T_tdcTime < 243
 pcut_good_S2X_time        T.shms.p2X_tdcTime > 180 && T.shms.p2X_tdcTime < 220
 pcut_good_S1_S2X_time     pcut_good_S1_time && pcut_good_S2X_time
diff --git a/DEF-files/SHMS/SCALERS/pscaler_cuts.def b/DEF-files/SHMS/SCALERS/pscaler_cuts.def
index 64556391f63e9a074b592611f46e950b92119211..9200b35da9ea15ee7d5175e94cbbd6e728b3802b 100644
--- a/DEF-files/SHMS/SCALERS/pscaler_cuts.def
+++ b/DEF-files/SHMS/SCALERS/pscaler_cuts.def
@@ -7,6 +7,10 @@ SHMS_event         g.evtyp == 1
 HMS_event          g.evtyp == 2
 COIN_event         g.evtyp == 4
 
+RawDecode_master  1
+
+Block: Decode
+
 TRIG1         T.shms.pTRIG1_tdcTimeRaw > 0
 TRIG2         T.shms.pTRIG2_tdcTimeRaw > 0
 TRIG3         T.shms.pTRIG3_tdcTimeRaw > 0
@@ -16,10 +20,6 @@ shms_trigs        SHMS_event
 edtm_accepted     T.shms.pEDTM_tdcTime != 0.0
 physics_accepted  T.shms.pEDTM_tdcTime == 0.0
 
-RawDecode_master  1
-
-Block: Decode
-
 Decode_master     SHMS_event
 
 Block: CoarseTracking
diff --git a/SCRIPTS/COIN/PRODUCTION/replay_production_ep.C b/SCRIPTS/COIN/PRODUCTION/replay_production_ep.C
new file mode 100644
index 0000000000000000000000000000000000000000..78954c9f0bb5a25d690a368e0679554342ca9fd6
--- /dev/null
+++ b/SCRIPTS/COIN/PRODUCTION/replay_production_ep.C
@@ -0,0 +1,237 @@
+void replay_production_ep (Int_t RunNumber = 0, Int_t MaxEvent = 0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "coin_all_%05d.dat";
+  vector<TString> pathList;
+    pathList.push_back(".");
+    pathList.push_back("./raw");
+    pathList.push_back("./raw/../raw.copiedtotape");
+    pathList.push_back("./cache");
+
+  //const char* RunFileNamePattern = "raw/coin_all_%05d.dat";
+  const char* ROOTFileNamePattern = "ROOTfiles/ep_%d.root";
+  
+  // Load global parameters
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/COIN/STD/ep.database");
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+  gHcParms->Load(gHcParms->GetString("g_ctp_calib_filename"));
+  // Load params for SHMS trigger configuration
+  gHcParms->Load("PARAM/TRIG/tcoin.param");
+  // Load the Hall C detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/COIN/DETEC/coin.map");
+  gHcParms->Load("PARAM/SHMS/GEN/p_fadc_debug.param");
+  gHcParms->Load("PARAM/HMS/GEN/h_fadc_debug.param");
+
+  //=:=:=:=
+  // SHMS 
+  //=:=:=:=
+
+  // Set up the equipment to be analyzed.
+  THcHallCSpectrometer* SHMS = new THcHallCSpectrometer("P", "SHMS");
+  SHMS->SetEvtType(1);
+  SHMS->AddEvtType(4);
+  SHMS->AddEvtType(5);
+  SHMS->AddEvtType(6);
+  SHMS->AddEvtType(7);
+  gHaApps->Add(SHMS);
+  // Add Noble Gas Cherenkov to SHMS apparatus
+  THcCherenkov* pngcer = new THcCherenkov("ngcer", "Noble Gas Cherenkov");
+  SHMS->AddDetector(pngcer);
+  // Add drift chambers to SHMS apparatus
+  THcDC* pdc = new THcDC("dc", "Drift Chambers");
+  SHMS->AddDetector(pdc);
+  // Add hodoscope to SHMS apparatus
+  THcHodoscope* phod = new THcHodoscope("hod", "Hodoscope");
+  SHMS->AddDetector(phod);
+  // Add Heavy Gas Cherenkov to SHMS apparatus
+  THcCherenkov* phgcer = new THcCherenkov("hgcer", "Heavy Gas Cherenkov");
+  SHMS->AddDetector(phgcer);
+  // Add Aerogel Cherenkov to SHMS apparatus
+  THcAerogel* paero = new THcAerogel("aero", "Aerogel");
+  SHMS->AddDetector(paero);
+  // Add calorimeter to SHMS apparatus
+  THcShower* pcal = new THcShower("cal", "Calorimeter");
+  SHMS->AddDetector(pcal);
+
+  // Include golden track information
+  THaGoldenTrack* pgtr = new THaGoldenTrack("P.gtr", "SHMS Golden Track", "P");
+  gHaPhysics->Add(pgtr);
+  // Add Rastered Beam Apparatus
+  THaApparatus* pbeam = new THcRasteredBeam("P.rb", "SHMS Rastered Beamline");
+  gHaApps->Add(pbeam);
+  THaReactionPoint* prp= new THaReactionPoint("P.react"," SHMS reaction point","P","P.rb");
+  gHaPhysics->Add(prp);
+  THcExtTarCor* pext = new THcExtTarCor("P.extcor"," HMS extended target corrections","P","P.react");
+  gHaPhysics->Add(pext);
+  // Add Physics Module to calculate primary (scattered) beam kinematics
+  THcPrimaryKine* pkin_primary = new THcPrimaryKine("P.kin.primary", "SHMS Single Arm Kinematics", "P", "P.rb");
+  gHaPhysics->Add(pkin_primary);
+ THcHodoEff* peff = new THcHodoEff("phodeff"," SHMS hodo efficiency","P.hod");
+  gHaPhysics->Add(peff);
+  // Add Physics Module to calculate secondary (scattered) beam kinematics
+  // THcSecondaryKine* pkin_secondary = new THcSecondaryKine("P.kin.secondary", "SHMS Single Arm Kinematics", "P", "H.kin.primary");
+  // gHaPhysics->Add(pkin_secondary);
+  // Add event handler for scaler events
+  //  THcScalerEvtHandler* pscaler = new THcScalerEvtHandler("P", "Hall C scaler event type 1");
+  //pscaler->AddEvtType(1);
+  //pscaler->AddEvtType(4);
+  //pscaler->AddEvtType(5);
+  //pscaler->AddEvtType(6);
+  //pscaler->AddEvtType(7);
+  //pscaler->AddEvtType(129);
+  //pscaler->SetDelayedType(129);
+  //pscaler->SetUseFirstEvent(kTRUE);
+  //gHaEvtHandlers->Add(pscaler);
+
+  //=:=:=
+  // HMS 
+  //=:=:=
+
+  // Set up the equipment to be analyzed.
+  THcHallCSpectrometer* HMS = new THcHallCSpectrometer("H", "HMS");
+  HMS->SetEvtType(2);
+  HMS->AddEvtType(4);
+  HMS->AddEvtType(5);
+  HMS->AddEvtType(6);
+  HMS->AddEvtType(7);
+  gHaApps->Add(HMS);
+  // Add drift chambers to HMS apparatus
+  THcDC* hdc = new THcDC("dc", "Drift Chambers");
+  HMS->AddDetector(hdc);
+  // Add hodoscope to HMS apparatus
+  THcHodoscope* hhod = new THcHodoscope("hod", "Hodoscope");
+  HMS->AddDetector(hhod);
+   // Add Cherenkov to HMS apparatus
+  THcCherenkov* hcer = new THcCherenkov("cer", "Heavy Gas Cherenkov");
+  HMS->AddDetector(hcer);
+  // Add Aerogel Cherenkov to HMS apparatus
+  //THcAerogel* aero = new THcAerogel("aero", "Aerogel");
+  //HMS->AddDetector(aero);
+  // Add calorimeter to HMS apparatus
+  THcShower* hcal = new THcShower("cal", "Calorimeter");
+  HMS->AddDetector(hcal);
+
+  // Include golden track information
+  THaGoldenTrack* hgtr = new THaGoldenTrack("H.gtr", "HMS Golden Track", "H");
+  gHaPhysics->Add(hgtr);
+  // Add Rastered Beam Apparatus
+  THaApparatus* hbeam = new THcRasteredBeam("H.rb", "HMS Rastered Beamline");
+  gHaApps->Add(hbeam);
+  THaReactionPoint* hrp= new THaReactionPoint("H.react"," HMS reaction point","H","H.rb");
+  gHaPhysics->Add(hrp);
+  THcExtTarCor* hext = new THcExtTarCor("H.extcor"," HMS extended target corrections","H","H.react");
+  gHaPhysics->Add(hext);
+  // Add Physics Module to calculate primary (scattered) beam kinematics
+  // THcPrimaryKine* hkin_primary = new THcPrimaryKine("H.kin.primary", "HMS Single Arm Kinematics", "H", "H.rb");
+  // gHaPhysics->Add(hkin_primary);
+  // Add Physics Module to calculate secondary (scattered) beam kinematics
+  THcSecondaryKine* hkin_secondary = new THcSecondaryKine("H.kin.secondary", "HMS Single Arm Kinematics", "H", "P.kin.primary");
+  gHaPhysics->Add(hkin_secondary);
+  THcHodoEff* heff = new THcHodoEff("hhodeff"," HMS hodo efficiency","H.hod");
+  gHaPhysics->Add(heff);
+  // Add event handler for scaler events
+  //THcScalerEvtHandler *hscaler = new THcScalerEvtHandler("H", "Hall C scaler event type 4");  
+  //hscaler->AddEvtType(2);
+  //hscaler->AddEvtType(4);
+  //pscaler->AddEvtType(5);
+  //pscaler->AddEvtType(6);
+  //pscaler->AddEvtType(7);
+  //hscaler->AddEvtType(129);
+  //hscaler->SetDelayedType(129);
+  //hscaler->SetUseFirstEvent(kTRUE);
+  //gHaEvtHandlers->Add(hscaler);
+
+  //=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
+  // Global Objects & Event Handlers
+  //=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
+
+    // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* coin = new THcTrigDet("coin", "Coincidence Trigger Information");
+  // Suppress missing reference time warnings for these event types
+  coin->SetEvtType(1);
+  coin->AddEvtType(2);
+  TRG->AddDetector(coin); 
+  // Add event handler for prestart event 125.
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);
+  // Add event handler for EPICS events
+  THaEpicsEvtHandler* hcepics = new THaEpicsEvtHandler("epics", "HC EPICS event type 180");
+  gHaEvtHandlers->Add(hcepics);
+ 
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  THcRun* run = new THcRun( pathList, Form(RunFileNamePattern, RunNumber) );
+
+  // Set to read in Hall C run database parameters
+  run->SetRunParamClass("THcRunParameters");
+  
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber, MaxEvent);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+  analyzer->SetEvent(event);
+  // Set EPICS event type
+  analyzer->SetEpicsEvtType(180);
+  // Define crate map
+  analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+  // Define output ROOT file
+  analyzer->SetOutFile(ROOTFileName.Data());
+  // Define DEF-file+
+  analyzer->SetOdefFile("DEF-files/COIN/PRODUCTION/coin_production_ep.def");
+  // Define cuts file
+  analyzer->SetCutFile("DEF-files/COIN/PRODUCTION/coin_production_ep_cuts.def");  // optional
+  // File to record accounting information for cuts
+  analyzer->SetSummaryFile(Form("REPORT_OUTPUT/COIN/PRODUCTION/summary_production_ep_%d.report", RunNumber));  // optional
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template
+  analyzer->PrintReport("TEMPLATES/COIN/PRODUCTION/coin_production_ep.template",
+  			Form("REPORT_OUTPUT/COIN/PRODUCTION/replay_coin_production_ep_%d.report", RunNumber));  // optional
+
+}
diff --git a/SCRIPTS/COIN/SCALERS/replay_coin_scalers.C b/SCRIPTS/COIN/SCALERS/replay_coin_scalers.C
new file mode 100644
index 0000000000000000000000000000000000000000..2a171dc4d1471fa86e9ed47f5b1be4c8daacc293
--- /dev/null
+++ b/SCRIPTS/COIN/SCALERS/replay_coin_scalers.C
@@ -0,0 +1,150 @@
+void replay_coin_scalers (Int_t RunNumber = 0, Int_t MaxEvent = 0) {
+
+  // Get RunNumber and MaxEvent if not provided.
+  if(RunNumber == 0) {
+    cout << "Enter a Run Number (-1 to exit): ";
+    cin >> RunNumber;
+    if( RunNumber<=0 ) return;
+  }
+  if(MaxEvent == 0) {
+    cout << "\nNumber of Events to analyze: ";
+    cin >> MaxEvent;
+    if(MaxEvent == 0) {
+      cerr << "...Invalid entry\n";
+      exit;
+    }
+  }
+
+  // Create file name patterns.
+  const char* RunFileNamePattern = "coin_all_%05d.dat";
+  vector<TString> pathList;
+    pathList.push_back(".");
+    pathList.push_back("./raw");
+    pathList.push_back("./raw/../raw.copiedtotape");
+    pathList.push_back("./cache");
+
+  const char* ROOTFileNamePattern = "ROOTfiles/coin_replay_scalers_%d_%d.root";
+
+  // Load global parameters
+  // Add variables to global list.
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/COIN/STD/standard.database");
+  // Load varibles from files to global list.
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+  // g_ctp_parm_filename and g_decode_map_filename should now be defined.
+  gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
+  gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
+  gHcParms->Load(gHcParms->GetString("g_ctp_calib_filename"));
+  // Load params for SHMS coin configuration
+  gHcParms->Load("PARAM/TRIG/tcoin.param");
+  // Load the Hall C detector map
+  gHcDetectorMap = new THcDetectorMap();
+  gHcDetectorMap->Load("MAPS/COIN/DETEC/coin.map");
+  gHcParms->Load("PARAM/SHMS/GEN/p_fadc_debug.param");
+  gHcParms->Load("PARAM/HMS/GEN/h_fadc_debug.param");
+
+    // Add trigger apparatus
+  THaApparatus* TRG = new THcTrigApp("T", "TRG");
+  gHaApps->Add(TRG);
+  // Add trigger detector to trigger apparatus
+  THcTrigDet* coin = new THcTrigDet("coin", "Coincidence Trigger Information");
+  // Suppress missing reference time warnings for these event types
+  coin->SetEvtType(1);
+  coin->AddEvtType(2);
+  TRG->AddDetector(coin); 
+ 
+  THcHallCSpectrometer* SHMS = new THcHallCSpectrometer("P", "SHMS");
+  SHMS->SetEvtType(1);
+  SHMS->AddEvtType(4);
+  SHMS->AddEvtType(5);
+  SHMS->AddEvtType(6);
+  SHMS->AddEvtType(7);
+  gHaApps->Add(SHMS);
+  THcHallCSpectrometer* HMS = new THcHallCSpectrometer("H", "HMS");
+  HMS->SetEvtType(2);
+  HMS->AddEvtType(4);
+  HMS->AddEvtType(5);
+  HMS->AddEvtType(6);
+  HMS->AddEvtType(7);
+  gHaApps->Add(HMS);
+ 
+  // Add handler for EPICS events
+  THaEpicsEvtHandler *hcepics = new THaEpicsEvtHandler("epics", "HC EPICS event type 180");
+  gHaEvtHandlers->Add(hcepics);
+  // Add handler for scaler events
+  THcScalerEvtHandler *pscaler = new THcScalerEvtHandler("P","Hall C scaler event type 1");
+  pscaler->AddEvtType(1);
+  pscaler->AddEvtType(2);
+  pscaler->AddEvtType(4);
+  pscaler->AddEvtType(5);
+  pscaler->AddEvtType(6);
+  pscaler->AddEvtType(7);
+  pscaler->AddEvtType(129);
+  pscaler->SetDelayedType(129);
+  pscaler->SetUseFirstEvent(kTRUE);
+  gHaEvtHandlers->Add(pscaler);
+  // Add handler for scaler events
+  THcScalerEvtHandler *hscaler = new THcScalerEvtHandler("H","Hall C scaler event type 1");
+  hscaler->AddEvtType(1);
+  hscaler->AddEvtType(2);
+  hscaler->AddEvtType(4);
+  hscaler->AddEvtType(5);
+  hscaler->AddEvtType(6);
+  hscaler->AddEvtType(7);
+  hscaler->AddEvtType(129);
+  hscaler->SetDelayedType(129);
+  hscaler->SetUseFirstEvent(kTRUE);
+  gHaEvtHandlers->Add(hscaler);
+  // Add event handler for DAQ configuration event
+  THcConfigEvtHandler *pconfig = new THcConfigEvtHandler("pconfig", "Hall C configuration event handler");
+  gHaEvtHandlers->Add(pconfig);
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  THcRun* run = new THcRun( pathList, Form(RunFileNamePattern, RunNumber) );
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1, MaxEvent);    // Physics Event number, does not
+                                      // include scaler or control events.
+  run->SetNscan(1);
+  run->SetDataRequired(0x7);
+  run->Print();
+
+  // Define the analysis parameters
+  TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber, MaxEvent);
+  analyzer->SetCountMode(2);    // 0 = counter is # of physics triggers
+                                // 1 = counter is # of all decode reads
+                                // 2 = counter is event number
+  analyzer->SetEvent(event);
+  // Set EPICS event type
+  analyzer->SetEpicsEvtType(180);
+  // Define crate map
+  analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
+  // Define output ROOT file
+  analyzer->SetOutFile(ROOTFileName.Data());
+  // Define DEF-file
+  analyzer->SetOdefFile("DEF-files/COIN/EPICS/epics_short.def");
+  // Define cuts file
+  analyzer->SetCutFile("DEF-files/COIN/SCALERS/coinscaler_cuts.def");  // optional
+  // File to record accounting information for cuts
+  analyzer->SetSummaryFile(Form("REPORT_OUTPUT/COIN/SCALERS/summary_scalers_%d_%d.report", RunNumber, MaxEvent));  // optional
+  // Start the actual analysis.
+  analyzer->Process(run);
+  // Create report file from template
+  analyzer->PrintReport("TEMPLATES/COIN/SCALERS/coinscalers.template",
+  			Form("REPORT_OUTPUT/COIN/SCALERS/replay_coin_scalers_%d_%d.report", RunNumber, MaxEvent));  // optional  
+
+}
diff --git a/TEMPLATES/COIN/PRODUCTION/coin_production_ep.template b/TEMPLATES/COIN/PRODUCTION/coin_production_ep.template
new file mode 100644
index 0000000000000000000000000000000000000000..c352e92c0851a35500446388ae67b26d38788e59
--- /dev/null
+++ b/TEMPLATES/COIN/PRODUCTION/coin_production_ep.template
@@ -0,0 +1,28 @@
+Run #: {gen_run_number}
+
+
+1 MhZ Pulses : {P.1Mhz.scaler}
+Run Length   : {P.1Mhz.scalerTime:%.3f} sec
+
+***********
+* Beamline
+***********
+  
+BCM1 Current: {P.BCM1.scalerCurrent:%.3f} uA		  
+BCM2 Current: {P.BCM2.scalerCurrent:%.3f} uA		 
+Unser Current: {P.Unser.scalerCurrent:%.3f} uA		  
+
+With no cuts on BCM{gBCM_Current_threshold_index+1}.
+BCM1 Counts: {P.BCM1.scaler}		Total Charge: {P.BCM1.scalerCharge:%.3f} uC
+BCM2 Counts: {P.BCM2.scaler} 		Total Charge: {P.BCM2.scalerCharge:%.3f} uC	
+Unser Counts: {P.Unser.scaler} 		Total Charge: {P.Unser.scalerCharge:%.3f} uC
+
+Cut on BCM{gBCM_Current_threshold_index+1} current of {gBCM_Current_threshold} uA. Beam over threshold for {P.1Mhz.scalerTimeCut:%.3f}s, or {((P.1Mhz.scalerTimeCut/P.1Mhz.scalerTime)*100.):%.3f}% of total run time.
+BCM1 Counts: {P.BCM1.scalerCut} 	Total Charge: {P.BCM1.scalerChargeCut:%.3f} uC
+BCM2 Counts: {P.BCM2.scalerCut} 	Total Charge: {P.BCM2.scalerChargeCut:%.3f} uC
+Unser Counts: {P.Unser.scalerCut} 	Total Charge: {P.Unser.scalerChargeCut:%.3f} uC
+
+HMS Singles Triggers   :  {HMS_event.npassed}
+SHMS Singles Triggers  :  {SHMS_event.npassed}
+Coincidence Triggers   :  {COIN_event.npassed}
+All triggers           :  {ALL_events.npassed}
\ No newline at end of file
diff --git a/TEMPLATES/COIN/SCALERS/coinscalers.template b/TEMPLATES/COIN/SCALERS/coinscalers.template
new file mode 100644
index 0000000000000000000000000000000000000000..3a15cb56ecf90e2bb1f66a8d929b1484e34f9448
--- /dev/null
+++ b/TEMPLATES/COIN/SCALERS/coinscalers.template
@@ -0,0 +1,386 @@
+Run number: {gen_run_number}
+
+**************************
+* General Run Information
+**************************
+
+Beam energy : {gpbeam}
+Target mass (amu) : {gtargmass_amu} 
+
+HMS Particle Mass : {hpartmass}
+HMS P Central : {hpcentral}
+HMS Angle : {htheta_lab}
+
+SHMS Particle Mass : {ppartmass}
+SHMS P Central : {ppcentral}
+SHMS Angle : {ptheta_lab}
+
+SHMS Run Length   : {P.1Mhz.scalerTime:%.3f} sec
+
+HMS Run Length   : {H.1Mhz.scalerTime:%.3f} sec
+
+***********
+* Beamline
+***********
+  
+SHMS BCM1 Current: {P.BCM1.scalerCharge/P.1Mhz.scalerTime:%.3f} uA		  
+SHMS BCM2 Current: {P.BCM2.scalerCharge/P.1Mhz.scalerTime:%.3f} uA		 
+SHMS Unser Current: {P.Unser.scalerCharge/P.1Mhz.scalerTime:%.3f} uA		  
+
+With no cuts on BCM{gBCM_Current_threshold_index+1}.
+SHMS BCM1 Total Charge: {P.BCM1.scalerCharge:%.3f} uC
+SHMS BCM2 Total Charge: {P.BCM2.scalerCharge:%.3f} uC	
+SHMS BCM2 Total Charge: {P.Unser.scalerCharge:%.3f} uC
+
+Cut on BCM{gBCM_Current_threshold_index+1} current of {gBCM_Current_threshold} uA. Beam over threshold for {P.1Mhz.scalerTimeCut:%.3f}s, or {((P.1Mhz.scalerTimeCut/P.1Mhz.scalerTime)*100.):%.3f}% of total run time.
+SHMS Beam Cut Time (sec) :  {P.1Mhz.scalerTimeCut:%.3f}
+SHMS Beam Cut BCM1 Total Charge: {P.BCM1.scalerChargeCut:%.3f} uC
+SHMS Beam Cut BCM1 Total Charge: {P.BCM2.scalerChargeCut:%.3f} uC
+SHMS Beam Cut Total Charge: {P.Unser.scalerChargeCut:%.3f} uC
+SHMS Beam Cut BCM1 Current: {P.BCM1.scalerChargeCut/P.1Mhz.scalerTimeCut:%.3f} uA		  
+SHMS Beam Cut BCM2 Current: {P.BCM2.scalerChargeCut/P.1Mhz.scalerTimeCut:%.3f} uA		 
+SHMS Beam Cut Unser Current: {P.Unser.scalerChargeCut/P.1Mhz.scalerTimeCut:%.3f} uA		  
+
+HMS BCM1 Current: {H.BCM1.scalerCharge/H.1Mhz.scalerTime:%.3f} uA		  
+HMS BCM2 Current: {H.BCM2.scalerCharge/H.1Mhz.scalerTime:%.3f} uA		 
+HMS Unser Current: {H.Unser.scalerCharge/H.1Mhz.scalerTime:%.3f} uA		  
+
+With no cuts on BCM{gBCM_Current_threshold_index+1}.
+HMS BCM1 Counts: {H.BCM1.scaler}		
+HMS BCM1 Total Charge: {H.BCM1.scalerCharge:%.3f} uC
+HMS BCM2 Counts: {H.BCM2.scaler} 		
+HMS BCM2 Total Charge: {H.BCM2.scalerCharge:%.3f} uC	
+HMS BCM2 Unser Counts: {H.Unser.scaler} 		
+HMS BCM2 Total Charge: {H.Unser.scalerCharge:%.3f} uC
+
+Cut on BCM{gBCM_Current_threshold_index+1} current of {gBCM_Current_threshold} uA. Beam over threshold for {H.1Mhz.scalerTimeCut:%.3f}s, or {((H.1Mhz.scalerTimeCut/H.1Mhz.scalerTime)*100.):%.3f}% of total run time.
+HMS Beam Cut BCM1 Counts: {H.BCM1.scalerCut} 	
+HMS Beam Cut BCM1 Total Charge: {H.BCM1.scalerChargeCut:%.3f} uC
+HMS Beam Cut BCM2 Counts: {H.BCM2.scalerCut} 	
+HMS Beam Cut BCM1 Total Charge: {H.BCM2.scalerChargeCut:%.3f} uC
+HMS Beam Cut Unser Counts: {H.Unser.scalerCut} 	
+HMS Beam Cut Total Charge: {H.Unser.scalerChargeCut:%.3f} uC
+HMS Beam Cut BCM1 Current: {H.BCM1.scalerChargeCut/H.1Mhz.scalerTime:%.3f} uA		  
+HMS Beam Cut BCM2 Current: {H.BCM2.scalerChargeCut/H.1Mhz.scalerTime:%.3f} uA		 
+HMS Beam Cut Unser Current: {H.Unser.scalerChargeCut/H.1Mhz.scalerTime:%.3f} uA		  
+
+********************
+* DAQ Configuration
+********************
+
+Ps1_factor : {gpconfig_ti_ps_factors[0]}
+Ps2_factor : {gpconfig_ti_ps_factors[1]}
+Ps3_factor : {gpconfig_ti_ps_factors[2]}
+Ps4_factor : {gpconfig_ti_ps_factors[3]}
+Ps5_factor : {gpconfig_ti_ps_factors[4]}
+Ps6_factor : {gpconfig_ti_ps_factors[5]}
+
+***********	
+* Triggers 
+***********
+
+=:=:=:=:=:=:=:  
+= 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}
+SHMS 3/4 Trigger Rate         : {P.pTRIG1.scalerRate/1000.:%.3f} kHz
+Accepted SHMS Triggers        : {pTRIG1_ROC2.npassed}
+SHMS Event Types              : {SHMS_Pretrig.npassed}
+
+=:=:=:=:=:=:=:=:=:=:=:=:
+= 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 Physics 3/4 Trigger Rate       : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)/1000.:%.3f} kHz
+SHMS Accepted Physics Triggers      : {SHMS_physics_accepted.npassed}
+
+=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
+= Coin Trigger TDC Data scalers
+=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
+
+Coin ROC2 pTRIG1 passed: {pTRIG1_ROC2.npassed}
+Coin ROC2 pTRIG2 passed: {pTRIG2_ROC2.npassed}
+Coin ROC2 pTRIG3 passed: {pTRIG3_ROC2.npassed}
+Coin ROC2 pTRIG4 passed: {pTRIG4_ROC2.npassed}
+Coin ROC2 pTRIG5 passed: {pTRIG5_ROC2.npassed}
+Coin ROC2 pTRIG6 passed: {pTRIG6_ROC2.npassed}
+
+Coin ROC1 pTRIG1 passed: {pTRIG1_ROC1.npassed}
+Coin ROC1 pTRIG2 passed: {pTRIG2_ROC1.npassed}
+Coin ROC1 pTRIG3 passed: {pTRIG3_ROC1.npassed}
+Coin ROC1 pTRIG4 passed: {pTRIG4_ROC1.npassed}
+Coin ROC1 pTRIG5 passed: {pTRIG5_ROC1.npassed}
+Coin ROC1 pTRIG6 passed: {pTRIG6_ROC1.npassed}
+
+=:=:=:=:=:=:=:=:=:=:=:  
+= HMS Trigger Scalers
+=:=:=:=:=:=:=:=:=:=:=: 
+
+HMS_hEL_LO_LO :	{H.hEL_LO_LO.scaler}	[ {(H.hEL_LO_LO.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_hEL_LO    :	{H.hEL_LO.scaler}	[ {(H.hEL_LO.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_hEL_HI    :	{H.hEL_HI.scaler}	[ {(H.hEL_HI.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_hEL_REAL  :	{H.hEL_REAL.scaler}	[ {(H.hEL_REAL.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_hEL_CLEAN :	{H.hEL_CLEAN.scaler}	[ {(H.hEL_CLEAN.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_hSTOF     :	{H.hSTOF.scaler}	[ {(H.hSTOF.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+HMS_hTRIG1 :  	{H.hTRIG1.scaler} 	[ {(H.hTRIG1.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_hTRIG2 :  	{H.hTRIG2.scaler} 	[ {(H.hTRIG2.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_hTRIG3 :  	{H.hTRIG3.scaler} 	[ {(H.hTRIG3.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_hTRIG4 : 	{H.hTRIG4.scaler} 	[ {(H.hTRIG4.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_hTRIG5 :  	{H.hTRIG5.scaler} 	[ {(H.hTRIG5.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_hTRIG6 :  	{H.hTRIG6.scaler} 	[ {(H.hTRIG6.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+HMS_pTRIG1 :  	{H.pTRIG1.scaler} 	[ {(H.pTRIG1.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_pTRIG2 :  	{H.pTRIG2.scaler} 	[ {(H.pTRIG2.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_pTRIG3 :  	{H.pTRIG3.scaler} 	[ {(H.pTRIG3.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_pTRIG4 : 	{H.pTRIG4.scaler} 	[ {(H.pTRIG4.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_pTRIG5 :  	{H.pTRIG5.scaler} 	[ {(H.pTRIG5.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+HMS_pTRIG6 :  	{H.pTRIG6.scaler} 	[ {(H.pTRIG6.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+=:=:=:=:=:=:=:=:=:=:=:=: 
+= SHMS Trigger Scalers
+=:=:=:=:=:=:=:=:=:=:=:=: 
+
+SHMS_pEL_LO_LO :	{P.pEL_LO_LO.scaler}	[ {(P.pEL_LO_LO.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+SHMS_pEL_LO    :	{P.pEL_LO.scaler}	[ {(P.pEL_LO.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+SHMS_pEL_HI    :	{P.pEL_HI.scaler}	[ {(P.pEL_HI.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+SHMS_pEL_REAL  :	{P.pEL_REAL.scaler}	[ {(P.pEL_REAL.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+SHMS_pEL_CLEAN :	{P.pEL_CLEAN.scaler}	[ {(P.pEL_CLEAN.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+SHMS_pSTOF     :	{P.pSTOF.scaler}	[ {(P.pSTOF.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+SHMS_pTRIG1 :  	{P.pTRIG1.scaler} 	[ {(P.pTRIG1.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+SHMS_pTRIG2 :  	{P.pTRIG2.scaler} 	[ {(P.pTRIG2.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+SHMS_pTRIG3 :  	{P.pTRIG3.scaler} 	[ {(P.pTRIG3.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+SHMS_pTRIG4 :  	{P.pTRIG4.scaler} 	[ {(P.pTRIG4.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+SHMS_pTRIG5 :  	{P.pTRIG5.scaler} 	[ {(P.pTRIG5.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+SHMS_pTRIG6 :  	{P.pTRIG6.scaler} 	[ {(P.pTRIG6.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+SHMS_hTRIG1 :  	{P.hTRIG1.scaler} 	[ {(P.hTRIG1.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+SHMS_hTRIG2 :  	{P.hTRIG2.scaler} 	[ {(P.hTRIG2.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+SHMS_hTRIG3 :  	{P.hTRIG3.scaler} 	[ {(P.hTRIG3.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+SHMS_hTRIG4 :  	{P.hTRIG4.scaler} 	[ {(P.hTRIG4.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+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
+=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
+
+ROC2 Pre-Scaled Ps1 ROC2 Computer Live Time : {(pTRIG1_ROC2.npassed / (P.pTRIG1.scaler/gpconfig_ti_ps_factors[0]))*100.0:%3.4f} %
+ROC2 Pre-Scaled Ps1 ROC2 Computer Dead Time : {100.0 - (pTRIG1_ROC2.npassed / (P.pTRIG1.scaler/gpconfig_ti_ps_factors[0]))*100.0:%3.4f} %
+
+ROC2 Pre-Scaled Ps2 ROC2 Computer Live Time : {(pTRIG2_ROC2.npassed / (P.pTRIG2.scaler/gpconfig_ti_ps_factors[1]))*100.0:%3.4f} %
+ROC2 Pre-Scaled Ps2 ROC2 Computer Dead Time : {100.0 - (pTRIG2_ROC2.npassed / (P.pTRIG2.scaler/gpconfig_ti_ps_factors[1]))*100.0:%3.4f} %
+
+ROC2 Pre-Scaled Ps3 ROC2 Computer Live Time : {(pTRIG3_ROC2.npassed / (P.pTRIG3.scaler/gpconfig_ti_ps_factors[2]))*100.0:%3.4f} %
+ROC2 Pre-Scaled Ps3 ROC2 Computer Dead Time : {100.0 - (pTRIG3_ROC2.npassed / (P.pTRIG3.scaler/gpconfig_ti_ps_factors[2]))*100.0:%3.4f} %
+
+ROC2 Pre-Scaled Ps4 ROC2 Computer Live Time : {(pTRIG4_ROC2.npassed / (P.pTRIG4.scaler/gpconfig_ti_ps_factors[3]))*100.0:%3.4f} %
+ROC2 Pre-Scaled Ps4 ROC2 Computer Dead Time : {100.0 - (pTRIG4_ROC2.npassed / (P.pTRIG4.scaler/gpconfig_ti_ps_factors[3]))*100.0:%3.4f} %
+
+ROC2 Pre-Scaled Ps6 ROC2 Computer Live Time : {(pTRIG6_ROC2.npassed / (P.pTRIG6.scaler/gpconfig_ti_ps_factors[5]))*100.0:%3.4f} %
+ROC2 Pre-Scaled Ps6 ROC2 Computer Dead Time : {100.0 - (pTRIG6_ROC2.npassed / (P.pTRIG6.scaler/gpconfig_ti_ps_factors[5]))*100.0:%3.4f} %
+
+ROC2 Pre-Scaled Ps1 Total Live Time (EDTM) : {(SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[0]))*100.0:%3.4f} %
+ROC2 Pre-Scaled Ps1 Total Dead Time (EDTM) : {100.0 - (SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[0]))*100.0:%3.4f} %
+
+ROC2 Pre-Scaled Ps2 Total Live Time (EDTM) : {(SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[1]))*100.0:%3.4f} %
+ROC2 Pre-Scaled Ps2 Total Dead Time (EDTM) : {100.0 - (SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[1]))*100.0:%3.4f} %
+
+ROC2 Pre-Scaled Ps3 Total Live Time (EDTM) : {(SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[2]))*100.0:%3.4f} %
+ROC2 Pre-Scaled Ps3 Total Dead Time (EDTM) : {100.0 - (SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[2]))*100.0:%3.4f} %
+
+ROC2 Pre-Scaled Ps4 Total Live Time (EDTM) : {(SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[3]))*100.0:%3.4f} %
+ROC2 Pre-Scaled Ps4 Total Dead Time (EDTM) : {100.0 - (SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[3]))*100.0:%3.4f} %
+
+ROC2 Pre-Scaled Ps6 Total Live Time (EDTM) : {(SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[5]))*100.0:%3.4f} %
+ROC2 Pre-Scaled Ps6 Total Dead Time (EDTM) : {100.0 - (SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[5]))*100.0:%3.4f} %
+
+ROC2 OG 6 GeV Electronic Live Time (100, 150) : {100.0 - ((P.pPRE100.scaler - P.pPRE150.scaler)/P.pPRE100.scaler):%3.4f} %
+ROC2 OG 6 GeV Electronic Dead Time (100, 150) : {((P.pPRE100.scaler - P.pPRE150.scaler)/P.pPRE100.scaler):%3.4f} %
+
+ROC2 OG 6 GeV Electronic Live Time (100, 200) : {100.0 - ((P.pPRE100.scaler - P.pPRE200.scaler)/P.pPRE100.scaler):%3.4f} %
+ROC2 OG 6 GeV Electronic Dead Time (100, 200) : {((P.pPRE100.scaler - P.pPRE200.scaler)/P.pPRE100.scaler):%3.4f} %
+
+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} %
+
+=:=:=:=:=:=:=:=:=:
+= SHMS Hodoscopes
+=:=:=:=:=:=:=:=:=:
+
+P1X : {P.S1X.scaler} [ {(P.S1X.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of P1X 
+P1Y : {P.S1Y.scaler} [ {(P.S1Y.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of P1Y
+P2X : {P.S2X.scaler} [ {(P.S2X.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of P2X
+P2Y : {P.S2Y.scaler} [ {(P.S2Y.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of P2Y
+
+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
+=:=:=:=:=:=:=:=:=:=:=:=:=
+
+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 ]
+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
+*******************
+
+=:=:=:=:=:=:=:
+= HODOSCOPES
+=:=:=:=:=:=:=:
+
+Scint	Counts		Rate
+P1X1+:  {P.hod.1x1.posScaler} [ {(P.hod.1x1.posScalerRate/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X2+:  {P.hod.1x2.posScaler} [ {(P.hod.1x2.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X3+:  {P.hod.1x3.posScaler} [ {(P.hod.1x3.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X4+:  {P.hod.1x4.posScaler} [ {(P.hod.1x4.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X5+:  {P.hod.1x5.posScaler} [ {(P.hod.1x5.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X6+:  {P.hod.1x6.posScaler} [ {(P.hod.1x6.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X7+:  {P.hod.1x7.posScaler} [ {(P.hod.1x7.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X8+:  {P.hod.1x8.posScaler} [ {(P.hod.1x8.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X9+:  {P.hod.1x9.posScaler} [ {(P.hod.1x9.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X10+: {P.hod.1x10.posScaler} [ {(P.hod.1x10.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X11+: {P.hod.1x11.posScaler} [ {(P.hod.1x11.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] 
+P1X12+: {P.hod.1x12.posScaler} [ {(P.hod.1x12.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X13+: {P.hod.1x13.posScaler} [ {(P.hod.1x13.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+P1X1-:  {P.hod.1x1.negScaler} [ {(P.hod.1x1.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X2-:  {P.hod.1x2.negScaler} [ {(P.hod.1x2.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X3-:  {P.hod.1x3.negScaler} [ {(P.hod.1x3.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X4-:  {P.hod.1x4.negScaler} [ {(P.hod.1x4.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X5-:  {P.hod.1x5.negScaler} [ {(P.hod.1x5.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X6-:  {P.hod.1x6.negScaler} [ {(P.hod.1x6.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X7-:  {P.hod.1x7.negScaler} [ {(P.hod.1x7.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X8-:  {P.hod.1x8.negScaler} [ {(P.hod.1x8.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X9-:  {P.hod.1x9.negScaler} [ {(P.hod.1x9.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X10-: {P.hod.1x10.negScaler} [ {(P.hod.1x10.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X11-: {P.hod.1x11.negScaler} [ {(P.hod.1x11.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X12-: {P.hod.1x12.negScaler} [ {(P.hod.1x12.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1X13-: {P.hod.1x13.negScaler} [ {(P.hod.1x13.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+ 
+P1Y1+:  {P.hod.1y1.posScaler} [ {(P.hod.1y1.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y2+:  {P.hod.1y2.posScaler} [ {(P.hod.1y2.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y3+:  {P.hod.1y3.posScaler} [ {(P.hod.1y3.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y4+:  {P.hod.1y4.posScaler} [ {(P.hod.1y4.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y5+:  {P.hod.1y5.posScaler} [ {(P.hod.1y5.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y6+:  {P.hod.1y6.posScaler} [ {(P.hod.1y6.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y7+:  {P.hod.1y7.posScaler} [ {(P.hod.1y7.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y8+:  {P.hod.1y8.posScaler} [ {(P.hod.1y8.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y9+:  {P.hod.1y9.posScaler} [ {(P.hod.1y9.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y10+: {P.hod.1y10.posScaler} [ {(P.hod.1y10.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y11+: {P.hod.1y11.posScaler} [ {(P.hod.1y11.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y12+: {P.hod.1y12.posScaler} [ {(P.hod.1y12.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y13+: {P.hod.1y13.posScaler} [ {(P.hod.1y13.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+P1Y1-:  {P.hod.1y1.negScaler} [ {(P.hod.1y1.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y2-:  {P.hod.1y2.negScaler} [ {(P.hod.1y2.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y3-:  {P.hod.1y3.negScaler} [ {(P.hod.1y3.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y4-:  {P.hod.1y4.negScaler} [ {(P.hod.1y4.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y5-:  {P.hod.1y5.negScaler} [ {(P.hod.1y5.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y6-:  {P.hod.1y6.negScaler} [ {(P.hod.1y6.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y7-:  {P.hod.1y7.negScaler} [ {(P.hod.1y7.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y8-:  {P.hod.1y8.negScaler} [ {(P.hod.1y8.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y9-:  {P.hod.1y9.negScaler} [ {(P.hod.1y9.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y10-: {P.hod.1y10.negScaler} [ {(P.hod.1y10.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y11-: {P.hod.1y11.negScaler} [ {(P.hod.1y11.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y12-: {P.hod.1y12.negScaler} [ {(P.hod.1y12.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P1Y13-: {P.hod.1y13.negScaler} [ {(P.hod.1y13.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+P2X1+:  {P.hod.2x1.posScaler} [ {(P.hod.2x1.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X2+:  {P.hod.2x2.posScaler} [ {(P.hod.2x2.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X3+:  {P.hod.2x3.posScaler} [ {(P.hod.2x3.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X4+:  {P.hod.2x4.posScaler} [ {(P.hod.2x4.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X5+:  {P.hod.2x5.posScaler} [ {(P.hod.2x5.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X6+:  {P.hod.2x6.posScaler} [ {(P.hod.2x6.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X7+:  {P.hod.2x7.posScaler} [ {(P.hod.2x7.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X8+:  {P.hod.2x8.posScaler} [ {(P.hod.2x8.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X9+:  {P.hod.2x9.posScaler} [ {(P.hod.2x9.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X10+: {P.hod.2x10.posScaler} [ {(P.hod.2x10.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X11+: {P.hod.2x11.posScaler} [ {(P.hod.2x11.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X12+: {P.hod.2x12.posScaler} [ {(P.hod.2x12.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X13+: {P.hod.2x13.posScaler} [ {(P.hod.2x13.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X14+: {P.hod.2x14.posScaler} [ {(P.hod.2x14.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+P2X1-:  {P.hod.2x1.negScaler} [ {(P.hod.2x1.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X2-:  {P.hod.2x2.negScaler} [ {(P.hod.2x2.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X3-:  {P.hod.2x3.negScaler} [ {(P.hod.2x3.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X4-:  {P.hod.2x4.negScaler} [ {(P.hod.2x4.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X5-:  {P.hod.2x5.negScaler} [ {(P.hod.2x5.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X6-:  {P.hod.2x6.negScaler} [ {(P.hod.2x6.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X7-:  {P.hod.2x7.negScaler} [ {(P.hod.2x7.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X8-:  {P.hod.2x8.negScaler} [ {(P.hod.2x8.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X9-:  {P.hod.2x9.negScaler} [ {(P.hod.2x9.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X10-: {P.hod.2x10.negScaler} [ {(P.hod.2x10.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X11-: {P.hod.2x11.negScaler} [ {(P.hod.2x11.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X12-: {P.hod.2x12.negScaler} [ {(P.hod.2x12.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X13-: {P.hod.2x13.negScaler} [ {(P.hod.2x13.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2X14-: {P.hod.2x14.negScaler} [ {(P.hod.2x14.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+P2Y1+:  {P.hod.2y1.posScaler} [ {(P.hod.2y1.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y2+:  {P.hod.2y2.posScaler} [ {(P.hod.2y2.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y3+:  {P.hod.2y3.posScaler} [ {(P.hod.2y3.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] 
+P2Y4+:  {P.hod.2y4.posScaler} [ {(P.hod.2y4.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y5+:  {P.hod.2y5.posScaler} [ {(P.hod.2y5.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y6+:  {P.hod.2y6.posScaler} [ {(P.hod.2y6.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y7+:  {P.hod.2y7.posScaler} [ {(P.hod.2y7.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y8+:  {P.hod.2y8.posScaler} [ {(P.hod.2y8.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y9+:  {P.hod.2y9.posScaler} [ {(P.hod.2y9.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y10+: {P.hod.2y10.posScaler} [ {(P.hod.2y10.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y11+: {P.hod.2y11.posScaler} [ {(P.hod.2y11.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y12+: {P.hod.2y12.posScaler} [ {(P.hod.2y12.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y13+: {P.hod.2y13.posScaler} [ {(P.hod.2y13.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y14+: {P.hod.2y14.posScaler} [ {(P.hod.2y14.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y15+: {P.hod.2y15.posScaler} [ {(P.hod.2y15.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y16+: {P.hod.2y16.posScaler} [ {(P.hod.2y16.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y17+: {P.hod.2y17.posScaler} [ {(P.hod.2y17.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y18+: {P.hod.2y18.posScaler} [ {(P.hod.2y18.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y19+: {P.hod.2y19.posScaler} [ {(P.hod.2y19.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y20+: {P.hod.2y20.posScaler} [ {(P.hod.2y20.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y21+: {P.hod.2y21.posScaler} [ {(P.hod.2y21.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+
+P2Y1-:  {P.hod.2y1.negScaler} [ {(P.hod.2y1.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y2-:  {P.hod.2y2.negScaler} [ {(P.hod.2y2.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y3-:  {P.hod.2y3.negScaler} [ {(P.hod.2y3.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y4-:  {P.hod.2y4.negScaler} [ {(P.hod.2y4.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y5-:  {P.hod.2y5.negScaler} [ {(P.hod.2y5.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y6-:  {P.hod.2y6.negScaler} [ {(P.hod.2y6.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y7-:  {P.hod.2y7.negScaler} [ {(P.hod.2y7.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y8-:  {P.hod.2y8.negScaler} [ {(P.hod.2y8.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y9-:  {P.hod.2y9.negScaler} [ {(P.hod.2y9.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y10-: {P.hod.2y10.negScaler} [ {(P.hod.2y10.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y11-: {P.hod.2y11.negScaler} [ {(P.hod.2y11.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y12-: {P.hod.2y12.negScaler} [ {(P.hod.2y12.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y13-: {P.hod.2y13.negScaler} [ {(P.hod.2y13.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y14-: {P.hod.2y14.negScaler} [ {(P.hod.2y14.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y15-: {P.hod.2y15.negScaler} [ {(P.hod.2y15.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y16-: {P.hod.2y16.negScaler} [ {(P.hod.2y16.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y17-: {P.hod.2y17.negScaler} [ {(P.hod.2y17.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+P2Y18-: {P.hod.2y18.negScaler} [ {(P.hod.2y18.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
+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 ]
\ No newline at end of file
diff --git a/onlineGUI/CONFIG/SHMS/SCALERS/shms_scaler.cfg b/onlineGUI/CONFIG/SHMS/SCALERS/shms_scaler.cfg
index e57e520e416d0b271990a4fc566b754d4436f842..106c2bfec0be71f4b8edaae896877d28ca7cbd10 100644
--- a/onlineGUI/CONFIG/SHMS/SCALERS/shms_scaler.cfg
+++ b/onlineGUI/CONFIG/SHMS/SCALERS/shms_scaler.cfg
@@ -1,6 +1,6 @@
-protorootfile ../ROOTfiles/shms_replay_scalers_XXXXX_10000.root
+protorootfile ../ROOTfiles/shms_coin_replay_production_XXXXX_50000.root
 guicolor orange
-canvassize 1600 800
+canvassize 800 800
 newpage 2 3
 title Trig rates
 macro UTIL/SHMS/SCALERS/plot_shms_scalers.C("uhScalTrigS1X","none")