diff --git a/NPSimulation/Detectors/SuperX3/SuperX3.cc b/NPSimulation/Detectors/SuperX3/SuperX3.cc
index 8c0ab28f29553a3bbc5ce3f210ff6c373c8b0d52..672e7b6f5577151bc2916303f8841875db1e702e 100644
--- a/NPSimulation/Detectors/SuperX3/SuperX3.cc
+++ b/NPSimulation/Detectors/SuperX3/SuperX3.cc
@@ -320,6 +320,8 @@ void SuperX3::ReadSensitive(const G4Event*) {
     m_Event->SetBackE(det, strip, energy);
     m_Event->SetBackT(det, strip, time);
   }
+  resistive->clear();
+  backstrip->clear();
 }
 
 void SuperX3::InitializeMaterials() {
diff --git a/NPSimulation/Scorers/DSSDScorers.cc b/NPSimulation/Scorers/DSSDScorers.cc
index dde7e5ad619559fa30219068325483435688404a..f89ec91d0d296c6ff648602c82a9caeca20dcc32 100644
--- a/NPSimulation/Scorers/DSSDScorers.cc
+++ b/NPSimulation/Scorers/DSSDScorers.cc
@@ -370,21 +370,22 @@ G4bool PS_Resistive::ProcessHits(G4Step* aStep, G4TouchableHistory*) {
 
   // Up
   vector<DSSDData>::iterator it;
-  it = m_HitUp.find(DSSDData::CalculateIndex(t_DetectorNumber, t_StripWidthNumber));
-  if (it != m_HitUp.end())
+  it = m_HitUp.find(DSSDData::CalculateIndex(t_StripWidthNumber, t_DetectorNumber));
+  if (it != m_HitUp.end()) {
     it->Add(t_EnergyUp);
-  else
+  }
+  else {
     m_HitUp.Set(t_EnergyUp, t_Time, t_StripWidthNumber, t_DetectorNumber);
-
+  }
   // Down
-  it = m_HitDown.find(DSSDData::CalculateIndex(t_DetectorNumber, t_StripWidthNumber));
+  it = m_HitDown.find(DSSDData::CalculateIndex(t_StripWidthNumber, t_DetectorNumber));
   if (it != m_HitDown.end())
     it->Add(t_EnergyDown);
   else
     m_HitDown.Set(t_EnergyDown, t_Time, t_StripWidthNumber, t_DetectorNumber);
 
   // Back
-  it = m_HitBack.find(DSSDData::CalculateIndex(t_DetectorNumber, t_StripWidthNumber));
+  it = m_HitBack.find(DSSDData::CalculateIndex(t_StripWidthNumber, t_DetectorNumber));
   if (it != m_HitBack.end())
     it->Add(t_Energy);
   else