diff --git a/core/data/CMakeLists.txt b/core/data/CMakeLists.txt
index 08fdae3eb5e4e54dbbdb57a4f9243fd80c5565bc..1ee4b62b81a43d2aff4967b96909e43f8ea1e232 100644
--- a/core/data/CMakeLists.txt
+++ b/core/data/CMakeLists.txt
@@ -137,6 +137,9 @@ Set(NO_DICT_SRCS
 # Mask warning from file provided by STAR
 SET_SOURCE_FILES_PROPERTIES(tof/etof/star_rhicf.c PROPERTIES COMPILE_FLAGS -Wno-pointer-sign)
 
+CHANGE_FILE_EXTENSION(*.cxx *.h HEADERS "${SRCS}")
+list(APPEND HEADERS base/CbmDigiData.h global/CbmDigiEvent.h)
+
 set(LINKDEF DataLinkDef.h)
 set(LIBRARY_NAME CbmData)
 set(DEPENDENCIES Base)
diff --git a/core/data/CbmEvent.cxx b/core/data/CbmEvent.cxx
index 0146f3b783a1a61419aa01e230329e9486bcbb9e..84321c41e21cf53ab99f2989ec0eb83a53402a91 100644
--- a/core/data/CbmEvent.cxx
+++ b/core/data/CbmEvent.cxx
@@ -14,6 +14,20 @@
 #include <string>    // for char_traits
 #include <utility>   // for pair
 
+// -----   Add data to event   ---------------------------------------------
+CbmEvent::CbmEvent(const CbmEvent& rhs)
+  : TObject(rhs)
+  , fNumber(rhs.fNumber)
+  , fTimeStart(rhs.fTimeStart)
+  , fTimeEnd(rhs.fTimeEnd)
+  , fNofData(rhs.fNofData)
+  , fVertex(rhs.fVertex)
+  , fMatch(nullptr)
+  , fIndexMap(rhs.fIndexMap)
+{
+  if (fMatch) fMatch = new CbmMatch(*(rhs.fMatch));
+}
+// -------------------------------------------------------------------------
 
 // -----   Add data to event   ---------------------------------------------
 void CbmEvent::AddData(ECbmDataType type, uint32_t index)
diff --git a/core/data/CbmEvent.h b/core/data/CbmEvent.h
index dbeeb141fbc87ee31e4f7275134832ff6e0b7907..67e6785431af23058c95c511ae358a3878dcf6c4 100644
--- a/core/data/CbmEvent.h
+++ b/core/data/CbmEvent.h
@@ -54,6 +54,8 @@ public:
   {
   }
 
+  CbmEvent(const CbmEvent&);
+
   CbmEvent(CbmEvent&&) = default;
 
   /** Destructor **/
@@ -207,10 +209,8 @@ private:
   /** Arrays of indices to data types **/
   std::map<ECbmDataType, std::vector<uint32_t>> fIndexMap;
 
-  CbmEvent(const CbmEvent&);
   CbmEvent& operator=(const CbmEvent&);
 
-
   ClassDef(CbmEvent, 2);
 };
 
diff --git a/core/data/DataLinkDef.h b/core/data/DataLinkDef.h
index 4a734aacf4e881f58e565504a0b483c479cd7fa0..66e9f013d61da20813feaa769fe99b82e2303b2d 100644
--- a/core/data/DataLinkDef.h
+++ b/core/data/DataLinkDef.h
@@ -133,6 +133,17 @@
 #pragma link C++ class CbmDigiVector < CbmPsdDsp> + ;
 #pragma link C++ class vector < CbmEventStore> + ;
 
+#pragma link C++ class std::vector < CbmEvent > + ;
+#pragma link C++ class StsDigiData + ;
+#pragma link C++ class MuchDigiData + ;
+#pragma link C++ class RichDigiData + ;
+#pragma link C++ class TrdDigiData + ;
+#pragma link C++ class TofDigiData + ;
+#pragma link C++ class PsdDigiData + ;
+#pragma link C++ class CbmDigiData + ;
+#pragma link C++ class CbmDigiEvent + ;
+#pragma link C++ class std::vector < CbmDigiEvent > + ;
+
 /* clang-format off */
 #pragma read sourceClass="CbmStsDigi" version="[7]" targetClass="CbmStsDigi" \
     source="int64_t fTime; int32_t fAddress; uint16_t fChannel; uint16_t fCharge" \
diff --git a/core/data/base/CbmDigiData.h b/core/data/base/CbmDigiData.h
index 962fa632dc269a36b5f64eedf63d24f6ab708a98..10aa53796e4c3bc992ed2f9e432e723e9704d958 100644
--- a/core/data/base/CbmDigiData.h
+++ b/core/data/base/CbmDigiData.h
@@ -6,7 +6,12 @@
 #ifndef CBMDIGIDATA_H
 #define CBMDIGIDATA_H 1
 
+#include "CbmMuchDigi.h"
+#include "CbmPsdDigi.h"
+#include "CbmRichDigi.h"
 #include "CbmStsDigi.h"
+#include "CbmTofDigi.h"
+#include "CbmTrdDigi.h"
 
 #include <boost/serialization/access.hpp>
 #include <boost/serialization/vector.hpp>
@@ -35,6 +40,11 @@ struct DigiVec {
 /** Unless a detector-specific implementation for the digi data is present, the
  ** simplest form (std::vector) will be used. **/
 typedef DigiVec<CbmStsDigi> StsDigiData;
+typedef DigiVec<CbmMuchDigi> MuchDigiData;
+typedef DigiVec<CbmRichDigi> RichDigiData;
+typedef DigiVec<CbmTrdDigi> TrdDigiData;
+typedef DigiVec<CbmTofDigi> TofDigiData;
+typedef DigiVec<CbmPsdDigi> PsdDigiData;
 
 
 /** @struct CbmDigiData
@@ -47,11 +57,23 @@ typedef DigiVec<CbmStsDigi> StsDigiData;
  **/
 struct CbmDigiData {
   friend class boost::serialization::access;
+  TofDigiData fT0;
   StsDigiData fSts;
+  MuchDigiData fMuch;
+  RichDigiData fRich;
+  TrdDigiData fTrd;
+  TofDigiData fTof;
+  PsdDigiData fPsd;
   template<class Archive>
   void serialize(Archive& ar, const unsigned int /*version*/)
   {
+    ar& fT0;
     ar& fSts;
+    ar& fMuch;
+    ar& fTrd;
+    ar& fTof;
+    ar& fPsd;
+    ar& fRich;
   }
 };
 
diff --git a/core/data/test/global/CMakeLists.txt b/core/data/test/global/CMakeLists.txt
index 30267f52c608705dc293ba947c662562afc42e28..eeaa12a889a641714a24534b025dccbcda58d068 100644
--- a/core/data/test/global/CMakeLists.txt
+++ b/core/data/test/global/CMakeLists.txt
@@ -6,8 +6,14 @@ Set(INCLUDE_DIRECTORIES
   ${CBMDATA_DIR}/base
   ${CBMDATA_DIR}/global
   ${CBMDATA_DIR}/sts
+  ${CBMDATA_DIR}/much
+  ${CBMDATA_DIR}/rich
+  ${CBMDATA_DIR}/tof
+  ${CBMDATA_DIR}/psd
+  ${CBMDATA_DIR}/trd
+  ${CBMDATA_DIR}/mvd
   ${CBMDATA_DIR}/test/sts
-  ${CMAKE_SOURCE_DIR}/external/ipc/ipc/lib/fles_ipc 
+  ${CMAKE_SOURCE_DIR}/external/ipc/ipc/lib/fles_ipc
   ${BASE_INCLUDE_DIRECTORIES}
   ${GTEST_INCLUDE_DIR}
 )
@@ -49,7 +55,7 @@ Set(CbmDigiEventSources
 )
 CreateGTestExeAndAddTest(_GTestCbmDigiEvent "${INCLUDE_DIRECTORIES}" "${LINK_DIRECTORIES}"
                          "${CbmDigiEventSources}" "${DEPENDENCIES}" "")
-                         
+
 # --- Test CbmDigiTimeslice
 Set(CbmDigiTimesliceSources
   ${CBMDATA_DIR}/global/CbmDigiTimeslice.h
@@ -57,7 +63,7 @@ Set(CbmDigiTimesliceSources
 )
 CreateGTestExeAndAddTest(_GTestCbmDigiTimeslice "${INCLUDE_DIRECTORIES}" "${LINK_DIRECTORIES}"
                          "${CbmDigiTimesliceSources}" "${DEPENDENCIES}" "_GTestCbmDigiEvent")
-                         
+
  # --- Test CbmVertex
 Set(CbmVertexSources
   ${CBMDATA_DIR}/global/CbmVertex.cxx
@@ -65,5 +71,5 @@ Set(CbmVertexSources
 )
 CreateGTestExeAndAddTest(_GTestCbmVertex "${INCLUDE_DIRECTORIES}" "${LINK_DIRECTORIES}"
                          "${CbmVertexSources}" "${DEPENDENCIES}" "_GTestCbmDigiTimeslice")
-                         
+