From ef9b78e34bee2d17bb7c6643ee034de0bb6f01c7 Mon Sep 17 00:00:00 2001 From: P-A Loizeau <p.-a.loizeau@gsi.de> Date: Mon, 14 Nov 2022 17:11:55 +0100 Subject: [PATCH] Switch DigiEvent/DigiData from TOF to TZD digis for T0 + fix online data lib <breaks 2 tasks!> Most changes done in CbmDigiData: - Add CbmTzdDigiData class - Change TZD storage class in CbmDigiData - Bump Classdef of CbmDigiData to 3 - Add boost serialization version + Bump to version 3 (default is always 0 in boost) --- algo/data/CMakeLists.txt | 4 ++- core/data/CMakeLists.txt | 23 +++++++------- core/data/CbmDataLinkDef.h | 1 + core/data/base/CbmDigiData.h | 8 +++-- core/data/global/CbmTzdDigiData.h | 53 +++++++++++++++++++++++++++++++ 5 files changed, 74 insertions(+), 15 deletions(-) create mode 100644 core/data/global/CbmTzdDigiData.h diff --git a/algo/data/CMakeLists.txt b/algo/data/CMakeLists.txt index d35d41d14f..41483471e5 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 29151c2da7..bd1d18176b 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 50694aa1c0..be7e64e2e0 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 c2df9257c3..5ba3ffe1d8 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 0000000000..0129f1fcf1 --- /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 -- GitLab