diff --git a/CMakeLists.txt b/CMakeLists.txt
index 31d0ca3c160d69676892f6686f42c85eb813a5e2..287eacde9f4294c43eeff34d6573f35192583cff 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,7 +12,14 @@ SET(CMAKE_CXX_STANDARD 17)
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror")
 
 find_package(DD4hep REQUIRED COMPONENTS DDCore DDG4)
-find_package(Acts REQUIRED COMPONENTS Core PluginTGeo PluginDD4hep )
+find_package(ActsDD4hep)
+if(ActsDD4hep_FOUND)
+  add_compile_definitions(USE_ACTSDD4HEP)
+  set(ActsDD4hep ActsDD4hep::ActsDD4hep)
+else()
+  find_package(Acts REQUIRED COMPONENTS Core PluginIdentification PluginTGeo PluginDD4hep)
+  set(ActsDD4hep ActsCore ActsPluginDD4hep)
+endif()
 
 #-----------------------------------------------------------------------------------
 set(a_lib_name IP6)
@@ -41,10 +48,10 @@ dd4hep_add_plugin(${a_lib_name}
   src/ZeroDegreeCalorimeterEcalWSciFi_geo.cpp
   src/ZeroDegreeCalorimeterEcal_geo.cpp
   src/ZeroDegreeCalorimeterSampling_geo.cpp
-  USES ActsCore ActsPluginDD4hep ROOT::Core ROOT::Gdml
+  USES ${ActsDD4hep} ROOT::Core ROOT::Gdml
   )
 target_link_libraries(${a_lib_name}
-  PUBLIC DD4hep::DDCore  DD4hep::DDRec DD4hep::DDG4
+  PUBLIC DD4hep::DDCore DD4hep::DDRec DD4hep::DDG4
   )
 
 #-----------------------------------------------------------------------------------
diff --git a/src/B0Preshower_geo.cpp b/src/B0Preshower_geo.cpp
index 1cfb91cb664d2bc0ecd84f5639f970b960b20a61..d918658c61c04d8940bb03d43c095e6d18767810 100644
--- a/src/B0Preshower_geo.cpp
+++ b/src/B0Preshower_geo.cpp
@@ -1,7 +1,11 @@
 #include <map>
 #include "DD4hep/DetFactoryHelper.h"
+
+#if defined(USE_ACTSDD4HEP)
+#include "ActsDD4hep/ActsExtension.hpp"
+#else
 #include "Acts/Plugins/DD4hep/ActsExtension.hpp"
-#include "Acts/Definitions/Units.hpp"
+#endif
 
 using namespace std;
 using namespace dd4hep;
diff --git a/src/B0Tracker_geo.cpp b/src/B0Tracker_geo.cpp
index 394408acd4a488b950d89011570f207429154d22..e44b4170441f44fe5f678b6e1c04d0f4fa7bd2f6 100644
--- a/src/B0Tracker_geo.cpp
+++ b/src/B0Tracker_geo.cpp
@@ -7,10 +7,11 @@
 #include "XML/Layering.h"
 #include "XML/Utilities.h"
 
-
+#if defined(USE_ACTSDD4HEP)
+#include "ActsDD4hep/ActsExtension.hpp"
+#else
 #include "Acts/Plugins/DD4hep/ActsExtension.hpp"
-#include "Acts/Definitions/Units.hpp"
-
+#endif
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::rec;
diff --git a/src/IP6BeamPipe.cpp b/src/IP6BeamPipe.cpp
index b88a8840445db9e5b71be1c6d39b0be9ff94253c..ebcf4810b4ddf23ae4d4a81d1ef4ef2af6437ee4 100644
--- a/src/IP6BeamPipe.cpp
+++ b/src/IP6BeamPipe.cpp
@@ -11,8 +11,11 @@
 #include "TMath.h"
 #include <XML/Helper.h>
 
-#include "Acts/Definitions/Units.hpp"
+#if defined(USE_ACTSDD4HEP)
+#include "ActsDD4hep/ActsExtension.hpp"
+#else
 #include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+#endif
 
 using namespace std;
 using namespace dd4hep;
@@ -61,10 +64,10 @@ static Ref_t create_detector(Detector& det, xml_h e, SensitiveDetector /* sens *
   // Add extension for the beampipe
   //Acts::ActsExtension* sdExtension = new Acts::ActsExtension();
   //sdExtension->addType("beampipe", "layer");
-  //sdExtension->addValue(0.001 * Acts::UnitConstants::mm, "r_min", "envelope");
-  //sdExtension->addValue(0.001 * Acts::UnitConstants::mm, "r_max", "envelope");
-  //sdExtension->addValue(0.001 * Acts::UnitConstants::mm, "z_min", "envelope");
-  //sdExtension->addValue(0.001 * Acts::UnitConstants::mm, "z_max", "envelope");
+  //sdExtension->addValue(0.001, "r_min", "envelope"); // Acts::UnitConstants::mm == 1
+  //sdExtension->addValue(0.001, "r_max", "envelope"); // Acts::UnitConstants::mm == 1
+  //sdExtension->addValue(0.001, "z_min", "envelope"); // Acts::UnitConstants::mm == 1
+  //sdExtension->addValue(0.001, "z_max", "envelope"); // Acts::UnitConstants::mm == 1
   //sdet.addExtension<Acts::ActsExtension>(sdExtension);
 
 
@@ -82,10 +85,10 @@ static Ref_t create_detector(Detector& det, xml_h e, SensitiveDetector /* sens *
     //beamPipeExtension->addType("beampipe", "beampipe");
     //beamPipeExtension->addType("passive cylinder", "layer");
     beamPipeExtension->addType("beampipe", "layer");
-    beamPipeExtension->addValue(0.001 * Acts::UnitConstants::mm, "r_min", "envelope");
-    beamPipeExtension->addValue(0.001 * Acts::UnitConstants::mm, "r_max", "envelope");
-    beamPipeExtension->addValue(0.001 * Acts::UnitConstants::mm, "z_min", "envelope");
-    beamPipeExtension->addValue(0.001 * Acts::UnitConstants::mm, "z_max", "envelope");
+    beamPipeExtension->addValue(0.001, "r_min", "envelope"); // Acts::UnitConstants::mm == 1
+    beamPipeExtension->addValue(0.001, "r_max", "envelope"); // Acts::UnitConstants::mm == 1
+    beamPipeExtension->addValue(0.001, "z_min", "envelope"); // Acts::UnitConstants::mm == 1
+    beamPipeExtension->addValue(0.001, "z_max", "envelope"); // Acts::UnitConstants::mm == 1
 
     central_det.addExtension<Acts::ActsExtension>(beamPipeExtension);
     // TODO add material binning
diff --git a/src/OffMomentumTracker_geo.cpp b/src/OffMomentumTracker_geo.cpp
index 9ff73619b7d4d2a48a383de0182d4c0b91e10c62..188c7b0a6a954f9cf80379de72977f4ceaea69c7 100644
--- a/src/OffMomentumTracker_geo.cpp
+++ b/src/OffMomentumTracker_geo.cpp
@@ -2,9 +2,12 @@
 #include "DD4hep/DetFactoryHelper.h"
 #include "XML/Utilities.h"
 #include "XML/Layering.h"
-#include "Acts/Plugins/DD4hep/ActsExtension.hpp"
-#include "Acts/Definitions/Units.hpp"
 
+#if defined(USE_ACTSDD4HEP)
+#include "ActsDD4hep/ActsExtension.hpp"
+#else
+#include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+#endif
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::detail;
diff --git a/src/Timepix_geo.cpp b/src/Timepix_geo.cpp
index a45c1f44f85bd936f726ab64a83c3799a6066b69..2ccf98d2d2f5d1c79739455e489c8f86d3fc585e 100644
--- a/src/Timepix_geo.cpp
+++ b/src/Timepix_geo.cpp
@@ -4,7 +4,11 @@
 #include "DDRec/Surface.h"
 #include "DDRec/DetectorData.h"
 
+//#if defined(USE_ACTSDD4HEP)
+//#include "ActsDD4hep/ActsExtension.hpp"
+//#else
 //#include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+//#endif
 
 using namespace std;
 using namespace dd4hep;