From 145239596d1ce7ecd27a35c0bb33b3157fd40e44 Mon Sep 17 00:00:00 2001
From: "Stephen A. Wood" <saw@jlab.org>
Date: Fri, 16 Feb 2018 17:23:12 -0500
Subject: [PATCH] Create parameters to hold missing reference time counts.   So
 that the counts can be reported in report files.

---
 src/THcAerogel.cxx   |  2 ++
 src/THcCherenkov.cxx |  2 ++
 src/THcDC.cxx        |  2 ++
 src/THcHitList.cxx   | 15 +++++++++++++++
 src/THcHitList.h     |  1 +
 src/THcHodoscope.cxx |  2 ++
 src/THcShower.cxx    |  2 ++
 src/THcTrigDet.cxx   |  1 +
 8 files changed, 27 insertions(+)

diff --git a/src/THcAerogel.cxx b/src/THcAerogel.cxx
index d43d30b..a9501a6 100644
--- a/src/THcAerogel.cxx
+++ b/src/THcAerogel.cxx
@@ -221,6 +221,8 @@ Int_t THcAerogel::ReadDatabase( const TDatime& date )
   prefix[0]=tolower(GetApparatus()->GetName()[0]);
   prefix[1]='\0';
 
+  CreateMissReportParms(Form("%saero",prefix));
+
   fNRegions = 1;   // Default if not set in parameter file
 
   DBRequest listextra[]={
diff --git a/src/THcCherenkov.cxx b/src/THcCherenkov.cxx
index 82eed26..8486c08 100644
--- a/src/THcCherenkov.cxx
+++ b/src/THcCherenkov.cxx
@@ -183,6 +183,8 @@ Int_t THcCherenkov::ReadDatabase( const TDatime& date )
   string prefix = string(GetApparatus()->GetName()).substr(0, 1) + GetName();
   std::transform(prefix.begin(), prefix.end(), prefix.begin(), ::tolower);
 
+  CreateMissReportParms(prefix.c_str());
+
   fNRegions = 4;  // Defualt if not set in paramter file
 
   DBRequest list_1[] = {
diff --git a/src/THcDC.cxx b/src/THcDC.cxx
index b4b7d91..624475a 100644
--- a/src/THcDC.cxx
+++ b/src/THcDC.cxx
@@ -212,6 +212,8 @@ THaAnalysisObject::EStatus THcDC::Init( const TDatime& date )
   InitHitList(fDetMap, "THcRawDCHit", fDetMap->GetTotNumChan()+1,
 	      fTDC_RefTimeCut, 0);
 
+  CreateMissReportParms(Form("%sdc",fPrefix));
+
   EStatus status;
   // This triggers call of ReadDatabase and DefineVariables
   if( (status = THaTrackingDetector::Init( date )) )
diff --git a/src/THcHitList.cxx b/src/THcHitList.cxx
index 3489065..55d645f 100644
--- a/src/THcHitList.cxx
+++ b/src/THcHitList.cxx
@@ -13,6 +13,8 @@
 
 #include "THcConfigEvtHandler.h"
 #include "THaGlobals.h"
+#include "THcGlobals.h"
+#include "THcParmList.h"
 #include "TList.h"
 
 using namespace std;
@@ -395,6 +397,19 @@ Int_t THcHitList::DecodeToHitList( const THaEvData& evdata, Bool_t suppresswarni
   fNADCRef_miss += (adcref_miss ? 1 : 0);
   return fNRawHits;		// Does anything care what is returned
 }
+void THcHitList::CreateMissReportParms(const char *prefix)
+{
+  /**
+
+\brief Create parameters to hold missing reference time statistics
+
+Parameters created are ${prefix}_tdcref_miss and ${prefix}_adcref_miss
+
+  */
+  cout << "Defining " << Form("%s_tdcref_miss", prefix) << " and " << Form("%s_adcref_miss", prefix) << endl;
+  gHcParms->Define(Form("%s_tdcref_miss", prefix), "Missing TDC reference times", fNTDCRef_miss);
+  gHcParms->Define(Form("%s_adcref_miss", prefix), "Missing ADC reference times", fNADCRef_miss);
+}
 void THcHitList::MissReport(const char *name)
 {
   cout << "Missing Ref times:" << setw(20) << name << setw(10) << fNTDCRef_miss << setw(10) << fNADCRef_miss << endl;
diff --git a/src/THcHitList.h b/src/THcHitList.h
index 4b378ce..ba907c5 100644
--- a/src/THcHitList.h
+++ b/src/THcHitList.h
@@ -35,6 +35,7 @@ public:
 			    Int_t tdcref_cut=0, Int_t adcref_cut=0);
 
   TClonesArray* GetHitList() const {return fRawHitList; }
+  void          CreateMissReportParms(const char *prefix);
   void          MissReport(const char *name);
 
   UInt_t         fNRawHits;
diff --git a/src/THcHodoscope.cxx b/src/THcHodoscope.cxx
index 3f5e9f9..18ec9f6 100644
--- a/src/THcHodoscope.cxx
+++ b/src/THcHodoscope.cxx
@@ -238,6 +238,8 @@ Int_t THcHodoscope::ReadDatabase( const TDatime& date )
   //  Int_t plen=strlen(parname);
   // cout << " readdatabse hodo fnplanes = " << fNPlanes << endl;
 
+  CreateMissReportParms(Form("%sscin",prefix));
+
   fBetaNoTrk = 0.;
   fBetaNoTrkChiSq = 0.;
 
diff --git a/src/THcShower.cxx b/src/THcShower.cxx
index a0ebc2e..00c5f92 100644
--- a/src/THcShower.cxx
+++ b/src/THcShower.cxx
@@ -212,6 +212,8 @@ Int_t THcShower::ReadDatabase( const TDatime& date )
   prefix[0]=tolower(GetApparatus()->GetName()[0]);
   prefix[1]='\0';
 
+  CreateMissReportParms(Form("%scal",prefix));
+
   fNegCols = fNLayers;		// If not defined assume tube on each end
                                 // for every layer
   {
diff --git a/src/THcTrigDet.cxx b/src/THcTrigDet.cxx
index 507afcc..f00f6a2 100644
--- a/src/THcTrigDet.cxx
+++ b/src/THcTrigDet.cxx
@@ -181,6 +181,7 @@ THaAnalysisObject::EStatus THcTrigDet::Init(const TDatime& date) {
   // Initialize hitlist part of the class.
   // printf(" Init trig det hitlist\n");
   InitHitList(fDetMap, "THcTrigRawHit", 100);
+  CreateMissReportParms(fKwPrefix.c_str());
 
   fPresentP = 0;
   THaVar* vpresent = gHaVars->Find(Form("%s.present",fSpectName.Data()));
-- 
GitLab