diff --git a/Detector/DetCRD/compact/CRD_common_v02/FTD_SkewRing_v01_04.xml b/Detector/DetCRD/compact/CRD_common_v02/FTD_SkewRing_v01_04.xml
index 44c3378af654b7946be479c5eb7a792c6d6491f9..e99dd88c3d974b0e3a326fd34ea6e5a1af91f936 100644
--- a/Detector/DetCRD/compact/CRD_common_v02/FTD_SkewRing_v01_04.xml
+++ b/Detector/DetCRD/compact/CRD_common_v02/FTD_SkewRing_v01_04.xml
@@ -1,7 +1,7 @@
 <lccdd>
   <define>
-    <constant name="SiliconThickness" value="1.0*mm"/>
-    <constant name="SupportThickness" value="2.0*mm"/>
+    <constant name="SiliconThickness" value="0.2*mm"/>
+    <constant name="SupportThickness" value="1.4925*mm"/> <!--equivalent from 2mm carbon fiber to carbon/-->
     <constant name="ModuleZGap"       value="2.0*mm"/>
     <constant name="ModuleRPhiGap"    value="-10*mm"/>
     <constant name="FTDPetalNumber"   value="16"/>
@@ -19,38 +19,38 @@
 
       <layer id="0" z="SiTracker_endcap_z1" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z1*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius1"
 	     phi0="0" gap="ModuleRPhiGap" is_pixel="true" nmodules="FTDPetalNumber" vis="SeeThrough">
-	<component material="G4_Si"       thickness="SiliconThickness" vis="FTDSensitiveVis" sensitive="yes"/>
-	<component material="CarbonFiber" thickness="SupportThickness" vis="FTDSupportVis"/>
+	<component material="G4_Si"       thickness="SiliconThickness/2" vis="FTDSensitiveVis" sensitive="yes"/>
+	<component material="Carbon" thickness="SupportThickness" vis="FTDSupportVis"/>
       </layer>
       <layer id="1" z="SiTracker_endcap_z2" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z2*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius2"
 	     phi0="0" gap="ModuleRPhiGap" is_pixel="true" nmodules="FTDPetalNumber" vis="SeeThrough">
-        <component material="G4_Si"       thickness="SiliconThickness" vis="FTDSensitiveVis" sensitive="yes"/>
-        <component material="CarbonFiber" thickness="SupportThickness" vis="FTDSupportVis"/>
+        <component material="G4_Si"       thickness="SiliconThickness/2" vis="FTDSensitiveVis" sensitive="yes"/>
+        <component material="Carbon" thickness="SupportThickness" vis="FTDSupportVis"/>
       </layer>
       <layer id="2" z="SiTracker_endcap_z3" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z3*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius3"
              phi0="0" gap="ModuleRPhiGap" is_pixel="true" nmodules="FTDPetalNumber" vis="SeeThrough">
         <component material="G4_Si"       thickness="SiliconThickness" vis="FTDSensitiveVis" sensitive="yes"/>
-        <component material="CarbonFiber" thickness="SupportThickness" vis="FTDSupportVis"/>
+        <component material="Carbon" thickness="SupportThickness" vis="FTDSupportVis"/>
       </layer>
       <layer id="3" z="SiTracker_endcap_z4" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z4*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius4"
              phi0="0" gap="ModuleRPhiGap" is_pixel="true" nmodules="FTDPetalNumber" vis="SeeThrough">
         <component material="G4_Si"       thickness="SiliconThickness" vis="FTDSensitiveVis" sensitive="yes"/>
-        <component material="CarbonFiber" thickness="SupportThickness" vis="FTDSupportVis"/>
+        <component material="Carbon" thickness="SupportThickness" vis="FTDSupportVis"/>
       </layer>
-      <layer id="4" z="SiTracker_endcap_z5" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z4*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius5"
+      <layer id="4" z="SiTracker_endcap_z5" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z5*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius5"
 	     phi0="0" gap="ModuleRPhiGap" is_pixel="true" nmodules="FTDPetalNumber" vis="SeeThrough">
         <component material="G4_Si"       thickness="SiliconThickness" vis="FTDSensitiveVis" sensitive="yes"/>
-        <component material="CarbonFiber" thickness="SupportThickness" vis="FTDSupportVis"/>
+        <component material="Carbon" thickness="SupportThickness" vis="FTDSupportVis"/>
       </layer>
-      <layer id="5" z="SiTracker_endcap_z6" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z4*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius6"
+      <layer id="5" z="SiTracker_endcap_z6" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z6*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius6"
              phi0="0" gap="ModuleRPhiGap" is_pixel="true" nmodules="FTDPetalNumber" vis="SeeThrough">
         <component material="G4_Si"       thickness="SiliconThickness" vis="FTDSensitiveVis" sensitive="yes"/>
-        <component material="CarbonFiber" thickness="SupportThickness" vis="FTDSupportVis"/>
+        <component material="Carbon" thickness="SupportThickness" vis="FTDSupportVis"/>
       </layer>
       <layer id="6" z="SiTracker_endcap_z7" dz="0.5*ModuleZGap" inner_r="Ecal_endcap_inner_radius" outer_r="SiTracker_endcap_outer_radius7"
 	     phi0="0" gap="ModuleRPhiGap" is_pixel="true" nmodules="FTDPetalNumber" vis="SeeThrough">
         <component material="G4_Si"       thickness="SiliconThickness" vis="FTDSensitiveVis" sensitive="yes"/>
-        <component material="CarbonFiber" thickness="SupportThickness" vis="FTDSupportVis"/>
+        <component material="Carbon" thickness="SupportThickness" vis="FTDSupportVis"/>
       </layer>
 
     </detector>
diff --git a/Detector/DetCRD/compact/CRD_common_v02/materials.xml b/Detector/DetCRD/compact/CRD_common_v02/materials.xml
index b7205315712174e04014ed02459f627dd8bc9f28..57b8871e99b3a02105e6c256514b1e2095b2473b 100644
--- a/Detector/DetCRD/compact/CRD_common_v02/materials.xml
+++ b/Detector/DetCRD/compact/CRD_common_v02/materials.xml
@@ -409,6 +409,10 @@
       <fraction n="0.0433592706" ref="Si"/>
       <fraction n="0.00232484085105981" ref="H"/>
     </material>
+    <material name="Carbon" state="solid">
+      <D unit="g/cm3" value="2.0"/>
+      <fraction n="1.0" ref="C"/>
+    </material>
     <material name="CarbonFiber" state="solid">
       <MEE unit="eV" value="70.7270877537631"/>
       <D unit="g/cm3" value="1.46666666666667"/>
@@ -570,6 +574,31 @@
       <fraction n="0.671054" ref="Bi" />
     </material>
 
+    <material name="G4_GlassHCAL" state="solid">
+      <!-- <MEE unit="eV" value="534.1"/> -->
+      <D value="6." unit="g/cm3" />
+      <fraction n="0.0270234" ref="B"/>
+      <fraction n="0.00700559" ref="Ce" />
+      <fraction n="0.0883374" ref="F" />
+      <fraction n="0.69186" ref="Gd" />
+      <fraction n="0.0181464" ref="Ge" />
+      <fraction n="0.153585" ref="O" />
+      <fraction n="0.0140419" ref="Si" />
+    </material>
+
+    <material name="G4_ESR" state="solid">
+      <D value="0.90" unit="g/cm3" />
+      <composite n="2" ref="C"/>
+      <composite n="4" ref="H" />
+    </material>
+
+    <material name="G4_ECAL_electronics" state="solid">
+      <D value="3.5537349300000005" unit="g/cm3" />
+      <fraction n="0.1595" ref="PCB"/>
+      <fraction n="0.0001" ref="G4_AIR"/>
+      <fraction n="0.8404" ref="G4_Cu"/>
+    </material>
+
     <!-- Driftchamber: material for the drift chamber -->
    <material name="GasHe_90Isob_10">
      <D value="0.0003983999999999999" unit="g/cm3" />
diff --git a/Detector/DetCRD/compact/README.md b/Detector/DetCRD/compact/README.md
index 7a7cac749e8acfbc764d08cef3ef13fedbd1726e..8cd6fd645daccb41d79c43b376aa8905e0b6c08b 100644
--- a/Detector/DetCRD/compact/README.md
+++ b/Detector/DetCRD/compact/README.md
@@ -10,6 +10,10 @@ The following CRD detector models are available in CEPCSW
 | CRD_o1_v04    | smaller center beam pipe     | SIT+DC+SET  | crystal | RPC  | developing     |
 | CRD_o1_v05    | Use Ref-Det ECAL and HCAL    | SIT+TPC+SET | crystal | Glass| developing     |
 | ------------- | -----------------------------|-------------|---------|------|----------------|
+| TDR_o1_v01    | long barrel vertex,  TPC     | SIT+TPC+SET | crystal | Glass| developing     |
+| TDR_o1_v02    | short barrel vertex, TPC     | SIT+TPC+SET | crystal | Glass| developing     |
+| TDR_o2_v01    | long barrel vertex,  DC      | SIT+DC +SET | crystal | Glass| developing     |
+| TDR_o2_v02    | short barrel vertex, DC      | SIT+DC +SET | crystal | Glass| developing     |
  
 ## Details
 
@@ -72,5 +76,10 @@ The following CRD detector models are available in CEPCSW
   - compact files: 
         - [./CRD_o1_v05/CRD_o1_v05.xml]
 
+### TDR_o1_v01 (TODO)
 
+### TDR_o1_v02 (TODO)
 
+### TDR_o2_v01 (TODO)
+
+### TDR_o2_v02 (TODO)
diff --git a/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml b/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml
index 1915d12429c85b59175bf8dcad41d1c2bcdd8167..b78b74341aee898779fd8ff66f462cc854976486 100644
--- a/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml
+++ b/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml
@@ -35,7 +35,11 @@
   <include ref="../CRD_common_v01/SIT_SimplePixel_v01_02.xml"/>
   <include ref="../CRD_common_v01/TPC_Simple_v10_02.xml"/>
   <include ref="../CRD_common_v01/SET_SimplePixel_v01_01.xml"/>
-  <!--TODO: Ecal and Hcal/-->
+  <!--TODO: Ecal and Hcal, Hcal outer raduis should be modified with 48 layers/-->
+  <include ref="../CRD_common_v01/Ecal_Crystal_Barrel_v01_02.xml"/>
+  <include ref="../CRD_common_v02/EcalEndcaps_Polyhedra_v01_01.xml"/>
+  <!--include ref="../CRD_common_v01/SHcalGlass_Barrel_v04_01.xml"/-->
+  <!--include ref="../CRD_common_v02/HcalEndcaps_Polyhedra_v01_01.xml"/-->
 
   <!--preliminary Magnet, to update/-->
   <include ref="../CRD_common_v02/Coil_Simple_v01_02.xml"/>
diff --git a/Detector/DetCRD/scripts/TDR_o1_v01/sim.py b/Detector/DetCRD/scripts/TDR_o1_v01/sim.py
new file mode 100644
index 0000000000000000000000000000000000000000..d46de9314e25051d76c7539ef2133b6777dc048d
--- /dev/null
+++ b/Detector/DetCRD/scripts/TDR_o1_v01/sim.py
@@ -0,0 +1,103 @@
+#!/usr/bin/env python
+import os
+from Gaudi.Configuration import *
+
+from Configurables import k4DataSvc
+dsvc = k4DataSvc("EventDataSvc")
+
+from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_
+seed = [12340]
+# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi
+rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4
+rndmengine.SetSingleton = True
+rndmengine.Seeds = seed
+
+rndmgensvc = RndmGenSvc("RndmGenSvc")
+rndmgensvc.Engine = rndmengine.name()
+
+# option for standalone tracker study
+geometry_option = "TDR_o1_v01/TDR_o1_v01.xml"
+
+if not os.getenv("DETCRDROOT"):
+    print("Can't find the geometry. Please setup envvar DETCRDROOT." )
+    sys.exit(-1)
+
+geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option)
+if not os.path.exists(geometry_path):
+    print("Can't find the compact geometry file: %s"%geometry_path)
+    sys.exit(-1)
+
+from Configurables import GeomSvc
+geosvc = GeomSvc("GeomSvc")
+geosvc.compact = geometry_path
+
+##############################################################################
+# Physics Generator
+##############################################################################
+from Configurables import GenAlgo
+from Configurables import GtGunTool
+from Configurables import StdHepRdr
+from Configurables import SLCIORdr
+from Configurables import HepMCRdr
+from Configurables import GenPrinter
+
+gun = GtGunTool("GtGunTool")
+gun.PositionXs = [0]
+gun.PositionYs = [0]
+gun.PositionZs = [0]
+gun.Particles = ["mu-"]
+gun.EnergyMins = [1]
+gun.EnergyMaxs = [100]
+gun.ThetaMins  = [8]
+gun.ThetaMaxs  = [172]
+gun.PhiMins    = [0]
+gun.PhiMaxs    = [360]
+
+genprinter = GenPrinter("GenPrinter")
+
+genalg = GenAlgo("GenAlgo")
+genalg.GenTools = ["GtGunTool"]
+
+##############################################################################
+# Detector Simulation
+##############################################################################
+from Configurables import DetSimSvc
+detsimsvc = DetSimSvc("DetSimSvc")
+
+from Configurables import DetSimAlg
+detsimalg = DetSimAlg("DetSimAlg")
+detsimalg.RandomSeeds = seed
+# detsimalg.VisMacs = ["vis.mac"]
+detsimalg.RunCmds = [
+#    "/tracking/verbose 1",
+]
+detsimalg.AnaElems = [
+    # example_anatool.name()
+    # "ExampleAnaElemTool"
+    "Edm4hepWriterAnaElemTool"
+]
+detsimalg.RootDetElem = "WorldDetElemTool"
+
+from Configurables import TimeProjectionChamberSensDetTool
+tpc_sensdettool = TimeProjectionChamberSensDetTool("TimeProjectionChamberSensDetTool")
+tpc_sensdettool.TypeOption = 1
+
+from Configurables import MarlinEvtSeeder
+evtseeder = MarlinEvtSeeder("EventSeeder")
+    
+# output
+from Configurables import PodioOutput
+out = PodioOutput("outputalg")
+out.filename = "sim00.root"
+out.outputCommands = ["keep *"]
+
+# ApplicationMgr
+from Configurables import ApplicationMgr
+mgr = ApplicationMgr(
+    TopAlg = [genalg, detsimalg, out],
+    EvtSel = 'NONE',
+    EvtMax = 10,
+    ExtSvc = [rndmengine, rndmgensvc, dsvc, geosvc],
+    HistogramPersistency = 'ROOT',
+    OutputLevel = ERROR
+)
diff --git a/Detector/DetCRD/scripts/TDR_o1_v01/tracking.py b/Detector/DetCRD/scripts/TDR_o1_v01/tracking.py
new file mode 100644
index 0000000000000000000000000000000000000000..6c7a4e89577607fcdbd1771be3fe4fd12ebd80e1
--- /dev/null
+++ b/Detector/DetCRD/scripts/TDR_o1_v01/tracking.py
@@ -0,0 +1,231 @@
+#!/usr/bin/env python
+import os
+from Gaudi.Configuration import *
+
+from Configurables import k4DataSvc
+dsvc = k4DataSvc("EventDataSvc", input="sim00.root")
+
+from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_
+seed = [12340]
+# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi                                                                                                                                            
+rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4                                                                                                                        
+rndmengine.SetSingleton = True
+rndmengine.Seeds = seed
+
+rndmgensvc = RndmGenSvc("RndmGenSvc")
+rndmgensvc.Engine = rndmengine.name()
+
+geometry_option = "TDR_o1_v01/TDR_o1_v01.xml"
+
+if not os.getenv("DETCRDROOT"):
+    print("Can't find the geometry. Please setup envvar DETCRDROOT." )
+    sys.exit(-1)
+
+geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option)
+if not os.path.exists(geometry_path):
+    print("Can't find the compact geometry file: %s"%geometry_path)
+    sys.exit(-1)
+
+from Configurables import GeomSvc
+geosvc = GeomSvc("GeomSvc")
+geosvc.compact = geometry_path
+
+from Configurables import MarlinEvtSeeder
+evtseeder = MarlinEvtSeeder("EventSeeder")
+
+from Configurables import GearSvc
+gearsvc = GearSvc("GearSvc")
+
+from Configurables import TrackSystemSvc
+tracksystemsvc = TrackSystemSvc("TrackSystemSvc")
+
+from Configurables import PodioInput
+podioinput = PodioInput("PodioReader", collections=[
+#    "EventHeader",
+    "MCParticle",
+    "VXDCollection",
+    "SITCollection",
+    "TPCCollection",
+    "SETCollection",
+    "FTDCollection"
+    ])
+
+# digitization
+vxdhitname  = "VXDTrackerHits"
+sithitname  = "SITTrackerHits"
+gashitname  = "TPCTrackerHits"
+sethitname  = "SETTrackerHits"
+setspname   = "SETSpacePoints"
+ftdhitname  = "FTDTrackerHits"
+ftdspname   = "FTDSpacePoints"
+from Configurables import PlanarDigiAlg
+digiVXD = PlanarDigiAlg("VXDDigi")
+digiVXD.SimTrackHitCollection = "VXDCollection"
+digiVXD.TrackerHitCollection = vxdhitname
+digiVXD.TrackerHitAssociationCollection = "VXDTrackerHitAssociation"
+digiVXD.ResolutionU = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004]
+digiVXD.ResolutionV = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004]
+digiVXD.UsePlanarTag = True
+digiVXD.ParameterizeResolution = False
+digiVXD.ParametersU = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359]
+digiVXD.ParametersV = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359]
+#digiVXD.OutputLevel = DEBUG
+
+digiSIT = PlanarDigiAlg("SITDigi")
+digiSIT.IsStrip = False
+digiSIT.SimTrackHitCollection = "SITCollection"
+digiSIT.TrackerHitCollection = sithitname
+digiSIT.TrackerHitAssociationCollection = "SITTrackerHitAssociation"
+digiSIT.ResolutionU = [0.0072]
+digiSIT.ResolutionV = [0.086]
+digiSIT.UsePlanarTag = True
+digiSIT.ParameterizeResolution = False
+digiSIT.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452]
+digiSIT.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01]
+#digiSIT.OutputLevel = DEBUG
+
+digiSET = PlanarDigiAlg("SETDigi")
+digiSET.IsStrip = False
+digiSET.SimTrackHitCollection = "SETCollection"
+digiSET.TrackerHitCollection = sethitname
+digiSET.TrackerHitAssociationCollection = "SETTrackerHitAssociation"
+digiSET.ResolutionU = [0.0072]
+digiSET.ResolutionV = [0.086]
+digiSET.UsePlanarTag = True
+digiSET.ParameterizeResolution = False
+digiSET.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452]
+digiSET.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01]
+#digiSET.OutputLevel = DEBUG
+
+digiFTD = PlanarDigiAlg("FTDDigi")
+digiFTD.IsStrip = False
+digiFTD.SimTrackHitCollection = "FTDCollection"
+digiFTD.TrackerHitCollection = ftdhitname
+digiFTD.TrackerHitAssociationCollection = "FTDTrackerHitAssociation"
+digiFTD.ResolutionU = [0.0072]
+digiFTD.ResolutionV = [0.086]
+digiFTD.UsePlanarTag = True
+digiFTD.ParameterizeResolution = False
+digiFTD.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452]
+digiFTD.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01]
+#digiFTD.OutputLevel = DEBUG
+
+from Configurables import TPCDigiAlg
+digiTPC = TPCDigiAlg("TPCDigi")
+digiTPC.TPCCollection = "TPCCollection"
+digiTPC.TPCLowPtCollection = "TPCLowPtCollection"
+digiTPC.TPCTrackerHitsCol = gashitname
+#digiTPC.OutputLevel = DEBUG
+
+# tracking
+from Configurables import KalTestTool
+# Close multiple scattering and smooth, used by clupatra
+kt010 = KalTestTool("KalTest010")
+kt010.MSOn = False
+kt010.Smooth = False
+#kt010.OutputLevel = DEBUG
+
+# Open multiple scattering, energy loss and smooth (default)
+kt111 = KalTestTool("KalTest111")
+#kt111.OutputLevel = DEBUG
+
+# Close smooth
+kt110 = KalTestTool("KalTest110")
+kt110.Smooth = False
+#kt110.OutputLevel = DEBUG
+
+from Configurables import SiliconTrackingAlg
+tracking = SiliconTrackingAlg("SiliconTracking")
+tracking.LayerCombinationsFTD = []
+tracking.HeaderCol = "EventHeader"
+tracking.VTXHitCollection = vxdhitname
+tracking.SITHitCollection = sithitname
+tracking.FTDPixelHitCollection = ftdhitname
+tracking.FTDSpacePointCollection = ftdspname
+tracking.SITRawHitCollection = "NotNeedForPixelSIT"
+tracking.FTDRawHitCollection = ftdhitname
+tracking.UseSIT = True
+tracking.SmoothOn = False
+tracking.NDivisionsInTheta = 10
+tracking.NDivisionsInPhi = 60
+tracking.NDivisionsInPhiFTD = 16
+tracking.MinDistCutAttach = 50
+tracking.Chi2FitCut = 200
+tracking.MaxChi2PerHit = 200
+tracking.Chi2WZTriplet = 0.1
+tracking.Chi2WZQuartet = 0.1
+tracking.Chi2WZSeptet  = 0.1
+#tracking.FitterTool = "KalTestTool/KalTest111"
+#tracking.OutputLevel = DEBUG
+
+from Configurables import ForwardTrackingAlg
+forward = ForwardTrackingAlg("ForwardTracking")
+forward.FTDPixelHitCollection = ftdhitname
+forward.FTDSpacePointCollection = ftdspname
+forward.FTDRawHitCollection = ftdhitname
+forward.Chi2ProbCut = 0.0
+forward.HitsPerTrackMin = 3
+forward.BestSubsetFinder = "SubsetSimple"
+forward.Criteria = ["Crit2_DeltaPhi","Crit2_StraightTrackRatio","Crit3_3DAngle","Crit3_ChangeRZRatio","Crit3_IPCircleDist","Crit4_3DAngleChange","Crit4_DistToExtrapolation",
+                    "Crit2_DeltaRho","Crit2_RZRatio","Crit3_PT"]
+forward.CriteriaMin = [0,  0.9,  0,  0.995, 0,  0.8, 0,   20,  1.002, 0.1,      0,   0.99, 0,    0.999, 0,   0.99, 0]
+forward.CriteriaMax = [30, 1.02, 10, 1.015, 20, 1.3, 1.0, 150, 1.08,  99999999, 0.8, 1.01, 0.35, 1.001, 1.5, 1.01, 0.05]
+#forward.FitterTool = "KalTestTool/KalTest110"
+#forward.OutputLevel = DEBUG
+
+from Configurables import TrackSubsetAlg
+subset = TrackSubsetAlg("TrackSubset")
+subset.TrackInputCollections = ["ForwardTracks", "SiTracks"]
+subset.RawTrackerHitCollections = [vxdhitname, sithitname, ftdhitname, ftdspname]
+subset.TrackSubsetCollection = "SubsetTracks"
+#subset.FitterTool = "KalTestTool/KalTest111"
+#subset.OutputLevel = DEBUG
+
+from Configurables import ClupatraAlg
+clupatra = ClupatraAlg("Clupatra")
+clupatra.TPCHitCollection = gashitname
+#clupatra.OutputLevel = DEBUG
+
+from Configurables import FullLDCTrackingAlg
+full = FullLDCTrackingAlg("FullTracking")
+full.VTXTrackerHits = vxdhitname
+full.SITTrackerHits = sithitname
+full.TPCTrackerHits = gashitname
+full.SETTrackerHits = sethitname
+full.FTDPixelTrackerHits = ftdhitname
+full.FTDSpacePoints = ftdspname
+full.SITRawHits     = "NotNeedForPixelSIT"
+full.SETRawHits     = "NotNeedForPixelSET"
+full.FTDRawHits     = ftdhitname
+full.TPCTracks = "ClupatraTracks" # add standalone TPC track
+full.SiTracks  = "SubsetTracks"
+full.OutputTracks  = "CompleteTracks" # default name
+full.VTXHitToTrackDistance = 5.
+full.FTDHitToTrackDistance = 5.
+full.SITHitToTrackDistance = 3.
+full.SETHitToTrackDistance = 5.
+full.MinChi2ProbForSiliconTracks = 0
+#full.OutputLevel = DEBUG
+
+from Configurables import TrackParticleRelationAlg
+tpr = TrackParticleRelationAlg("Track2Particle")
+tpr.MCParticleCollection = "MCParticle"
+tpr.TrackList = ["CompleteTracks"]
+#tpr.OutputLevel = DEBUG
+
+# output
+from Configurables import PodioOutput
+out = PodioOutput("outputalg")
+out.filename = "rec00.root"
+out.outputCommands = ["keep *"]
+
+# ApplicationMgr
+from Configurables import ApplicationMgr
+mgr = ApplicationMgr(
+    TopAlg = [podioinput, digiVXD, digiSIT, digiSET, digiFTD, digiTPC, tracking, forward, subset, clupatra, full, tpr, out],
+    EvtSel = 'NONE',
+    EvtMax = 5,
+    ExtSvc = [rndmengine, rndmgensvc, dsvc, evtseeder, geosvc, gearsvc, tracksystemsvc],
+    HistogramPersistency = 'ROOT',
+    OutputLevel = ERROR
+)
diff --git a/Detector/DetCRD/scripts/TDR_o1_v02/sim.py b/Detector/DetCRD/scripts/TDR_o1_v02/sim.py
new file mode 100644
index 0000000000000000000000000000000000000000..61f893006dc6861c0bef8ff151981f0e371076e7
--- /dev/null
+++ b/Detector/DetCRD/scripts/TDR_o1_v02/sim.py
@@ -0,0 +1,103 @@
+#!/usr/bin/env python
+import os
+from Gaudi.Configuration import *
+
+from Configurables import k4DataSvc
+dsvc = k4DataSvc("EventDataSvc")
+
+from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_
+seed = [12340]
+# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi
+rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4
+rndmengine.SetSingleton = True
+rndmengine.Seeds = seed
+
+rndmgensvc = RndmGenSvc("RndmGenSvc")
+rndmgensvc.Engine = rndmengine.name()
+
+# option for standalone tracker study
+geometry_option = "TDR_o1_v02/TDR_o1_v02.xml"
+
+if not os.getenv("DETCRDROOT"):
+    print("Can't find the geometry. Please setup envvar DETCRDROOT." )
+    sys.exit(-1)
+
+geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option)
+if not os.path.exists(geometry_path):
+    print("Can't find the compact geometry file: %s"%geometry_path)
+    sys.exit(-1)
+
+from Configurables import GeomSvc
+geosvc = GeomSvc("GeomSvc")
+geosvc.compact = geometry_path
+
+##############################################################################
+# Physics Generator
+##############################################################################
+from Configurables import GenAlgo
+from Configurables import GtGunTool
+from Configurables import StdHepRdr
+from Configurables import SLCIORdr
+from Configurables import HepMCRdr
+from Configurables import GenPrinter
+
+gun = GtGunTool("GtGunTool")
+gun.PositionXs = [0]
+gun.PositionYs = [0]
+gun.PositionZs = [0]
+gun.Particles = ["mu-"]
+gun.EnergyMins = [1]
+gun.EnergyMaxs = [100]
+gun.ThetaMins  = [8]
+gun.ThetaMaxs  = [172]
+gun.PhiMins    = [0]
+gun.PhiMaxs    = [360]
+
+genprinter = GenPrinter("GenPrinter")
+
+genalg = GenAlgo("GenAlgo")
+genalg.GenTools = ["GtGunTool"]
+
+##############################################################################
+# Detector Simulation
+##############################################################################
+from Configurables import DetSimSvc
+detsimsvc = DetSimSvc("DetSimSvc")
+
+from Configurables import DetSimAlg
+detsimalg = DetSimAlg("DetSimAlg")
+detsimalg.RandomSeeds = seed
+# detsimalg.VisMacs = ["vis.mac"]
+detsimalg.RunCmds = [
+#    "/tracking/verbose 1",
+]
+detsimalg.AnaElems = [
+    # example_anatool.name()
+    # "ExampleAnaElemTool"
+    "Edm4hepWriterAnaElemTool"
+]
+detsimalg.RootDetElem = "WorldDetElemTool"
+
+from Configurables import TimeProjectionChamberSensDetTool
+tpc_sensdettool = TimeProjectionChamberSensDetTool("TimeProjectionChamberSensDetTool")
+tpc_sensdettool.TypeOption = 1
+
+from Configurables import MarlinEvtSeeder
+evtseeder = MarlinEvtSeeder("EventSeeder")
+    
+# output
+from Configurables import PodioOutput
+out = PodioOutput("outputalg")
+out.filename = "sim00.root"
+out.outputCommands = ["keep *"]
+
+# ApplicationMgr
+from Configurables import ApplicationMgr
+mgr = ApplicationMgr(
+    TopAlg = [genalg, detsimalg, out],
+    EvtSel = 'NONE',
+    EvtMax = 10,
+    ExtSvc = [rndmengine, rndmgensvc, dsvc, geosvc],
+    HistogramPersistency = 'ROOT',
+    OutputLevel = ERROR
+)
diff --git a/Detector/DetCRD/scripts/TDR_o1_v02/tracking.py b/Detector/DetCRD/scripts/TDR_o1_v02/tracking.py
new file mode 100644
index 0000000000000000000000000000000000000000..3bcb7d186fbbe5e2dc1773199ffc9d6e3491f9b0
--- /dev/null
+++ b/Detector/DetCRD/scripts/TDR_o1_v02/tracking.py
@@ -0,0 +1,234 @@
+#!/usr/bin/env python
+import os
+from Gaudi.Configuration import *
+
+from Configurables import k4DataSvc
+dsvc = k4DataSvc("EventDataSvc", input="sim00.root")
+
+from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_
+seed = [12340]
+# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi                                                                                                                                            
+rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4                                                                                                                        
+rndmengine.SetSingleton = True
+rndmengine.Seeds = seed
+
+rndmgensvc = RndmGenSvc("RndmGenSvc")
+rndmgensvc.Engine = rndmengine.name()
+
+geometry_option = "TDR_o1_v02/TDR_o1_v02.xml"
+
+if not os.getenv("DETCRDROOT"):
+    print("Can't find the geometry. Please setup envvar DETCRDROOT." )
+    sys.exit(-1)
+
+geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option)
+if not os.path.exists(geometry_path):
+    print("Can't find the compact geometry file: %s"%geometry_path)
+    sys.exit(-1)
+
+from Configurables import GeomSvc
+geosvc = GeomSvc("GeomSvc")
+geosvc.compact = geometry_path
+
+from Configurables import MarlinEvtSeeder
+evtseeder = MarlinEvtSeeder("EventSeeder")
+
+from Configurables import GearSvc
+gearsvc = GearSvc("GearSvc")
+
+from Configurables import TrackSystemSvc
+tracksystemsvc = TrackSystemSvc("TrackSystemSvc")
+
+from Configurables import PodioInput
+podioinput = PodioInput("PodioReader", collections=[
+#    "EventHeader",
+    "MCParticle",
+    "VXDCollection",
+    "SITCollection",
+    "TPCCollection",
+    "SETCollection",
+    "FTDCollection"
+    ])
+
+# digitization
+vxdhitname  = "VXDTrackerHits"
+sithitname  = "SITTrackerHits"
+gashitname  = "TPCTrackerHits"
+sethitname  = "SETTrackerHits"
+setspname   = "SETSpacePoints"
+ftdhitname  = "FTDTrackerHits"
+ftdspname   = "FTDSpacePoints"
+from Configurables import PlanarDigiAlg
+digiVXD = PlanarDigiAlg("VXDDigi")
+digiVXD.SimTrackHitCollection = "VXDCollection"
+digiVXD.TrackerHitCollection = vxdhitname
+digiVXD.TrackerHitAssociationCollection = "VXDTrackerHitAssociation"
+digiVXD.ResolutionU = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004]
+digiVXD.ResolutionV = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004]
+digiVXD.UsePlanarTag = True
+digiVXD.ParameterizeResolution = False
+digiVXD.ParametersU = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359]
+digiVXD.ParametersV = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359]
+#digiVXD.OutputLevel = DEBUG
+
+digiSIT = PlanarDigiAlg("SITDigi")
+digiSIT.IsStrip = False
+digiSIT.SimTrackHitCollection = "SITCollection"
+digiSIT.TrackerHitCollection = sithitname
+digiSIT.TrackerHitAssociationCollection = "SITTrackerHitAssociation"
+digiSIT.ResolutionU = [0.0072]
+digiSIT.ResolutionV = [0.086]
+digiSIT.UsePlanarTag = True
+digiSIT.ParameterizeResolution = False
+digiSIT.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452]
+digiSIT.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01]
+#digiSIT.OutputLevel = DEBUG
+
+digiSET = PlanarDigiAlg("SETDigi")
+digiSET.IsStrip = False
+digiSET.SimTrackHitCollection = "SETCollection"
+digiSET.TrackerHitCollection = sethitname
+digiSET.TrackerHitAssociationCollection = "SETTrackerHitAssociation"
+digiSET.ResolutionU = [0.0072]
+digiSET.ResolutionV = [0.086]
+digiSET.UsePlanarTag = True
+digiSET.ParameterizeResolution = False
+digiSET.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452]
+digiSET.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01]
+#digiSET.OutputLevel = DEBUG
+
+digiFTD = PlanarDigiAlg("FTDDigi")
+digiFTD.IsStrip = False
+digiFTD.SimTrackHitCollection = "FTDCollection"
+digiFTD.TrackerHitCollection = ftdhitname
+digiFTD.TrackerHitAssociationCollection = "FTDTrackerHitAssociation"
+digiFTD.ResolutionU = [0.0072]
+digiFTD.ResolutionV = [0.086]
+digiFTD.UsePlanarTag = True
+digiFTD.ParameterizeResolution = False
+digiFTD.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452]
+digiFTD.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01]
+#digiFTD.OutputLevel = DEBUG
+
+from Configurables import TPCDigiAlg
+digiTPC = TPCDigiAlg("TPCDigi")
+digiTPC.TPCCollection = "TPCCollection"
+digiTPC.TPCLowPtCollection = "TPCLowPtCollection"
+digiTPC.TPCTrackerHitsCol = gashitname
+#digiTPC.OutputLevel = DEBUG
+
+# tracking
+from Configurables import KalTestTool
+# Close multiple scattering and smooth, used by clupatra
+kt010 = KalTestTool("KalTest010")
+kt010.MSOn = False
+kt010.Smooth = False
+#kt010.OutputLevel = DEBUG
+
+# Open multiple scattering, energy loss and smooth (default)
+kt111 = KalTestTool("KalTest111")
+#kt111.OutputLevel = DEBUG
+
+# Close smooth
+kt110 = KalTestTool("KalTest110")
+kt110.Smooth = False
+#kt110.OutputLevel = DEBUG
+
+from Configurables import SiliconTrackingAlg
+tracking = SiliconTrackingAlg("SiliconTracking")
+tracking.LayerCombinationsFTD = [4,2,0, 6,2,0, 6,4,0, 6,4,2, 5,3,1, 7,3,1, 7,5,1, 7,5,3,
+                                 4,2,1, 6,2,1, 6,4,1, 6,4,3, 5,3,0, 7,3,0, 7,5,0, 7,5,2,
+                                 4,3,0, 6,3,0, 6,5,0, 6,5,2, 5,2,1, 7,2,1, 7,4,1, 7,4,3,
+                                 5,2,0, 7,2,0, 7,4,0, 7,4,2, 4,3,1, 6,3,1, 6,5,1, 6,5,3]
+tracking.HeaderCol = "EventHeader"
+tracking.VTXHitCollection = vxdhitname
+tracking.SITHitCollection = sithitname
+tracking.FTDPixelHitCollection = ftdhitname
+tracking.FTDSpacePointCollection = ftdspname
+tracking.SITRawHitCollection = "NotNeedForPixelSIT"
+tracking.FTDRawHitCollection = ftdhitname
+tracking.UseSIT = True
+tracking.SmoothOn = False
+tracking.NDivisionsInTheta = 10
+tracking.NDivisionsInPhi = 60
+tracking.NDivisionsInPhiFTD = 16
+tracking.MinDistCutAttach = 5
+tracking.Chi2FitCut = 100
+tracking.MaxChi2PerHit = 100
+#tracking.Chi2WZTriplet = 0.1
+#tracking.Chi2WZQuartet = 0.1
+#tracking.Chi2WZSeptet  = 0.1
+#tracking.FitterTool = "KalTestTool/KalTest111"
+#tracking.OutputLevel = DEBUG
+
+from Configurables import ForwardTrackingAlg
+forward = ForwardTrackingAlg("ForwardTracking")
+forward.FTDPixelHitCollection = ftdhitname
+forward.FTDSpacePointCollection = ftdspname
+forward.FTDRawHitCollection = ftdhitname
+forward.Chi2ProbCut = 0.0
+forward.HitsPerTrackMin = 3
+forward.BestSubsetFinder = "SubsetSimple"
+forward.Criteria = ["Crit2_DeltaPhi","Crit2_StraightTrackRatio","Crit3_3DAngle","Crit3_ChangeRZRatio","Crit3_IPCircleDist","Crit4_3DAngleChange","Crit4_DistToExtrapolation",
+                    "Crit2_DeltaRho","Crit2_RZRatio","Crit3_PT"]
+forward.CriteriaMin = [0,  0.9,  0,  0.995, 0,  0.8, 0,   20,  1.002, 0.1,      0,   0.99, 0,    0.999, 0,   0.99, 0]
+forward.CriteriaMax = [30, 1.02, 10, 1.015, 20, 1.3, 1.0, 150, 1.08,  99999999, 0.8, 1.01, 0.35, 1.001, 1.5, 1.01, 0.05]
+#forward.FitterTool = "KalTestTool/KalTest110"
+#forward.OutputLevel = DEBUG
+
+from Configurables import TrackSubsetAlg
+subset = TrackSubsetAlg("TrackSubset")
+subset.TrackInputCollections = ["ForwardTracks", "SiTracks"]
+subset.RawTrackerHitCollections = [vxdhitname, sithitname, ftdhitname, ftdspname]
+subset.TrackSubsetCollection = "SubsetTracks"
+#subset.FitterTool = "KalTestTool/KalTest111"
+#subset.OutputLevel = DEBUG
+
+from Configurables import ClupatraAlg
+clupatra = ClupatraAlg("Clupatra")
+clupatra.TPCHitCollection = gashitname
+#clupatra.OutputLevel = DEBUG
+
+from Configurables import FullLDCTrackingAlg
+full = FullLDCTrackingAlg("FullTracking")
+full.VTXTrackerHits = vxdhitname
+full.SITTrackerHits = sithitname
+full.TPCTrackerHits = gashitname
+full.SETTrackerHits = sethitname
+full.FTDPixelTrackerHits = ftdhitname
+full.FTDSpacePoints = ftdspname
+full.SITRawHits     = "NotNeedForPixelSIT"
+full.SETRawHits     = "NotNeedForPixelSET"
+full.FTDRawHits     = ftdhitname
+full.TPCTracks = "ClupatraTracks" # add standalone TPC track
+full.SiTracks  = "SubsetTracks"
+full.OutputTracks  = "CompleteTracks" # default name
+full.VTXHitToTrackDistance = 5.
+full.FTDHitToTrackDistance = 5.
+full.SITHitToTrackDistance = 3.
+full.SETHitToTrackDistance = 5.
+full.MinChi2ProbForSiliconTracks = 0
+#full.OutputLevel = DEBUG
+
+from Configurables import TrackParticleRelationAlg
+tpr = TrackParticleRelationAlg("Track2Particle")
+tpr.MCParticleCollection = "MCParticle"
+tpr.TrackList = ["CompleteTracks"]
+#tpr.OutputLevel = DEBUG
+
+# output
+from Configurables import PodioOutput
+out = PodioOutput("outputalg")
+out.filename = "rec00.root"
+out.outputCommands = ["keep *"]
+
+# ApplicationMgr
+from Configurables import ApplicationMgr
+mgr = ApplicationMgr(
+    TopAlg = [podioinput, digiVXD, digiSIT, digiSET, digiFTD, digiTPC, tracking, forward, subset, clupatra, full, tpr, out],
+    EvtSel = 'NONE',
+    EvtMax = 5,
+    ExtSvc = [rndmengine, rndmgensvc, dsvc, evtseeder, geosvc, gearsvc, tracksystemsvc],
+    HistogramPersistency = 'ROOT',
+    OutputLevel = ERROR
+)
diff --git a/Detector/DetCRD/scripts/TDR_o2_v01/sim.py b/Detector/DetCRD/scripts/TDR_o2_v01/sim.py
new file mode 100644
index 0000000000000000000000000000000000000000..53241da11372d8fdc22d199d8c9f01f0aa18a41b
--- /dev/null
+++ b/Detector/DetCRD/scripts/TDR_o2_v01/sim.py
@@ -0,0 +1,113 @@
+#!/usr/bin/env python
+import os
+from Gaudi.Configuration import *
+
+from Configurables import k4DataSvc
+dsvc = k4DataSvc("EventDataSvc")
+
+from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_
+seed = [12340]
+# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi
+rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4
+rndmengine.SetSingleton = True
+rndmengine.Seeds = seed
+
+rndmgensvc = RndmGenSvc("RndmGenSvc")
+rndmgensvc.Engine = rndmengine.name()
+
+# option for standalone tracker study
+geometry_option = "TDR_o2_v01/TDR_o2_v01.xml"
+
+if not os.getenv("DETCRDROOT"):
+    print("Can't find the geometry. Please setup envvar DETCRDROOT." )
+    sys.exit(-1)
+
+geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option)
+if not os.path.exists(geometry_path):
+    print("Can't find the compact geometry file: %s"%geometry_path)
+    sys.exit(-1)
+
+from Configurables import GeomSvc
+geosvc = GeomSvc("GeomSvc")
+geosvc.compact = geometry_path
+
+##############################################################################
+# Physics Generator
+##############################################################################
+from Configurables import GenAlgo
+from Configurables import GtGunTool
+from Configurables import StdHepRdr
+from Configurables import SLCIORdr
+from Configurables import HepMCRdr
+from Configurables import GenPrinter
+
+gun = GtGunTool("GtGunTool")
+gun.PositionXs = [0]
+gun.PositionYs = [0]
+gun.PositionZs = [0]
+gun.Particles = ["mu-"]
+gun.EnergyMins = [1]
+gun.EnergyMaxs = [100]
+gun.ThetaMins  = [8]
+gun.ThetaMaxs  = [172]
+gun.PhiMins    = [0]
+gun.PhiMaxs    = [360]
+
+genprinter = GenPrinter("GenPrinter")
+
+genalg = GenAlgo("GenAlgo")
+genalg.GenTools = ["GtGunTool"]
+
+##############################################################################
+# Detector Simulation
+##############################################################################
+from Configurables import DetSimSvc
+detsimsvc = DetSimSvc("DetSimSvc")
+
+from Configurables import DetSimAlg
+detsimalg = DetSimAlg("DetSimAlg")
+detsimalg.RandomSeeds = seed
+# detsimalg.VisMacs = ["vis.mac"]
+detsimalg.RunCmds = [
+#    "/tracking/verbose 1",
+]
+detsimalg.AnaElems = [
+    # example_anatool.name()
+    # "ExampleAnaElemTool"
+    "Edm4hepWriterAnaElemTool"
+]
+detsimalg.RootDetElem = "WorldDetElemTool"
+
+dedxoption = "BetheBlochEquationDedxSimTool"
+from Configurables import DriftChamberSensDetTool
+dc_sensdettool = DriftChamberSensDetTool("DriftChamberSensDetTool")
+dc_sensdettool.DedxSimTool = dedxoption
+
+from Configurables import DummyDedxSimTool
+from Configurables import BetheBlochEquationDedxSimTool
+
+if dedxoption == "DummyDedxSimTool":
+    dedx_simtool = DummyDedxSimTool("DummyDedxSimTool")
+elif dedxoption == "BetheBlochEquationDedxSimTool":
+    dedx_simtool = BetheBlochEquationDedxSimTool("BetheBlochEquationDedxSimTool")
+    dedx_simtool.material_Z = 2
+    dedx_simtool.material_A = 4
+    dedx_simtool.scale = 10
+    dedx_simtool.resolution = 0.0001
+
+# output
+from Configurables import PodioOutput
+out = PodioOutput("outputalg")
+out.filename = "sim00.root"
+out.outputCommands = ["keep *"]
+
+# ApplicationMgr
+from Configurables import ApplicationMgr
+mgr = ApplicationMgr(
+    TopAlg = [genalg, detsimalg, out],
+    EvtSel = 'NONE',
+    EvtMax = 10,
+    ExtSvc = [rndmengine, rndmgensvc, dsvc, geosvc],
+    HistogramPersistency = 'ROOT',
+    OutputLevel = ERROR
+)
diff --git a/Detector/DetCRD/scripts/TDR_o2_v01/tracking.py b/Detector/DetCRD/scripts/TDR_o2_v01/tracking.py
new file mode 100644
index 0000000000000000000000000000000000000000..785f49eff505a740a1373622a669410d226f6514
--- /dev/null
+++ b/Detector/DetCRD/scripts/TDR_o2_v01/tracking.py
@@ -0,0 +1,204 @@
+#!/usr/bin/env python
+import os
+from Gaudi.Configuration import *
+
+from Configurables import k4DataSvc
+dsvc = k4DataSvc("EventDataSvc", input="sim00.root")
+
+from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_
+seed = [12340]
+# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi                                                                                                                                            
+rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4                                                                                                                        
+rndmengine.SetSingleton = True
+rndmengine.Seeds = seed
+
+rndmgensvc = RndmGenSvc("RndmGenSvc")
+rndmgensvc.Engine = rndmengine.name()
+
+geometry_option = "TDR_o2_v01/TDR_o2_v01.xml"
+
+if not os.getenv("DETCRDROOT"):
+    print("Can't find the geometry. Please setup envvar DETCRDROOT." )
+    sys.exit(-1)
+
+geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option)
+if not os.path.exists(geometry_path):
+    print("Can't find the compact geometry file: %s"%geometry_path)
+    sys.exit(-1)
+
+from Configurables import GeomSvc
+geosvc = GeomSvc("GeomSvc")
+geosvc.compact = geometry_path
+
+from Configurables import MarlinEvtSeeder
+evtseeder = MarlinEvtSeeder("EventSeeder")
+
+from Configurables import GearSvc
+gearsvc = GearSvc("GearSvc")
+
+from Configurables import TrackSystemSvc
+tracksystemsvc = TrackSystemSvc("TrackSystemSvc")
+
+from Configurables import PodioInput
+podioinput = PodioInput("PodioReader", collections=[
+#    "EventHeader",
+    "MCParticle",
+    "VXDCollection",
+    "SITCollection",
+    "DriftChamberHitsCollection",
+    "SETCollection",
+    "FTDCollection"
+    ])
+
+# digitization
+vxdhitname  = "VXDTrackerHits"
+sithitname  = "SITTrackerHits"
+gashitname  = "DCTrackerHits"
+sethitname  = "SETTrackerHits"
+setspname   = "SETSpacePoints"
+ftdhitname  = "FTDTrackerHits"
+ftdspname   = "FTDSpacePoints"
+from Configurables import PlanarDigiAlg
+digiVXD = PlanarDigiAlg("VXDDigi")
+digiVXD.SimTrackHitCollection = "VXDCollection"
+digiVXD.TrackerHitCollection = vxdhitname
+digiVXD.TrackerHitAssociationCollection = "VXDTrackerHitAssociation"
+digiVXD.ResolutionU = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004]
+digiVXD.ResolutionV = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004]
+digiVXD.UsePlanarTag = True
+digiVXD.ParameterizeResolution = False
+digiVXD.ParametersU = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359]
+digiVXD.ParametersV = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359]
+#digiVXD.OutputLevel = DEBUG
+
+digiSIT = PlanarDigiAlg("SITDigi")
+digiSIT.IsStrip = False
+digiSIT.SimTrackHitCollection = "SITCollection"
+digiSIT.TrackerHitCollection = sithitname
+digiSIT.TrackerHitAssociationCollection = "SITTrackerHitAssociation"
+digiSIT.ResolutionU = [0.0072]
+digiSIT.ResolutionV = [0.086]
+digiSIT.UsePlanarTag = True
+digiSIT.ParameterizeResolution = False
+digiSIT.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452]
+digiSIT.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01]
+#digiSIT.OutputLevel = DEBUG
+
+digiSET = PlanarDigiAlg("SETDigi")
+digiSET.IsStrip = False
+digiSET.SimTrackHitCollection = "SETCollection"
+digiSET.TrackerHitCollection = sethitname
+digiSET.TrackerHitAssociationCollection = "SETTrackerHitAssociation"
+digiSET.ResolutionU = [0.0072]
+digiSET.ResolutionV = [0.086]
+digiSET.UsePlanarTag = True
+digiSET.ParameterizeResolution = False
+digiSET.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452]
+digiSET.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01]
+#digiSET.OutputLevel = DEBUG
+
+digiFTD = PlanarDigiAlg("FTDDigi")
+digiFTD.IsStrip = False
+digiFTD.SimTrackHitCollection = "FTDCollection"
+digiFTD.TrackerHitCollection = ftdhitname
+digiFTD.TrackerHitAssociationCollection = "FTDTrackerHitAssociation"
+digiFTD.ResolutionU = [0.0072]
+digiFTD.ResolutionV = [0.086]
+digiFTD.UsePlanarTag = True
+digiFTD.ParameterizeResolution = False
+digiFTD.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452]
+digiFTD.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01]
+#digiFTD.OutputLevel = DEBUG
+
+#TODO: digitization for DC
+
+
+# tracking
+from Configurables import KalTestTool
+# Close multiple scattering and smooth, used by clupatra
+kt010 = KalTestTool("KalTest010")
+kt010.MSOn = False
+kt010.Smooth = False
+#kt010.OutputLevel = DEBUG
+
+# Open multiple scattering, energy loss and smooth (default)
+kt111 = KalTestTool("KalTest111")
+#kt111.OutputLevel = DEBUG
+
+# Close smooth
+kt110 = KalTestTool("KalTest110")
+kt110.Smooth = False
+#kt110.OutputLevel = DEBUG
+
+from Configurables import SiliconTrackingAlg
+tracking = SiliconTrackingAlg("SiliconTracking")
+tracking.LayerCombinationsFTD = []
+tracking.HeaderCol = "EventHeader"
+tracking.VTXHitCollection = vxdhitname
+tracking.SITHitCollection = sithitname
+tracking.FTDPixelHitCollection = ftdhitname
+tracking.FTDSpacePointCollection = ftdspname
+tracking.SITRawHitCollection = "NotNeedForPixelSIT"
+tracking.FTDRawHitCollection = ftdhitname
+tracking.UseSIT = True
+tracking.SmoothOn = False
+tracking.NDivisionsInTheta = 10
+tracking.NDivisionsInPhi = 60
+tracking.NDivisionsInPhiFTD = 16
+tracking.MinDistCutAttach = 50
+tracking.Chi2FitCut = 200
+tracking.MaxChi2PerHit = 200
+tracking.Chi2WZTriplet = 0.1
+tracking.Chi2WZQuartet = 0.1
+tracking.Chi2WZSeptet  = 0.1
+#tracking.FitterTool = "KalTestTool/KalTest111"
+#tracking.OutputLevel = DEBUG
+
+from Configurables import ForwardTrackingAlg
+forward = ForwardTrackingAlg("ForwardTracking")
+forward.FTDPixelHitCollection = ftdhitname
+forward.FTDSpacePointCollection = ftdspname
+forward.FTDRawHitCollection = ftdhitname
+forward.Chi2ProbCut = 0.0
+forward.HitsPerTrackMin = 3
+forward.BestSubsetFinder = "SubsetSimple"
+forward.Criteria = ["Crit2_DeltaPhi","Crit2_StraightTrackRatio","Crit3_3DAngle","Crit3_ChangeRZRatio","Crit3_IPCircleDist","Crit4_3DAngleChange","Crit4_DistToExtrapolation",
+                    "Crit2_DeltaRho","Crit2_RZRatio","Crit3_PT"]
+forward.CriteriaMin = [0,  0.9,  0,  0.995, 0,  0.8, 0,   20,  1.002, 0.1,      0,   0.99, 0,    0.999, 0,   0.99, 0]
+forward.CriteriaMax = [30, 1.02, 10, 1.015, 20, 1.3, 1.0, 150, 1.08,  99999999, 0.8, 1.01, 0.35, 1.001, 1.5, 1.01, 0.05]
+#forward.FitterTool = "KalTestTool/KalTest110"
+#forward.OutputLevel = DEBUG
+
+from Configurables import TrackSubsetAlg
+subset = TrackSubsetAlg("TrackSubset")
+subset.TrackInputCollections = ["ForwardTracks", "SiTracks"]
+subset.RawTrackerHitCollections = [vxdhitname, sithitname, ftdhitname, ftdspname]
+subset.TrackSubsetCollection = "SubsetTracks"
+#subset.FitterTool = "KalTestTool/KalTest111"
+#subset.OutputLevel = DEBUG
+
+# TODO: reconstruction for DC
+
+
+from Configurables import TrackParticleRelationAlg
+tpr = TrackParticleRelationAlg("Track2Particle")
+tpr.MCParticleCollection = "MCParticle"
+tpr.TrackList = ["CompleteTracks"]
+#tpr.OutputLevel = DEBUG
+
+# output
+from Configurables import PodioOutput
+out = PodioOutput("outputalg")
+out.filename = "rec00.root"
+out.outputCommands = ["keep *"]
+
+# ApplicationMgr
+from Configurables import ApplicationMgr
+mgr = ApplicationMgr(
+    TopAlg = [podioinput, digiVXD, digiSIT, digiSET, digiFTD, tracking, forward, subset, tpr, out],
+    EvtSel = 'NONE',
+    EvtMax = 5,
+    ExtSvc = [rndmengine, rndmgensvc, dsvc, evtseeder, geosvc, gearsvc, tracksystemsvc],
+    HistogramPersistency = 'ROOT',
+    OutputLevel = ERROR
+)
diff --git a/Detector/DetCRD/scripts/TDR_o2_v02/sim.py b/Detector/DetCRD/scripts/TDR_o2_v02/sim.py
new file mode 100644
index 0000000000000000000000000000000000000000..cbfb47e85046913ec69da4a1afb2df0558b1fbeb
--- /dev/null
+++ b/Detector/DetCRD/scripts/TDR_o2_v02/sim.py
@@ -0,0 +1,113 @@
+#!/usr/bin/env python
+import os
+from Gaudi.Configuration import *
+
+from Configurables import k4DataSvc
+dsvc = k4DataSvc("EventDataSvc")
+
+from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_
+seed = [12340]
+# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi
+rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4
+rndmengine.SetSingleton = True
+rndmengine.Seeds = seed
+
+rndmgensvc = RndmGenSvc("RndmGenSvc")
+rndmgensvc.Engine = rndmengine.name()
+
+# option for standalone tracker study
+geometry_option = "TDR_o2_v02/TDR_o2_v02.xml"
+
+if not os.getenv("DETCRDROOT"):
+    print("Can't find the geometry. Please setup envvar DETCRDROOT." )
+    sys.exit(-1)
+
+geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option)
+if not os.path.exists(geometry_path):
+    print("Can't find the compact geometry file: %s"%geometry_path)
+    sys.exit(-1)
+
+from Configurables import GeomSvc
+geosvc = GeomSvc("GeomSvc")
+geosvc.compact = geometry_path
+
+##############################################################################
+# Physics Generator
+##############################################################################
+from Configurables import GenAlgo
+from Configurables import GtGunTool
+from Configurables import StdHepRdr
+from Configurables import SLCIORdr
+from Configurables import HepMCRdr
+from Configurables import GenPrinter
+
+gun = GtGunTool("GtGunTool")
+gun.PositionXs = [0]
+gun.PositionYs = [0]
+gun.PositionZs = [0]
+gun.Particles = ["mu-"]
+gun.EnergyMins = [1]
+gun.EnergyMaxs = [100]
+gun.ThetaMins  = [8]
+gun.ThetaMaxs  = [172]
+gun.PhiMins    = [0]
+gun.PhiMaxs    = [360]
+
+genprinter = GenPrinter("GenPrinter")
+
+genalg = GenAlgo("GenAlgo")
+genalg.GenTools = ["GtGunTool"]
+
+##############################################################################
+# Detector Simulation
+##############################################################################
+from Configurables import DetSimSvc
+detsimsvc = DetSimSvc("DetSimSvc")
+
+from Configurables import DetSimAlg
+detsimalg = DetSimAlg("DetSimAlg")
+detsimalg.RandomSeeds = seed
+# detsimalg.VisMacs = ["vis.mac"]
+detsimalg.RunCmds = [
+#    "/tracking/verbose 1",
+]
+detsimalg.AnaElems = [
+    # example_anatool.name()
+    # "ExampleAnaElemTool"
+    "Edm4hepWriterAnaElemTool"
+]
+detsimalg.RootDetElem = "WorldDetElemTool"
+
+dedxoption = "BetheBlochEquationDedxSimTool"
+from Configurables import DriftChamberSensDetTool
+dc_sensdettool = DriftChamberSensDetTool("DriftChamberSensDetTool")
+dc_sensdettool.DedxSimTool = dedxoption
+
+from Configurables import DummyDedxSimTool
+from Configurables import BetheBlochEquationDedxSimTool
+
+if dedxoption == "DummyDedxSimTool":
+    dedx_simtool = DummyDedxSimTool("DummyDedxSimTool")
+elif dedxoption == "BetheBlochEquationDedxSimTool":
+    dedx_simtool = BetheBlochEquationDedxSimTool("BetheBlochEquationDedxSimTool")
+    dedx_simtool.material_Z = 2
+    dedx_simtool.material_A = 4
+    dedx_simtool.scale = 10
+    dedx_simtool.resolution = 0.0001
+
+# output
+from Configurables import PodioOutput
+out = PodioOutput("outputalg")
+out.filename = "sim00.root"
+out.outputCommands = ["keep *"]
+
+# ApplicationMgr
+from Configurables import ApplicationMgr
+mgr = ApplicationMgr(
+    TopAlg = [genalg, detsimalg, out],
+    EvtSel = 'NONE',
+    EvtMax = 10,
+    ExtSvc = [rndmengine, rndmgensvc, dsvc, geosvc],
+    HistogramPersistency = 'ROOT',
+    OutputLevel = ERROR
+)
diff --git a/Detector/DetCRD/scripts/TDR_o2_v02/tracking.py b/Detector/DetCRD/scripts/TDR_o2_v02/tracking.py
new file mode 100644
index 0000000000000000000000000000000000000000..ea2ca6a18282444c5cbdb392843111dcdb9cc292
--- /dev/null
+++ b/Detector/DetCRD/scripts/TDR_o2_v02/tracking.py
@@ -0,0 +1,207 @@
+#!/usr/bin/env python
+import os
+from Gaudi.Configuration import *
+
+from Configurables import k4DataSvc
+dsvc = k4DataSvc("EventDataSvc", input="sim00.root")
+
+from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_
+seed = [12340]
+# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi                                                                                                                                            
+rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4                                                                                                                        
+rndmengine.SetSingleton = True
+rndmengine.Seeds = seed
+
+rndmgensvc = RndmGenSvc("RndmGenSvc")
+rndmgensvc.Engine = rndmengine.name()
+
+geometry_option = "TDR_o2_v02/TDR_o2_v02.xml"
+
+if not os.getenv("DETCRDROOT"):
+    print("Can't find the geometry. Please setup envvar DETCRDROOT." )
+    sys.exit(-1)
+
+geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option)
+if not os.path.exists(geometry_path):
+    print("Can't find the compact geometry file: %s"%geometry_path)
+    sys.exit(-1)
+
+from Configurables import GeomSvc
+geosvc = GeomSvc("GeomSvc")
+geosvc.compact = geometry_path
+
+from Configurables import MarlinEvtSeeder
+evtseeder = MarlinEvtSeeder("EventSeeder")
+
+from Configurables import GearSvc
+gearsvc = GearSvc("GearSvc")
+
+from Configurables import TrackSystemSvc
+tracksystemsvc = TrackSystemSvc("TrackSystemSvc")
+
+from Configurables import PodioInput
+podioinput = PodioInput("PodioReader", collections=[
+#    "EventHeader",
+    "MCParticle",
+    "VXDCollection",
+    "SITCollection",
+    "DriftChamberHitsCollection",
+    "SETCollection",
+    "FTDCollection"
+    ])
+
+# digitization
+vxdhitname  = "VXDTrackerHits"
+sithitname  = "SITTrackerHits"
+gashitname  = "DCTrackerHits"
+sethitname  = "SETTrackerHits"
+setspname   = "SETSpacePoints"
+ftdhitname  = "FTDTrackerHits"
+ftdspname   = "FTDSpacePoints"
+from Configurables import PlanarDigiAlg
+digiVXD = PlanarDigiAlg("VXDDigi")
+digiVXD.SimTrackHitCollection = "VXDCollection"
+digiVXD.TrackerHitCollection = vxdhitname
+digiVXD.TrackerHitAssociationCollection = "VXDTrackerHitAssociation"
+digiVXD.ResolutionU = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004]
+digiVXD.ResolutionV = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004]
+digiVXD.UsePlanarTag = True
+digiVXD.ParameterizeResolution = False
+digiVXD.ParametersU = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359]
+digiVXD.ParametersV = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359]
+#digiVXD.OutputLevel = DEBUG
+
+digiSIT = PlanarDigiAlg("SITDigi")
+digiSIT.IsStrip = False
+digiSIT.SimTrackHitCollection = "SITCollection"
+digiSIT.TrackerHitCollection = sithitname
+digiSIT.TrackerHitAssociationCollection = "SITTrackerHitAssociation"
+digiSIT.ResolutionU = [0.0072]
+digiSIT.ResolutionV = [0.086]
+digiSIT.UsePlanarTag = True
+digiSIT.ParameterizeResolution = False
+digiSIT.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452]
+digiSIT.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01]
+#digiSIT.OutputLevel = DEBUG
+
+digiSET = PlanarDigiAlg("SETDigi")
+digiSET.IsStrip = False
+digiSET.SimTrackHitCollection = "SETCollection"
+digiSET.TrackerHitCollection = sethitname
+digiSET.TrackerHitAssociationCollection = "SETTrackerHitAssociation"
+digiSET.ResolutionU = [0.0072]
+digiSET.ResolutionV = [0.086]
+digiSET.UsePlanarTag = True
+digiSET.ParameterizeResolution = False
+digiSET.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452]
+digiSET.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01]
+#digiSET.OutputLevel = DEBUG
+
+digiFTD = PlanarDigiAlg("FTDDigi")
+digiFTD.IsStrip = False
+digiFTD.SimTrackHitCollection = "FTDCollection"
+digiFTD.TrackerHitCollection = ftdhitname
+digiFTD.TrackerHitAssociationCollection = "FTDTrackerHitAssociation"
+digiFTD.ResolutionU = [0.0072]
+digiFTD.ResolutionV = [0.086]
+digiFTD.UsePlanarTag = True
+digiFTD.ParameterizeResolution = False
+digiFTD.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452]
+digiFTD.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01]
+#digiFTD.OutputLevel = DEBUG
+
+#TODO: digitization for DC
+
+
+# tracking
+from Configurables import KalTestTool
+# Close multiple scattering and smooth, used by clupatra
+kt010 = KalTestTool("KalTest010")
+kt010.MSOn = False
+kt010.Smooth = False
+#kt010.OutputLevel = DEBUG
+
+# Open multiple scattering, energy loss and smooth (default)
+kt111 = KalTestTool("KalTest111")
+#kt111.OutputLevel = DEBUG
+
+# Close smooth
+kt110 = KalTestTool("KalTest110")
+kt110.Smooth = False
+#kt110.OutputLevel = DEBUG
+
+from Configurables import SiliconTrackingAlg
+tracking = SiliconTrackingAlg("SiliconTracking")
+tracking.LayerCombinationsFTD = [4,2,0, 6,2,0, 6,4,0, 6,4,2, 5,3,1, 7,3,1, 7,5,1, 7,5,3,
+                                 4,2,1, 6,2,1, 6,4,1, 6,4,3, 5,3,0, 7,3,0, 7,5,0, 7,5,2,
+                                 4,3,0, 6,3,0, 6,5,0, 6,5,2, 5,2,1, 7,2,1, 7,4,1, 7,4,3,
+                                 5,2,0, 7,2,0, 7,4,0, 7,4,2, 4,3,1, 6,3,1, 6,5,1, 6,5,3]
+tracking.HeaderCol = "EventHeader"
+tracking.VTXHitCollection = vxdhitname
+tracking.SITHitCollection = sithitname
+tracking.FTDPixelHitCollection = ftdhitname
+tracking.FTDSpacePointCollection = ftdspname
+tracking.SITRawHitCollection = "NotNeedForPixelSIT"
+tracking.FTDRawHitCollection = ftdhitname
+tracking.UseSIT = True
+tracking.SmoothOn = False
+tracking.NDivisionsInTheta = 10
+tracking.NDivisionsInPhi = 60
+tracking.NDivisionsInPhiFTD = 16
+tracking.MinDistCutAttach = 5
+tracking.Chi2FitCut = 100
+tracking.MaxChi2PerHit = 100
+#tracking.Chi2WZTriplet = 0.1
+#tracking.Chi2WZQuartet = 0.1
+#tracking.Chi2WZSeptet  = 0.1
+#tracking.FitterTool = "KalTestTool/KalTest111"
+#tracking.OutputLevel = DEBUG
+
+from Configurables import ForwardTrackingAlg
+forward = ForwardTrackingAlg("ForwardTracking")
+forward.FTDPixelHitCollection = ftdhitname
+forward.FTDSpacePointCollection = ftdspname
+forward.FTDRawHitCollection = ftdhitname
+forward.Chi2ProbCut = 0.0
+forward.HitsPerTrackMin = 3
+forward.BestSubsetFinder = "SubsetSimple"
+forward.Criteria = ["Crit2_DeltaPhi","Crit2_StraightTrackRatio","Crit3_3DAngle","Crit3_ChangeRZRatio","Crit3_IPCircleDist","Crit4_3DAngleChange","Crit4_DistToExtrapolation",
+                    "Crit2_DeltaRho","Crit2_RZRatio","Crit3_PT"]
+forward.CriteriaMin = [0,  0.9,  0,  0.995, 0,  0.8, 0,   20,  1.002, 0.1,      0,   0.99, 0,    0.999, 0,   0.99, 0]
+forward.CriteriaMax = [30, 1.02, 10, 1.015, 20, 1.3, 1.0, 150, 1.08,  99999999, 0.8, 1.01, 0.35, 1.001, 1.5, 1.01, 0.05]
+#forward.FitterTool = "KalTestTool/KalTest110"
+#forward.OutputLevel = DEBUG
+
+from Configurables import TrackSubsetAlg
+subset = TrackSubsetAlg("TrackSubset")
+subset.TrackInputCollections = ["ForwardTracks", "SiTracks"]
+subset.RawTrackerHitCollections = [vxdhitname, sithitname, ftdhitname, ftdspname]
+subset.TrackSubsetCollection = "SubsetTracks"
+#subset.FitterTool = "KalTestTool/KalTest111"
+#subset.OutputLevel = DEBUG
+
+# TODO: reconstruction for DC
+
+
+from Configurables import TrackParticleRelationAlg
+tpr = TrackParticleRelationAlg("Track2Particle")
+tpr.MCParticleCollection = "MCParticle"
+tpr.TrackList = ["CompleteTracks"]
+#tpr.OutputLevel = DEBUG
+
+# output
+from Configurables import PodioOutput
+out = PodioOutput("outputalg")
+out.filename = "rec00.root"
+out.outputCommands = ["keep *"]
+
+# ApplicationMgr
+from Configurables import ApplicationMgr
+mgr = ApplicationMgr(
+    TopAlg = [podioinput, digiVXD, digiSIT, digiSET, digiFTD, tracking, forward, subset, tpr, out],
+    EvtSel = 'NONE',
+    EvtMax = 5,
+    ExtSvc = [rndmengine, rndmgensvc, dsvc, evtseeder, geosvc, gearsvc, tracksystemsvc],
+    HistogramPersistency = 'ROOT',
+    OutputLevel = ERROR
+)
diff --git a/Reconstruction/SiliconTracking/src/ForwardTrackingAlg.h b/Reconstruction/SiliconTracking/src/ForwardTrackingAlg.h
index fee28994bf66bd1f0c7510faf11588e681afd5cc..8a30b2fa06cadae2d2af427f49b5a6bf267c4084 100644
--- a/Reconstruction/SiliconTracking/src/ForwardTrackingAlg.h
+++ b/Reconstruction/SiliconTracking/src/ForwardTrackingAlg.h
@@ -262,7 +262,7 @@ class ForwardTrackingAlg : public GaudiAlgorithm {
   Gaudi::Property<std::vector<std::string> > _criteriaNames{this, "Criteria", Criteria::getAllCriteriaNamesVec()};
   Gaudi::Property<std::vector<float> > _critMinimaInit{this, "CriteriaMin", {} };
   Gaudi::Property<std::vector<float> > _critMaximaInit{this, "CriteriaMax", {} };
-  Gaudi::Property<bool>   m_dumpTime{this, "DumpTime", true};
+  Gaudi::Property<bool>   m_dumpTime{this, "DumpTime", false};
   Gaudi::Property<std::string> m_fitToolName{this, "FitterTool", "KalTestTool/KalTest110"};
 
   std::map<std::string, std::vector<float> > _critMinima;
diff --git a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.h b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.h
index c457d446bc20205b4f7a8bd5aa86597ec8acbfae..9579ed8ee7542c82c2f1c6de1887dfcf489cf759 100644
--- a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.h
+++ b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.h
@@ -255,7 +255,7 @@ class SiliconTrackingAlg : public GaudiAlgorithm {
   Gaudi::Property<bool> _ElossOn{this, "EnergyLossOn", true};
   Gaudi::Property<bool> _SmoothOn{this, "SmoothOn", true};
   Gaudi::Property<float> _helix_max_r{this, "HelixMaxR", 2000.};
-  Gaudi::Property<bool> m_dumpTime{this, "DumpTime", true};
+  Gaudi::Property<bool> m_dumpTime{this, "DumpTime", false};
   Gaudi::Property<bool> m_debug{this, "Debug", false};
 
   //std::vector<int> _colours;  
diff --git a/Reconstruction/SiliconTracking/src/TrackSubsetAlg.h b/Reconstruction/SiliconTracking/src/TrackSubsetAlg.h
index 534524f9b66fcac2c60858e7f3d29d033740f877..5af3a25e1ffdef672780e06bc4f01884c8915a17 100644
--- a/Reconstruction/SiliconTracking/src/TrackSubsetAlg.h
+++ b/Reconstruction/SiliconTracking/src/TrackSubsetAlg.h
@@ -77,7 +77,7 @@ class TrackSubsetAlg : public GaudiAlgorithm {
   Gaudi::Property<float> _initialTrackError_tanL{this, "InitialTrackErrorTanL",1e2};
   Gaudi::Property<double> _maxChi2PerHit{this, "MaxChi2PerHit", 1e2};
   Gaudi::Property<double> _omega{this, "Omega", 0.75};
-  Gaudi::Property<bool> m_dumpTime{this, "DumpTime", true};
+  Gaudi::Property<bool> m_dumpTime{this, "DumpTime", false};
   Gaudi::Property<std::string> m_fitToolName{this, "FitterTool", "KalTestTool/KalTest111"};
   
   float _bField;
diff --git a/Reconstruction/Tracking/src/FullLDCTracking/FullLDCTrackingAlg.h b/Reconstruction/Tracking/src/FullLDCTracking/FullLDCTrackingAlg.h
index 2e9b9586bab5237f87738b97e28365e1ddaab305..9a4561f229f2ee70ad4a378cbf3948c37ca7a953 100755
--- a/Reconstruction/Tracking/src/FullLDCTracking/FullLDCTrackingAlg.h
+++ b/Reconstruction/Tracking/src/FullLDCTracking/FullLDCTrackingAlg.h
@@ -397,7 +397,7 @@ protected:
   Gaudi::Property<float> _vetoMergeMomentumCut{this, "VetoMergeMomentumCut", 2.5};
   Gaudi::Property<float> _maxAllowedPercentageOfOutliersForTrackCombination{this, "MaxAllowedPercentageOfOutliersForTrackCombination", 0.3};
   Gaudi::Property<int>   _maxAllowedSiHitRejectionsForTrackCombination{this, "MaxAllowedSiHitRejectionsForTrackCombination", 2};
-  Gaudi::Property<bool>  m_dumpTime{this, "DumpTime", true};
+  Gaudi::Property<bool>  m_dumpTime{this, "DumpTime", false};
   //float _dPCutForForcedMerging;
   Gaudi::Property<std::string> m_fitToolName{this, "FitterTool", "KalTestTool/KalTest111"};
   
@@ -517,9 +517,9 @@ protected:
   DataHandle<edm4hep::TrackCollection> _TPCTrackColHdl{"ClupatraTracks", Gaudi::DataHandle::Reader, this};
   DataHandle<edm4hep::TrackCollection> _SiTrackColHdl{"SiTracks", Gaudi::DataHandle::Reader, this};
 
-  DataHandle<edm4hep::TrackCollection> _OutputTrackColHdl{"MarlinTrkTracks", Gaudi::DataHandle::Writer, this};
+  DataHandle<edm4hep::TrackCollection> _OutputTrackColHdl{"CompleteTracks", Gaudi::DataHandle::Writer, this};
 
-  NTuple::Tuple*       m_tuple;
+  NTuple::Tuple*       m_tuple = nullptr;
   NTuple::Item<float>  m_timeTotal;
   NTuple::Item<float>  m_timeKalman;
 };