From f89ecd3f304a11aec7382d30a0a7b8f34f3690e0 Mon Sep 17 00:00:00 2001
From: "Stephen A. Wood" <saw@jlab.org>
Date: Mon, 27 Nov 2017 14:44:39 -0500
Subject: [PATCH] Add a time ofset to Aerogel and Chernekov FADC pulse times

---
 src/THcAerogel.cxx   | 4 +++-
 src/THcAerogel.h     | 1 +
 src/THcCherenkov.cxx | 4 +++-
 src/THcCherenkov.h   | 1 +
 4 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/THcAerogel.cxx b/src/THcAerogel.cxx
index 026ff80..99bb5f5 100644
--- a/src/THcAerogel.cxx
+++ b/src/THcAerogel.cxx
@@ -305,6 +305,7 @@ Int_t THcAerogel::ReadDatabase( const TDatime& date )
     {"aero_npe_thresh",       &fNpeThresh,        kDouble},
     {"aero_adcTimeWindowMin", &fAdcTimeWindowMin, kDouble},
     {"aero_adcTimeWindowMax", &fAdcTimeWindowMax, kDouble},
+    {"aero_adc_tdc_offset",   &fAdcTdcOffset,     kDouble, 0, 1},
     {"aero_debug_adc",        &fDebugAdc,         kInt,    0, 1},
     {"aero_six_gev_data",     &fSixGevData,       kInt,    0, 1},
     {"aero_pos_gain",         fPosGain,           kDouble, (UInt_t) fNelem},
@@ -322,6 +323,7 @@ Int_t THcAerogel::ReadDatabase( const TDatime& date )
 
   fSixGevData = 0; // Set 6 GeV data parameter to false unless set in parameter file
   fDebugAdc   = 0; // Set ADC debug parameter to false unless set in parameter file
+  fAdcTdcOffset = 0.0;
 
   gHcParms->LoadParmValues((DBRequest*)&list, prefix);
 
@@ -600,7 +602,7 @@ Int_t THcAerogel::Decode( const THaEvData& evdata )
       ((THcSignalHit*) frPosAdcPulseAmp->ConstructedAt(nrPosAdcHits))->Set(npmt, rawPosAdcHit.GetPulseAmp(thit));
 
       ((THcSignalHit*) frPosAdcPulseTimeRaw->ConstructedAt(nrPosAdcHits))->Set(npmt, rawPosAdcHit.GetPulseTimeRaw(thit));
-      ((THcSignalHit*) frPosAdcPulseTime->ConstructedAt(nrPosAdcHits))->Set(npmt, rawPosAdcHit.GetPulseTime(thit));
+      ((THcSignalHit*) frPosAdcPulseTime->ConstructedAt(nrPosAdcHits))->Set(npmt, rawPosAdcHit.GetPulseTime(thit)+fAdcTdcOffset);
 
       if (rawPosAdcHit.GetPulseAmpRaw(thit) > 0)  ((THcSignalHit*) fPosAdcErrorFlag->ConstructedAt(nrPosAdcHits))->Set(npmt, 0);
       if (rawPosAdcHit.GetPulseAmpRaw(thit) <= 0) ((THcSignalHit*) fPosAdcErrorFlag->ConstructedAt(nrPosAdcHits))->Set(npmt, 1);
diff --git a/src/THcAerogel.h b/src/THcAerogel.h
index 59794a9..99ec464 100644
--- a/src/THcAerogel.h
+++ b/src/THcAerogel.h
@@ -62,6 +62,7 @@ class THcAerogel : public THaNonTrackingDetector, public THcHitList {
   Double_t  fNpeThresh;
   Double_t  fAdcTimeWindowMin;
   Double_t  fAdcTimeWindowMax;
+  Double_t  fAdcTdcOffset;
   Double_t  *fRegionValue;
   // Counting variables
   Int_t     fTotNumAdcHits;
diff --git a/src/THcCherenkov.cxx b/src/THcCherenkov.cxx
index 40bc534..4e6ecfd 100644
--- a/src/THcCherenkov.cxx
+++ b/src/THcCherenkov.cxx
@@ -205,12 +205,14 @@ Int_t THcCherenkov::ReadDatabase( const TDatime& date )
     {"_debug_adc",        &fDebugAdc,         kInt, 0, 1},
     {"_adcTimeWindowMin", &fAdcTimeWindowMin, kDouble},
     {"_adcTimeWindowMax", &fAdcTimeWindowMax, kDouble},
+    {"_adc_tdc_offset",   &fAdcTdcOffset,     kDouble, 0, 1},
     {"_num_regions",      &fNRegions,         kInt},
     {"_region",           &fRegionValue[0],   kDouble,  (UInt_t) fRegionsValueMax},
     {0}
   };
 
   fDebugAdc = 0; // Set ADC debug parameter to false unless set in parameter file
+  fAdcTdcOffset = 0.0;
 
   gHcParms->LoadParmValues((DBRequest*)&list, prefix.c_str());
 
@@ -372,7 +374,7 @@ Int_t THcCherenkov::Decode( const THaEvData& evdata )
       ((THcSignalHit*) frAdcPulseAmp->ConstructedAt(nrAdcHits))->Set(npmt, rawAdcHit.GetPulseAmp(thit));
 
       ((THcSignalHit*) frAdcPulseTimeRaw->ConstructedAt(nrAdcHits))->Set(npmt, rawAdcHit.GetPulseTimeRaw(thit));
-      ((THcSignalHit*) frAdcPulseTime->ConstructedAt(nrAdcHits))->Set(npmt, rawAdcHit.GetPulseTime(thit));
+      ((THcSignalHit*) frAdcPulseTime->ConstructedAt(nrAdcHits))->Set(npmt, rawAdcHit.GetPulseTime(thit)+fAdcTdcOffset);
 
       if (rawAdcHit.GetPulseAmpRaw(thit) > 0)  ((THcSignalHit*) fAdcErrorFlag->ConstructedAt(nrAdcHits))->Set(npmt, 0);
       if (rawAdcHit.GetPulseAmpRaw(thit) <= 0) ((THcSignalHit*) fAdcErrorFlag->ConstructedAt(nrAdcHits))->Set(npmt, 1);
diff --git a/src/THcCherenkov.h b/src/THcCherenkov.h
index 110a64f..86b6973 100644
--- a/src/THcCherenkov.h
+++ b/src/THcCherenkov.h
@@ -82,6 +82,7 @@ class THcCherenkov : public THaNonTrackingDetector, public THcHitList {
   Double_t  fNpeThresh;
   Double_t  fAdcTimeWindowMin;
   Double_t  fAdcTimeWindowMax;
+  Double_t  fAdcTdcOffset;
   Double_t* fRegionValue;
 
   // 6 Gev pedestal variables
-- 
GitLab