diff --git a/src/THcCherenkov.cxx b/src/THcCherenkov.cxx
index b282e5ae4bd25e0b877f0b7034631b8315611a82..ba0a0fd86942dd391d9ce22d685c07209f6eee34 100644
--- a/src/THcCherenkov.cxx
+++ b/src/THcCherenkov.cxx
@@ -389,6 +389,9 @@ void THcCherenkov::Clear(Option_t* opt) {
     fGoodAdcTdcDiffTime.at(ielem) = kBig;
     fNpe.at(ielem)                = 0.0;
   }
+  for(auto& wf : _waveforms) {
+    wf.ZeroBuffer();
+  }
 }
 
 //_____________________________________________________________________________
diff --git a/src/include/hcana/HallC_Data.h b/src/include/hcana/HallC_Data.h
index bbddff25f68fc754bd00034bcdb00a1a789b14b2..595e9939a9f0101485790e85ed7f5577d25351c4 100644
--- a/src/include/hcana/HallC_Data.h
+++ b/src/include/hcana/HallC_Data.h
@@ -18,6 +18,8 @@ namespace hallc {
       PulseWaveForm(Int_t* buf, Int_t size = MaxNSamples) { std::copy_n(buf, MaxNSamples, std::begin(_buffer)); }
       virtual ~PulseWaveForm() {}
 
+      void ZeroBuffer() { std::fill(std::begin(_buffer), std::end(_buffer), 0); }
+
       std::array<Int_t, MaxNSamples> _buffer;
 
       ClassDef(PulseWaveForm, 1)