diff --git a/Detector/DetCEPCv4/src/tracker/FTD_Simple_Staggered_geo.cpp b/Detector/DetCEPCv4/src/tracker/FTD_Simple_Staggered_geo.cpp
index 8a7ae183999e4f0001e408c9ec65107930a07a0b..b1cf2fe64a62fa4a6e518bb325b785d3b0000c38 100644
--- a/Detector/DetCEPCv4/src/tracker/FTD_Simple_Staggered_geo.cpp
+++ b/Detector/DetCEPCv4/src/tracker/FTD_Simple_Staggered_geo.cpp
@@ -327,7 +327,7 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se
   
   PlacedVolume pv;
 
-  if (x_det.hasAttr(_U(sensitive))) {
+  if (x_det.hasChild(_U(sensitive))) {
     xml_dim_t sd_typ = x_det.child(_U(sensitive));
     sens.setType(sd_typ.typeStr());
   }
diff --git a/Detector/DetCEPCv4/src/tracker/FTD_cepc_geo.cpp b/Detector/DetCEPCv4/src/tracker/FTD_cepc_geo.cpp
index 1515fdd025578ae5ec2b92229b08b040a21a4b2b..cdc5294c64a24ea53bc61b7a288192e0668bb72b 100644
--- a/Detector/DetCEPCv4/src/tracker/FTD_cepc_geo.cpp
+++ b/Detector/DetCEPCv4/src/tracker/FTD_cepc_geo.cpp
@@ -327,7 +327,7 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se
   
   PlacedVolume pv;
 
-  if (x_det.hasAttr(_U(sensitive))) {
+  if (x_det.hasChild(_U(sensitive))) {
     xml_dim_t sd_typ = x_det.child(_U(sensitive));
     sens.setType(sd_typ.typeStr());
   }
diff --git a/Detector/DetCEPCv4/src/tracker/SET_Simple_Planar_geo.cpp b/Detector/DetCEPCv4/src/tracker/SET_Simple_Planar_geo.cpp
index 390939704a14bb4a0c9e76feef872ee343e27ea3..154f6653f466936753d378aa49c6be2ff06f1440 100644
--- a/Detector/DetCEPCv4/src/tracker/SET_Simple_Planar_geo.cpp
+++ b/Detector/DetCEPCv4/src/tracker/SET_Simple_Planar_geo.cpp
@@ -77,7 +77,7 @@ static dd4hep::Ref_t create_element(dd4hep::Detector& theDetector, xml_h e, dd4h
   
   //PlacedVolume pv;
   
-  if (x_det.hasAttr(_U(sensitive))) {
+  if (x_det.hasChild(_U(sensitive))) {
     xml_dim_t sd_typ = x_det.child(_U(sensitive));
     sens.setType(sd_typ.typeStr());
   }
diff --git a/Detector/DetCEPCv4/src/tracker/SIT_Simple_Pixel_geo.cpp b/Detector/DetCEPCv4/src/tracker/SIT_Simple_Pixel_geo.cpp
index 2599359474fca1e8add47298b6b831ec8d7cf3f2..347b391b371deb19eb966c1e3ad899c04c29c259 100644
--- a/Detector/DetCEPCv4/src/tracker/SIT_Simple_Pixel_geo.cpp
+++ b/Detector/DetCEPCv4/src/tracker/SIT_Simple_Pixel_geo.cpp
@@ -84,7 +84,7 @@ static dd4hep::Ref_t create_element(dd4hep::Detector& theDetector, xml_h e, dd4h
   
   dd4hep::PlacedVolume pv;
   
-  if (x_det.hasAttr(_U(sensitive))) {
+  if (x_det.hasChild(_U(sensitive))) {
     xml_dim_t sd_typ = x_det.child(_U(sensitive));
     sens.setType(sd_typ.typeStr());
   }
diff --git a/Detector/DetCEPCv4/src/tracker/SIT_Simple_Planar_geo.cpp b/Detector/DetCEPCv4/src/tracker/SIT_Simple_Planar_geo.cpp
index a33d71e676cef6e9b58366c039ea261c0cfa0ebe..9404518532fef09c4493bef6df027f36808d509f 100644
--- a/Detector/DetCEPCv4/src/tracker/SIT_Simple_Planar_geo.cpp
+++ b/Detector/DetCEPCv4/src/tracker/SIT_Simple_Planar_geo.cpp
@@ -84,7 +84,7 @@ static dd4hep::Ref_t create_element(dd4hep::Detector& theDetector, xml_h e, dd4h
   
   dd4hep::PlacedVolume pv;
   
-  if (x_det.hasAttr(_U(sensitive))) {
+  if (x_det.hasChild(_U(sensitive))) {
     xml_dim_t sd_typ = x_det.child(_U(sensitive));
     sens.setType(sd_typ.typeStr());
   }
diff --git a/Detector/DetCEPCv4/src/tracker/TPC10_geo.cpp b/Detector/DetCEPCv4/src/tracker/TPC10_geo.cpp
index 01d7ab0d55a278ac4484387e59a5dcd092c99f3c..4e5ee8a9d55a3d21637cda01404d5a8e7839ca1f 100644
--- a/Detector/DetCEPCv4/src/tracker/TPC10_geo.cpp
+++ b/Detector/DetCEPCv4/src/tracker/TPC10_geo.cpp
@@ -68,7 +68,7 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se
 
   PlacedVolume pv;  
 
-  if (x_det.hasAttr(_U(sensitive))) {
+  if (x_det.hasChild(_U(sensitive))) {
     xml_dim_t sd_typ = x_det.child(_U(sensitive));
     sens.setType(sd_typ.typeStr());
   }
diff --git a/Detector/DetCEPCv4/src/tracker/VXD04_geo.cpp b/Detector/DetCEPCv4/src/tracker/VXD04_geo.cpp
index 6af6456fd2462f4505b91d5ebfef0e5776ee3880..929822dd30f113ecc4da86d3627dd6a9062007c2 100644
--- a/Detector/DetCEPCv4/src/tracker/VXD04_geo.cpp
+++ b/Detector/DetCEPCv4/src/tracker/VXD04_geo.cpp
@@ -74,7 +74,7 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se
 
   //-----------------------------------------------------------------------------------
 
-  if (x_det.hasAttr(_U(sensitive))) {
+  if (x_det.hasChild(_U(sensitive))) {
     xml_dim_t sd_typ = x_det.child(_U(sensitive));
     sens.setType(sd_typ.typeStr());
   }
diff --git a/Detector/DetCRD/src/Tracker/SiTrackerSkewRing_v01_geo.cpp b/Detector/DetCRD/src/Tracker/SiTrackerSkewRing_v01_geo.cpp
index 949ca19be3ce74467fbeaa3b24fddaa1f59abbd1..2cbd8bce91190b9138dada2e5b69787d26532f4d 100644
--- a/Detector/DetCRD/src/Tracker/SiTrackerSkewRing_v01_geo.cpp
+++ b/Detector/DetCRD/src/Tracker/SiTrackerSkewRing_v01_geo.cpp
@@ -66,14 +66,14 @@ static dd4hep::Ref_t create_detector(Detector& description, xml_h e, SensitiveDe
   if(description.buildType()==dd4hep::BUILD_ENVELOPE) return tracker;
   envelope.setVisAttributes(description.visAttributes("SeeThrough"));
 
-  if (x_det.hasAttr(_U(sensitive))) {
+  if (x_det.hasChild(_U(sensitive))) {
     xml_dim_t sd_typ = x_det.child(_U(sensitive));
     sens.setType(sd_typ.typeStr());
   }
   else {
     sens.setType("tracker");
   }
-  std::cout << " ** building SiTrackerEndcapRing_v01 ..." << std::endl ;
+  std::cout << " ** building SiTrackerSkewRing_v01 ... " << sens.type() << std::endl ;
 
   dd4hep::xml::Component recPar = x_det.child(_Unicode(reconstruction));
   const double strip_width  = recPar.attr< double >(_Unicode(strip_width));
diff --git a/Detector/DetCRD/src/Tracker/SiTrackerStaggeredLadder_v01_geo.cpp b/Detector/DetCRD/src/Tracker/SiTrackerStaggeredLadder_v01_geo.cpp
index 895ca4aabe67c839a07dc3b2a584791fa24057ef..b47bfc936ef3d8d678ebbd0cefd6d33c0b4a6625 100644
--- a/Detector/DetCRD/src/Tracker/SiTrackerStaggeredLadder_v01_geo.cpp
+++ b/Detector/DetCRD/src/Tracker/SiTrackerStaggeredLadder_v01_geo.cpp
@@ -77,14 +77,14 @@ static dd4hep::Ref_t create_element(dd4hep::Detector& theDetector, xml_h e, dd4h
   if(theDetector.buildType()==dd4hep::BUILD_ENVELOPE) return vxd;
   envelope.setVisAttributes(theDetector.visAttributes("SeeThrough"));
 
-  if (x_det.hasAttr(_U(sensitive))) {
+  if (x_det.hasChild(_U(sensitive))) {
     xml_dim_t sd_typ = x_det.child(_U(sensitive));
     sens.setType(sd_typ.typeStr());
   }
   else {
     sens.setType("tracker");
   }
-  std::cout << " ** building SiTrackerSkewBarrel_v01 ..." << std::endl ;
+  std::cout << " ** building SiTrackerSkewBarrel_v01 ... " << sens.type() << std::endl ;
 
   dd4hep::rec::ZPlanarData* zPlanarData = new dd4hep::rec::ZPlanarData;
 
diff --git a/Detector/DetCRD/src/Tracker/TPC_ModularEndcap_o1_v01.cpp b/Detector/DetCRD/src/Tracker/TPC_ModularEndcap_o1_v01.cpp
index be43764ce9a296872420ff18f17cd1811b51d8a9..d6fc42830050f69dbc853e8f6096a504b1638ec0 100644
--- a/Detector/DetCRD/src/Tracker/TPC_ModularEndcap_o1_v01.cpp
+++ b/Detector/DetCRD/src/Tracker/TPC_ModularEndcap_o1_v01.cpp
@@ -72,7 +72,7 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se
 
     PlacedVolume pv;  
 
-    if (x_det.hasAttr(_U(sensitive))) {
+    if (x_det.hasChild(_U(sensitive))) {
       xml_dim_t sd_typ = x_det.child(_U(sensitive));
       sens.setType(sd_typ.typeStr());
     }
diff --git a/Detector/DetCRD/src/Tracker/TPC_Simple_o1_v01.cpp b/Detector/DetCRD/src/Tracker/TPC_Simple_o1_v01.cpp
index ddbcad4b24996ae831874f6ab4708796806ecaf6..4a9b7619aca62aab7caa9a13772b7f881cf14f95 100644
--- a/Detector/DetCRD/src/Tracker/TPC_Simple_o1_v01.cpp
+++ b/Detector/DetCRD/src/Tracker/TPC_Simple_o1_v01.cpp
@@ -71,7 +71,7 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se
 
     PlacedVolume pv;  
 
-    if (x_det.hasAttr(_U(sensitive))) {
+    if (x_det.hasChild(_U(sensitive))) {
       xml_dim_t sd_typ = x_det.child(_U(sensitive));
       sens.setType(sd_typ.typeStr());
     }