diff --git a/Digitisers/G2CDArbor/CMakeLists.txt b/Digitisers/G2CDArbor/CMakeLists.txt
index cc6bf3892ef7ebbff268e2f9560acc8609699fbe..85949dbbe28e38d8c68c1868f327ebe30f260579 100644
--- a/Digitisers/G2CDArbor/CMakeLists.txt
+++ b/Digitisers/G2CDArbor/CMakeLists.txt
@@ -11,7 +11,13 @@ gaudi_add_module(G2CDArbor
                       ${GSL_LIBRARIES} 
                       ${LCIO_LIBRARIES}
                       EDM4HEP::edm4hep EDM4HEP::edm4hepDict
+                      DD4hep::DDRec
 )
+
+target_include_directories(G2CDArbor
+  PUBLIC ${LCIO_INCLUDE_DIRS})
+
+
 install(TARGETS G2CDArbor
   EXPORT CEPCSWTargets
   RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT bin
diff --git a/Digitisers/G2CDArbor/src/G2CDArborAlg.cpp b/Digitisers/G2CDArbor/src/G2CDArborAlg.cpp
index a38826b9d85301ed9e5990145e7a21f9b47b9ef8..e90425840a7a7d3f9c1a706d81313cbb557519d1 100644
--- a/Digitisers/G2CDArbor/src/G2CDArborAlg.cpp
+++ b/Digitisers/G2CDArbor/src/G2CDArborAlg.cpp
@@ -508,7 +508,7 @@ StatusCode G2CDArborAlg::execute()
 	       // LayerNum = idDecoder(SimEcalhit)["K-1"];
 
 	       // edm4hep::SimCalorimeterHit aa(SimEcalhit.getCellID(), SimEcalhit.getEnergy(), SimEcalhit.getPosition());
-	       ID_UTIL::CellIDDecoder<edm4hep::SimCalorimeterHit> cellIdDecoder(m_encoder_str);
+               ID_UTIL::CellIDDecoder< decltype(SimEcalhit) > cellIdDecoder(m_encoder_str);
 	       const std::string layerCodingString(m_encoder_str);
 	       const std::string layerCoding(this->GetLayerCoding(layerCodingString));
 	       if(m_readLCIO==false) LayerNum = m_decoder->get(cellid, "layer");//from 0 - 29, 0 is preshower