From 00314a7dfdc138cc643286a7752d5985c00d2ae1 Mon Sep 17 00:00:00 2001
From: Mark Jones <jones@jlab.org>
Date: Mon, 27 Apr 2020 07:51:27 -0400
Subject: [PATCH] Modified THcAergel and THcCherenkov to use Hodoscope
 OffsetTime

In calculating the difference in time between the ADc pulse
time and the Hodoscope starttime, the code adds the
hodoscope OffsetTime. The OffSetTime corrects for the
difference in the ADC and TDC reference times.
---
 src/THcAerogel.cxx   | 6 ++++--
 src/THcCherenkov.cxx | 6 +++---
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/THcAerogel.cxx b/src/THcAerogel.cxx
index 38be141..cca8b1e 100644
--- a/src/THcAerogel.cxx
+++ b/src/THcAerogel.cxx
@@ -728,6 +728,8 @@ Int_t THcAerogel::CoarseProcess( TClonesArray&  ) //tracks
 {
   Double_t StartTime = 0.0;
   if( fglHod ) StartTime = fglHod->GetStartTime();
+   Double_t OffsetTime = 0.0;
+   if( fglHod ) OffsetTime = fglHod->GetOffsetTime();
   //cout << " starttime = " << StartTime << endl;
     // Loop over the elements in the TClonesArray
     for(Int_t ielem = 0; ielem < frPosAdcPulseInt->GetEntries(); ielem++) {
@@ -738,7 +740,7 @@ Int_t THcAerogel::CoarseProcess( TClonesArray&  ) //tracks
       Double_t pulseIntRaw  = ((THcSignalHit*) frPosAdcPulseIntRaw->ConstructedAt(ielem))->GetData();
       Double_t pulseAmp     = ((THcSignalHit*) frPosAdcPulseAmp->ConstructedAt(ielem))->GetData();
       Double_t pulseTime    = ((THcSignalHit*) frPosAdcPulseTime->ConstructedAt(ielem))->GetData();
-      Double_t adctdcdiffTime = StartTime-pulseTime;
+      Double_t adctdcdiffTime = StartTime-pulseTime+OffsetTime;
       ////      Bool_t   pulseTimeCut = adctdcdiffTime > fAdcTimeWindowMin && adctdcdiffTime < fAdcTimeWindowMax;
       Bool_t   pulseTimeCut = adctdcdiffTime > fAdcPosTimeWindowMin[npmt] && adctdcdiffTime < fAdcPosTimeWindowMax[npmt];
 
@@ -771,7 +773,7 @@ Int_t THcAerogel::CoarseProcess( TClonesArray&  ) //tracks
       Double_t pulseIntRaw  = ((THcSignalHit*) frNegAdcPulseIntRaw->ConstructedAt(ielem))->GetData();
       Double_t pulseAmp     = ((THcSignalHit*) frNegAdcPulseAmp->ConstructedAt(ielem))->GetData();
       Double_t pulseTime    = ((THcSignalHit*) frNegAdcPulseTime->ConstructedAt(ielem))->GetData();
-      Double_t adctdcdiffTime = StartTime-pulseTime;
+      Double_t adctdcdiffTime = StartTime-pulseTime+OffsetTime;
       ////      Bool_t   pulseTimeCut = adctdcdiffTime > fAdcTimeWindowMin && adctdcdiffTime < fAdcTimeWindowMax;
       Bool_t   pulseTimeCut = adctdcdiffTime > fAdcNegTimeWindowMin[npmt] && adctdcdiffTime < fAdcNegTimeWindowMax[npmt];
 	fGoodNegAdcMult.at(npmt) += 1;
diff --git a/src/THcCherenkov.cxx b/src/THcCherenkov.cxx
index 4dacafa..f95b339 100644
--- a/src/THcCherenkov.cxx
+++ b/src/THcCherenkov.cxx
@@ -472,7 +472,7 @@ Int_t THcCherenkov::CoarseProcess( TClonesArray&  )
   Double_t StartTime = 0.0;
   if( fglHod ) StartTime = fglHod->GetStartTime();
    Double_t OffsetTime = 0.0;
-   // if( fglHod ) OffsetTime = fglHod->GetOffsetTime();
+   if( fglHod ) OffsetTime = fglHod->GetOffsetTime();
  for(Int_t ipmt = 0; ipmt < fNelem; ipmt++) {
     fAdcPulseAmpTest[ipmt] = -1000.;
     fAdcGoodElem[ipmt]=-1;
@@ -483,7 +483,7 @@ Int_t THcCherenkov::CoarseProcess( TClonesArray&  )
     Double_t pulseTime    = ((THcSignalHit*) frAdcPulseTime->ConstructedAt(ielem))->GetData();
     Double_t pulseAmp     = ((THcSignalHit*) frAdcPulseAmp->ConstructedAt(ielem))->GetData();
     Bool_t   errorFlag    = ((THcSignalHit*) fAdcErrorFlag->ConstructedAt(ielem))->GetData();
-    Double_t adctdcdiffTime = StartTime-pulseTime-OffsetTime;
+    Double_t adctdcdiffTime = StartTime-pulseTime+OffsetTime;
     Bool_t   pulseTimeCut = adctdcdiffTime > fAdcTimeWindowMin[npmt] && adctdcdiffTime < fAdcTimeWindowMax[npmt];
  	fGoodAdcMult.at(npmt) += 1;
 	if (!errorFlag) {
@@ -504,7 +504,7 @@ Int_t THcCherenkov::CoarseProcess( TClonesArray&  )
     Double_t pulseIntRaw  = ((THcSignalHit*) frAdcPulseIntRaw->ConstructedAt(ielem))->GetData();
     Double_t pulseAmp     = ((THcSignalHit*) frAdcPulseAmp->ConstructedAt(ielem))->GetData();
     Double_t pulseTime    = ((THcSignalHit*) frAdcPulseTime->ConstructedAt(ielem))->GetData();
-    Double_t adctdcdiffTime = StartTime-pulseTime-OffsetTime;
+    Double_t adctdcdiffTime = StartTime-pulseTime+OffsetTime;
       fGoodAdcPed.at(npmt)         = pulsePed;
       fGoodAdcHitUsed.at(npmt)         = ielem+1;
       fGoodAdcPulseInt.at(npmt)    = pulseInt;
-- 
GitLab