diff --git a/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.cpp b/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.cpp
index 4d7c3406c02454a597a7ed114b8365199e86d55b..b6ab38e67ba1b60c2f7bf086256e954f870298e0 100644
--- a/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.cpp
+++ b/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.cpp
@@ -89,10 +89,6 @@ Edm4hepWriterAnaElemTool::BeginOfEventAction(const G4Event* anEvent) {
     m_track2primary.clear();
 
     auto SimPIonCol =  m_SimPrimaryIonizationCol.createAndPut();
-    if(hasTrackHeedSimTool){
-        debug() << "reset TrackHeedSimTool" << endmsg;
-        m_TrackHeedSimTool->reset();
-    }
  
 }
 
@@ -102,11 +98,7 @@ Edm4hepWriterAnaElemTool::EndOfEventAction(const G4Event* anEvent) {
     msg() << "mcCol size (after simulation) : " << mcCol->size() << endmsg;
     // save all data
     auto SimPrimaryIonizationCol =  m_SimPrimaryIonizationCol.get();
-    msg() << "SimPrimaryIonizationCol size ="<<SimPrimaryIonizationCol->size()<<endmsg;
-    if(hasTrackHeedSimTool){
-        debug() << "call endOfEvent() for TrackHeedSimTool" << endmsg;
-        m_TrackHeedSimTool->endOfEvent();
-    }
+    //msg() << "SimPrimaryIonizationCol size ="<<SimPrimaryIonizationCol->size()<<endmsg;
     // create collections.
     auto trackercols = m_trackerCol.createAndPut();
     auto calorimetercols = m_calorimeterCol.createAndPut();
@@ -573,12 +565,6 @@ StatusCode
 Edm4hepWriterAnaElemTool::initialize() {
     StatusCode sc;
 
-    m_TrackHeedSimTool = ToolHandle<IDedxSimTool>("TrackHeedSimTool",nullptr,false);
-    if(m_TrackHeedSimTool){
-        msg() << "find TrackHeedSimTool" << endmsg;
-        hasTrackHeedSimTool = true;
-    }
- 
     return sc;
 }
 
diff --git a/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.h b/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.h
index 6aedbdc60e825baa3fde27dfcac1e84996ea8d7e..60cc930a4ab3fdf04b57a9591c1b11a28ae29cf4 100644
--- a/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.h
+++ b/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.h
@@ -16,7 +16,6 @@
 #include "edm4hep/SimCalorimeterHitCollection.h"
 #include "edm4hep/CaloHitContributionCollection.h"
 #include "edm4hep/SimPrimaryIonizationClusterCollection.h"
-#include <DetSimInterface/IDedxSimTool.h>
 
 class Edm4hepWriterAnaElemTool: public extends<AlgTool, IAnaElemTool> {
 
@@ -156,8 +155,6 @@ private:
     double Z = 0;
 
     bool verboseOutput = false;
-    ToolHandle<IDedxSimTool> m_TrackHeedSimTool;
-    bool hasTrackHeedSimTool = false;
 };
 
 #endif
diff --git a/Simulation/DetSimDedx/src/TrackHeedSimTool.h b/Simulation/DetSimDedx/src/TrackHeedSimTool.h
index 46a9bd89b9447fcea2cc84c7d2987e4b3732190b..8696d4f665008c94256338302d4ca145d2879ce4 100644
--- a/Simulation/DetSimDedx/src/TrackHeedSimTool.h
+++ b/Simulation/DetSimDedx/src/TrackHeedSimTool.h
@@ -102,19 +102,19 @@ class TrackHeedSimTool: public extends<AlgTool, IDedxSimTool> {
         Sensor* m_sensor;
         std::map<int, std::string> m_particle_map;
         
-        int m_previous_track_ID;
-        float m_previous_KE;
+        int m_previous_track_ID=0;
+        float m_previous_KE=0;
         int m_current_track_ID;
         int m_current_Parent_ID;
         int m_pdg_code;
         G4StepPoint* m_pre_point;
         G4StepPoint* m_post_point;
         G4double m_total_range;
-        bool m_isFirst;
+        bool m_isFirst=true;
         bool m_change_track;
         edm4hep::MCParticle m_mc_paricle; 
-        float m_tot_edep;
-        float m_tot_length;
+        float m_tot_edep=0;
+        float m_tot_length=0;
         float m_pa_KE;
   
         G4double m_pre_x  ;
diff --git a/Simulation/DetSimSD/src/DriftChamberSensDetTool.cpp b/Simulation/DetSimSD/src/DriftChamberSensDetTool.cpp
index c911d47071bfd1410708fbebc1bd5d3d2501954d..58c49d6c62e5d3646348995b52e815a2bc42b31f 100644
--- a/Simulation/DetSimSD/src/DriftChamberSensDetTool.cpp
+++ b/Simulation/DetSimSD/src/DriftChamberSensDetTool.cpp
@@ -22,7 +22,6 @@ StatusCode DriftChamberSensDetTool::initialize() {
         error() << "Failed to find dedx simtoo." << endmsg;
         return StatusCode::FAILURE;
     }
-
     return sc;
 }
 
diff --git a/Simulation/DetSimSD/src/DriftChamberSensitiveDetector.cpp b/Simulation/DetSimSD/src/DriftChamberSensitiveDetector.cpp
index c6ff3db08209c3307b8fd2c954ee9c97f5c015cc..c1d768021e0deb91712baab30235af225ca77821 100644
--- a/Simulation/DetSimSD/src/DriftChamberSensitiveDetector.cpp
+++ b/Simulation/DetSimSD/src/DriftChamberSensitiveDetector.cpp
@@ -71,5 +71,6 @@ DriftChamberSensitiveDetector::ProcessHits(G4Step* step, G4TouchableHistory*) {
 
 void
 DriftChamberSensitiveDetector::EndOfEvent(G4HCofThisEvent* HCE) {
-
+    m_dedx_simtool->endOfEvent();
+    m_dedx_simtool->reset();
 }