diff --git a/Calorimeter/CaloDigiAlgs/CMakeLists.txt b/Calorimeter/CaloDigiAlgs/CMakeLists.txt
index 5a4de58a7469a2acb320de9c758ea1aef98ebcac..89d20eae8e67a52daa6a23b60825e06f43610ec3 100644
--- a/Calorimeter/CaloDigiAlgs/CMakeLists.txt
+++ b/Calorimeter/CaloDigiAlgs/CMakeLists.txt
@@ -9,7 +9,9 @@ atlas_subdir( CaloDigiAlgs )
 atlas_add_component( CaloDigiAlgs
                      src/*.cxx src/*.h
                      src/components/*.cxx
-                     LINK_LIBRARIES AthenaBaseComps Identifier FaserCaloIdentifier  StoreGateLib WaveRawEvent FaserCaloSimEvent WaveDigiToolsLib)
+                     LINK_LIBRARIES AthenaBaseComps Identifier FaserCaloIdentifier  
+		     WaveformConditionsToolsLib StoreGateLib WaveRawEvent 
+		     FaserCaloSimEvent WaveDigiToolsLib)
 
 atlas_install_python_modules( python/*.py )
 
diff --git a/Calorimeter/CaloDigiAlgs/python/CaloDigiAlgsConfig.py b/Calorimeter/CaloDigiAlgs/python/CaloDigiAlgsConfig.py
index ce45e6257885956f5edb6284780ff9756b51b9fc..793f73401b54c91724bdb6283fa4c6099811628c 100644
--- a/Calorimeter/CaloDigiAlgs/python/CaloDigiAlgsConfig.py
+++ b/Calorimeter/CaloDigiAlgs/python/CaloDigiAlgsConfig.py
@@ -6,6 +6,7 @@ from AthenaConfiguration.ComponentFactory import CompFactory
 
 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
 
+from WaveformConditionsTools.WaveformCableMappingConfig import WaveformCableMappingCfg
 
 # One stop shopping for normal FASER data
 def CaloWaveformDigitizationCfg(flags):
@@ -17,6 +18,8 @@ def CaloWaveformDigitizationCfg(flags):
 
     acc.merge(CaloWaveformDigiCfg(flags, "CaloWaveformDigiAlg"))
     acc.merge(CaloWaveformDigitizationOutputCfg(flags))
+    acc.merge(WaveformCableMappingCfg(flags))
+
     return acc
 
 # Return configured digitization algorithm from SIM hits
@@ -54,6 +57,8 @@ def CaloWaveformDigitizationOutputCfg(flags, **kwargs):
     ]
     acc.merge(OutputStreamCfg(flags, "RDO"))
     ostream = acc.getEventAlgo("OutputStreamRDO")
-    ostream.TakeItemsFromInput = True # Copies all data from input file to output
+    # ostream.TakeItemsFromInput = True # Copies all data from input file to output
+    # ostream.TakeItemsFromInput = False
+    # Try turning this off
     ostream.ItemList += ItemList
     return acc
diff --git a/Calorimeter/CaloDigiAlgs/src/CaloWaveformDigiAlg.cxx b/Calorimeter/CaloDigiAlgs/src/CaloWaveformDigiAlg.cxx
index c54e1e37344d963f28a12f9c9f8b5d86781f93c4..70b81b2c1ba4509a44ecd523dbed6b210bacd572 100644
--- a/Calorimeter/CaloDigiAlgs/src/CaloWaveformDigiAlg.cxx
+++ b/Calorimeter/CaloDigiAlgs/src/CaloWaveformDigiAlg.cxx
@@ -20,6 +20,7 @@ CaloWaveformDigiAlg::initialize() {
 
   // Initalize tools
   ATH_CHECK( m_digiTool.retrieve() );
+  ATH_CHECK( m_mappingTool.retrieve() );
 
   // Set key to read waveform from
   ATH_CHECK( m_caloHitContainerKey.initialize() );
@@ -113,6 +114,7 @@ CaloWaveformDigiAlg::execute(const EventContext& ctx) const {
     RawWaveform* wfm = new RawWaveform();
     wfm->setWaveform(0, w.second);
     wfm->setIdentifier(w.first);
+    wfm->setChannel(m_mappingTool->getChannelMapping(w.first));
     wfm->setSamples(nsamples);
     waveformContainerHandle->push_back(wfm);
   }
diff --git a/Calorimeter/CaloDigiAlgs/src/CaloWaveformDigiAlg.h b/Calorimeter/CaloDigiAlgs/src/CaloWaveformDigiAlg.h
index 8eeb0a44eba0dde0ede044036b57406cfcf25efc..25111bc9655ae99d97e7ea56a98524102ce151f3 100644
--- a/Calorimeter/CaloDigiAlgs/src/CaloWaveformDigiAlg.h
+++ b/Calorimeter/CaloDigiAlgs/src/CaloWaveformDigiAlg.h
@@ -10,6 +10,7 @@
 
 // Tool classes
 #include "WaveDigiTools/IWaveformDigitisationTool.h"
+#include "WaveformConditionsTools/IWaveformCableMappingTool.h"
 
 // Handles
 #include "StoreGate/ReadHandleKey.h"
@@ -79,6 +80,11 @@ class CaloWaveformDigiAlg : public AthReentrantAlgorithm {
   ToolHandle<IWaveformDigitisationTool> m_digiTool
     {this, "WaveformDigitisationTool", "WaveformDigitisationTool"};
 
+  /**
+   * @name Mapping tool
+   */
+  ToolHandle<IWaveformCableMappingTool> m_mappingTool
+    {this, "WaveformCableMappingTool", "WaveformCableMappingTool"};
 
   /**
    * @name Input HITS using SG::ReadHandleKey
diff --git a/Scintillator/ScintDigiAlgs/CMakeLists.txt b/Scintillator/ScintDigiAlgs/CMakeLists.txt
index 3ebe3d691decc51518eb6f64ecae03efd76aaf73..5c1874e2502241f919efb21ade0e7c26de7369ca 100644
--- a/Scintillator/ScintDigiAlgs/CMakeLists.txt
+++ b/Scintillator/ScintDigiAlgs/CMakeLists.txt
@@ -9,7 +9,9 @@ atlas_subdir( ScintDigiAlgs )
 atlas_add_component( ScintDigiAlgs
                      src/*.cxx src/*.h
                      src/components/*.cxx
-                     LINK_LIBRARIES AthenaBaseComps Identifier ScintIdentifier StoreGateLib WaveRawEvent ScintSimEvent WaveDigiToolsLib)
+                     LINK_LIBRARIES AthenaBaseComps Identifier ScintIdentifier 
+		     WaveformConditionsToolsLib StoreGateLib WaveRawEvent 
+		     ScintSimEvent WaveDigiToolsLib)
 
 atlas_install_python_modules( python/*.py )
 
diff --git a/Scintillator/ScintDigiAlgs/python/ScintDigiAlgsConfig.py b/Scintillator/ScintDigiAlgs/python/ScintDigiAlgsConfig.py
index 292a19c0890672bb3a1530b080d936c8716a2fff..8ea29b33709b195e9bfb56d9dd8e1ed03608e590 100644
--- a/Scintillator/ScintDigiAlgs/python/ScintDigiAlgsConfig.py
+++ b/Scintillator/ScintDigiAlgs/python/ScintDigiAlgsConfig.py
@@ -5,6 +5,8 @@ from AthenaConfiguration.ComponentFactory import CompFactory
 
 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
 
+from WaveformConditionsTools.WaveformCableMappingConfig import WaveformCableMappingCfg
+
 # Crystallball parameter dictionary used in simulated digitized wave reconstruction.
 # Crystalball function Parameters estimated from Deion's slides uploaded at
 # https://indico.cern.ch/event/1099652/contributions/4626975/attachments/2352595/4013927/Faser-Physics-run3933-plots.pdf  (20/01/2022)
@@ -35,6 +37,7 @@ def ScintWaveformDigitizationCfg(flags):
     acc.merge(ScintWaveformDigiCfg(flags, "VetoWaveformDigiAlg", "Veto"))
     acc.merge(ScintWaveformDigiCfg(flags, "PreshowerWaveformDigiAlg", "Preshower"))
     acc.merge(ScintWaveformDigitizationOutputCfg(flags))
+    acc.merge(WaveformCableMappingCfg(flags))
     return acc
 
 # Return configured digitization algorithm from SIM hits
@@ -72,6 +75,7 @@ def ScintWaveformDigitizationOutputCfg(flags, **kwargs):
     ]
     acc.merge(OutputStreamCfg(flags, "RDO"))
     ostream = acc.getEventAlgo("OutputStreamRDO")
-    ostream.TakeItemsFromInput = True # Copies all data from input file to output
+    # ostream.TakeItemsFromInput = True # Copies all data from input file to output
+    # ostream.TakeItemsFromInput = False
     ostream.ItemList += ItemList
     return acc
diff --git a/Scintillator/ScintDigiAlgs/src/ScintWaveformDigiAlg.cxx b/Scintillator/ScintDigiAlgs/src/ScintWaveformDigiAlg.cxx
index d5235a92ccdacbc2631e4dafc66a3f9dea48dc9d..5ad0fe1ed286c4a310895c327f4739d05ba3a05a 100644
--- a/Scintillator/ScintDigiAlgs/src/ScintWaveformDigiAlg.cxx
+++ b/Scintillator/ScintDigiAlgs/src/ScintWaveformDigiAlg.cxx
@@ -17,6 +17,7 @@ ScintWaveformDigiAlg::initialize() {
 
   // Initalize tools
   ATH_CHECK( m_digiTool.retrieve() );
+  ATH_CHECK( m_mappingTool.retrieve() );
 
   // Set key to read waveform from
   ATH_CHECK( m_scintHitContainerKey.initialize() );
@@ -118,6 +119,7 @@ ScintWaveformDigiAlg::execute(const EventContext& ctx) const {
     RawWaveform* wfm = new RawWaveform();
     wfm->setWaveform(0, w.second);
     wfm->setIdentifier(w.first);
+    wfm->setChannel(m_mappingTool->getChannelMapping(w.first));
     wfm->setSamples(nsamples);
     waveformContainerHandle->push_back(wfm);
   }
diff --git a/Scintillator/ScintDigiAlgs/src/ScintWaveformDigiAlg.h b/Scintillator/ScintDigiAlgs/src/ScintWaveformDigiAlg.h
index de03370698620986377c695852af07c7d8c79b18..363218f9c249bdbffac7e58b5331958d4cedbc94 100644
--- a/Scintillator/ScintDigiAlgs/src/ScintWaveformDigiAlg.h
+++ b/Scintillator/ScintDigiAlgs/src/ScintWaveformDigiAlg.h
@@ -10,6 +10,7 @@
 
 // Tool classes
 #include "WaveDigiTools/IWaveformDigitisationTool.h"
+#include "WaveformConditionsTools/IWaveformCableMappingTool.h"
 
 // Handles
 #include "StoreGate/ReadHandleKey.h"
@@ -92,6 +93,11 @@ class ScintWaveformDigiAlg : public AthReentrantAlgorithm {
   ToolHandle<IWaveformDigitisationTool> m_digiTool
     {this, "WaveformDigitisationTool", "WaveformDigitisationTool"};
 
+  /**
+   * @name Mapping tool
+   */
+  ToolHandle<IWaveformCableMappingTool> m_mappingTool
+    {this, "WaveformCableMappingTool", "WaveformCableMappingTool"};
 
   /**
    * @name Input HITS using SG::ReadHandleKey
diff --git a/Scintillator/ScintSimEvent/ScintSimEvent/ScintHit.h b/Scintillator/ScintSimEvent/ScintSimEvent/ScintHit.h
index dbd77e2758ba91a642d40c35aad79f8f5757bd14..eb79c2fb3a0a80e22783d0314a971d75a83093a6 100644
--- a/Scintillator/ScintSimEvent/ScintSimEvent/ScintHit.h
+++ b/Scintillator/ScintSimEvent/ScintSimEvent/ScintHit.h
@@ -82,7 +82,7 @@ public:
   // Const methods:
   ///////////////////////////////////////////////////////////////////
 
-  // This is the HitId, used in Geant, this is not the detector Identifier
+  // This is the HitId, used in Geant. This is not the detector Identifier
   unsigned int identify() const;
 
   // This is the detector readout Identifier (pmt Identifier)
diff --git a/Tracker/TrackerDigitization/FaserSCT_Digitization/python/FaserSCT_DigitizationConfigNew.py b/Tracker/TrackerDigitization/FaserSCT_Digitization/python/FaserSCT_DigitizationConfigNew.py
index c9f267da7d9d2ba0c6bc973c3fa949b65c217ecc..6ae2b277c89ed09edee634d4fdc6808faec2fa28 100644
--- a/Tracker/TrackerDigitization/FaserSCT_Digitization/python/FaserSCT_DigitizationConfigNew.py
+++ b/Tracker/TrackerDigitization/FaserSCT_Digitization/python/FaserSCT_DigitizationConfigNew.py
@@ -242,7 +242,7 @@ def FaserSCT_OutputCfg(flags):
         acc.merge(TruthDigitizationOutputCfg(flags))
     acc.merge(OutputStreamCfg(flags, "RDO"))
     ostream = acc.getEventAlgo("OutputStreamRDO")
-    ostream.TakeItemsFromInput = True
+    #ostream.TakeItemsFromInput = True   # Don't write hits to RDO by default
     ostream.ItemList += ItemList
     return acc
 
diff --git a/Waveform/WaveRecAlgs/python/WaveRecAlgsConfig.py b/Waveform/WaveRecAlgs/python/WaveRecAlgsConfig.py
index 8bfa32558d6c58d9bf9eb57416ecd7c598566e8f..daf5ae7ca6ee1bd3474421ae0e1e9156c2263a40 100644
--- a/Waveform/WaveRecAlgs/python/WaveRecAlgsConfig.py
+++ b/Waveform/WaveRecAlgs/python/WaveRecAlgsConfig.py
@@ -19,20 +19,6 @@ def WaveformReconstructionCfg(flags):
     if not flags.Input.isMC:
         acc.merge(WaveformClockRecCfg(flags, "ClockRecAlg"))
 
-    if flags.Input.isMC:
-        if "TB" not in flags.GeoModel.FaserVersion:
-            acc.merge(PseudoScintHitToWaveformRecCfg(flags, "PseudoTriggerHitWaveformRecAlg", "Trigger"))
-
-        acc.merge(PseudoScintHitToWaveformRecCfg(flags, "PseudoVetoHitToWaveformRecAlg", "Veto"))
-        acc.merge(PseudoScintHitToWaveformRecCfg(flags, "PseudoPresehowerHitWaveformRecAlg", "Preshower"))
-        acc.merge(PseudoCaloHitToWaveformRecCfg(flags, "PseudoCaloHitWaveformRecAlg"))    
-
-        # Also need cable mapping here
-        from WaveformConditionsTools.WaveformCableMappingConfig import WaveformCableMappingCfg
-        acc.merge(WaveformCableMappingCfg(flags))
-
-        return acc
-
     acc.merge(WaveformHitRecCfg(flags, "TriggerWaveformRecAlg", "Trigger"))
     acc.merge(WaveformHitRecCfg(flags, "VetoWaveformRecAlg", "Veto"))
     acc.merge(WaveformHitRecCfg(flags, "PreshowerWaveformRecAlg", "Preshower"))
diff --git a/Waveform/WaveRecTools/src/PseudoSimToWaveformRecTool.cxx b/Waveform/WaveRecTools/src/PseudoSimToWaveformRecTool.cxx
index c0a2a928dad2f59abb8b42c352eeae5a119cbbb1..93ae1397e3c591b2f54b3765f0138042878e25bc 100644
--- a/Waveform/WaveRecTools/src/PseudoSimToWaveformRecTool.cxx
+++ b/Waveform/WaveRecTools/src/PseudoSimToWaveformRecTool.cxx
@@ -25,7 +25,6 @@ PseudoSimToWaveformRecTool::initialize() {
   ATH_MSG_INFO( name() << "::initalize()" );
 
   ATH_CHECK( m_mappingTool.retrieve() );
-// ATH_CHECK( m_timingTool.retrieve() );
 
   return StatusCode::SUCCESS;
 }
@@ -49,15 +48,12 @@ PseudoSimToWaveformRecTool::make_hits(const std::map<Identifier, float>& sums,
     xAOD::WaveformHit* hit = new xAOD::WaveformHit();
     container->push_back(hit);
 
-    // offset = m_timingTool->triggerTimeOffset(hit->channel());
-
     hit->set_identifier(id.first);
     hit->set_channel(m_mappingTool->getChannelMapping(id.first));
     hit->set_peak(0);
     hit->set_mean(0);
     hit->set_width(0);
     hit->set_integral(id.second); 
-    // hit->set_localtime(trigger_time + offset);
     hit->set_localtime(0);
     hit->set_trigger_time(0);
     hit->set_raw_peak(0);
diff --git a/Waveform/WaveRecTools/src/PseudoSimToWaveformRecTool.h b/Waveform/WaveRecTools/src/PseudoSimToWaveformRecTool.h
index eb2911067fc0cdecdebc30ecb79056a721cbf29f..e117479737d3dad28c1a8dfb7065ab1742d13884 100644
--- a/Waveform/WaveRecTools/src/PseudoSimToWaveformRecTool.h
+++ b/Waveform/WaveRecTools/src/PseudoSimToWaveformRecTool.h
@@ -15,7 +15,6 @@
 
 // Tool classes
 #include "WaveformConditionsTools/IWaveformCableMappingTool.h"
-#include "WaveformConditionsTools/IWaveformTimingTool.h"
 
 //Gaudi
 #include "GaudiKernel/ToolHandle.h"
@@ -39,9 +38,6 @@ class PseudoSimToWaveformRecTool: public extends<AthAlgTool, IPseudoSimToWavefor
   ToolHandle<IWaveformCableMappingTool> m_mappingTool
     {this, "WaveformCableMappingTool", "WaveformCableMappingTool"};
 
-  //ToolHandle<IWaveformTimingTool> m_timingTool
-  //  {this, "WaveformTimingTool", "WaveformTimingTool"};
-
 };
 
 #endif // WAVERECTOOLS_PSEUDOSIMTOWAVEFORMRECTOOL_H