diff --git a/cmake/FindGenFit.cmake b/cmake/FindGenFit.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..6a3cf181bb45f63a5608fb6cc3eb8692fe1ef89b
--- /dev/null
+++ b/cmake/FindGenFit.cmake
@@ -0,0 +1,55 @@
+# - Try to find GenFit
+# Defines:
+#
+#  GenFit_FOUND
+#  GenFit_INCLUDE_DIRS
+#  GenFit_LIBRARIES
+#
+# Imports:
+#
+#  GenFit::genfit2
+#
+# Usage of the target instead of the variables is advised
+
+# Find quietly if already found before
+if(DEFINED CACHE{GenFit_INCLUDE_DIRS})
+  set(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY YES)
+endif()
+
+find_path(GenFit_INCLUDE_DIRS NAMES GFGbl.h
+          HINTS ${GENFIT_ROOT_DIR}/include $ENV{GENFIT_ROOT_DIR}/include
+                ${GenFit_DIR}/include $ENV{GenFit_DIR}/include
+                ${CMAKE_PREFIX_PATH}/include
+)
+find_library(GenFit_LIBRARIES NAMES genfit2
+          HINTS $ENV{GENFIT_ROOT_DIR}/lib ${GENFIT_ROOT_DIR}/lib
+                ${GenFit_DIR}/lib ${GenFit_DIR}/lib64
+                $ENV{GenFit_DIR}/lib $ENV{GenFit_DIR}/lib64
+                ${CMAKE_PREFIX_PATH}/lib ${CMAKE_PREFIX_PATH}/lib64
+)
+
+# handle the QUIETLY and REQUIRED arguments and set GENFIT_FOUND to TRUE if
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GenFit DEFAULT_MSG GenFit_INCLUDE_DIRS GenFit_LIBRARIES)
+
+mark_as_advanced(GenFit_FOUND GenFit_INCLUDE_DIRS GenFit_LIBRARIES)
+
+# Modernisation: create an interface target to link against
+if(TARGET GenFit::genfit2)
+    return()
+endif()
+if(GenFit_FOUND)
+  add_library(GenFit::genfit2 IMPORTED INTERFACE)
+  target_include_directories(GenFit::genfit2 SYSTEM INTERFACE "${GenFit_INCLUDE_DIRS}")
+  target_link_libraries(GenFit::genfit2 INTERFACE "${GenFit_LIBRARIES}")
+
+  # Display the imported target for the user to know
+  if(NOT ${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY)
+    message(STATUS "  Import target: GenFit::genfit2")
+  endif()
+endif()
+
+if(COMMAND __deprecate_var_for_target)
+  variable_watch(GenFit_INCLUDE_DIRS __deprecate_var_for_target)
+endif()