diff --git a/SCRIPTS/SHMS/replay_shms.C b/SCRIPTS/SHMS/replay_shms.C
index 017649963c702e616da4445eb9974e9b2e0a57b1..0c85d10632c3fbd382f786a3be3006a63f5d3943 100644
--- a/SCRIPTS/SHMS/replay_shms.C
+++ b/SCRIPTS/SHMS/replay_shms.C
@@ -71,6 +71,9 @@ void replay_shms(Int_t RunNumber=0, Int_t MaxEvent=0) {
   // Include golden track information
   THaGoldenTrack* gtr = new THaGoldenTrack("P.gtr", "SHMS Golden Track", "P");
   gHaPhysics->Add(gtr);
+
+  THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
+  gHaEvtHandlers->Add(ev125);			     
   
   // Set up the analyzer - we use the standard one,
   // but this could be an experiment-specific one as well.
diff --git a/onlineGUI/Macros/kpp_analysis.C b/onlineGUI/Macros/kpp_analysis.C
index 1df73b6466cee03f3b03e267ef5e0b176dd396e2..c3132cfce369c1b5f3d1da76ab66f3490915f927 100644
--- a/onlineGUI/Macros/kpp_analysis.C
+++ b/onlineGUI/Macros/kpp_analysis.C
@@ -24,6 +24,14 @@ void UserScript() {
   static const UInt_t maxTdcHits = 128;
   static const UInt_t maxAdcHits = 4;
 
+  static const Double_t pshwr_adc2GeV = 0.001;
+  static const Double_t shwr_adc2GeV  = 0.0005;
+
+  static const Double_t hgc_adc2npe = 1./150.;
+  static const Double_t ngc_adc2npe = 1./150.;
+
+  static const Double_t aero_adc2npe = 1./200.;
+
   // =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
 
   // Declare variables
@@ -71,23 +79,28 @@ void UserScript() {
   Int_t paero_posHits, paero_negHits;
   Double_t paero_posPmt[maxAdcHits*npos_aero_pmts], paero_negPmt[maxAdcHits*nneg_aero_pmts];
   Double_t paero_posPulseTime[maxAdcHits*npos_aero_pmts], paero_negPulseTime[maxAdcHits*nneg_aero_pmts];
+  Double_t paero_posPulseInt[maxAdcHits*npos_aero_pmts], paero_negPulseInt[maxAdcHits*nneg_aero_pmts];
 
   // Pre-Shower ADC
   Int_t ppshwr_posHits, ppshwr_negHits;
   Double_t ppshwr_posPmt[maxAdcHits*npos_pshwr_blks], ppshwr_negPmt[maxAdcHits*nneg_pshwr_blks];
   Double_t ppshwr_posPulseTime[maxAdcHits*npos_pshwr_blks], ppshwr_negPulseTime[maxAdcHits*nneg_pshwr_blks];
+  Double_t ppshwr_posPulseInt[maxAdcHits*npos_pshwr_blks], ppshwr_negPulseInt[maxAdcHits*nneg_pshwr_blks];
 
   // Shower ADC
   Int_t pshwr_hits;
   Double_t pshwr_pmt[maxAdcHits*nshwr_blks], pshwr_pulseTime[maxAdcHits*nshwr_blks];
+  Double_t pshwr_pulseInt[maxAdcHits*nshwr_blks];
 
   // Heavy gas Cherenkov ADC
   Int_t phgc_hits;
   Double_t phgc_pmt[maxAdcHits*nhgc_pmts], phgc_pulseTime[maxAdcHits*nhgc_pmts];
+  Double_t phgc_pulseInt[maxAdcHits*nhgc_pmts];
   
   // Noble gas Cherenkov ADC
   Int_t pngc_hits;
   Double_t pngc_pmt[maxAdcHits*nngc_pmts], pngc_pulseTime[maxAdcHits*nngc_pmts];
+  Double_t pngc_pulseInt[maxAdcHits*nngc_pmts];
   
   Long64_t nentries;
 
@@ -132,6 +145,9 @@ void UserScript() {
   TH2F *h2_pngc_pulseTime_pT2_diff;
   TH2F *h2_pngc_pulseTime_pT3_diff;
 
+  TH2F *h2_pshwr_vs_phgcer, *h2_pshwr_vs_pngcer;
+  TH1F *h_paero_sum, *h_ppshwr_sum, *h_pshwr_sum, h_phgc_sum, h_pngc_sum;
+
   // =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
   
   // Declare trees
@@ -248,6 +264,8 @@ void UserScript() {
   T->SetBranchAddress("P.aero.posAdcCounter", paero_posPmt);
   T->SetBranchAddress("P.aero.negAdcPulseTimeRaw", paero_negPulseTime);
   T->SetBranchAddress("P.aero.posAdcPulseTimeRaw", paero_posPulseTime);
+  T->SetBranchAddress("P.aero.negAdcPulseInt", paero_negPulseInt);
+  T->SetBranchAddress("P.aero.posAdcPulseInt", paero_posPulseInt);
 
   // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
 
@@ -257,24 +275,29 @@ void UserScript() {
   T->SetBranchAddress("P.cal.pr.posAdcCounter", ppshwr_posPmt);
   T->SetBranchAddress("P.cal.pr.negAdcPulseTimeRaw", ppshwr_negPulseTime);
   T->SetBranchAddress("P.cal.pr.posAdcPulseTimeRaw", ppshwr_posPulseTime);
+  T->SetBranchAddress("P.cal.pr.negAdcPulseInt", ppshwr_negPulseInt);
+  T->SetBranchAddress("P.cal.pr.posAdcPulseInt", ppshwr_posPulseInt);
 
   // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
 
   T->SetBranchAddress("Ndata.P.cal.fly.adcCounter", &pshwr_hits);
   T->SetBranchAddress("P.cal.fly.adcCounter", pshwr_pmt);
   T->SetBranchAddress("P.cal.fly.adcPulseTimeRaw", pshwr_pulseTime);
+  T->SetBranchAddress("P.cal.fly.adcPulseInt", pshwr_pulseInt);
 
   // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
 
   T->SetBranchAddress("Ndata.P.hgcer.adcCounter", &phgc_hits);
   T->SetBranchAddress("P.hgcer.adcCounter", &phgc_pmt);
   T->SetBranchAddress("P.hgcer.adcPulseTimeRaw", &phgc_pulseTime);
+  T->SetBranchAddress("P.hgcer.adcPulseInt", &phgc_pulseInt);
 
   // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
 
   T->SetBranchAddress("Ndata.P.ngcer.adcCounter", &pngc_hits);
   T->SetBranchAddress("P.ngcer.adcCounter", &pngc_pmt);
   T->SetBranchAddress("P.ngcer.adcPulseTimeRaw", &pngc_pulseTime);
+  T->SetBranchAddress("P.ngcer.adcPulseInt", &pngc_pulseInt);
   
   // =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
           
@@ -379,6 +402,16 @@ void UserScript() {
   h2_pngc_pulseTime_pT1_diff = new TH2F("h2_pngc_pulseTime_pT1_diff", "SHMS Noble Gas Cherenkov ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", nngc_pmts, 0.5, nngc_pmts + 0.5, 500, -250, 250);
   h2_pngc_pulseTime_pT2_diff = new TH2F("h2_pngc_pulseTime_pT2_diff", "SHMS Noble Gas Cherenkov ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", nngc_pmts, 0.5, nngc_pmts + 0.5, 500, -250, 250);
   h2_pngc_pulseTime_pT3_diff = new TH2F("h2_pngc_pulseTime_pT3_diff", "SHMS Noble Gas Cherenkov ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", nngc_pmts, 0.5, nngc_pmts + 0.5, 500, -250, 250);
+    
+  // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//
+
+  h2_pshwr_vs_phgcer = new TH2F ("h2_pshwr_vs_phgcer", "SHMS Shower vs. Heavy Gas Cherenkov; Number of HGC Photoelectrons; Shower Energy / 10 MeV", 1000, 0, 1000, 1200, 0, 12);
+  h2_pshwr_vs_pngcer = new TH2F ("h2_pshwr_vs_pngcer", "SHMS Shower vs. Noble Gas Cherenkov; Number of HGC Photoelectrons; Shower Energy / 10 MeV", 1000, 0, 1000, 1200, 0, 12);
+  h_paero_sum = new TH1F ("h_paero_sum", "SHMS Number of Aerogrel Photoelectrons; Number of Aerogel Photoelectrons; Counts / 10 Photoelectron", 1000, 0, 10000);
+  h_ppshwr_sum = new TH1F ("h_ppshwr_sum", "SHMS Pre-Shower Energy; Pre-Shower Energy; Counts / 10 MeV", 1200, 0, 12);
+  h_pshwr_sum = new TH1F ("h_pshwr_sum", "SHMS Shower Energy; Shower Energy; Counts / 10 MeV", 1200, 0, 12);
+  h_phgc_sum = new TH1F ("h_phgc_sum", "SHMS Number of HGC Photoelectrons; Number of HGC Photoelectrons; Counts / 10 Photoelectron", 1000, 0, 10000);
+  h_pngc_sum = new TH1F ("h_pngc_sum", "SHMS Number of NGC Photoelectrons; Number of NGC Photoelectrons; Counts / 10 Photoelectron", 1000, 0, 10000);
   
   // =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
 
@@ -519,16 +552,20 @@ void UserScript() {
 
     // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
 
+    Double_t paero_sum = 0.0;
     for (UInt_t iaerohit = 0; iaerohit < paero_negHits; iaerohit++) {
       h2_paero_negPulseTime_pT1_diff->Fill(paero_negPmt[iaerohit], paero_negPulseTime[iaerohit]*clk2adc - pT1_tdcTime*clk2tdc);
       h2_paero_negPulseTime_pT2_diff->Fill(paero_negPmt[iaerohit], paero_negPulseTime[iaerohit]*clk2adc - pT2_tdcTime*clk2tdc);
       h2_paero_negPulseTime_pT3_diff->Fill(paero_negPmt[iaerohit], paero_negPulseTime[iaerohit]*clk2adc - pT3_tdcTime*clk2tdc);
+      paero_sum += paero_negPulseInt[iaerohit]*aero_adc2npe;
     }
     for (UInt_t iaerohit = 0; iaerohit < paero_posHits; iaerohit++) {
       h2_paero_posPulseTime_pT1_diff->Fill(paero_posPmt[iaerohit], paero_posPulseTime[iaerohit]*clk2adc - pT1_tdcTime*clk2tdc);
       h2_paero_posPulseTime_pT2_diff->Fill(paero_posPmt[iaerohit], paero_posPulseTime[iaerohit]*clk2adc - pT2_tdcTime*clk2tdc);
       h2_paero_posPulseTime_pT3_diff->Fill(paero_posPmt[iaerohit], paero_posPulseTime[iaerohit]*clk2adc - pT3_tdcTime*clk2tdc);
+      paero_sum += paero_posPulseInt[iaerohit]*aero_adc2npe;
     }
+    h_paero_sum->Fill(paero_sum);
 
     // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
     
@@ -543,6 +580,7 @@ void UserScript() {
       h2_ppshwr_posPulseTime_pT3_diff->Fill(ppshwr_posPmt[ipshwrhit], ppshwr_posPulseTime[ipshwrhit]*clk2adc - pT3_tdcTime*clk2tdc);
     }
 
+
     // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
 
     for (UInt_t ishwrhit = 0; ishwrhit < pshwr_hits; ishwrhit++) {