diff --git a/InnerDetector/InDetConditions/SiLorentzAngleTool/src/PixelSiLorentzAngleCondAlg.cxx b/InnerDetector/InDetConditions/SiLorentzAngleTool/src/PixelSiLorentzAngleCondAlg.cxx
index e3fd0bba45b25ade8889a769fa240a45fee052a6..965aef781b7ef7d94ab0180c85918ffa4bc708b8 100644
--- a/InnerDetector/InDetConditions/SiLorentzAngleTool/src/PixelSiLorentzAngleCondAlg.cxx
+++ b/InnerDetector/InDetConditions/SiLorentzAngleTool/src/PixelSiLorentzAngleCondAlg.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "PixelSiLorentzAngleCondAlg.h"
@@ -156,7 +156,7 @@ PixelSiLorentzAngleCondAlg::execute(const EventContext& ctx) const {
       forceLorentzToZero = 0.0;
     }
 
-    const InDet::SiliconProperties &siProperties = m_siPropertiesTool->getSiProperties(elementHash);
+    const InDet::SiliconProperties &siProperties = m_siPropertiesTool->getSiProperties(elementHash, ctx);
     double mobility = siProperties.signedHallMobility(element->carrierType());
 
     // Get magnetic field. This first checks that field cache is valid.
diff --git a/InnerDetector/InDetConditions/SiPropertiesTool/SiPropertiesTool/ISiPropertiesTool.h b/InnerDetector/InDetConditions/SiPropertiesTool/SiPropertiesTool/ISiPropertiesTool.h
index a443861ef24a3093d32e9f5b5332ae7a633c265e..c8473c457765482d9ee1a115a367a37ad5c56a1a 100644
--- a/InnerDetector/InDetConditions/SiPropertiesTool/SiPropertiesTool/ISiPropertiesTool.h
+++ b/InnerDetector/InDetConditions/SiPropertiesTool/SiPropertiesTool/ISiPropertiesTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -11,6 +11,7 @@
 
 //Gaudi Includes
 #include "GaudiKernel/IAlgTool.h"
+#include "GaudiKernel/EventContext.h"
 #include "SiPropertiesTool/SiliconProperties.h"
 #include "Identifier/IdentifierHash.h"
 
@@ -29,7 +30,7 @@ class ISiPropertiesTool: virtual public IAlgTool
   DeclareInterfaceID(ISiPropertiesTool, 1, 0);
 
   /// Get Silicon properties for a given detector element.
-  virtual const InDet::SiliconProperties& getSiProperties(const IdentifierHash& elementHash) const = 0;
+  virtual const InDet::SiliconProperties& getSiProperties(const IdentifierHash& elementHash, const EventContext& ctx) const = 0;
 };
 
 #endif // ISiPropertiesTool_h
diff --git a/InnerDetector/InDetConditions/SiPropertiesTool/src/SCTSiPropertiesTestAlg.cxx b/InnerDetector/InDetConditions/SiPropertiesTool/src/SCTSiPropertiesTestAlg.cxx
index f5d1b95b23bdaa39a5a58a7d1348e76227110578..f09fb8d236b80cc9fea0ccaba3734e6362169a77 100644
--- a/InnerDetector/InDetConditions/SiPropertiesTool/src/SCTSiPropertiesTestAlg.cxx
+++ b/InnerDetector/InDetConditions/SiPropertiesTool/src/SCTSiPropertiesTestAlg.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "SCTSiPropertiesTestAlg.h"
@@ -22,11 +22,11 @@ StatusCode SCTSiPropertiesTestAlg::initialize() {
   return StatusCode::SUCCESS;
 }
 
-StatusCode SCTSiPropertiesTestAlg::execute(const EventContext& /*ctx*/) const {
+StatusCode SCTSiPropertiesTestAlg::execute(const EventContext& ctx) const {
   unsigned int maxHash{static_cast<unsigned int>(m_id->wafer_hash_max())};
   for (unsigned int hash{0}; hash<maxHash; hash++) {
     const IdentifierHash elementHash{hash};
-    const InDet::SiliconProperties& siProperties{m_tool->getSiProperties(elementHash)};
+    const InDet::SiliconProperties& siProperties{m_tool->getSiProperties(elementHash, ctx)};
     const double electronDriftMobility{siProperties.electronDriftMobility()};
     const double holeDriftMobility{siProperties.holeDriftMobility()};
     const double electronHallMobility{siProperties.electronHallMobility()};
diff --git a/InnerDetector/InDetConditions/SiPropertiesTool/src/SiPropertiesTool.cxx b/InnerDetector/InDetConditions/SiPropertiesTool/src/SiPropertiesTool.cxx
index 8a502f818a1b9a7292813d6cc5d7094468be8120..5bbe45b90ef69e7880b9b89a4f341c2c4904312d 100644
--- a/InnerDetector/InDetConditions/SiPropertiesTool/src/SiPropertiesTool.cxx
+++ b/InnerDetector/InDetConditions/SiPropertiesTool/src/SiPropertiesTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "SiPropertiesTool.h"
@@ -33,8 +33,8 @@ SiPropertiesTool::finalize()
 }
 
 const InDet::SiliconProperties&
-SiPropertiesTool::getSiProperties(const IdentifierHash& elementHash) const {
-  SG::ReadCondHandle<InDet::SiliconPropertiesVector> handle{m_propertiesVector};
+SiPropertiesTool::getSiProperties(const IdentifierHash& elementHash, const EventContext& ctx) const {
+  SG::ReadCondHandle<InDet::SiliconPropertiesVector> handle{m_propertiesVector, ctx};
   if (handle.isValid()) {
     const InDet::SiliconPropertiesVector* vector{*handle};
     if (vector) {
diff --git a/InnerDetector/InDetConditions/SiPropertiesTool/src/SiPropertiesTool.h b/InnerDetector/InDetConditions/SiPropertiesTool/src/SiPropertiesTool.h
index 72c12ac0d3857d9e58b498c4bf4238dfaca1b686..48802fd25cc8df3dff2d6a9be5b824fe64dc46e4 100644
--- a/InnerDetector/InDetConditions/SiPropertiesTool/src/SiPropertiesTool.h
+++ b/InnerDetector/InDetConditions/SiPropertiesTool/src/SiPropertiesTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -30,7 +30,7 @@ public:
   virtual StatusCode finalize() override;
 
   /// Get properties for the detector element.
-  virtual const InDet::SiliconProperties& getSiProperties(const IdentifierHash& elementHash) const override;
+  virtual const InDet::SiliconProperties& getSiProperties(const IdentifierHash& elementHash, const EventContext& ctx) const override;
 
 private:
   // Properties
diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/SensorSim3DTool.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/SensorSim3DTool.cxx
index 6e36ec275af73a69a9bb84c73302ce886dcc12aa..faf465ef2b0f5637e9580b6aa38ba6547ea8f725 100644
--- a/InnerDetector/InDetDigitization/PixelDigitization/src/SensorSim3DTool.cxx
+++ b/InnerDetector/InDetDigitization/PixelDigitization/src/SensorSim3DTool.cxx
@@ -217,7 +217,7 @@ StatusCode SensorSim3DTool::induceCharge(const TimedHitPtr<SiHit>& phit,
 
   ATH_MSG_VERBOSE("Applying 3D sensor simulation.");
   double sensorThickness = Module.design().thickness();
-  const InDet::SiliconProperties& siProperties = m_siPropertiesTool->getSiProperties(Module.identifyHash());
+  const InDet::SiliconProperties& siProperties = m_siPropertiesTool->getSiProperties(Module.identifyHash(), ctx);
   double eleholePairEnergy = siProperties.electronHolePairsPerEnergy();
 
   // Charge Collection Probability Map bin size
diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/SensorSimPlanarTool.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/SensorSimPlanarTool.cxx
index 8622bf6ec9f0bec78d10776b965c10a98b6eebd7..4c9c4cfd68ce7785183f7768990f274f4293498a 100644
--- a/InnerDetector/InDetDigitization/PixelDigitization/src/SensorSimPlanarTool.cxx
+++ b/InnerDetector/InDetDigitization/PixelDigitization/src/SensorSimPlanarTool.cxx
@@ -201,7 +201,7 @@ StatusCode SensorSimPlanarTool::induceCharge(const TimedHitPtr<SiHit>& phit,
   //Set up physical detector properties, switch on detector material
   ATH_MSG_DEBUG("Applying planar sensor simulation");
   double sensorThickness = Module.design().thickness();
-  const InDet::SiliconProperties& siProperties = m_siPropertiesTool->getSiProperties(Module.identifyHash());
+  const InDet::SiliconProperties& siProperties = m_siPropertiesTool->getSiProperties(Module.identifyHash(), ctx);
 
   int etaCells = p_design.columns();
   int phiCells = p_design.rows();
diff --git a/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_DetailedSurfaceChargesGenerator.cxx b/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_DetailedSurfaceChargesGenerator.cxx
index 0778195e07e31e9b09003f6791f58922a2b81dbc..9258948e3d0dcb4b75cb87116788d54dfd5217b7 100644
--- a/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_DetailedSurfaceChargesGenerator.cxx
+++ b/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_DetailedSurfaceChargesGenerator.cxx
@@ -181,7 +181,7 @@ float SCT_DetailedSurfaceChargesGenerator::DriftTime(float zhit, const SiDetecto
   }
 
   float driftTime{static_cast<float>(log((vdepl+vbias)/denominator))};
-  driftTime *= sensorThickness*sensorThickness/(2.0*m_siPropertiesTool->getSiProperties(hashId).holeDriftMobility()*vdepl);
+  driftTime *= sensorThickness*sensorThickness/(2.0*m_siPropertiesTool->getSiProperties(hashId, ctx).holeDriftMobility()*vdepl);
   return driftTime;
 }
 
@@ -192,7 +192,7 @@ float SCT_DetailedSurfaceChargesGenerator::DiffusionSigma(float zhit, const SiDe
   const IdentifierHash hashId{element->identifyHash()};
   const float t{this->DriftTime(zhit, element, ctx)}; // in ns
   if (t>0.0) {
-    const float diffusionSigma{static_cast<float>(sqrt(2.*m_siPropertiesTool->getSiProperties(hashId).holeDiffusionConstant()*t))}; // in mm
+    const float diffusionSigma{static_cast<float>(sqrt(2.*m_siPropertiesTool->getSiProperties(hashId, ctx).holeDiffusionConstant()*t))}; // in mm
     return diffusionSigma;
   }
   return 0.0;
@@ -304,7 +304,7 @@ void SCT_DetailedSurfaceChargesGenerator::processSiHit(const SiDetectorElement*
   int numberOfSteps{static_cast<int>(LargeStep/m_smallStepLength) + 1};
   double steps{static_cast<double>(m_numberOfCharges*numberOfSteps)};
   double e1{phit.energyLoss()/steps};
-  double q1{e1*m_siPropertiesTool->getSiProperties(hashId).electronHolePairsPerEnergy()};
+  double q1{e1*m_siPropertiesTool->getSiProperties(hashId, ctx).electronHolePairsPerEnergy()};
 
   //in the following, to test the code, we will use the original coordinate system of the SCTtest3SurfaceChargesGenerator x is eta y is phi z is depth 
   double xhit{xEta};
diff --git a/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_InducedChargeModel.cxx b/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_InducedChargeModel.cxx
index 1c8801851217feb7d10510ec9ffc04c721b3abfb..ed268e75f63d0423c86ce99bc95bb64e096ff301 100644
--- a/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_InducedChargeModel.cxx
+++ b/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_InducedChargeModel.cxx
@@ -106,7 +106,8 @@ void SCT_InducedChargeModel::transport(const SCT_InducedChargeModelData& data,
                                        const double x0, const double y0,
                                        double* Q_m2, double* Q_m1, double* Q_00, double* Q_p1, double* Q_p2,
                                        const IdentifierHash hashId,
-                                       const ToolHandle<ISiPropertiesTool> siPropertiesTool) const {
+                                       const ToolHandle<ISiPropertiesTool> siPropertiesTool,
+                                       const EventContext& ctx) const {
   // transport electrons and holes in the bulk
   // T. Kondo, 2010.9.9, 2017.7.20
   // External parameters to be specified
@@ -128,7 +129,7 @@ void SCT_InducedChargeModel::transport(const SCT_InducedChargeModelData& data,
   }
   while (t_current < m_transportTimeMax) {
     if (!isInBulk) break;
-    if (!getVxVyD(data, isElectron, x, y, vx, vy, D, hashId, siPropertiesTool)) break;
+    if (!getVxVyD(data, isElectron, x, y, vx, vy, D, hashId, siPropertiesTool, ctx)) break;
     double delta_y = vy * m_transportTimeStep / Gaudi::Units::second; // ns -> s
     y += delta_y;
     double dt = m_transportTimeStep; // [nsec]
@@ -191,7 +192,8 @@ void SCT_InducedChargeModel::holeTransport(const SCT_InducedChargeModelData& dat
                                            const double x0, const double y0,
                                            double* Q_m2, double* Q_m1, double* Q_00, double* Q_p1, double* Q_p2,
                                            const IdentifierHash hashId,
-                                           const ToolHandle<ISiPropertiesTool> siPropertiesTool) const {
+                                           const ToolHandle<ISiPropertiesTool> siPropertiesTool,
+                                           const EventContext& ctx) const {
   // Q_m2[100],Q_m1[100],Q_00[100],Q_p1[100],Q_p2[100] NTransportSteps=100
   const bool isElectron = false;
   transport(data,
@@ -199,7 +201,8 @@ void SCT_InducedChargeModel::holeTransport(const SCT_InducedChargeModelData& dat
             x0, y0,
             Q_m2, Q_m1, Q_00, Q_p1, Q_p2,
             hashId,
-            siPropertiesTool);
+            siPropertiesTool,
+            ctx);
 }
 
 //---------------------------------------------------------------------
@@ -209,7 +212,8 @@ void SCT_InducedChargeModel::electronTransport(const SCT_InducedChargeModelData&
                                                const double x0, const double y0,
                                                double* Q_m2, double* Q_m1, double* Q_00, double* Q_p1, double* Q_p2,
                                                const IdentifierHash hashId,
-                                               const ToolHandle<ISiPropertiesTool> siPropertiesTool) const {
+                                               const ToolHandle<ISiPropertiesTool> siPropertiesTool,
+                                               const EventContext& ctx) const {
   // Q_m2[100],Q_m1[100],Q_00[100],Q_p1[100],Q_p2[100] NTransportSteps=100
   const bool isElectron = true;
   transport(data,
@@ -217,7 +221,8 @@ void SCT_InducedChargeModel::electronTransport(const SCT_InducedChargeModelData&
             x0, y0,
             Q_m2, Q_m1, Q_00, Q_p1, Q_p2,
             hashId,
-            siPropertiesTool);
+            siPropertiesTool,
+            ctx);
 }
 
 //---------------------------------------------------------------
@@ -227,7 +232,8 @@ bool SCT_InducedChargeModel::getVxVyD(const SCT_InducedChargeModelData& data,
                                       const bool isElectron,
                                       const double x, const double y, double& vx, double& vy, double& D,
                                       const IdentifierHash hashId,
-                                      const ToolHandle<ISiPropertiesTool> siPropertiesTool) const {
+                                      const ToolHandle<ISiPropertiesTool> siPropertiesTool,
+                                      const EventContext& ctx) const {
   double Ex, Ey;
   getEField(data, x, y, Ex, Ey); // [V/cm]
   if (Ey > 0.) {
@@ -238,13 +244,13 @@ bool SCT_InducedChargeModel::getVxVyD(const SCT_InducedChargeModelData& data,
     }
     const double E = std::sqrt(Ex*Ex+Ey*Ey);
     const double mu = (isElectron ?
-                       siPropertiesTool->getSiProperties(hashId).calcElectronDriftMobility(data.m_T, E*CLHEP::volt/CLHEP::cm) :
-                       siPropertiesTool->getSiProperties(hashId).calcHoleDriftMobility    (data.m_T, E*CLHEP::volt/CLHEP::cm))
+                       siPropertiesTool->getSiProperties(hashId, ctx).calcElectronDriftMobility(data.m_T, E*CLHEP::volt/CLHEP::cm) :
+                       siPropertiesTool->getSiProperties(hashId, ctx).calcHoleDriftMobility    (data.m_T, E*CLHEP::volt/CLHEP::cm))
       * (CLHEP::volt/CLHEP::cm)/(CLHEP::cm/CLHEP::s);
     const double v = mu * E;
     const double r = (isElectron ?
-                      siPropertiesTool->getSiProperties(hashId).calcElectronHallFactor(data.m_T) :
-                      siPropertiesTool->getSiProperties(hashId).calcHoleHallFactor(data.m_T));
+                      siPropertiesTool->getSiProperties(hashId, ctx).calcElectronHallFactor(data.m_T) :
+                      siPropertiesTool->getSiProperties(hashId, ctx).calcHoleHallFactor(data.m_T));
 
     const double tanLA = data.m_element->design().readoutSide()
       * r * mu * (isElectron ? -1. : +1.) // because e has negative charge.
diff --git a/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_InducedChargeModel.h b/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_InducedChargeModel.h
index 2c94090b53d061d3a02834cc0b49bebbd04e16df..77ea51be43f267db4abdcf86053c173d15c5f641 100644
--- a/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_InducedChargeModel.h
+++ b/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_InducedChargeModel.h
@@ -109,17 +109,20 @@ class SCT_InducedChargeModel {
                  const double x0, const double y0,
                  double* Q_m2, double* Q_m1, double* Q_00, double* Q_p1, double* Q_p2,
                  const IdentifierHash hashId,
-                 const ToolHandle<ISiPropertiesTool> siPropertiesTool) const;
+                 const ToolHandle<ISiPropertiesTool> siPropertiesTool,
+                 const EventContext& ctx) const;
   void holeTransport(const SCT_InducedChargeModelData& data,
                      const double x0, const double y0,
                      double* Q_m2, double* Q_m1, double* Q_00, double* Q_p1, double* Q_p2,
                      const IdentifierHash hashId,
-                     const ToolHandle<ISiPropertiesTool> siPropertiesTool) const;
+                     const ToolHandle<ISiPropertiesTool> siPropertiesTool,
+                     const EventContext& ctx) const;
   void electronTransport(const SCT_InducedChargeModelData& data,
                          const double x0, const double y0,
                          double* Q_m2, double* Q_m1, double* Q_00, double* Q_p1, double* Q_p2,
                          const IdentifierHash hashId,
-                         const ToolHandle<ISiPropertiesTool> siPropertiesTool) const;
+                         const ToolHandle<ISiPropertiesTool> siPropertiesTool,
+                         const EventContext& ctx) const;
 
  private:
  
@@ -129,7 +132,8 @@ class SCT_InducedChargeModel {
                 const bool isElectron,
                 const double x, const double y, double& vx, double& vy, double& D,
                 const IdentifierHash hashId,
-                const ToolHandle<ISiPropertiesTool> siPropertiesTool) const;
+                const ToolHandle<ISiPropertiesTool> siPropertiesTool,
+                const EventContext& ctx) const;
   double induced(const SCT_InducedChargeModelData& data,
                  const int istrip, const double x, const double y) const;
   void getEField(const SCT_InducedChargeModelData& data,
diff --git a/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_SurfaceChargesGenerator.cxx b/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_SurfaceChargesGenerator.cxx
index 961b2f9ef5e920d8f7a867e68da79d6241db154e..e03726bade39b0aa61da362ee732bc5f2f3fe822 100644
--- a/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_SurfaceChargesGenerator.cxx
+++ b/InnerDetector/InDetDigitization/SCT_Digitization/src/SCT_SurfaceChargesGenerator.cxx
@@ -220,7 +220,7 @@ float SCT_SurfaceChargesGenerator::driftTime(float zhit, const SiDetectorElement
   }
 
   float t_drift{std::log((depletionVoltage + biasVoltage) / denominator)};
-  t_drift *= thickness * thickness / (2.0 * m_siPropertiesTool->getSiProperties(hashId).holeDriftMobility() * depletionVoltage);
+  t_drift *= thickness * thickness / (2.0 * m_siPropertiesTool->getSiProperties(hashId, ctx).holeDriftMobility() * depletionVoltage);
   return t_drift;
 }
 
@@ -236,7 +236,7 @@ float SCT_SurfaceChargesGenerator::diffusionSigma(float zhit, const SiDetectorEl
   const float t{driftTime(zhit, element, ctx)}; // in ns
 
   if (t > 0.0) {
-    const float sigma{static_cast<float>(std::sqrt(2. * m_siPropertiesTool->getSiProperties(hashId).holeDiffusionConstant() * t))}; // in mm
+    const float sigma{static_cast<float>(std::sqrt(2. * m_siPropertiesTool->getSiProperties(hashId, ctx).holeDiffusionConstant() * t))}; // in mm
     return sigma;
   } else {
     return 0.0;
@@ -359,7 +359,7 @@ void SCT_SurfaceChargesGenerator::processSiHit(const SiDetectorElement* element,
   const int numberOfSteps{static_cast<int>(LargeStep / m_smallStepLength) + 1};
   const float steps{static_cast<float>(m_numberOfCharges * numberOfSteps)};
   const float e1{static_cast<float>(phit.energyLoss() / steps)};
-  const float q1{static_cast<float>(e1 * m_siPropertiesTool->getSiProperties(hashId).electronHolePairsPerEnergy())};
+  const float q1{static_cast<float>(e1 * m_siPropertiesTool->getSiProperties(hashId, ctx).electronHolePairsPerEnergy())};
 
   // in the following, to test the code, we will use the original coordinate
   // system of the SCTtest3SurfaceChargesGenerator x is eta y is phi z is depth
@@ -543,11 +543,13 @@ void SCT_SurfaceChargesGenerator::processSiHit(const SiDetectorElement* element,
             m_InducedChargeModel->holeTransport(*data,
                                                 y0*mm2cm, z0*mm2cm,
                                                 Q_m2, Q_m1, Q_00, Q_p1, Q_p2,
-                                                hashId, m_siPropertiesTool);
+                                                hashId, m_siPropertiesTool,
+                                                ctx);
             m_InducedChargeModel->electronTransport(*data,
                                                     y0*mm2cm, z0*mm2cm,
                                                     Q_m2, Q_m1, Q_00, Q_p1, Q_p2,
-                                                    hashId, m_siPropertiesTool);
+                                                    hashId, m_siPropertiesTool,
+                                                    ctx);
 
             for (int it{0}; it<SCT_InducedChargeModel::NTransportSteps; it++) {
               if (Q_00[it] == 0.0) continue;