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 };