diff --git a/Detector/DetCRD/compact/CRD_common_v01/SET_SimplePlanar_v01_01.xml b/Detector/DetCRD/compact/CRD_common_v01/SET_SimplePlanar_v01_01.xml
index 82071ac2591c17718373cb53e88abbb6313702bd..1c9ec38ccd46841dde89ef090ab4ab9dee316751 100644
--- a/Detector/DetCRD/compact/CRD_common_v01/SET_SimplePlanar_v01_01.xml
+++ b/Detector/DetCRD/compact/CRD_common_v01/SET_SimplePlanar_v01_01.xml
@@ -1,34 +1,31 @@
 <lccdd>
   <define>
-    <constant name="SET_inner_radius" value="OuterTracker_outer_radius + env_safety"/>
-    <constant name="SET_outer_radius" value="Ecal_barrel_inner_radius - env_safety "/>
-    <constant name="SET_half_length"  value="DC_half_length"/>
+    <!--0.17mm silicon + 1.0mm carbon -> 0.65% of X0-->
+    <constant name="SET_sensitive_thickness" value="0.17*mm"/>
+    <constant name="SET_support_thickness"   value="1.0*mm"/>
+    <constant name="SET_ladder_number"       value="24"/>
+    <constant name="SET_outer_radius" value="(SET_inner_radius+SET_sensitive_thickness*2+SET_support_thickness*2)/cos(pi/SET_ladder_number) + env_safety"/>
+    <constant name="SET_half_length"  value="OuterTracker_half_length"/>
+    <constant name="SET_distance_from_tpc" value="SET_inner_radius-OuterTracker_outer_radius+0.5*SET_sensitive_thickness"/>
   </define>
 
   <detectors>
     <detector id="DetID_SET" name="SET" type="SET_Simple_Planar" vis="SETVis" readout="SETCollection" insideTrackingVolume="true">
-      <envelope vis="SETVis">
-        <shape type="Tube" rmin="SET_inner_radius" rmax="SET_outer_radius" dz="SET_half_length"  material = "Air" />
+      <envelope>
+	<shape type="Tube" rmin="SET_inner_radius" rmax="SET_outer_radius" dz="SET_half_length"  material = "Air" />
       </envelope>
 
       <type_flags type="DetType_TRACKER +  DetType_BARREL + DetType_STRIP "/>
 
-      <!-- database : set_simple_planar_sensors_01 -->
-
-      <!-- SQL command: "select * from extended_reconstruction_parameters;"  -->
       <reconstruction strip_width="0.0125*mm" strip_length="92*mm" strip_pitch="0.05*mm" strip_angle="7*deg"  />
 
-      <!-- SQL command: "select * from global;"  -->
-      <global sensitive_thickness="0.2*mm" support_thickness="1*mm" sensor_length="92*mm" sensitive_mat="G4_Si"
+      <global sensitive_thickness="SET_sensitive_thickness" support_thickness="SET_support_thickness" sensor_length="92*mm" sensitive_mat="G4_Si"
               support_mat="G4_C" sensitive_threshold_KeV="64*keV"  />
 
-      <!-- SQL command: "select * from set_layers;"  -->
-
-      <layer layer_id="0" sensitive_distance_from_tpc="3*mm" coverage_of_TPC_Ecal_Hcal_barrel="0.98"
-             n_ladders="24" ladder_clearance="0.1*mm" faces_IP="1"  />
-
-      <layer layer_id="1" sensitive_distance_from_tpc="5.5*mm" coverage_of_TPC_Ecal_Hcal_barrel="0.98"
-             n_ladders="24" ladder_clearance="0.1*mm" faces_IP="0"  />
+      <layer layer_id="0" sensitive_distance_from_tpc="SET_distance_from_tpc" coverage_of_TPC_Ecal_Hcal_barrel="1.0"
+             n_ladders="SET_ladder_number" ladder_clearance="0.1*mm" faces_IP="1"  />
+      <layer layer_id="1" sensitive_distance_from_tpc="SET_distance_from_tpc+SET_support_thickness*2+SET_sensitive_thickness" coverage_of_TPC_Ecal_Hcal_barrel="1.0"
+             n_ladders="SET_ladder_number" ladder_clearance="0.1*mm" faces_IP="0"  />
 
     </detector>
 
diff --git a/Detector/DetCRD/compact/CRD_common_v01/SIT_SimplePixel_v01_01.xml b/Detector/DetCRD/compact/CRD_common_v01/SIT_SimplePixel_v01_01.xml
index 02a49d5eaa5a5fd32f68e2d51987d7c64505680f..45c2060d9cf4f9abf51b4a01162d73e45485bae1 100644
--- a/Detector/DetCRD/compact/CRD_common_v01/SIT_SimplePixel_v01_01.xml
+++ b/Detector/DetCRD/compact/CRD_common_v01/SIT_SimplePixel_v01_01.xml
@@ -1,42 +1,46 @@
 <lccdd>
   <define>
-    <constant name="SIT_sensitive_thickness" value="0.2*mm"/>
-    <constant name="SIT_inner_radius"   value="SIT1_inner_radius"/>
+    <!--0.17mm silicon + 1.0mm carbon -> 0.65% of X0-->
+    <constant name="SIT_sensitive_thickness" value="0.17*mm"/>
+    <constant name="SIT_support_thickness"   value="1*mm"/>
+    <constant name="SIT_sensor_length"       value="92*mm"/>
+    <!--constant name="SIT_inner_radius"   value="SIT1_inner_radius"/>
     <constant name="SIT_inner_radius_1"   value="SIT_inner_radius + env_safety"/>
     <constant name="SIT_outer_radius_1" value="SIT_inner_radius_1/cos(pi/8)"/>
     <constant name="SIT_inner_radius_2" value="SIT2_inner_radius"/>
     <constant name="SIT_outer_radius"   value="OuterTracker_inner_radius"/>
     <constant name="SIT_half_length"    value="SIT2_half_length"/>
     <constant name="SIT_half_length_1"  value="SIT1_half_length"/>
-    <constant name="SIT_layer_gap" value="2.5*mm"/>
+    <constant name="SIT_layer_gap" value="2.5*mm"/-->
   </define>
 
   <detectors>
-    <detector id="DetID_SIT" name="SIT" type="SIT_Simple_Planar" vis="SITVis" readout="SITCollection" insideTrackingVolume="true">
-      <envelope vis="SeeThrough">
-        <shape type="BooleanShape" operation="Union" material="Air" >
+    <detector id="DetID_SIT" name="SIT" type="SIT_Simple_Pixel" vis="SITVis" readout="SITCollection" insideTrackingVolume="true">
+      <envelope>
+	<shape type="Assembly"/>
+        <!--shape type="BooleanShape" operation="Union" material="Air" >
           <shape type="Tube" rmin="SIT_inner_radius"   rmax="SIT_outer_radius_1" dz="SIT_half_length_1" />
           <shape type="Tube" rmin="SIT_inner_radius_2" rmax="SIT_outer_radius"   dz="SIT_half_length" />
-        </shape>
+        </shape-->
       </envelope>
 
-      <type_flags type="DetType_TRACKER + DetType_BARREL + DetType_STRIP "/>
+      <type_flags type="DetType_TRACKER + DetType_BARREL + DetType_PIXEL "/>
 
-      <!-- database : sit_simple_planar_sensors_03 -->
-      
-      <!-- SQL command: "select * from extended_reconstruction_parameters;"  -->
       <reconstruction strip_width="0." strip_length="92*mm" strip_pitch="0." strip_angle="0*deg"  />
 
-      <!-- SQL command: "select * from global;"  -->
-      <global sensitive_thickness="SIT_sensitive_thickness" support_thickness="1*mm" sensor_length="92*mm"
+      <global sensitive_thickness="SIT_sensitive_thickness" support_thickness="SIT_support_thickness" sensor_length="SIT_sensor_length"
               sensitive_mat="G4_Si" support_mat="G4_C" sensitive_threshold_KeV="64*keV"  />
+      <display ladder="SeeThrough" support="SITSupportVis" sens_env="SeeThrough" sens="SITSensitiveVis" />
 
-      <!-- SQL command: "select * from sit_layers;"  -->
-      <layer layer_id="0" sensitive_radius="SIT_inner_radius_1+0.5*SIT_sensitive_thickness" n_sensors_per_ladder="8" n_ladders="10"
-             ladder_clearance="0.1*mm" faces_IP="1" is_SIT1="1" is_SIT2="0"  />
+      <layer layer_id="0" sensitive_radius="SIT1_inner_radius+0.5*SIT_sensitive_thickness" n_sensors_per_ladder="SIT1_half_length*2/SIT_sensor_length"
+	     n_ladders="2*pi*SIT1_inner_radius/SIT_sensor_length" ladder_clearance="0.1*mm" faces_IP="1" is_SIT1="1" is_SIT2="0"  />
+      <layer layer_id="1" sensitive_radius="SIT2_inner_radius+0.5*SIT_sensitive_thickness" n_sensors_per_ladder="SIT2_half_length*2/SIT_sensor_length"
+             n_ladders="2*pi*SIT2_inner_radius/SIT_sensor_length" ladder_clearance="0.1*mm" faces_IP="1" is_SIT1="0" is_SIT2="1"  />
+      <layer layer_id="2" sensitive_radius="SIT3_inner_radius+0.5*SIT_sensitive_thickness" n_sensors_per_ladder="SIT3_half_length*2/SIT_sensor_length"
+             n_ladders="2*pi*SIT3_inner_radius/SIT_sensor_length" ladder_clearance="0.1*mm" faces_IP="1" is_SIT1="0" is_SIT2="0"  />
+      <layer layer_id="3" sensitive_radius="SIT4_inner_radius+0.5*SIT_sensitive_thickness" n_sensors_per_ladder="SIT4_half_length*2/SIT_sensor_length"
+             n_ladders="2*pi*SIT4_inner_radius/SIT_sensor_length" ladder_clearance="0.1*mm" faces_IP="1" is_SIT1="0" is_SIT2="0"  />
 
-      <layer layer_id="1" sensitive_radius="SIT_inner_radius_2+0.5*SIT_sensitive_thickness" n_sensors_per_ladder="48" n_ladders="16"
-             ladder_clearance="0.1*mm" faces_IP="1" is_SIT1="0" is_SIT2="1"  />
     </detector>
   </detectors>
 
diff --git a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp
index 06822bb910b8138d387f1a85e24aebf690941e8b..88d71d3c05c70a4e57d64454cc8f2ed7847d44e3 100644
--- a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp
+++ b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp
@@ -3,6 +3,7 @@
 #include "EventSeeder/IEventSeeder.h"
 #include "TrackSystemSvc/ITrackSystemSvc.h"
 #include "DataHelper/Navigation.h"
+#include "DataHelper/TrackerHitHelper.h"
 #include "edm4hep/MCParticle.h"
 #include "edm4hep/TrackerHit.h"
 //#include "edm4hep/TrackerHitPlane.h"
@@ -420,7 +421,7 @@ int SiliconTrackingAlg::InitialiseFTD() {
   }
   catch ( GaudiException &e ) {
     debug() << "Collection " << _inFTDPixelColHdl.fullKey() << " is unavailable in event " << _nEvt << endmsg;
-    success = 0;
+    //success = 0;
   }
   
   if(hitFTDPixelCol){
@@ -520,7 +521,7 @@ int SiliconTrackingAlg::InitialiseFTD() {
   }
   catch ( GaudiException &e ) {
     debug() << "Collection " << _inFTDSpacePointColHdl.fullKey() << " is unavailable in event " << _nEvt << endmsg;
-    success = 0;
+    //success = 0;
   }
 
   const edm4hep::TrackerHitCollection* rawHitCol = nullptr;
@@ -626,6 +627,8 @@ int SiliconTrackingAlg::InitialiseFTD() {
     }
     
   }
+  if(hitFTDPixelCol==nullptr&&hitFTDSpacePointCol==nullptr) success = 0;
+
   debug() << "FTD initialized" << endmsg;
   return success;
 }
@@ -771,7 +774,6 @@ int SiliconTrackingAlg::InitialiseVTX() {
         //    v)   Must be standard TrackerHit
         
 	//const edm4hep::ConstTrackerHit trkhit = hitSITCol->at(ielem);
-        
         int layer = getLayerID(trkhit);
         
         // VXD and SIT are treated as one system so SIT layers start from _nLayersVTX
@@ -2671,7 +2673,7 @@ void SiliconTrackingAlg::FinalRefit(edm4hep::TrackCollection* trk_col) {
         // check if the hit has been rejected as being on the same layer and further from the helix lh==0
         if (lh[i] == 1) {
 	  edm4hep::ConstTrackerHit trkHit = hitVec[i]->getTrackerHit();
-	  debug() << "TrackerHit " << i << " address = " << trkHit << endmsg;
+	  debug() << "TrackerHit " << i << " id = " << trkHit.id() << endmsg;
           nFit++;
           if(trkHit.isAvailable()) { 
             trkHits.push_back(trkHit);   
@@ -2791,7 +2793,7 @@ void SiliconTrackingAlg::FinalRefit(edm4hep::TrackCollection* trk_col) {
       marlinTrk->getHitsInFit(hits_in_fit);
       
       for ( unsigned ihit = 0; ihit < hits_in_fit.size(); ++ihit) {
-	debug() << "Hit address=" << hits_in_fit[ihit].first << endmsg;
+	debug() << "Hit id =" << hits_in_fit[ihit].first.id() << endmsg;
 	edm4hep::ConstTrackerHit trk = hits_in_fit[ihit].first;
         all_hits.push_back(trk);//hits_in_fit[ihit].first);
       }