diff --git a/Detector/DetCRD/compact/CRD_common_v01/Muon_Barrel_v01_01.xml b/Detector/DetCRD/compact/CRD_common_v01/Muon_Barrel_v01_01.xml
index a5dc0d51ca8a73f446e883c0456897adb590b8fe..2e29ac9cb3c92c394e7987695154c46882a47988 100644
--- a/Detector/DetCRD/compact/CRD_common_v01/Muon_Barrel_v01_01.xml
+++ b/Detector/DetCRD/compact/CRD_common_v01/Muon_Barrel_v01_01.xml
@@ -12,15 +12,15 @@
 
   <define>
     <!--Muon Barrel-->
-    <constant name="Muon_barrel_superlayer_num" value="8"/>
-    <constant name="Muon_barrel_strip_num_0" value="17"/>
-    <constant name="Muon_barrel_strip_num_1" value="29"/>
-    <constant name="Muon_barrel_strip_num_2" value="41"/>
-    <constant name="Muon_barrel_strip_num_3" value="53"/>
-    <constant name="Muon_barrel_strip_num_4" value="65"/>
-    <constant name="Muon_barrel_strip_num_5" value="77"/>
-    <constant name="Muon_barrel_strip_num_6" value="89"/>
-    <constant name="Muon_barrel_strip_num_7" value="101"/>
+    <constant name="Muon_barrel_superlayer_num" value="6"/>
+    <constant name="Muon_barrel_strip_num_0" value="26"/>
+    <constant name="Muon_barrel_strip_num_1" value="38"/>
+    <constant name="Muon_barrel_strip_num_2" value="50"/>
+    <constant name="Muon_barrel_strip_num_3" value="62"/>
+    <constant name="Muon_barrel_strip_num_4" value="74"/>
+    <constant name="Muon_barrel_strip_num_5" value="86"/>
+    <!--constant name="Muon_barrel_strip_num_6" value="89"/>
+    <constant name="Muon_barrel_strip_num_7" value="101"/-->
     <constant name="Muon_barrel_strip_num_fixed_0" value="106"/>
     <constant name="Muon_barrel_strip_num_fixed_1" value="115"/>
 
@@ -32,7 +32,7 @@
     <constant name="Muon_barrel_barrel_y" value="Muon_barrel_iron_y"/>
     <constant name="Muon_barrel_barrel_posy" value="0.5*Muon_barrel_barrel_y"/>
 
-    <constant name="Muon_barrel_superlayer_init" value="-48*cm"/>
+    <constant name="Muon_barrel_superlayer_init" value="-35*cm"/>
     <constant name="Muon_barrel_superlayer_gap" value="14*cm"/>
     <constant name="Muon_barrel_superlayer_endcap_gap" value="10*cm"/>
     <constant name="Muon_barrel_superlayer_air_gap" value="1*cm"/>
@@ -42,7 +42,7 @@
     <!--constant name="Muon_barrel_superlayer_z" value="Muon_strip_z+2*Muon_strip_surf+2*Muon_barrel_superlayer_air_gap"/-->
 
     <!--Checkout-->
-    <constant name="Muon_barrel_inner_radius" value="4245*mm"/>
+    <!--constant name="Muon_barrel_inner_radius" value="4245*mm"/-->
     <constant name="Muon_barrel_barrel_num" value="2"/>
     <constant name="Muon_barrel_iron_part_num" value="12"/>
 
diff --git a/Detector/DetCRD/compact/CRD_common_v01/Muon_Endcap_v01_02.xml b/Detector/DetCRD/compact/CRD_common_v01/Muon_Endcap_v01_02.xml
index 9825031c3ecfc89893f22eaf60a1836a34189114..e5d09a40410e2ffb690051cbbf9fa1ae68568c09 100644
--- a/Detector/DetCRD/compact/CRD_common_v01/Muon_Endcap_v01_02.xml
+++ b/Detector/DetCRD/compact/CRD_common_v01/Muon_Endcap_v01_02.xml
@@ -15,14 +15,14 @@
     <constant name="Muon_endcap_part_num" value="4"/>
     <constant name="Muon_endcap_superlayer_num" value="6"/>
     <constant name="Muon_endcap_layer_num" value="2"/>
-    <constant name="Muon_endcap_strip_num_1" value="72"/>
-    <constant name="Muon_endcap_strip_num_2" value="128"/>
-    <constant name="Muon_endcap_strip_num_cut_1" value="17"/>
-    <constant name="Muon_endcap_strip_num_cut_2" value="74"/>
-    <constant name="Muon_endcap_endcap_rmin" value="68*cm"/>
-    <constant name="Muon_endcap_length_cut_1" value="288*cm"/>
-    <constant name="Muon_endcap_length_cut_gap" value="296*cm"/>
-    <constant name="Muon_endcap_length_cut_2" value="512*cm"/>
+    <constant name="Muon_endcap_strip_num_1" value="68"/>
+    <constant name="Muon_endcap_strip_num_2" value="125"/>
+    <constant name="Muon_endcap_strip_num_cut_1" value="15"/>
+    <constant name="Muon_endcap_strip_num_cut_2" value="70"/>
+    <constant name="Muon_endcap_endcap_rmin" value="60*cm"/>
+    <constant name="Muon_endcap_length_cut_1" value="272*cm"/>
+    <constant name="Muon_endcap_length_cut_gap" value="280*cm"/>
+    <constant name="Muon_endcap_length_cut_2" value="500*cm"/>
     <constant name="Muon_endcap_gap" value="5*cm"/>
 
     <constant name="Muon_endcap_iron_gap" value="14*cm"/>
diff --git a/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml b/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml
index 263b3642e13a3dfbfdc9fe7f56cb762f709d9daf..82ea958e652ab2dc1e00ed12cca47e1f52cc7c4b 100644
--- a/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml
+++ b/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml
@@ -260,7 +260,7 @@
     <constant name="Muon_strip_cut2_posz" value="0"/>
 
     <!--standard scale-->
-    <constant name="Muon_standard_scale" value="124*cm"/>    
+    <constant name="Muon_standard_scale" value="94*cm"/>    
     <!--constant name="Muon_total_length" value="8950*mm"/--><!--overlap with coil and hcal-->
     <constant name="Muon_total_length" value="Yoke_endcap_zmin*2"/>
 
diff --git a/Detector/DetCRD/src/Muon/Muon_Barrel_v01_01.cpp b/Detector/DetCRD/src/Muon/Muon_Barrel_v01_01.cpp
index 77204c116772d9394483ce4828acba16839fb2d3..ef3fbc19be41f6dea3ac43f4293b904785eacbc9 100644
--- a/Detector/DetCRD/src/Muon/Muon_Barrel_v01_01.cpp
+++ b/Detector/DetCRD/src/Muon/Muon_Barrel_v01_01.cpp
@@ -56,12 +56,13 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
       xml_dim_t Fe_pos(x_Fe.child(_U(position)));
       xml_dim_t Fe_dim(x_Fe.child(_U(dimensions)));
 
-      double Fe_halfX1 =  (theDetector.constant<double>("Muon_barrel_inner_radius") + theDetector.constant<double>("Muon_barrel_iron_z")) / ( 2 + std::sqrt(3) ) - theDetector.constant<double>("Muon_barrel_iron_z");
+      //double Fe_halfX1 =  (theDetector.constant<double>("Muon_barrel_inner_radius") + theDetector.constant<double>("Muon_barrel_iron_z")) / ( 2 + std::sqrt(3) ) - theDetector.constant<double>("Muon_barrel_iron_z");
+      double Fe_halfX1 = 0.5 * theDetector.constant<double>("Muon_standard_scale");
       double Fe_halfX2 = Fe_halfX1 + theDetector.constant<double>("Muon_barrel_iron_z") * std::sqrt(3);
       //double Fe_halfX1 = 0.5 * 459.403*dd4hep::mm;
       //double Fe_halfX2 = 0.5 * 4754.889 * dd4hep::mm;
-      //double Fe_posZ = -1 * theDetector.constant<double>("Muon_barrel_iron_x1") * ( 2.5 + 1.5 * std::sqrt(3) );
-      double Fe_posZ = -1 * ( theDetector.constant<double>("Muon_barrel_inner_radius") + 0.5 * theDetector.constant<double>("Muon_barrel_iron_z") );
+      double Fe_posZ = -1 * theDetector.constant<double>("Muon_standard_scale") * ( 2.5 + 1.5 * std::sqrt(3) );
+      //double Fe_posZ = -1 * ( theDetector.constant<double>("Muon_barrel_inner_radius") + 0.5 * theDetector.constant<double>("Muon_barrel_iron_z") );
       dd4hep::Assembly env_vol(env_name);
       double env_rot = i0 * 360 * dd4hep::degree / x_env.id();
       dd4hep::Transform3D env_transform(dd4hep::Rotation3D(dd4hep::RotationY(env_rot)),dd4hep::Position(env_pos.x(), 0,env_pos.z()));
diff --git a/Digitization/DigiMuon/src/MuonDigiAlg.cpp b/Digitization/DigiMuon/src/MuonDigiAlg.cpp
index 17703c2f861c3cb1ca6dfe50d4c121a1b1838ec5..800b07625c80f9be59c96e1f94e309b7d506c3dc 100644
--- a/Digitization/DigiMuon/src/MuonDigiAlg.cpp
+++ b/Digitization/DigiMuon/src/MuonDigiAlg.cpp
@@ -143,7 +143,9 @@ StatusCode MuonDigiAlg::execute()
   debug() << m_inputMuonBarrel.fullKey() << " has SimTrackerHit "<< STHCol->size() << endmsg;
   
 
-  int strip_length[8] = {17, 29, 41, 53, 65, 77, 89, 101};
+  // number of strips parallel to beam direction 
+  // in each slayer, each strip width=4cm, so 
+  int strip_length[6] = {26, 38, 50, 62, 74, 86};
 
   // define variables to be repeatedly used later
   unsigned long long cellid; 
@@ -167,7 +169,7 @@ StatusCode MuonDigiAlg::execute()
     debug() << "Position::   " << ddpos.x() << " " << ddpos.y() << " " << ddpos.z() << endmsg;
 
     // if not satisfy energy requirement, skip this hit
-    if ( Edep>0.01 || Edep<0.0001 ) continue;
+    //if ( Edep>0.01 || Edep<0.0001 ) continue;
     
     //calculate hit strip length
     double hit_strip_length = std::sqrt((ddpos.x()-pos[0]*0.1)*(ddpos.x()-pos[0]*0.1)+(ddpos.y()-pos[1]*0.1)*(ddpos.y()-pos[1]*0.1)+(ddpos.z()-pos[2]*0.1)*(ddpos.z()-pos[2]*0.1));
@@ -178,16 +180,24 @@ StatusCode MuonDigiAlg::execute()
       int tempnum = Env + slayer;
       if(tempnum%2 == 0)
       {
-        hit_sipm_length = 115 * 2 - hit_strip_length;
+        // 115 is the number of strips parpendicular 
+        // to the beam axis in long-half-barrel
+        hit_sipm_length = (115 * 4.0)/2 - hit_strip_length;
       }
       else
       {
-        hit_sipm_length = 106 * 2 - hit_strip_length;
+        // 106 is the number of strips parpendicular 
+        // to the beam axis in short-half-barrel
+        hit_sipm_length = (106 * 4.0)/2 - hit_strip_length;
       }
     } 
     if(layer == 2)
     {
-      hit_sipm_length = strip_length[slayer-1] * 2 - hit_strip_length;
+      // number of strips parallel to beam direction 
+      // in each slayer, each strip width=4cm, so 
+      // the number * 4 cm gives the length of strips 
+      // in each slayer parpendicular to the beam axis
+      hit_sipm_length = (strip_length[slayer-1] * 4)/2 - hit_strip_length;
     }
 
     // digitize to ADC