From d4950896a11c55f4a19c5d55e5c5414c4ab7b3da Mon Sep 17 00:00:00 2001
From: Eric Pooser <pooser@jlab.org>
Date: Mon, 11 Dec 2017 16:22:31 -0500
Subject: [PATCH] Report file work (#331)

* Update templates so that scalers and production are calculating the computer live time in the same manner

* Update replay scripts to include the configuration event handler and correct event types in the scaler replays

* Update various DEFfiles so that the report file quantities are consistent
---
 .../PRODUCTION/hstackana_production_cuts.def  | 27 ++++++++--------
 DEF-files/HMS/SCALERS/hscaler_cuts.def        | 14 +++++---
 .../PRODUCTION/pstackana_production_cuts.def  | 21 ++++++------
 DEF-files/SHMS/SCALERS/pscaler_cuts.def       | 14 +++++---
 .../HMS/PRODUCTION/replay_production_hms.C    |  3 ++
 SCRIPTS/HMS/SCALERS/replay_hms_scalers.C      |  2 ++
 .../SHMS/PRODUCTION/replay_production_shms.C  |  3 ++
 SCRIPTS/SHMS/SCALERS/replay_shms_scalers.C    |  2 ++
 .../PRODUCTION/hstackana_production.template  | 32 +++++++++++--------
 TEMPLATES/HMS/SCALERS/hscalers.template       |  8 ++---
 .../PRODUCTION/pstackana_production.template  | 10 +++---
 TEMPLATES/SHMS/SCALERS/pscalers.template      |  8 ++---
 12 files changed, 86 insertions(+), 58 deletions(-)

diff --git a/DEF-files/HMS/PRODUCTION/hstackana_production_cuts.def b/DEF-files/HMS/PRODUCTION/hstackana_production_cuts.def
index 0ed8d95f..5da0a03a 100644
--- a/DEF-files/HMS/PRODUCTION/hstackana_production_cuts.def
+++ b/DEF-files/HMS/PRODUCTION/hstackana_production_cuts.def
@@ -3,22 +3,23 @@
 Block: RawDecode
 
 Pedestal_event     g.evtyp == 99
+HMS_event          g.evtyp == 2
+SHMS_event         g.evtyp == 1
+COIN_event         g.evtyp == 4
 
-HMS_event    g.evtyp == 2
-SHMS_event   g.evtyp == 1
-COIN_event   g.evtyp == 4
-TRIG1        T.hms.hTRIG1_tdcTimeRaw>0
-TRIG2        T.hms.hTRIG2_tdcTimeRaw>0
-TRIG3        T.hms.hTRIG3_tdcTimeRaw>0
-HMS_Pretrig  TRIG1||TRIG2||TRIG3
+TRIG1        T.hms.hTRIG1_tdcTimeRaw > 0
+TRIG2        T.hms.hTRIG2_tdcTimeRaw > 0
+TRIG3        T.hms.hTRIG3_tdcTimeRaw > 0
+HMS_Pretrig  TRIG1 || TRIG2 || TRIG3
 
+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
 
-hms_trigs        HMS_event
-
 Decode_master     HMS_event
 
 Block: CoarseTracking
@@ -34,11 +35,9 @@ time_cut6                            H.dc.1x2.time > 0 && H.dc.1x2.time < 250
 time_cut7                            H.dc.2x1.time > 0 && H.dc.2x1.time < 250
 time_cut8                            H.dc.2v2.time > 0 && H.dc.1v2.time < 250
 time_cut9                            H.dc.2u1.time > 0 && H.dc.2u1.time < 250
-time_cut10                            H.dc.2v1.time > 0 && H.dc.2v1.time < 250
-time_cut11                            H.dc.2u2.time > 0 && H.dc.2u2.time < 250
-time_cut12                            H.dc.2x2.time > 0 && H.dc.2x2.time < 250
-
-
+time_cut10                           H.dc.2v1.time > 0 && H.dc.2v1.time < 250
+time_cut11                           H.dc.2u2.time > 0 && H.dc.2u2.time < 250
+time_cut12                           H.dc.2x2.time > 0 && H.dc.2x2.time < 250
 
 hmsDC1Planes_large  (H.dc.1x1.nhit+H.dc.1v2.nhit+H.dc.1u1.nhit+H.dc.1v1.nhit+H.dc.1x2.nhit+H.dc.1u2.nhit) >20
 hmsDC2Planes_large  (H.dc.2x1.nhit+H.dc.2v2.nhit+H.dc.2u1.nhit+H.dc.2v1.nhit+H.dc.2x2.nhit+H.dc.2u2.nhit) >20
diff --git a/DEF-files/HMS/SCALERS/hscaler_cuts.def b/DEF-files/HMS/SCALERS/hscaler_cuts.def
index 2bc4a88a..362d7466 100644
--- a/DEF-files/HMS/SCALERS/hscaler_cuts.def
+++ b/DEF-files/HMS/SCALERS/hscaler_cuts.def
@@ -4,15 +4,21 @@ Block: RawDecode
 
 Pedestal_event     g.evtyp == 99
 HMS_event          g.evtyp == 2
+SHMS_event         g.evtyp == 1
+COIN_event         g.evtyp == 4
 
-RawDecode_master  1
-
-Block: Decode
+TRIG1        T.hms.hTRIG1_tdcTimeRaw > 0
+TRIG2        T.hms.hTRIG2_tdcTimeRaw > 0
+TRIG3        T.hms.hTRIG3_tdcTimeRaw > 0
+HMS_Pretrig  TRIG1 || TRIG2 || TRIG3
 
 hms_trigs         HMS_event
 edtm_accepted     T.hms.hEDTM_tdcTime != 0.0
 physics_accepted  T.hms.hEDTM_tdcTime == 0.0
-triggers_accepted T.hms.hT1_tdcTime == 200.0
+
+RawDecode_master  1
+
+Block: Decode
 
 Decode_master     HMS_event
 
diff --git a/DEF-files/SHMS/PRODUCTION/pstackana_production_cuts.def b/DEF-files/SHMS/PRODUCTION/pstackana_production_cuts.def
index b2c81270..ee491d0d 100644
--- a/DEF-files/SHMS/PRODUCTION/pstackana_production_cuts.def
+++ b/DEF-files/SHMS/PRODUCTION/pstackana_production_cuts.def
@@ -3,20 +3,23 @@
 Block: RawDecode
 
 Pedestal_event      g.evtyp == 99
-SHMS_event    g.evtyp == 1
-  HMS_event   g.evtyp == 2
-COIN_event    g.evtyp == 4
-TRIG1         T.shms.pTRIG1_tdcTimeRaw>0
-TRIG2         T.shms.pTRIG2_tdcTimeRaw>0
-TRIG3         T.shms.pTRIG3_tdcTimeRaw>0
-SHMS_Pretrig  TRIG1||TRIG2||TRIG3
+SHMS_event          g.evtyp == 1
+HMS_event           g.evtyp == 2
+COIN_event          g.evtyp == 4
+
+TRIG1         T.shms.pTRIG1_tdcTimeRaw > 0
+TRIG2         T.shms.pTRIG2_tdcTimeRaw > 0
+TRIG3         T.shms.pTRIG3_tdcTimeRaw > 0
+SHMS_Pretrig  TRIG1 || TRIG2 || TRIG3
+
+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
 
-shms_trigs        SHMS_event
-
 good_S1_time         T.shms.p1T_tdcTime > 241 && T.shms.p1T_tdcTime < 243
 good_S2X_time        T.shms.p2X_tdcTime > 180 && T.shms.p2X_tdcTime < 220
 good_S1_S2X_time     good_S1_time && good_S2X_time
diff --git a/DEF-files/SHMS/SCALERS/pscaler_cuts.def b/DEF-files/SHMS/SCALERS/pscaler_cuts.def
index bfe576ec..64556391 100644
--- a/DEF-files/SHMS/SCALERS/pscaler_cuts.def
+++ b/DEF-files/SHMS/SCALERS/pscaler_cuts.def
@@ -4,15 +4,21 @@ Block: RawDecode
 
 Pedestal_event     g.evtyp == 99
 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
+SHMS_Pretrig  TRIG1 || TRIG2 || TRIG3
 
 shms_trigs        SHMS_event
 edtm_accepted     T.shms.pEDTM_tdcTime != 0.0
 physics_accepted  T.shms.pEDTM_tdcTime == 0.0
-triggers_accepted T.shms.pT2_tdcTime == 200.0
+
+RawDecode_master  1
+
+Block: Decode
 
 Decode_master     SHMS_event
 
diff --git a/SCRIPTS/HMS/PRODUCTION/replay_production_hms.C b/SCRIPTS/HMS/PRODUCTION/replay_production_hms.C
index bff5c9c1..10695ab8 100644
--- a/SCRIPTS/HMS/PRODUCTION/replay_production_hms.C
+++ b/SCRIPTS/HMS/PRODUCTION/replay_production_hms.C
@@ -101,6 +101,9 @@ void replay_production_hms(Int_t RunNumber=0, Int_t MaxEvent=0) {
   hscaler->SetDelayedType(129);
   hscaler->SetUseFirstEvent(kTRUE);
   gHaEvtHandlers->Add(hscaler);
+  // Add event handler for DAQ configuration event
+  THcConfigEvtHandler *hconfig = new THcConfigEvtHandler("hconfig", "Hall C configuration event handler");
+  gHaEvtHandlers->Add(hconfig);
 
   // Set up the analyzer - we use the standard one,
   // but this could be an experiment-specific one as well.
diff --git a/SCRIPTS/HMS/SCALERS/replay_hms_scalers.C b/SCRIPTS/HMS/SCALERS/replay_hms_scalers.C
index 00436895..bcc2eec9 100644
--- a/SCRIPTS/HMS/SCALERS/replay_hms_scalers.C
+++ b/SCRIPTS/HMS/SCALERS/replay_hms_scalers.C
@@ -54,7 +54,9 @@ void replay_hms_scalers(Int_t RunNumber=0, Int_t MaxEvent=0) {
   gHaEvtHandlers->Add(hcepics);
   // Add event handler for scaler events
   THcScalerEvtHandler *hscaler = new THcScalerEvtHandler("H","Hall C scaler event type 129");
+  hscaler->AddEvtType(2);
   hscaler->AddEvtType(129);
+  hscaler->SetDelayedType(129);
   hscaler->SetUseFirstEvent(kTRUE);
   gHaEvtHandlers->Add(hscaler);
   // Add event handler for DAQ configuration event
diff --git a/SCRIPTS/SHMS/PRODUCTION/replay_production_shms.C b/SCRIPTS/SHMS/PRODUCTION/replay_production_shms.C
index a1896596..3041ef40 100644
--- a/SCRIPTS/SHMS/PRODUCTION/replay_production_shms.C
+++ b/SCRIPTS/SHMS/PRODUCTION/replay_production_shms.C
@@ -106,6 +106,9 @@ void replay_production_shms (Int_t RunNumber = 0, Int_t MaxEvent = 0) {
   pscaler->SetDelayedType(129);
   pscaler->SetUseFirstEvent(kTRUE);
   gHaEvtHandlers->Add(pscaler);
+  // 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.
diff --git a/SCRIPTS/SHMS/SCALERS/replay_shms_scalers.C b/SCRIPTS/SHMS/SCALERS/replay_shms_scalers.C
index d9d1435b..8a984a75 100644
--- a/SCRIPTS/SHMS/SCALERS/replay_shms_scalers.C
+++ b/SCRIPTS/SHMS/SCALERS/replay_shms_scalers.C
@@ -54,7 +54,9 @@ void replay_shms_scalers (Int_t RunNumber = 0, Int_t MaxEvent = 0) {
   gHaEvtHandlers->Add(hcepics);
   // Add handler for scaler events
   THcScalerEvtHandler *pscaler = new THcScalerEvtHandler("P","Hall C scaler event type 1");
+  pscaler->AddEvtType(1);
   pscaler->AddEvtType(129);
+  pscaler->SetDelayedType(129);
   pscaler->SetUseFirstEvent(kTRUE);
   gHaEvtHandlers->Add(pscaler);
   // Add event handler for DAQ configuration event
diff --git a/TEMPLATES/HMS/PRODUCTION/hstackana_production.template b/TEMPLATES/HMS/PRODUCTION/hstackana_production.template
index 8709218c..0534c29f 100644
--- a/TEMPLATES/HMS/PRODUCTION/hstackana_production.template
+++ b/TEMPLATES/HMS/PRODUCTION/hstackana_production.template
@@ -50,19 +50,23 @@ Ps4_factor = {floor(2**(ghconfig_ti_ps[3] - 1) + 1):%d}
 Ps5_factor = {floor(2**(ghconfig_ti_ps[4] - 1) + 1):%d}
 Ps6_factor = {floor(2**(ghconfig_ti_ps[5] - 1) + 1):%d}
 
-***********
-* Triggers
-***********
+***************
+* 3/4 Triggers
+***************
 
 HMS 3/4 Triggers                   : {H.hTRIG1.scaler}
 Estimated HMS 3/4 Triggers         : {H.hTRIG1.scalerRate*(H.1Mhz.scaler/1000000.):%.0f}
 HMS 3/4 Trigger Rate               : {H.hTRIG1.scalerRate/1000.:%.3f} kHz
 Accepted HMS Triggers              : {TRIG1.npassed}
-HMS Event Types        : {HMS_events.npassed}
+HMS Event Types                    : {HMS_event.npassed}
 
-HMS Computer Live Time : {TRIG1.npassed / H.hTRIG1.scaler)*100.0:%3.4f} %
+HMS Computer Live Time : {(TRIG1.npassed / H.hTRIG1.scaler)*100.0:%3.4f} %
 HMS Computer Dead Time : {100.0 - (TRIG1.npassed / H.hTRIG1.scaler)*100.0:%3.4f} %
 
+****************
+* Chamber Hits *
+****************
+
 hmsDC1Planes_large  Counts:{hmsDC1Planes_large.npassed} /hms_trigs : {hmsDC1Planes_large.npassed/hms_trigs.npassed}
 hmsDC2Planes_large  Counts:{hmsDC2Planes_large.npassed}  /hms_trigs : {hmsDC2Planes_large.npassed/hms_trigs.npassed}  
 
@@ -109,9 +113,9 @@ hdidh                          :   {HMSScinDidh.npassed}
 hscinshould                    :   {HMSScinShould.npassed}
 hscinshoulde                   :   {HMSScinShoulde.npassed}
 hscinshouldh                   :   {HMSScinShouldh.npassed}
-SING FID TRACK EFFIC           : {HMSScinDid.npassed/(HMSScinShould.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShould.npassed-HMSScinDid.npassed)/(HMSScinShould.npassed+.0001)):%8.4f}
-E SING FID TRACK EFFIC         : {HMSScinDide.npassed/(HMSScinShoulde.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShoulde.npassed-HMSScinDide.npassed)/(HMSScinShoulde.npassed+.0001)):%8.4f}
-HADRON SING FID TRACK EFFIC    : {HMSScinDidh.npassed/(HMSScinShouldh.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShouldh.npassed-HMSScinDidh.npassed)/(HMSScinShouldh.npassed+.0001)):%8.4f}
+SING FID TRACK EFFIC           :   {HMSScinDid.npassed/(HMSScinShould.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShould.npassed-HMSScinDid.npassed)/(HMSScinShould.npassed+.0001)):%8.4f}
+E SING FID TRACK EFFIC         :   {HMSScinDide.npassed/(HMSScinShoulde.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShoulde.npassed-HMSScinDide.npassed)/(HMSScinShoulde.npassed+.0001)):%8.4f}
+HADRON SING FID TRACK EFFIC    :   {HMSScinDidh.npassed/(HMSScinShouldh.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShouldh.npassed-HMSScinDidh.npassed)/(HMSScinShouldh.npassed+.0001)):%8.4f}
 
 
 *******************
@@ -337,9 +341,9 @@ cer_elec:	     {cer_elec.npassed}
 cer_pi:		     {cer_pi.npassed}
 
 
-************
+****************
 * HGC Cerenkov *
-************
+****************
 
 Good Track Requirements:
    1. Only one track found in the focal plane
@@ -361,10 +365,10 @@ and scal_npe_sum  > 3.0 (hardwired). (is this still true?)
 
 Events examined = strig       = {hms_trigs.npassed}
 Tracks found    = scleantrack = {hCleanTrack.npassed}
-//Tracks passing chisquared cut = {hstat_cal_numevents:%7d} (in previous template, do we need this here?)
+Tracks passing chisquared cut = (hstat_cal_numevents:%7d) (in previous template, do we need this here?)
 
-hmsPreShower	     Counts: {H.cal.stat_trksum1} eff : {H.cal.stat_hitsum1 / H.cal.stat_trksum1}
-hmsShowerArray	     Counts: {H.cal.stat_trksum_array} eff : {H.cal.stat_hitsum_array / H.cal.stat_trksum_array}
+hmsPreShower	     Counts: (H.cal.stat_trksum1) eff : {H.cal.stat_hitsum1 / H.cal.stat_trksum1}
+hmsShowerArray	     Counts: (H.cal.stat_trksum_array) eff : (H.cal.stat_hitsum_array / H.cal.stat_trksum_array)
 
 **************************
 * Hodoscope Efficiencies * 
@@ -374,7 +378,7 @@ with chisquared/dof < {hstat_maxchisq:%5.1f} came within {hstat_slop:%4.1f} cm o
 
 Events examined = strig       = {hms_trigs.npassed}
 Tracks found    = scleantrack = {hCleanTrack.npassed}
-//Tracks passing chisquared cut = {hstat_numevents} (in previous template, do we still need this?)
+Tracks passing chisquared cut = (hstat_numevents) (in previous template, do we still need this?)
 
 Hodo efficiency:
 Plane 1: {hhodo_plane_AND_eff[0]}
diff --git a/TEMPLATES/HMS/SCALERS/hscalers.template b/TEMPLATES/HMS/SCALERS/hscalers.template
index 284940d0..84691f97 100644
--- a/TEMPLATES/HMS/SCALERS/hscalers.template
+++ b/TEMPLATES/HMS/SCALERS/hscalers.template
@@ -49,11 +49,11 @@ Ps6_factor = {floor(2**(ghconfig_ti_ps[5] - 1) + 1):%d}
 HMS 3/4 Triggers           : {H.hTRIG1.scaler}
 Estimated HMS 3/4 Triggers : {H.hTRIG1.scalerRate*(H.1Mhz.scaler/1000000.):%.0f}
 HMS 3/4 Trigger Rate       : {H.hTRIG1.scalerRate/1000.:%.3f} kHz
-Accepted HMS Triggers  : {triggers_accepted.npassed}
-HMS Event Types        : {hms_trigs.npassed}
+Accepted HMS Triggers      : {TRIG1.npassed}
+HMS Event Types            : {HMS_event.npassed}
 
-HMS Computer Live Time : {(hms_trigs.npassed / H.hTRIG1.scaler)*100.0:%3.4f} %
-HMS Computer Dead Time : {100.0 - (hms_trigs.npassed / H.hTRIG1.scaler)*100.0:%3.4f} %
+HMS Computer Live Time : {(TRIG1.npassed / H.hTRIG1.scaler)*100.0:%3.4f} %
+HMS Computer Dead Time : {100.0 - (TRIG1.npassed / H.hTRIG1.scaler)*100.0:%3.4f} %
 
 *******
 * EDTM
diff --git a/TEMPLATES/SHMS/PRODUCTION/pstackana_production.template b/TEMPLATES/SHMS/PRODUCTION/pstackana_production.template
index f9080e18..0746b93a 100644
--- a/TEMPLATES/SHMS/PRODUCTION/pstackana_production.template
+++ b/TEMPLATES/SHMS/PRODUCTION/pstackana_production.template
@@ -39,15 +39,15 @@ Ps4_factor = {floor(2**(gpconfig_ti_ps[3] - 1) + 1):%d}
 Ps5_factor = {floor(2**(gpconfig_ti_ps[4] - 1) + 1):%d}
 Ps6_factor = {floor(2**(gpconfig_ti_ps[5] - 1) + 1):%d}
 
-***********	
-* 3/4 Triggers
-***********
+***************	
+* 3/4 Triggers 
+***************
 
 SHMS 3/4 Triggers           : {P.pTRIG1.scaler}
 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  : {TRIG1.npassed}
-SHMS Event Types        : {SHMS_Pretrig.npassed}
+Accepted SHMS Triggers      : {TRIG1.npassed}
+SHMS Event Types            : {SHMS_Pretrig.npassed}
 
 SHMS Computer Live Time : {(TRIG1.npassed / P.pTRIG1.scaler)*100.0:%3.4f} %
 SHMS Computer Dead Time : {100.0 - (TRIG1.npassed / P.pTRIG1.scaler)*100.0:%3.4f} %
diff --git a/TEMPLATES/SHMS/SCALERS/pscalers.template b/TEMPLATES/SHMS/SCALERS/pscalers.template
index 6c62c440..4c0d0833 100644
--- a/TEMPLATES/SHMS/SCALERS/pscalers.template
+++ b/TEMPLATES/SHMS/SCALERS/pscalers.template
@@ -50,11 +50,11 @@ Ps6_factor = {floor(2**(gpconfig_ti_ps[5] - 1) + 1):%d}
 SHMS 3/4 Triggers           : {P.pTRIG1.scaler}
 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  : {triggers_accepted.npassed}
-SHMS Event Types        : {shms_trigs.npassed}
+Accepted SHMS Triggers      : {TRIG1.npassed}
+SHMS Event Types            : {SHMS_Pretrig.npassed}
 
-SHMS Computer Live Time : {(shms_trigs.npassed / P.pTRIG1.scaler)*100.0:%3.4f} %
-SHMS Computer Dead Time : {100.0 - (shms_trigs.npassed / P.pTRIG1.scaler)*100.0:%3.4f} %
+SHMS Computer Live Time : {(TRIG1.npassed / P.pTRIG1.scaler)*100.0:%3.4f} %
+SHMS Computer Dead Time : {100.0 - (TRIG1.npassed / P.pTRIG1.scaler)*100.0:%3.4f} %
 
 *******
 * EDTM
-- 
GitLab