diff --git a/compact/definitions.xml b/compact/definitions.xml
index cbc74cc828b24d108341aa8338e5d62fc38e73d8..da4300ccaf05dbf327ded34aa72fa732884b4a35 100644
--- a/compact/definitions.xml
+++ b/compact/definitions.xml
@@ -330,8 +330,8 @@ Examples:
     <constant name="VertexTrackerEndcapP_rmax"  value="VertexTrackerBarrel_rmax"/>
     <constant name="VertexTrackerEndcapN_rmax"  value="VertexTrackerBarrel_rmax"/>
 
-    <constant name="VertexTrackerEndcapP_rmin"  value="Beampipe_rmax + 5.0*mm"/>
-    <constant name="VertexTrackerEndcapN_rmin"  value="Beampipe_rmax + 5.0*mm"/>
+    <constant name="VertexTrackerEndcapP_rmin"  value="Beampipe_rmax + 1.0*mm"/>
+    <constant name="VertexTrackerEndcapN_rmin"  value="Beampipe_rmax + 1.0*mm"/>
 
     <constant name="VertexTrackerEndcapP_zmax"  value="300.0*mm"/>
     <constant name="VertexTrackerEndcapN_zmax"  value="300.0*mm"/>
diff --git a/compact/vertex_tracker.xml b/compact/vertex_tracker.xml
index f6f3a2e60a3dbe73875f6d65aca8fed46af1de90..accefce6b35170460dcd85f4314cdc96805127a4 100644
--- a/compact/vertex_tracker.xml
+++ b/compact/vertex_tracker.xml
@@ -130,7 +130,7 @@ Simple carbon fiber support shell.
       <module name="SupportShell" vis="VertexSupportVis">
         <module_component name="CF Shell"
                           material="CarbonFiber" 
-                          sensitive="true"
+                          sensitive="false"
                           width="VertexBarrelShellStave_width" 
                           length="VertexBarrelShell_length"
                           thickness="VertexBarrelShell_thickness" 
diff --git a/scripts/test_matscan.cxx b/scripts/test_matscan.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..d9f52e2945c58126719d526cc45dc8d9dff4f3d3
--- /dev/null
+++ b/scripts/test_matscan.cxx
@@ -0,0 +1,183 @@
+R__LOAD_LIBRARY(libDDCore.so)
+// R__LOAD_LIBRARY(libActsPluginDD4hep.so)
+R__LOAD_LIBRARY(libDDG4.so)
+R__LOAD_LIBRARY(libDDG4IO.so)
+#include "DD4hep/Detector.h"
+#include "DD4hep/DetElement.h"
+#include "DD4hep/Objects.h"
+#include "DD4hep/Detector.h"
+#include "DDG4/Geant4Data.h"
+#include "DDRec/CellIDPositionConverter.h"
+#include "DDRec/SurfaceManager.h"
+#include "DDRec/Surface.h"
+
+#include "TCanvas.h"
+#include "TChain.h"
+#include "TGeoMedium.h"
+#include "TGeoManager.h"
+#include "DDRec/MaterialScan.h"
+#include "DDRec/MaterialManager.h"
+#include "DD4hep/Detector.h"
+#include "DD4hep/Printout.h"
+#include "fmt/core.h"
+
+#include <iostream>
+#include <fstream>
+
+// #include "Acts/Geometry/TrackingGeometry.hpp"
+// #include "Acts/Geometry/TrackingVolume.hpp"
+// #include "Acts/Plugins/DD4hep/ConvertDD4hepDetector.hpp"
+using namespace dd4hep;
+using namespace dd4hep::rec;
+
+void test_matscan(const char* compact = "athena.xml", TString face="z"){
+
+  dd4hep::Detector& detector = dd4hep::Detector::getInstance();
+  detector.fromCompact(compact);
+  MaterialScan matscan(detector); 
+
+  fmt::print("\n");
+  fmt::print("All detector subsystem names:\n");
+  for(const auto&  d : detector.detectors() ) {
+    fmt::print("  {}\n", d.first);
+  }
+  return;
+
+  TString det_list[14]={"TrackerBarrel_Inner","TrackerBarrel_Outer","TrackerEndcapN_Inner","TrackerEndcapN_Outer","TrackerEndcapP_Inner","TrackerEndcapP_Outer","TrackerSubAssembly_Inner","TrackerSubAssembly_Outer","VertexBarrel","VertexBarrelSubAssembly","VertexEndcapN","VertexEndcapP","VertexEndcapSubAssembly","cb_DIRC"};
+  for (int dd=0;dd<14;dd++){
+  TString detname = det_list[dd];
+  matscan.setDetector(detname.Data());      
+
+  double x0=0,y0=0,z0=0,x1,y1,z1;  // cm
+  double epsilon=1e-4; // (mm) default 1e-4: Materials with a thickness smaller than epsilon (default 1e-4=1mu
+  const char* fmt1 = "%7.2f %7.2f %7.2f %5d %-20s %3.0f %8.3f %8.4f %11.4f %11.4f %10.3f %8.2f %11.6f %11.6f %7.2f %7.2f %7.2f\n";
+  const char* fmt2 = "%7.2f %7.2f %7.2f %5d %-20s %3.0f %8.3f %8.4f %11.6g %11.6g %10.3f %8.2f %11.6f %11.6f %7.2f %7.2f %7.2f\n";
+
+
+  // x1 = 100; y1 = 100; z1 = 100; 
+  // y1 = 100;
+  double a1,a2,a3;
+  for(a3=-100;a3<101;a3=a3+200){
+    TString fname = Form("/global/u2/s/shujie/eic/output/matscan/%s_%s%g.dat",detname.Data(),face.Data(),a3);
+    FILE * pFile;
+    pFile = fopen (fname,"w");
+
+  for(a1=-100;a1<100;a1=a1+1){
+  for(a2=-100;a2<100;a2=a2+1){
+    if (face=="x"){
+      y1=a1; z1=a2; x1=a3;
+    }
+    else if (face=="y"){
+      x1=a1; z1=a2; y1=a3;
+    }
+    else if (face=="z"){
+      x1=a1; y1=a2; z1=a3;
+    }
+
+    Vector3D p0(x0, y0, z0), p1(x1, y1, z1);
+    Vector3D end, direction;
+    direction = (p1-p0).unit();
+  	const auto& placements = matscan.scan(x0,y0,z0,x1,y1,z1,epsilon); 
+  	// matscan.print(x0,y0,z0,x1,y1,z1,epsilon);
+    // return;
+    // Vector3D end, direction;
+    double sum_x0 = 0;
+    double sum_lambda = 0;
+    double path_length = 0, total_length = 0;
+
+    // TString fname = Form("/global/u2/s/shujie/eic_dir/matscan_%g_%g_%g.dat",x1,y1,z1);
+
+  	for (unsigned i=0;i<placements.size();i++){
+
+      TGeoMaterial* mat=placements[i].first->GetMaterial();
+      double length = placements[i].second;
+      double nx0     = length / mat->GetRadLen();
+      double nLambda = length / mat->GetIntLen();
+      sum_x0        += nx0;
+      sum_lambda    += nLambda;
+      path_length   += length;
+      total_length  += length;
+      end = p0 + total_length * direction;
+      const char* fmt = mat->GetRadLen() >= 1e5 ? fmt2 : fmt1;
+
+      // fprintf(pFile, "%d\n",i+1);
+      fprintf(pFile, fmt,x1, y1, z1, i+1, mat->GetName(), mat->GetZ(), mat->GetA(),
+                mat->GetDensity(), mat->GetRadLen(), mat->GetIntLen(), 
+                length, path_length, sum_x0, sum_lambda, end[0], end[1], end[2]);
+
+      // ::printf(fmt, i+1, mat->GetName(), mat->GetZ(), mat->GetA(),
+      //           mat->GetDensity(), mat->GetRadLen(), mat->GetIntLen(), 
+      //           length, path_length, sum_x0, sum_lambda, end[0], end[1], end[2]);
+      //  // mat->Print();
+
+  	} 
+  }
+    cout<<detname<<"  "<<x1<<","<<y1<<","<<z1<<endl;
+    // cout<<x1<<","<<y1<<","<<z1<<": "<<placements.size()<<"  "<<sum_x0<<"  "<<total_length<<endl;
+  }	
+  fclose (pFile);
+
+  }
+}
+}
+
+/*
+  <!-- <include ref="ecal_barrel_hybrid.xml"/> -->
+<TGeoManager::CountLevels>: max level = 5, max placements = 2796
+Error in <TGeoVoxelFinder::SortAll>: Volume B0Tracker: Cannot make slices on any axis
+Error in <TGeoVoxelFinder::SortAll>: Volume ForwardRomanPot_Station_1: Cannot make slices on any axis
+
+
+{  B0APF_BeamlineMagnet
+B0PF_BeamlineMagnet
+B0Tracker
+B1APF_BeamlineMagnet
+B1PF_BeamlineMagnet
+B2PF_BeamlineMagnet
+BPFR1_BeamlineMagnet
+BackwardTOF
+BarrelTOF
+BeamPipe
+EcalEndcapN
+EcalEndcapP
+ForwardOffMTracker
+ForwardRomanPot_Station_1
+ForwardTOF
+ForwardTRD
+GaseousRICH
+HcalBarrel
+HcalEndcapN
+HcalEndcapP
+Q1APF_BeamlineMagnet
+Q1BPF_BeamlineMagnet
+Q2PF_BeamlineMagnet
+QPFC1_BeamlineMagnet
+QPFC2_BeamlineMagnet
+QPFC3_BeamlineMagnet
+QPFC4_BeamlineMagnet
+QPFR1_BeamlineMagnet
+QPFR2_BeamlineMagnet
+SolenoidCoilBarrel
+SolenoidCoilEndcapN
+SolenoidCoilEndcapP
+TOFSubAssembly
+TrackerBarrel_Inner
+TrackerBarrel_Outer
+TrackerEndcapN_Inner
+TrackerEndcapN_Outer
+TrackerEndcapP_Inner
+TrackerEndcapP_Outer
+TrackerSubAssembly_Inner
+TrackerSubAssembly_Outer
+VertexBarrel
+VertexBarrelSubAssembly
+VertexEndcapN
+VertexEndcapP
+VertexEndcapSubAssembly
+cb_DIRC
+ce_MRICH
+ffi_ZDC_ECAL
+ffi_ZDC_HCAL}
+
+
+*/