diff --git a/cmake/CEPCSWDependencies.cmake b/cmake/CEPCSWDependencies.cmake
index c063ffc75e002a275cf298e06f06adefceada188..2778a89e7591e711ba3f697767adcf819c6338d4 100644
--- a/cmake/CEPCSWDependencies.cmake
+++ b/cmake/CEPCSWDependencies.cmake
@@ -18,6 +18,7 @@ Find all the dependencies here, so in each package user don't need to find the p
 - podio
 - ROOT
 - CKF
+- RDAnalysis
 #]]
 
 ##############################################################################
@@ -65,3 +66,12 @@ else()
 endif()
 
 find_package(FastJet)
+
+
+if (CEPCSW_USE_SYSTEM_RDANALYSIS)
+  message("Try to use an existing installation of RDAnalysis")
+  find_package(RDAnalysis)
+else()
+  message("Try to use an internal installation of RDAnalysis")
+  include("${CMAKE_CURRENT_LIST_DIR}/internal_rdana.cmake")
+endif()
diff --git a/cmake/internal_rdana.cmake b/cmake/internal_rdana.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..48e2cbdfcd2765e59620e22129e9c8b3431975ee
--- /dev/null
+++ b/cmake/internal_rdana.cmake
@@ -0,0 +1,10 @@
+include(FetchContent)
+
+FetchContent_Declare(
+  RDAnalysis
+  GIT_REPOSITORY https://code.ihep.ac.cn/cepc/externals/RDAnalysis.git
+  GIT_TAG  4c24156a9ccec59c2d728ff9e1824743f1819850
+  )
+
+FetchContent_MakeAvailable(RDAnalysis)
+