diff --git a/Detector/DetDriftChamber/compact/det.xml b/Detector/DetDriftChamber/compact/det.xml
index 6c2ad0d706d74dc2baa674efea620dcc2cf309f1..a070d543de61ff6e44f8952b24be492cea927c9f 100644
--- a/Detector/DetDriftChamber/compact/det.xml
+++ b/Detector/DetDriftChamber/compact/det.xml
@@ -16,7 +16,7 @@
   </includes>
 
   <define>
-    <constant name="world_size" value="2226*m"/>
+    <constant name="world_size" value="2226*mm"/>
     <constant name="world_x" value="world_size"/>
     <constant name="world_y" value="world_size"/>
     <constant name="world_z" value="world_size"/>
@@ -65,7 +65,7 @@
   </regions>
 
   <detectors>
-    <detector id="1" name="DriftChamber" type="DriftChamber" readout="DriftChamberHitsCollection" vis="VisibleBlue" sensitive="true" region="DriftChamberRegion">
+    <detector id="7" name="DriftChamber" type="DriftChamber" readout="DriftChamberHitsCollection" vis="VisibleBlue" sensitive="true" region="DriftChamberRegion">
       <envelope vis="SeeThrough">
         <shape type="BooleanShape" operation="Union" material="Air">
           <shape type="Tube" rmin="SDT_radius_min" rmax="909*mm" dz="SDT_half_length" />
diff --git a/Reconstruction/RecGenfitAlg/src/GenfitTrack.cpp b/Reconstruction/RecGenfitAlg/src/GenfitTrack.cpp
index 37778c6222af5cdd06ef9333cad595f5cfdf7b63..b7cbd8b013093d77d8a3e9dbd45da17802a0a504 100644
--- a/Reconstruction/RecGenfitAlg/src/GenfitTrack.cpp
+++ b/Reconstruction/RecGenfitAlg/src/GenfitTrack.cpp
@@ -46,8 +46,8 @@ const int GenfitTrack::s_PDG[2][5]
     bool
 sortDCHit(edm4hep::ConstSimTrackerHit hit1,edm4hep::ConstSimTrackerHit hit2)
 {
-    std::cout<<"hit1"<<hit1<<std::endl;
-    std::cout<<"hit2"<<hit2<<std::endl;
+    //std::cout<<"hit1"<<hit1<<std::endl;
+    //std::cout<<"hit2"<<hit2<<std::endl;
     bool isEarly=hit1.getTime()<hit2.getTime();
     return isEarly;
 }
@@ -206,7 +206,7 @@ bool GenfitTrack::addSpacePointTrakerHit(edm4hep::ConstTrackerHit& hit,
     p[1]=pos.y*dd4hep::mm;
     p[2]=pos.z*dd4hep::mm;
 
-    GenfitMsg::get()<<MSG::DEBUG<<m_name<<" addSpacePointMeasurement "<<hitID
+    GenfitMsg::get()<<MSG::DEBUG<<m_name<<" addSpacePointTrakerHit"<<hitID
         <<"pos "<<p[0]<<" "<<p[1]<<" "<<p[2]<<" cm"<<endmsg;
     /// New a SpacepointMeasurement
     double cov[6];
@@ -232,7 +232,7 @@ bool GenfitTrack::addSpacePointTrakerHit(edm4hep::ConstTrackerHit& hit,
     genfit::TrackPoint* trackPoint = new genfit::TrackPoint(sMeas,m_track);
     m_track->insertPoint(trackPoint);
 
-    GenfitMsg::get()<<MSG::DEBUG<<"end of addSpacePointMeasurement"<<endmsg;
+    GenfitMsg::get()<<MSG::DEBUG<<"end of addSpacePointTrakerHit"<<endmsg;
     return true;
 }
 
@@ -248,22 +248,22 @@ bool GenfitTrack::addSpacePointMeasurement(const TVectorD& pos,
     pos_t(2)=pos(2)*dd4hep::mm;
 
     /// smear hit position with same weight
-    TVectorD pos_smeared(pos_t);
+    TVectorD pos_smeared(3);
     for (int i=0;i<3;i++){
-        pos_smeared[i] += gRandom->Gaus(0, sigma/TMath::Sqrt(3.));
+        pos_smeared[i] = pos_t(i)+gRandom->Gaus(0, sigma/TMath::Sqrt(3.));
     }
 
     /// New a SpacepointMeasurement
     TMatrixDSym hitCov(3);
-    sigma=sigma*dd4hep::mm;
-    hitCov(0,0)=sigma*sigma;
-    hitCov(1,1)=sigma*sigma;
-    hitCov(2,2)=sigma*sigma;
+    double sigma_t=sigma*dd4hep::mm;
+    hitCov(0,0)=sigma_t*sigma_t;
+    hitCov(1,1)=sigma_t*sigma_t;
+    hitCov(2,2)=sigma_t*sigma_t;
 
     GenfitMsg::get()<< MSG::DEBUG<<m_name<<" addSpacePointMeasurement detID "
         <<detID<<" hitId "<<hitID<<" " <<pos_t[0]<<" "<<pos_t[1]<<" "<<pos_t[2]
         <<" cm smeared "<<pos_smeared[0]<<" "<<pos_smeared[1]<<" "
-        <<pos_smeared[2]<<" sigma "<<sigma<<" cm"<<endmsg;
+        <<pos_smeared[2]<<" sigma_t "<<sigma_t<<" cm"<<endmsg;
 
     genfit::SpacepointMeasurement* sMeas =
         new genfit::SpacepointMeasurement(pos_smeared,hitCov,detID,hitID,nullptr);
@@ -648,7 +648,6 @@ double GenfitTrack::extrapolateToHit( TVector3& poca, TVector3& pocaDir,
 int GenfitTrack::addSimTrackerHits(const edm4hep::Track& track,
         const edm4hep::MCRecoTrackerAssociationCollection* assoHits,
         float sigma){
-
     //A TrakerHit collection
     std::vector<edm4hep::ConstSimTrackerHit> sortedDCTrackHitCol;
 
@@ -665,18 +664,18 @@ int GenfitTrack::addSimTrackerHits(const edm4hep::Track& track,
         UTIL::BitField64 encoder(lcio::ILDCellID0::encoder_string);
         encoder.setValue(hit.getCellID());
         int detID=encoder[lcio::ILDCellID0::subdet];
-        //GenfitMsg::get()<<MSG::DEBUG<<m_name<<" "<<iHit<<" hit "<<hit
-            //<<" detID "<<detID<<endmsg;
+        GenfitMsg::get()<<MSG::DEBUG<<m_name<<" "<<iHit<<" hit "<<hit
+            <<" detID "<<detID<<endmsg;
 
         if(detID==lcio::ILDDetID::VXD || detID==lcio::ILDDetID::SIT ||
                 detID==lcio::ILDDetID::SET || detID==lcio::ILDDetID::FTD){
-            //if(addSpacePointTrakerHit(hit,hitID)){
-            //    GenfitMsg::get()<<MSG::DEBUG<<"add slicon space point"<<endmsg;
-            //    hitID++;
-            //}else{
-            //    GenfitMsg::get()<<MSG::ERROR<<"addSpacePointTrakerHit"
-            //        <<detID<<" "<<hit.getCellID()<<" faieled"<<endmsg;
-            //}
+            if(addSpacePointTrakerHit(hit,hitID)){
+                GenfitMsg::get()<<MSG::DEBUG<<"add slicon space point"<<endmsg;
+                hitID++;
+            }else{
+                GenfitMsg::get()<<MSG::ERROR<<"silicon addSpacePointTrakerHit"
+                    <<detID<<" "<<hit.getCellID()<<" faieled"<<endmsg;
+            }
         }else if(detID==7){
             //if(addSpacePointMeasurement(p,sigma,hit.getCellID(),hitID)){
             //    GenfitMsg::get()<<MSG::DEBUG<<"add DC space point"<<endmsg;
diff --git a/Reconstruction/RecGenfitAlg/src/RecGenfitAlgDC.cpp b/Reconstruction/RecGenfitAlg/src/RecGenfitAlgDC.cpp
index 8f8445b8bbb8d0a5d0e21ba3fe1be55e1837f535..478d88a5962248850b884592f7372668f6e3c358 100644
--- a/Reconstruction/RecGenfitAlg/src/RecGenfitAlgDC.cpp
+++ b/Reconstruction/RecGenfitAlg/src/RecGenfitAlgDC.cpp
@@ -339,7 +339,7 @@ void RecGenfitAlgDC::debugTrack(int pidType,const GenfitTrack* genfitTrack)
     TMatrixDSym fittedCov;
     TLorentzVector fittedPos;
     TVector3 fittedMom;
-    genfitTrack->getFittedState(fittedPos,fittedMom,fittedCov);
+    int fittedState=genfitTrack->getFittedState(fittedPos,fittedMom,fittedCov);
     HelixClass helix;//mm and GeV
     float pos[3]={float(fittedPos.X()/dd4hep::mm),float(fittedPos.Y()/dd4hep::mm),
         float(fittedPos.Z()/dd4hep::mm)};
@@ -347,6 +347,29 @@ void RecGenfitAlgDC::debugTrack(int pidType,const GenfitTrack* genfitTrack)
     helix.Initialize_VP(pos,mom,charge,m_genfitField->getBz(fittedPos.Vect()));
     m_pocaMomKalP[pidType]=fittedMom.Mag();
 
+    if(m_debug>0){
+        /// Get fit status
+        debug()<<"evt "<<m_evt<<" fit result: get status OK? pidType "
+            <<pidType<<" fittedState "<<fittedState<<" isFitted "
+            <<m_isFitted[pidType]<<" isConverged "<<m_isFitConverged[pidType]
+            <<" isFitConvergedFully "<<m_isFitConvergedFully[pidType]
+            <<" ndf "<<m_nDofKal[pidType]
+            <<" chi2 "<<m_chi2Kal[pidType]<<endmsg;
+        if((0!=fittedState)||(!m_isFitted[pidType])||(m_nDofKal[pidType]<m_ndfCut)){
+            debug()<<"fitting failed"<<endmsg;
+        }else{
+            debug()<<"evt "<<m_evt<<" fit result: Pos("<<
+                fittedPos.X()<<" "<<
+                fittedPos.Y()<<" "<<
+                fittedPos.Z()<<") mom("<<
+                fittedMom.X()<<" "<<
+                fittedMom.Y()<<" "<<
+                fittedMom.Z()<<") p_tot "<<
+                fittedMom.Mag()<<" pt "<<
+                fittedMom.Perp()<<endmsg;
+        }
+    }
+
 }
 
 void RecGenfitAlgDC::debugEvent()
diff --git a/Reconstruction/RecGenfitAlg/src/RecGenfitAlgSDT.cpp b/Reconstruction/RecGenfitAlg/src/RecGenfitAlgSDT.cpp
index f55c7891b4e0f48c4704284c35571237be1def49..8aa61f181d9f337e90731d7f5b27d9451c65a1fd 100644
--- a/Reconstruction/RecGenfitAlg/src/RecGenfitAlgSDT.cpp
+++ b/Reconstruction/RecGenfitAlg/src/RecGenfitAlgSDT.cpp
@@ -336,7 +336,7 @@ void RecGenfitAlgSDT::debugTrack(int pidType,const GenfitTrack* genfitTrack)
     TMatrixDSym fittedCov;
     TLorentzVector fittedPos;
     TVector3 fittedMom;
-    genfitTrack->getFittedState(fittedPos,fittedMom,fittedCov);
+    int fittedState=genfitTrack->getFittedState(fittedPos,fittedMom,fittedCov);
     HelixClass helix;//mm and GeV
     float pos[3]={float(fittedPos.X()/dd4hep::mm),float(fittedPos.Y()/dd4hep::mm),
         float(fittedPos.Z()/dd4hep::mm)};
@@ -344,6 +344,28 @@ void RecGenfitAlgSDT::debugTrack(int pidType,const GenfitTrack* genfitTrack)
     helix.Initialize_VP(pos,mom,charge,m_genfitField->getBz(fittedPos.Vect()));
     m_pocaMomKalP[pidType]=fittedMom.Mag();
 
+    if(m_debug>0){
+        /// Get fit status
+        debug()<<"evt "<<m_evt<<" fit result: get status OK? pidType "
+            <<pidType<<" fittedState "<<fittedState<<" isFitted "
+            <<m_isFitted[pidType]<<" isConverged "<<m_isFitConverged[pidType]
+            <<" isFitConvergedFully "<<m_isFitConvergedFully[pidType]
+            <<" ndf "<<m_nDofKal[pidType]
+            <<" chi2 "<<m_chi2Kal[pidType]<<endmsg;
+        if((0!=fittedState)||(!m_isFitted[pidType])||(m_nDofKal[pidType]<m_ndfCut)){
+            debug()<<"fitting failed"<<endmsg;
+        }else{
+            debug()<<"evt "<<m_evt<<" fit result: Pos("<<
+                fittedPos.X()<<" "<<
+                fittedPos.Y()<<" "<<
+                fittedPos.Z()<<") mom("<<
+                fittedMom.X()<<" "<<
+                fittedMom.Y()<<" "<<
+                fittedMom.Z()<<") p_tot "<<
+                fittedMom.Mag()<<" pt "<<
+                fittedMom.Perp()<<endmsg;
+        }
+    }
 }
 
 void RecGenfitAlgSDT::debugEvent()