diff --git a/Examples/options/tut_detsim_SDT.py b/Examples/options/tut_detsim_SDT.py
index 027d581388a4aa46983f6d34629364e4c694ce80..1b2adeb71c0ad157b683506b2332b766a106ff7f 100644
--- a/Examples/options/tut_detsim_SDT.py
+++ b/Examples/options/tut_detsim_SDT.py
@@ -121,6 +121,11 @@ detsimalg.RootDetElem = "WorldDetElemTool"
 from Configurables import AnExampleDetElemTool
 example_dettool = AnExampleDetElemTool("AnExampleDetElemTool")
 
+from Configurables import CalorimeterSensDetTool
+from Configurables import DriftChamberSensDetTool
+
+calo_sensdettool = CalorimeterSensDetTool("CalorimeterSensDetTool")
+driftchamber_sensdettool = DriftChamberSensDetTool("DriftChamberSensDetTool")
 
 ##############################################################################
 # POD I/O
diff --git a/Simulation/DetSimGeom/src/AnExampleDetElemTool.cpp b/Simulation/DetSimGeom/src/AnExampleDetElemTool.cpp
index 87ad61b35a7fb05c9bd18999bcc3ea5e40d66c9f..0212a0e3d9b2c6fae5e608fcc540d57fa062b693 100644
--- a/Simulation/DetSimGeom/src/AnExampleDetElemTool.cpp
+++ b/Simulation/DetSimGeom/src/AnExampleDetElemTool.cpp
@@ -110,6 +110,17 @@ AnExampleDetElemTool::ConstructSDandField() {
                 }
             } else if (typ=="tracker") {
 
+                // if drift chamber
+                if (nam == "DriftChamber") {
+                    m_driftchamber_sdtool = ToolHandle<ISensDetTool>("DriftChamberSensDetTool");
+                    if (m_driftchamber_sdtool) {
+                        info() << "Find the DriftChamberSensDetTool" << endmsg;
+                        g4sd = m_calo_sdtool->createSD(nam);
+                    } else {
+                        warning() << "DriftChamberSensDetTool is not found. " << endmsg;
+                    }
+                }
+
             }
         }
         
@@ -186,6 +197,9 @@ AnExampleDetElemTool::initialize() {
         return StatusCode::FAILURE;
     }
 
+    m_calo_sdtool = ToolHandle<ISensDetTool>("CalorimeterSensDetTool");
+    m_driftchamber_sdtool = ToolHandle<ISensDetTool>("DriftChamberSensDetTool");
+
     return sc;
 }
 
diff --git a/Simulation/DetSimGeom/src/AnExampleDetElemTool.h b/Simulation/DetSimGeom/src/AnExampleDetElemTool.h
index b0b22861b892c0817876e9c325853e843acf7dc4..ba1990715d10ca9f07eb5a2791314f8ce0d090ee 100644
--- a/Simulation/DetSimGeom/src/AnExampleDetElemTool.h
+++ b/Simulation/DetSimGeom/src/AnExampleDetElemTool.h
@@ -33,6 +33,7 @@ private:
 
     SmartIF<IGeoSvc> m_geosvc;
     ToolHandle<ISensDetTool> m_calo_sdtool;
+    ToolHandle<ISensDetTool> m_driftchamber_sdtool;
 };
 
 #endif
diff --git a/Simulation/DetSimSD/src/DriftChamberSensDetTool.cpp b/Simulation/DetSimSD/src/DriftChamberSensDetTool.cpp
index e3c2e98a03f145628d6a65e61a4897235dc39fed..2220500ce3989664c0070292010a1b348741d538 100644
--- a/Simulation/DetSimSD/src/DriftChamberSensDetTool.cpp
+++ b/Simulation/DetSimSD/src/DriftChamberSensDetTool.cpp
@@ -4,6 +4,8 @@
 
 #include "DD4hep/Detector.h"
 
+#include "DriftChamberSensitiveDetector.h"
+
 DECLARE_COMPONENT(DriftChamberSensDetTool);
 
 StatusCode DriftChamberSensDetTool::initialize() {
@@ -28,7 +30,7 @@ G4VSensitiveDetector*
 DriftChamberSensDetTool::createSD(const std::string& name) {
     dd4hep::Detector* dd4hep_geo = m_geosvc->lcdd();
 
-    G4VSensitiveDetector* sd = nullptr;
+    G4VSensitiveDetector* sd = new DriftChamberSensitiveDetector(name, *dd4hep_geo);
 
     return sd;
 }