diff --git a/src/THcCherenkov.cxx b/src/THcCherenkov.cxx
index 8486c0895d003db90ac76c96533175534e0b93c2..1ac7a343078de85affed50ac6d65365187902a0d 100644
--- a/src/THcCherenkov.cxx
+++ b/src/THcCherenkov.cxx
@@ -64,6 +64,8 @@ THcCherenkov::THcCherenkov( const char* name, const char* description,
   fNumTracksFired     = vector<Int_t>    (MaxNumCerPmt, 0.0);
   fNpe                = vector<Double_t> (MaxNumCerPmt, 0.0);
   fGoodAdcPed         = vector<Double_t> (MaxNumCerPmt, 0.0);
+  fGoodAdcMult         = vector<Double_t> (MaxNumCerPmt, 0.0);
+  fGoodAdcHitUsed         = vector<Double_t> (MaxNumCerPmt, 0.0);
   fGoodAdcPulseInt    = vector<Double_t> (MaxNumCerPmt, 0.0);
   fGoodAdcPulseIntRaw = vector<Double_t> (MaxNumCerPmt, 0.0);
   fGoodAdcPulseAmp    = vector<Double_t> (MaxNumCerPmt, 0.0);
@@ -204,7 +206,8 @@ Int_t THcCherenkov::ReadDatabase( const TDatime& date )
   fPedLimit = new Int_t[fNelem];
   fGain     = new Double_t[fNelem];
   fPedMean  = new Double_t[fNelem];
-
+  fAdcTimeWindowMin =  new Double_t[fNelem];
+  fAdcTimeWindowMax=  new Double_t[fNelem];
   // Region parameters
   fRegionsValueMax = fNRegions * 8;
   fRegionValue     = new Double_t[fRegionsValueMax];
@@ -223,14 +226,17 @@ Int_t THcCherenkov::ReadDatabase( const TDatime& date )
     {"_mirror_zpos",      &fMirrorZPos,       kDouble},
     {"_npe_thresh",       &fNpeThresh,        kDouble},
     {"_debug_adc",        &fDebugAdc,         kInt, 0, 1},
-    {"_adcTimeWindowMin", &fAdcTimeWindowMin, kDouble},
-    {"_adcTimeWindowMax", &fAdcTimeWindowMax, kDouble},
+    {"_adcTimeWindowMin", fAdcTimeWindowMin, kDouble,(UInt_t) fNelem,1},
+    {"_adcTimeWindowMax", fAdcTimeWindowMax, kDouble, (UInt_t) fNelem,1},
     {"_adc_tdc_offset",   &fAdcTdcOffset,     kDouble, 0, 1},
     {"_region",           &fRegionValue[0],   kDouble,  (UInt_t) fRegionsValueMax},
     {"_adcrefcut",        &fADC_RefTimeCut,   kInt,    0, 1},
     {0}
   };
-
+  for (Int_t i=0;i<fNelem;i++) {
+    fAdcTimeWindowMin[i]=-1000.;
+    fAdcTimeWindowMax[i]=1000.;
+  }
   fDebugAdc = 0; // Set ADC debug parameter to false unless set in parameter file
   fAdcTdcOffset = 0.0;
   fADC_RefTimeCut = 0;
@@ -302,6 +308,8 @@ Int_t THcCherenkov::DefineVariables( EMode mode )
     {"npeSum",       "Total Number of PEs",            "fNpeSum"},
 
     {"goodAdcPed",          "Good ADC pedestals",           "fGoodAdcPed"},
+    {"goodAdcMult",          "Good ADC Multiplicity",           "fGoodAdcMult"},
+    {"goodAdcHitUsed",          "Good ADC Hit Used",           "fGoodAdcHitUsed"},
     {"goodAdcPulseInt",     "Good ADC pulse integrals",     "fGoodAdcPulseInt"},
     {"goodAdcPulseIntRaw",  "Good ADC raw pulse integrals", "fGoodAdcPulseIntRaw"},
     {"goodAdcPulseAmp",     "Good ADC pulse amplitudes",    "fGoodAdcPulseAmp"},
@@ -349,6 +357,8 @@ void THcCherenkov::Clear(Option_t* opt)
     fNumTracksFired.at(ielem) = 0;
   for (UInt_t ielem = 0; ielem < fGoodAdcPed.size(); ielem++) {
     fGoodAdcPed.at(ielem)         = 0.0;
+    fGoodAdcMult.at(ielem)         = 0.0;
+    fGoodAdcHitUsed.at(ielem)         = 0.0;
     fGoodAdcPulseInt.at(ielem)    = 0.0;
     fGoodAdcPulseIntRaw.at(ielem) = 0.0;
     fGoodAdcPulseAmp.at(ielem)    = 0.0;
@@ -438,11 +448,13 @@ Int_t THcCherenkov::CoarseProcess( TClonesArray&  )
     Double_t pulseTime    = ((THcSignalHit*) frAdcPulseTime->ConstructedAt(ielem))->GetData();
    Double_t adctdcdiffTime = StartTime-pulseTime;
      Bool_t   errorFlag    = ((THcSignalHit*) fAdcErrorFlag->ConstructedAt(ielem))->GetData();
-    Bool_t   pulseTimeCut = adctdcdiffTime > fAdcTimeWindowMin && adctdcdiffTime < fAdcTimeWindowMax;
+    Bool_t   pulseTimeCut = adctdcdiffTime > fAdcTimeWindowMin[npmt] && adctdcdiffTime < fAdcTimeWindowMax[npmt];
 
     // By default, the last hit within the timing cut will be considered "good"
     if (!errorFlag && pulseTimeCut) {
       fGoodAdcPed.at(npmt)         = pulsePed;
+      fGoodAdcHitUsed.at(npmt)         = ielem+1;
+      fGoodAdcMult.at(npmt)         =frAdcPulseInt->GetEntries() ;
       fGoodAdcPulseInt.at(npmt)    = pulseInt;
       fGoodAdcPulseIntRaw.at(npmt) = pulseIntRaw;
       fGoodAdcPulseAmp.at(npmt)    = pulseAmp;
diff --git a/src/THcCherenkov.h b/src/THcCherenkov.h
index 6b852ec9193e1990d5450294923999654007a9a1..47845c55575ec2d79630afbc8c667bd564d50be3 100644
--- a/src/THcCherenkov.h
+++ b/src/THcCherenkov.h
@@ -66,6 +66,8 @@ class THcCherenkov : public THaNonTrackingDetector, public THcHitList {
   vector<Int_t>    fNumTracksMatched;
   vector<Int_t>    fNumTracksFired;
   vector<Double_t> fGoodAdcPed;
+  vector<Double_t> fGoodAdcMult;
+  vector<Double_t> fGoodAdcHitUsed;
   vector<Double_t> fGoodAdcPulseInt;
   vector<Double_t> fGoodAdcPulseIntRaw;
   vector<Double_t> fGoodAdcPulseAmp;
@@ -87,8 +89,8 @@ class THcCherenkov : public THaNonTrackingDetector, public THcHitList {
   Double_t  fXAtCer;
   Double_t  fYAtCer;
   Double_t  fNpeThresh;
-  Double_t  fAdcTimeWindowMin;
-  Double_t  fAdcTimeWindowMax;
+  Double_t*  fAdcTimeWindowMin;
+  Double_t*  fAdcTimeWindowMax;
   Double_t  fAdcTdcOffset;
   Double_t* fRegionValue;