diff --git a/algo/data/CMakeLists.txt b/algo/data/CMakeLists.txt index d35d41d14f9c440e456a653d40b1df030111f753..41483471e560ed4789631b07cd754621613b162c 100644 --- a/algo/data/CMakeLists.txt +++ b/algo/data/CMakeLists.txt @@ -23,7 +23,9 @@ set(SRCS ${CMAKE_SOURCE_DIR}/core/data/psd/CbmPsdDigi.cxx ${CMAKE_SOURCE_DIR}/core/data/psd/CbmPsdAddress.cxx - + + ${CMAKE_SOURCE_DIR}/core/data/global/CbmTzdDigi.cxx + ${CMAKE_SOURCE_DIR}/core/data/raw/StsXyterMessage.cxx ) diff --git a/core/data/CMakeLists.txt b/core/data/CMakeLists.txt index 29151c2da7ca25e5b8d215b88ae3b47abc97cdd1..bd1d18176b3b21eac6f54a886087a7bd82091055 100644 --- a/core/data/CMakeLists.txt +++ b/core/data/CMakeLists.txt @@ -13,7 +13,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/tof ${CMAKE_CURRENT_SOURCE_DIR}/rich ${CMAKE_CURRENT_SOURCE_DIR}/psd - ${CMAKE_CURRENT_SOURCE_DIR}/global + ${CMAKE_CURRENT_SOURCE_DIR}/global ) @@ -125,39 +125,40 @@ set(NO_DICT_SRCS SET_SOURCE_FILES_PROPERTIES(tof/etof/star_rhicf.c PROPERTIES COMPILE_FLAGS -Wno-pointer-sign) -list(APPEND HEADERS base/CbmDigiData.h global/CbmDigiEvent.h global/CbmDigiTimeslice.h -sts/CbmStsDigiData.h much/CbmMuchDigiData.h rich/CbmRichDigiData.h trd/CbmTrdDigiData.h -tof/CbmTofDigiData.h psd/CbmPsdDigiData.h) +list(APPEND HEADERS base/CbmDigiData.h global/CbmDigiEvent.h global/CbmDigiTimeslice.h +sts/CbmStsDigiData.h much/CbmMuchDigiData.h rich/CbmRichDigiData.h trd/CbmTrdDigiData.h +tof/CbmTofDigiData.h global/CbmTzdDigiData.h psd/CbmPsdDigiData.h) set(LIBRARY_NAME CbmData) set(LINKDEF ${LIBRARY_NAME}LinkDef.h) -set(PUBLIC_DEPENDENCIES +set(PUBLIC_DEPENDENCIES FairRoot::Base - ROOT::Core - ROOT::Matrix + ROOT::Core + ROOT::Matrix ROOT::Physics external::fles_ipc xpu ) -set(PRIVATE_DEPENDENCIES +set(PRIVATE_DEPENDENCIES ROOT::EG FairLogger::FairLogger - ${VMCLIB} + ${VMCLIB} ) generate_cbm_library() # Install file which has no corresponding source file Install(FILES - CbmDefs.h + CbmDefs.h base/CbmDigiData.h base/CbmDigiVector.h much/CbmMuchDigiData.h psd/CbmPsdDigiData.h - rich/CbmRichDigiData.h rich/CbmRichRingLight.h + rich/CbmRichDigiData.h rich/CbmRichRingLight.h sts/CbmStsDigiData.h trd/CbmTrdDigiData.h tof/CbmTofDigiData.h + global/CbmTzdDigiData.h global/CbmDigiEvent.h global/CbmDigiTimeslice.h raw/bitmask_operators.hpp raw/StsXyterFinalHit.h raw/PsdGbtDataFormat-v0.00.h raw/PsdGbtDataFormat-v1.00.h DESTINATION include diff --git a/core/data/CbmDataLinkDef.h b/core/data/CbmDataLinkDef.h index 50694aa1c0da9dc0b5ba3fd3cd2b309de7ee6d55..be7e64e2e052879ee503d2a71f07ab09d6c493b7 100644 --- a/core/data/CbmDataLinkDef.h +++ b/core/data/CbmDataLinkDef.h @@ -100,6 +100,7 @@ // --- data/global #pragma link C++ class CbmGlobalTrack + ; #pragma link C++ class CbmTzdDigi + ; +#pragma link C++ class CbmTzdDigiData + ; #pragma link C++ class CbmVertex + ; #pragma link C++ class std::vector < CbmDigiEvent>; diff --git a/core/data/base/CbmDigiData.h b/core/data/base/CbmDigiData.h index c2df9257c3c27f9e5e58df273348d8899281242c..5ba3ffe1d8fa24f57fb3c018368d45e0c2dcc0ee 100644 --- a/core/data/base/CbmDigiData.h +++ b/core/data/base/CbmDigiData.h @@ -12,6 +12,7 @@ #include "CbmStsDigiData.h" #include "CbmTofDigiData.h" #include "CbmTrdDigiData.h" +#include "CbmTzdDigiData.h" #include <boost/serialization/access.hpp> #include <boost/serialization/base_object.hpp> @@ -30,7 +31,7 @@ class CbmDigiData { public: - CbmTofDigiData fT0; ///< Beam monitor data + CbmTzdDigiData fT0; ///< Beam monitor data CbmStsDigiData fSts; ///< STS data CbmMuchDigiData fMuch; ///< MUCH data CbmRichDigiData fRich; ///< RICH data @@ -43,6 +44,7 @@ public: template<class Archive> void serialize(Archive& ar, const unsigned int /*version*/) { + // note, version is always the latest when saving ar& fT0; ar& fSts; ar& fMuch; @@ -54,7 +56,7 @@ public: // --- ROOT serializer #ifndef NO_ROOT - ClassDefNV(CbmDigiData, 2); + ClassDefNV(CbmDigiData, 3); #endif /** @brief Clear content **/ @@ -70,5 +72,5 @@ public: } }; - +BOOST_CLASS_VERSION(CbmDigiData, 3) #endif /* CBMDIGIDATA_H */ diff --git a/core/data/global/CbmTzdDigiData.h b/core/data/global/CbmTzdDigiData.h new file mode 100644 index 0000000000000000000000000000000000000000..0129f1fcf15aa5dba453028d45505cff540e1d1d --- /dev/null +++ b/core/data/global/CbmTzdDigiData.h @@ -0,0 +1,53 @@ +/* Copyright (C) 2022 Facility for Antiproton and Ion Research in Europe, Darmstadt + SPDX-License-Identifier: GPL-3.0-only + Authors: Pierre-Alain Loizeau [committer] */ + +#ifndef CBMTZDDIGIDATA_H +#define CBMTZDDIGIDATA_H 1 + + +#include "CbmTzdDigi.h" + +#ifndef NO_ROOT +#include <Rtypes.h> // for ClassDef +#endif + +#include <boost/serialization/access.hpp> +#include <boost/serialization/base_object.hpp> +#include <boost/serialization/vector.hpp> + +#include <vector> + +/** @class CbmTzdDigiData + ** @brief Container class for CbmTzdDigi objects + ** @author Volker Friese <v.friese@gsi.de> + ** @since 7.12.2022 + ** @version 1.0 + ** + ** Container class for transporting CbmTzdDigi objects. + ** The current implementation is the simplest one: a std::vector. + **/ +class CbmTzdDigiData { + +public: + std::vector<CbmTzdDigi> fDigis = {}; ///< Data vector + + friend class boost::serialization::access; + + /** @brief BOOST serializer**/ + template<class Archive> + void serialize(Archive& ar, const unsigned int /*version*/) + { + ar& fDigis; + } + + /** @brief Clear content **/ + void Clear() { fDigis.clear(); } + + // --- ROOT serializer +#ifndef NO_ROOT + ClassDefNV(CbmTzdDigiData, 1); +#endif +}; + +#endif