diff --git a/Digitisers/DCHDigi/CMakeLists.txt b/Digitisers/DCHDigi/CMakeLists.txt
index e49e06929e580df953d2814b1cb40f1404c6c5c3..33fa374effccc19a7fabd6fb841a3e34f368c067 100644
--- a/Digitisers/DCHDigi/CMakeLists.txt
+++ b/Digitisers/DCHDigi/CMakeLists.txt
@@ -1,7 +1,5 @@
 gaudi_subdir(DCHDigi v0r0)
 
-find_package(Geant4 REQUIRED ui_all vis_all)
-include(${Geant4_USE_FILE})
 find_package(DD4hep COMPONENTS DDG4 REQUIRED)
 find_package(EDM4HEP REQUIRED )
 message("EDM4HEP_INCLUDE_DIRS: ${EDM4HEP_INCLUDE_DIR}")
diff --git a/Digitisers/DCHDigi/src/DCHDigiAlg.cpp b/Digitisers/DCHDigi/src/DCHDigiAlg.cpp
index f77f0118a3aa138d2a064548b71253403dd217c7..d4089bbf9ad53b11864e908a9110f096eb975173 100644
--- a/Digitisers/DCHDigi/src/DCHDigiAlg.cpp
+++ b/Digitisers/DCHDigi/src/DCHDigiAlg.cpp
@@ -8,7 +8,7 @@
 
 #include "DD4hep/Detector.h"
 #include <DD4hep/Objects.h>
-#include "G4ThreeVector.hh"
+#include "DDRec/Vector3D.h"
 
 
 #include <array>
@@ -90,12 +90,12 @@ StatusCode DCHDigiAlg::execute()
     float min_distance = 999 ;
     for(unsigned int i=0; i< simhit_size; i++)
     {
-        G4ThreeVector west(0,0,0);
-        G4ThreeVector east(0,0,0);
-        G4ThreeVector pos(iter->second.at(i).getPosition()[0], iter->second.at(i).getPosition()[1], iter->second.at(i).getPosition()[2]);
-        G4ThreeVector numerator = (east-west).cross(west-pos) ;
-        G4ThreeVector denominator = (east-west) ;
-        float distance = numerator.mag()/denominator.mag() ;
+        dd4hep::rec::Vector3D  west(0,0,0);
+        dd4hep::rec::Vector3D  east(0,0,0);
+        dd4hep::rec::Vector3D  pos(iter->second.at(i).getPosition()[0], iter->second.at(i).getPosition()[1], iter->second.at(i).getPosition()[2]);
+        dd4hep::rec::Vector3D  numerator = (east-west).cross(west-pos) ;
+        dd4hep::rec::Vector3D  denominator = (east-west) ;
+        float distance = numerator.r()/denominator.r() ;
         std::cout<<"distance="<<distance<<std::endl;
         if(distance < min_distance){
             min_distance = distance;