diff --git a/core/data/psd/CbmPsdDigi.h b/core/data/psd/CbmPsdDigi.h
index 6a4b84765ac675c9cbfe5488c79e07975c5715f4..8e3d8ac6ab872d8386f87ef25424ee217da1f162 100644
--- a/core/data/psd/CbmPsdDigi.h
+++ b/core/data/psd/CbmPsdDigi.h
@@ -24,6 +24,10 @@
 #include "CbmDefs.h"        // for ECbmModuleId::kPsd
 #include "CbmPsdAddress.h"  // for CbmPsdAddress
 
+#include <boost/serialization/access.hpp>
+#include <boost/serialization/base_object.hpp>
+
+
 class CbmPsdDigi
 {
 
@@ -33,23 +37,25 @@ class CbmPsdDigi
        **/
       CbmPsdDigi();
 
+
       /** @brief Constructor with assignment
        ** @param address Unique channel address
        ** @param edep    Energy deposition
-       ** @param time    Time [adc counts]
+       ** @param time    Time [ns]
        **/
       CbmPsdDigi( UInt_t address, Double_t edep, Double_t time );
 
+
       /** @brief Constructor with detailed assignment.
        ** @param moduleID      Module Identifier
        ** @param sectionID     Section Identifier
        ** @param edep          Energy deposition
-       ** @param time          Time [adc counts]
+       ** @param time          Time [ns]
        **/
       CbmPsdDigi( UInt_t moduleId, UInt_t sectionId, Double_t edep, Double_t time );
 
 
-      /** @brief Copy constructor **/
+      /**  Copy constructor **/
       CbmPsdDigi(const CbmPsdDigi&);
 
 
@@ -57,17 +63,19 @@ class CbmPsdDigi
       CbmPsdDigi(CbmPsdDigi&&);
 
 
-      /** @brief Destructor **/
-      ~CbmPsdDigi();
-
-
       /** Assignment operator  **/
       CbmPsdDigi& operator=(const CbmPsdDigi&);
 
 
-      /** Move assignment operator  **/
+      /** Move Assignment operator  **/
       CbmPsdDigi& operator=(CbmPsdDigi&&);
 
+
+      /** Destructor **/
+      ~CbmPsdDigi();
+
+
+
       /** @brief Address
        ** @return Unique channel address (see CbmPsdAddress)
        **/
@@ -134,6 +142,18 @@ class CbmPsdDigi
        **/
       std::string ToString() const;
 
+//additional
+      UInt_t GetAmpl() const { return fuAmpl; };
+      UInt_t GetZL() const { return fuZL; };
+      Double_t GetEdepWfm() const { return fdEdepWfm; };
+      void SetAmpl(UInt_t ampl) { fuAmpl = ampl; }
+      void SetZL(UInt_t zl) { fuZL = zl; }
+      void SetEdepWfm( Double_t edep ) { fdEdepWfm = edep; }
+
+      Float_t  ffFitHarmonic1 = 0.;
+      Float_t  ffFitHarmonic2 = 0.;
+      Float_t  ffFitR2 = 999.;
+      Float_t  ffFitEdep = 0.;
 
    private:
 
@@ -141,7 +161,29 @@ class CbmPsdDigi
       Double_t fdTime    = -1.;     /// Time of measurement
       UInt_t   fuAddress =  0;      /// Unique channel address
 
-      ClassDefNV(CbmPsdDigi, 3);
+//additional
+      UInt_t   fuAmpl    =  0;
+      UInt_t   fuZL      =  0;
+      Double_t fdEdepWfm =  0.;
+
+      /// BOOST serialization interface
+      friend class boost::serialization::access;
+      template <class Archive>
+      void serialize(Archive& ar, const unsigned int /*version*/)
+      {
+            ar& ffFitHarmonic1;
+            ar& ffFitHarmonic2;
+            ar& ffFitR2;
+            ar& ffFitEdep;
+            ar& fdEdep;
+            ar& fdTime;
+            ar& fuAddress;
+            ar& fuAmpl;
+            ar& fuZL;
+            ar& fdEdepWfm;
+      }
+
+      ClassDefNV(CbmPsdDigi, 4);
 };
 
-#endif // CBMPSDDIGIM_H
+#endif // CBMPSDDIGI_H
diff --git a/core/data/rich/CbmRichDigi.h b/core/data/rich/CbmRichDigi.h
index 6aa71b4ff9e853850d1912c90297e6e7e1b4f204..bb036c3b59b26e3ea4cb9a0447ab4691255191f6 100644
--- a/core/data/rich/CbmRichDigi.h
+++ b/core/data/rich/CbmRichDigi.h
@@ -16,6 +16,8 @@
 
 #include "CbmDefs.h"     // for kRich
 
+#include <boost/serialization/access.hpp>
+#include <boost/serialization/base_object.hpp>
 
 #ifndef DATA_RICH_CBMRICHDIGI_H_
 #define DATA_RICH_CBMRICHDIGI_H_
@@ -96,6 +98,16 @@ private:
 	 */
 	Double_t fToT;
 
+	/// BOOST serialization interface
+	friend class boost::serialization::access;
+	template <class Archive>
+	void serialize(Archive& ar, const unsigned int /*version*/)
+	{
+		ar& fAddress;
+		ar& fTime;
+		ar& fToT;
+	}
+
 	ClassDefNV(CbmRichDigi, 3);
 };
 
diff --git a/core/data/trd/CbmTrdDigi.h b/core/data/trd/CbmTrdDigi.h
index f85c9d82ddd63e991d1c5a46eaa5ad1426cf8894..6bc98ce69e83aee9e067eddfb2e1aa07a423d0d6 100644
--- a/core/data/trd/CbmTrdDigi.h
+++ b/core/data/trd/CbmTrdDigi.h
@@ -8,6 +8,9 @@
 
 #include "CbmDefs.h"     // for kTrd
 
+#include <boost/serialization/access.hpp>
+#include <boost/serialization/base_object.hpp>
+
 class CbmTrdDigi
 {
 public:
@@ -202,6 +205,16 @@ private:
   static const Int_t fgkFlgOffset =  26;
   static const Int_t fgkTrgOffset =  29;
   static const Int_t fgkTypOffset =  31;
+
+  /// BOOST serialization interface
+  friend class boost::serialization::access;
+  template <class Archive>
+  void serialize(Archive& ar, const unsigned int /*version*/)
+  {
+    ar& fInfo;
+    ar& fCharge;
+    ar& fTime;
+  }
   
   ClassDefNV(CbmTrdDigi, 3);   // Production ready TRD digit
 };