diff --git a/Calorimeter/CaloDigiAlgs/src/CaloWaveformDigiAlg.cxx b/Calorimeter/CaloDigiAlgs/src/CaloWaveformDigiAlg.cxx
index 8ea1d4a3cdfca4e6dbd58179e99e144e520c5a77..c3f5313c0e52ddc68009ac2d6d3e41103b103b8a 100644
--- a/Calorimeter/CaloDigiAlgs/src/CaloWaveformDigiAlg.cxx
+++ b/Calorimeter/CaloDigiAlgs/src/CaloWaveformDigiAlg.cxx
@@ -6,6 +6,7 @@
 
 #include <map>
 #include <utility>
+#include <cmath>
 
 CaloWaveformDigiAlg::CaloWaveformDigiAlg(const std::string& name, 
 					 ISvcLocator* pSvcLocator)
@@ -122,8 +123,8 @@ CaloWaveformDigiAlg::execute(const EventContext& ctx) const {
     // Subtract count from basleine and add result to correct waveform vector
     for (const auto& c : counts) {
 
-      unsigned int baseline = m_digiTool->generate_baseline(m_base_mean, m_base_rms);
-      int value = baseline - c.second;
+      float baseline = m_digiTool->generate_baseline(m_base_mean, m_base_rms);
+      int value = std::round(baseline - c.second);
 
       if (value < 0) {
 	ATH_MSG_WARNING("Found pulse " << c.second << " larger than baseline " << c.first);
diff --git a/Scintillator/ScintDigiAlgs/src/ScintWaveformDigiAlg.cxx b/Scintillator/ScintDigiAlgs/src/ScintWaveformDigiAlg.cxx
index 3cb70517b75086b9f7a6af07d060bf54f6deed59..1869860e84a401fffbfe6a588d6b8e78ba702e9a 100644
--- a/Scintillator/ScintDigiAlgs/src/ScintWaveformDigiAlg.cxx
+++ b/Scintillator/ScintDigiAlgs/src/ScintWaveformDigiAlg.cxx
@@ -3,6 +3,7 @@
 #include "ScintSimEvent/ScintHitIdHelper.h"
 
 #include <map>
+#include <cmath>
 
 
 ScintWaveformDigiAlg::ScintWaveformDigiAlg(const std::string& name, 
@@ -170,8 +171,8 @@ ScintWaveformDigiAlg::execute(const EventContext& ctx) const {
     // Subtract count from basleine and add result to correct waveform vector
     for (const auto& c : counts) {
 
-      unsigned int baseline = m_digiTool->generate_baseline(m_base_mean, m_base_rms);
-      int value = baseline - c.second;
+      float baseline = m_digiTool->generate_baseline(m_base_mean, m_base_rms);
+      int value = std::round(baseline - c.second);
 
       if (value < 0) {
 	ATH_MSG_WARNING("Found pulse " << c.second << " larger than baseline " << c.first);
diff --git a/Waveform/WaveDigiTools/WaveDigiTools/IWaveformDigitisationTool.h b/Waveform/WaveDigiTools/WaveDigiTools/IWaveformDigitisationTool.h
index c30351902a1b79e9a58ad33d5f58a5d04ed13faa..37cb7af183c2d89b9ada3579f76820bfe6487c5c 100644
--- a/Waveform/WaveDigiTools/WaveDigiTools/IWaveformDigitisationTool.h
+++ b/Waveform/WaveDigiTools/WaveDigiTools/IWaveformDigitisationTool.h
@@ -51,7 +51,7 @@ public:
   virtual std::vector<float> evaluate_timekernel(TF1* kernel) const = 0;
 
   /// Generate random baseline 
-  virtual unsigned int generate_baseline(int mean, int rms) const = 0;
+  virtual float generate_baseline(float mean, float rms) const = 0;
  
   /// Create structure to store pulse for each channel
   template <class T> 
diff --git a/Waveform/WaveDigiTools/src/WaveformDigitisationTool.cxx b/Waveform/WaveDigiTools/src/WaveformDigitisationTool.cxx
index 375519e6a6b683d96568b6cf8f4987124b8e5ca2..3a48027d57e3710a2ec592aed6a9ed749b9f6848 100644
--- a/Waveform/WaveDigiTools/src/WaveformDigitisationTool.cxx
+++ b/Waveform/WaveDigiTools/src/WaveformDigitisationTool.cxx
@@ -41,7 +41,7 @@ WaveformDigitisationTool::evaluate_timekernel(TF1* kernel) const {
   return timekernel;
 }
 
-unsigned int 
-WaveformDigitisationTool::generate_baseline(int mean, int rms) const {
+float
+WaveformDigitisationTool::generate_baseline(float mean, float rms) const {
   return m_random->Gaus(mean, rms);
 }
diff --git a/Waveform/WaveDigiTools/src/WaveformDigitisationTool.h b/Waveform/WaveDigiTools/src/WaveformDigitisationTool.h
index e2dd5169152845824927baeeae7ce8fc36ab46f8..b6554c337830fbd2183752cc1b05123ea827b4f1 100644
--- a/Waveform/WaveDigiTools/src/WaveformDigitisationTool.h
+++ b/Waveform/WaveDigiTools/src/WaveformDigitisationTool.h
@@ -32,7 +32,7 @@ class WaveformDigitisationTool: public extends<AthAlgTool, IWaveformDigitisation
   std::vector<float> evaluate_timekernel(TF1* kernel) const;
 
   /// Generate random baseline 
-  unsigned int generate_baseline(int mean, int rms) const;
+  float generate_baseline(float mean, float rms) const;
 
 
  private: