From 4cd87fb368a5415985b32ed94930035f6aabaf6a Mon Sep 17 00:00:00 2001 From: yzach Date: Mon, 28 Dec 2020 14:27:59 +0100 Subject: [PATCH 01/14] Add pad trigger data, collection, and container class definitions --- .../MuonRDO/MuonRDO/NSW_PadTriggerRawData.h | 30 +++++++++++++++++++ .../MuonRDO/NSW_PadTriggerRawDataCollection.h | 19 ++++++++++++ .../MuonRDO/NSW_PadTriggerRawDataContainer.h | 22 ++++++++++++++ .../MuonRDO/src/NSW_PadTriggerRawData.cxx | 5 ++++ .../src/NSW_PadTriggerRawDataCollection.cxx | 10 +++++++ .../src/NSW_PadTriggerRawDataContainer.cxx | 15 ++++++++++ 6 files changed, 101 insertions(+) create mode 100644 MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h create mode 100644 MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataCollection.h create mode 100644 MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h create mode 100644 MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx create mode 100644 MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataCollection.cxx create mode 100644 MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h new file mode 100644 index 00000000000..0ca6c4f0253 --- /dev/null +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h @@ -0,0 +1,30 @@ +#ifndef MUONRDO_NSW_PADTRIGGERRAWDATA_H +#define MUONRDO_NSW_PADTRIGGERRAWDATA_H + +#include +#include + +namespace Muon { +class NSW_PadTriggerRawData { +using hitlist_t = std::vector; +private: + static constexpr std::size_t BC_COUNT{ 3 }; + + // Metadata + uint8_t m_sectorID; + uint8_t m_endcap; + uint16_t m_BCID; + uint32_t m_L1ID; + + // Pad trigger input + std::array m_hitlists; + + // Pad trigger decision + std::array m_bandIDs; + std::array m_phiIDs; + // Coincidence counts for each of the two wedges, per band ID. + std::array, 4> m_coincidences; +}; +} // namespace Muon + +#endif // MUONRDO_NSW_PADTRIGGERRAWDATA_H \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataCollection.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataCollection.h new file mode 100644 index 00000000000..486d221404b --- /dev/null +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataCollection.h @@ -0,0 +1,19 @@ +#ifndef MUONRDO_NSW_PADTRIGGERRAWDATACOLLECTION +#define MUONRDO_NSW_PADTRIGGERRAWDATACOLLECTION + +#include "DataModel/DataVector.h" +#include "Identifier/IdentifierHash.h" + +#include "MuonRDO/NSW_PadTriggerRawData.h" + +namespace Muon { +class NSW_PadTriggerRawDataCollection : public DataVector { +public: + NSW_PadTriggerRawDataCollection(IdentifierHash identifierHash); + IdentifierHash identifierHash() const; +private: + IdentifierHash m_identifierHash; +}; +} // namespace Muon + +#endif // MUONRDO_NSW_PADTRIGGERRAWDATACOLLECTION \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h new file mode 100644 index 00000000000..c2aab83643c --- /dev/null +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h @@ -0,0 +1,22 @@ +#ifndef MUONRDO_NSW_PADTRIGGERRAWDATACONTAINER +#define MUONRDO_NSW_PADTRIGGERRAWDATACONTAINER + +#include "MuonRDO/NSW_PadTriggerRawDataCollection.h" + +#include "EventContainers/IdentifiableContainer.h" + +#include "SGTools/CLASS_DEF.h" + +namespace Muon { +class NSW_PadTriggerRawDataContainer : public IdentifiableContainer { +public: + NSW_PadTriggerRawDataContainer(unsigned int hashMax); + + static const CLID& classID(); + const CLID& clID() const override; +}; +} // namespace Muon + +CLASS_DEF( Muon::NSW_PadTriggerRawDataContainer , 1156203348 , 1 ) + +#endif // MUONRDO_NSW_PADTRIGGERRAWDATACONTAINER \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx new file mode 100644 index 00000000000..15085f872b8 --- /dev/null +++ b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx @@ -0,0 +1,5 @@ +#include "MuonRDO/NSW_PadTriggerRawData.h" + +namespace Muon { + // TODO: impl here +} // namespace Muon \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataCollection.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataCollection.cxx new file mode 100644 index 00000000000..9f047bb0da5 --- /dev/null +++ b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataCollection.cxx @@ -0,0 +1,10 @@ +#include "MuonRDO/NSW_PadTriggerRawDataCollection.h" + +namespace Muon { +NSW_PadTriggerRawDataCollection::NSW_PadTriggerRawDataCollection(IdentifierHash identifierHash) + : m_identifierHash(identifierHash) { } + +IdentifierHash NSW_PadTriggerRawDataCollection::identifierHash() const { + return m_identifierHash; +} +} // namespace Muon \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx new file mode 100644 index 00000000000..48ff55094fc --- /dev/null +++ b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx @@ -0,0 +1,15 @@ +#include "MuonRDO/NSW_PadTriggerRawDataContainer.h" + +namespace Muon { +NSW_PadTriggerRawDataContainer::NSW_PadTriggerRawDataContainer(unsigned int hashMax) + : IdentifiableContainer(hashMax) { } + +const CLID& NSW_PadTriggerRawDataContainer::classID() { + return ClassID_traits::ID(); +} + +const CLID& NSW_PadTriggerRawDataContainer::clID() const { + return classID(); +} + +} // namespace Muon \ No newline at end of file -- GitLab From 90f70c27da4ef6447d74ab48cab0435095a47eb5 Mon Sep 17 00:00:00 2001 From: yzach Date: Mon, 28 Dec 2020 15:02:19 +0100 Subject: [PATCH 02/14] Add persistent representations of pad trigger data classes --- .../NSW_PadTriggerRawDataCollection_p1.h | 14 ++++++++++ .../NSW_PadTriggerRawDataContainer_p1.h | 14 ++++++++++ .../MuonRDO/NSW_PadTriggerRawData_p1.h | 27 +++++++++++++++++++ .../MuonRDO/MuonRDO/NSW_PadTriggerRawData.h | 3 +++ 4 files changed, 58 insertions(+) create mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCollection_p1.h create mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h create mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawData_p1.h diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCollection_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCollection_p1.h new file mode 100644 index 00000000000..d4b7bc360bb --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCollection_p1.h @@ -0,0 +1,14 @@ +#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACOLLECTION_P1_H +#define MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACOLLECTION_P1_H + +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawData_p1.h" + +#include + +namespace Muon { +struct NSW_PadTriggerRawDataCollection_p1 { + std::vector m_data; +}; +} // namespace Muon + +#endif // MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACOLLECTION_P1_H diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h new file mode 100644 index 00000000000..cd2c072aa7b --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h @@ -0,0 +1,14 @@ +#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACONTAINER_P1_H +#define MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACONTAINER_P1_H + +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCollection_p1.h" + +#include + +namespace Muon { +struct NSW_PadTriggerRawDataContainer_p1 { + std::vector m_collections; +}; +} // namespace Muon + +#endif // MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACONTAINER_P1_H diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawData_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawData_p1.h new file mode 100644 index 00000000000..3318b19b253 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawData_p1.h @@ -0,0 +1,27 @@ +#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATA_P1_H +#define MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATA_P1_H + +#include +#include + +namespace Muon { +struct NSW_PadTriggerRawData_p1 { +using hitlist_t = std::vector; + // Metadata + uint8_t m_sectorID; + uint8_t m_endcap; + uint16_t m_BCID; + uint32_t m_L1ID; + + // Pad trigger input + hitlist_t m_hitlists[3]; + + // Pad trigger decision + uint8_t m_bandIDs[4]; + uint8_t m_phiIDs[4]; + // Coincidence counts for each of the two wedges, per band ID. + uint8_t m_coincidences[4][2]; +}; +} // namespace Muon + +#endif // MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATA_P1_H \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h index 0ca6c4f0253..2cd086996fd 100644 --- a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h @@ -6,7 +6,10 @@ namespace Muon { class NSW_PadTriggerRawData { +// TODO: Perhaps move this out of the class? using hitlist_t = std::vector; +friend class NSW_PadTriggerRawDataCnv_p1; + private: static constexpr std::size_t BC_COUNT{ 3 }; -- GitLab From a0487ed0d572e84f8aebc8bf7e837dfdbc35fe22 Mon Sep 17 00:00:00 2001 From: yzach Date: Mon, 28 Dec 2020 16:50:22 +0100 Subject: [PATCH 03/14] Fix pad trigger container and collection persistent representation --- .../MuonRDO/NSW_PadTriggerRawDataCollection_p1.h | 4 ++-- .../MuonRDO/NSW_PadTriggerRawDataContainer_p1.h | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCollection_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCollection_p1.h index d4b7bc360bb..43b2a8d7e0c 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCollection_p1.h +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCollection_p1.h @@ -6,8 +6,8 @@ #include namespace Muon { -struct NSW_PadTriggerRawDataCollection_p1 { - std::vector m_data; +struct NSW_PadTriggerRawDataCollection_p1 : public std::vector { + unsigned int m_identifierHash; }; } // namespace Muon diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h index cd2c072aa7b..9f8089588db 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h @@ -6,9 +6,8 @@ #include namespace Muon { -struct NSW_PadTriggerRawDataContainer_p1 { - std::vector m_collections; -}; +struct NSW_PadTriggerRawDataContainer_p1 : public std::vector + { }; } // namespace Muon #endif // MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACONTAINER_P1_H -- GitLab From 9fca8eecbb947dd2efd1c67f8f604e6e9c9a9067 Mon Sep 17 00:00:00 2001 From: yzach Date: Mon, 28 Dec 2020 17:14:42 +0100 Subject: [PATCH 04/14] Add pad trigger data and container transient -> persistent converters --- .../MuonRDO/NSW_PadTriggerRawDataCnv_p1.h | 22 ++++++++++++ .../NSW_PadTriggerRawDataContainerCnv_p1.h | 21 ++++++++++++ .../MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx | 32 +++++++++++++++++ .../NSW_PadTriggerRawDataContainerCnv_p1.cxx | 34 +++++++++++++++++++ .../MuonRDO/NSW_PadTriggerRawDataContainer.h | 1 + .../src/NSW_PadTriggerRawDataContainer.cxx | 4 +++ 6 files changed, 114 insertions(+) create mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h create mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.h create mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.cxx diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h new file mode 100644 index 00000000000..192a3dc2f9a --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h @@ -0,0 +1,22 @@ +#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACNV_P1_H +#define MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACNV_P1_H + +#include "MuonRDO/NSW_PadTriggerRawData.h" +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawData_p1.h" + +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" + +#include + +class MsgStream; + +namespace Muon { +class NSW_PadTriggerRawDataCnv_p1 : public T_AthenaPoolTPCnvBase { +public: + void persToTrans(const NSW_PadTriggerRawData_p1* persistentObj, NSW_PadTriggerRawData* transientObj, MsgStream &log) final; + void transToPers(const NSW_PadTriggerRawData* transientObj, NSW_PadTriggerRawData_p1* persistentObj, MsgStream &log) final; + NSW_PadTriggerRawData* createTransient(const NSW_PadTriggerRawData_p1* persistentObj, MsgStream& log) final; +}; +} // namespace Muon + +#endif // MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACNV_P1_H \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.h new file mode 100644 index 00000000000..b1055f59e54 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.h @@ -0,0 +1,21 @@ +#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACONTAINERCNV_P1_H +#define MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACONTAINERCNV_P1_H + +#include "MuonRDO/NSW_PadTriggerRawDataContainer.h" +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h" +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h" + +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" + +namespace Muon { +class NSW_PadTriggerRawDataContainerCnv_p1 : public T_AthenaPoolTPCnvBase { +public: + void persToTrans(const NSW_PadTriggerRawDataContainer_p1* persistentObj, NSW_PadTriggerRawDataContainer* transientObj, MsgStream &log) final; + void transToPers(const NSW_PadTriggerRawDataContainer* transientObj, NSW_PadTriggerRawDataContainer_p1* persistentObj, MsgStream &log) final; + NSW_PadTriggerRawDataContainer* createTransient(const NSW_PadTriggerRawDataContainer_p1* persistentObj, MsgStream& log) final; +private: + NSW_PadTriggerRawDataCnv_p1 m_dataConverter; +}; +} // namespace Muon + +#endif // MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACONTAINERCNV_P1_H \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx new file mode 100644 index 00000000000..331f4c14e15 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx @@ -0,0 +1,32 @@ +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h" + +namespace Muon { +void NSW_PadTriggerRawDataCnv_p1::persToTrans(const NSW_PadTriggerRawData_p1* persistentObj, NSW_PadTriggerRawData* transientObj, MsgStream &log) { + // TODO implement + log << MSG::VERBOSE << "NSW_PadTriggerRawDataCnv_p1::persToTrans() called" << std::endl; +} + +void NSW_PadTriggerRawDataCnv_p1::transToPers(const NSW_PadTriggerRawData* transientObj, NSW_PadTriggerRawData_p1* persistentObj, MsgStream &log) { + log << MSG::VERBOSE << "NSW_PadTriggerRawDataCnv_p1::transToPers() called" << std::endl; + + persistentObj->m_sectorID = transientObj->m_sectorID; + persistentObj->m_endcap = transientObj->m_endcap; + persistentObj->m_BCID = transientObj->m_BCID; + persistentObj->m_L1ID = transientObj->m_L1ID; + + std::copy(transientObj->m_hitlists.begin(), transientObj->m_hitlists.begin() + 4, persistentObj->m_hitlists); + std::copy(transientObj->m_bandIDs.begin(), transientObj->m_bandIDs.begin() + 4, persistentObj->m_bandIDs); + std::copy(transientObj->m_phiIDs.begin(), transientObj->m_phiIDs.begin() + 4, persistentObj->m_phiIDs); + + for(std::size_t i{}; i < 4; i++) { + const auto& cur = transientObj->m_coincidences[i]; + std::copy(cur.begin(), cur.begin() + 2, persistentObj->m_coincidences[i]); + } +} + +NSW_PadTriggerRawData* NSW_PadTriggerRawDataCnv_p1::createTransient(const NSW_PadTriggerRawData_p1* persistentObj, MsgStream& log) { + // TODO implement + log << MSG::VERBOSE << "NSW_PadTriggerRawDataCnv_p1::createTransient() called" << std::endl; + return new NSW_PadTriggerRawData; +} +} // namespace Muon \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.cxx new file mode 100644 index 00000000000..d39667c9dcd --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.cxx @@ -0,0 +1,34 @@ +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.h" + +namespace Muon { +void NSW_PadTriggerRawDataContainerCnv_p1::persToTrans(const NSW_PadTriggerRawDataContainer_p1* persistentObj, NSW_PadTriggerRawDataContainer* transientObj, MsgStream &log) { + // TODO implement + log << MSG::VERBOSE << "NSW_PadTriggerRawDataContainerCnv_p1::persToTrans() called" << std::endl; +} + +void NSW_PadTriggerRawDataContainerCnv_p1::transToPers(const NSW_PadTriggerRawDataContainer* transientObj, NSW_PadTriggerRawDataContainer_p1* persistentObj, MsgStream &log) { + // Can use T_AthenaPoolTPCnvIDCont / T_AthenaPoolTPPtrVectorCnv here, should we? + log << MSG::VERBOSE << "NSW_PadTriggerRawDataContainerCnv_p1::transToPers() called" << std::endl; + + persistentObj->reserve(transientObj->size()); + // Iterate over collections + for (const auto& tCollection : *transientObj) { + NSW_PadTriggerRawDataCollection_p1 pCollection{}; + pCollection.reserve(tCollection->size()); + pCollection.m_identifierHash = tCollection->identifierHash(); + // Convert each element in the transient collection to its persistent form + for (std::size_t i{}; i < tCollection->size(); i++) { + NSW_PadTriggerRawData_p1 pData{}; + m_dataConverter.transToPers(tCollection->at(i), &pData, log); + pCollection.push_back(std::move(pData)); + } + persistentObj->push_back(pCollection); + } +} + +NSW_PadTriggerRawDataContainer* NSW_PadTriggerRawDataContainerCnv_p1::createTransient(const NSW_PadTriggerRawDataContainer_p1* persistentObj, MsgStream& log) { + // TODO implement + log << MSG::VERBOSE << "NSW_PadTriggerRawDataContainerCnv_p1::createTransient() called" << std::endl; + return new NSW_PadTriggerRawDataContainer{}; +} +} // namespace Muon \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h index c2aab83643c..7fcfa7a23ab 100644 --- a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h @@ -10,6 +10,7 @@ namespace Muon { class NSW_PadTriggerRawDataContainer : public IdentifiableContainer { public: + NSW_PadTriggerRawDataContainer(); NSW_PadTriggerRawDataContainer(unsigned int hashMax); static const CLID& classID(); diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx index 48ff55094fc..06f7945df24 100644 --- a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx +++ b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx @@ -1,6 +1,10 @@ #include "MuonRDO/NSW_PadTriggerRawDataContainer.h" namespace Muon { + +NSW_PadTriggerRawDataContainer::NSW_PadTriggerRawDataContainer() + : IdentifiableContainer(0) { } + NSW_PadTriggerRawDataContainer::NSW_PadTriggerRawDataContainer(unsigned int hashMax) : IdentifiableContainer(hashMax) { } -- GitLab From 87a71ad9da52618234441995c496245c6793386d Mon Sep 17 00:00:00 2001 From: yzach Date: Mon, 28 Dec 2020 18:07:52 +0100 Subject: [PATCH 05/14] Add AthenaPool converters for pad trigger containers --- .../MuonEventAthenaPool/CMakeLists.txt | 4 ++-- .../src/NSW_PadTriggerRawDataContainerCnv.cxx | 15 +++++++++++++ .../src/NSW_PadTriggerRawDataContainerCnv.h | 22 +++++++++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.h diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/CMakeLists.txt b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/CMakeLists.txt index acf8af9189a..78f33d64010 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/CMakeLists.txt +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/CMakeLists.txt @@ -40,8 +40,8 @@ find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) # Component(s) in the package: atlas_add_poolcnv_library( MuonEventAthenaPoolPoolCnv src/*.cxx - FILES MuonSimData/MuonSimDataCollection.h MuonSimData/CscSimDataCollection.h MuonRDO/MdtCsmContainer.h MuonRDO/RpcPadContainer.h MuonRDO/TgcRdoContainer.h MuonRDO/CscRawDataContainer.h MuonRDO/RpcSectorLogicContainer.h MuonRDO/STGC_RawDataContainer.h MuonRDO/MM_RawDataContainer.h MuonDigitContainer/MdtDigitContainer.h MuonDigitContainer/RpcDigitContainer.h MuonDigitContainer/TgcDigitContainer.h MuonDigitContainer/CscDigitContainer.h MuonDigitContainer/MmDigitContainer.h MuonDigitContainer/sTgcDigitContainer.h CscCalibEvent/CscCalibDataContainer.h MuonPrepRawData/CscPrepDataContainer.h MuonPrepRawData/CscStripPrepDataContainer.h MuonPrepRawData/RpcPrepDataContainer.h MuonPrepRawData/TgcPrepDataContainer.h MuonPrepRawData/MdtPrepDataContainer.h MuonPrepRawData/MMPrepDataContainer.h MuonPrepRawData/sTgcPrepDataContainer.h MuonTrigCoinData/TgcCoinDataContainer.h MuonTrigCoinData/RpcCoinDataContainer.h MuonChamberT0s/ChamberT0s.h src/MuonMeasurements.h - TYPES_WITH_NAMESPACE Muon::STGC_RawDataContainer Muon::MM_RawDataContainer Muon::CscPrepDataContainer Muon::CscStripPrepRawDataContainer Muon::RpcPrepDataContainer Muon::TgcPrepDataContainer Muon::MdtPrepDataContainer Muon::MMPrepDataContainer Muon::sTgcPrepDataContainer Muon::TgcCoinDataContainer Muon::ChamberT0s TPCnv::MuonMeasurements + FILES MuonSimData/MuonSimDataCollection.h MuonSimData/CscSimDataCollection.h MuonRDO/MdtCsmContainer.h MuonRDO/RpcPadContainer.h MuonRDO/TgcRdoContainer.h MuonRDO/CscRawDataContainer.h MuonRDO/RpcSectorLogicContainer.h MuonRDO/STGC_RawDataContainer.h MuonRDO/MM_RawDataContainer.h MuonRDO/NSW_PadTriggerRawDataContainer MuonDigitContainer/MdtDigitContainer.h MuonDigitContainer/RpcDigitContainer.h MuonDigitContainer/TgcDigitContainer.h MuonDigitContainer/CscDigitContainer.h MuonDigitContainer/MmDigitContainer.h MuonDigitContainer/sTgcDigitContainer.h CscCalibEvent/CscCalibDataContainer.h MuonPrepRawData/CscPrepDataContainer.h MuonPrepRawData/CscStripPrepDataContainer.h MuonPrepRawData/RpcPrepDataContainer.h MuonPrepRawData/TgcPrepDataContainer.h MuonPrepRawData/MdtPrepDataContainer.h MuonPrepRawData/MMPrepDataContainer.h MuonPrepRawData/sTgcPrepDataContainer.h MuonTrigCoinData/TgcCoinDataContainer.h MuonTrigCoinData/RpcCoinDataContainer.h MuonChamberT0s/ChamberT0s.h src/MuonMeasurements.h + TYPES_WITH_NAMESPACE Muon::STGC_RawDataContainer Muon::MM_RawDataContainer Muon::NSW_PadTriggerRawDataContainer Muon::CscPrepDataContainer Muon::CscStripPrepRawDataContainer Muon::RpcPrepDataContainer Muon::TgcPrepDataContainer Muon::MdtPrepDataContainer Muon::MMPrepDataContainer Muon::sTgcPrepDataContainer Muon::TgcCoinDataContainer Muon::ChamberT0s TPCnv::MuonMeasurements INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaPoolUtilities AtlasSealCLHEP MuonRDO MuonRIO_OnTrack MuonSegment DataModel SGTools StoreGateLib SGtests AthenaPoolCnvSvcLib Identifier GaudiKernel RPCcablingInterfaceLib CscCalibEvent MuonEventTPCnv MuonReadoutGeometry MuonDigitContainer MuonIdHelpersLib MuonChamberT0s MuonPrepRawData MuonTrigCoinData MuonSimData ) diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.cxx b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.cxx new file mode 100644 index 00000000000..5a7868a6cd8 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.cxx @@ -0,0 +1,15 @@ +#include "NSW_PadTriggerRawDataContainerCnv.h" + +NSW_PadTriggerRawDataContainerCnv::NSW_PadTriggerRawDataContainerCnv(ISvcLocator* svcLocator) + : NSW_PadTriggerRawDataContainerCnvBase(svcLocator) { } + +NSW_PadTriggerRawDataContainer_PERS* NSW_PadTriggerRawDataContainerCnv::createPersistent(Muon::NSW_PadTriggerRawDataContainer* transientContainer) { + MsgStream log{ msgSvc(), "NSW_PadTriggerRawDataContainerCnv" }; + log << MSG::VERBOSE << "NSW_PadTriggerRawDataContainerCnv::createPersistent(): converting container" << std::endl; + return m_TPConverter.createPersistent(transientContainer, log); +} + +Muon::NSW_PadTriggerRawDataContainer* NSW_PadTriggerRawDataContainerCnv::createTransient() { + // TODO implement + return new Muon::NSW_PadTriggerRawDataContainer{}; +} \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.h b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.h new file mode 100644 index 00000000000..75d9fd324b3 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.h @@ -0,0 +1,22 @@ +#ifndef MUONEVENTATHENAPOOL_NSW_PADTRIGGERRAWDATACONTAINERCNV_H +#define MUONEVENTATHENAPOOL_NSW_PADTRIGGERRAWDATACONTAINERCNV_H + +#include "AthenaPoolCnvSvc/T_AthenaPoolCustomCnv.h" + +#include "MuonRDO/NSW_PadTriggerRawDataContainer.h" +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h" +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.h" + +using NSW_PadTriggerRawDataContainer_PERS = Muon::NSW_PadTriggerRawDataContainer_p1; +using NSW_PadTriggerRawDataContainerCnvBase = T_AthenaPoolCustomCnv; + +class NSW_PadTriggerRawDataContainerCnv : public NSW_PadTriggerRawDataContainerCnvBase { +public: + NSW_PadTriggerRawDataContainerCnv(ISvcLocator* svcLocator); + NSW_PadTriggerRawDataContainer_PERS* createPersistent(Muon::NSW_PadTriggerRawDataContainer* transientContainer) final; + Muon::NSW_PadTriggerRawDataContainer* createTransient() final; +private: + Muon::NSW_PadTriggerRawDataContainerCnv_p1 m_TPConverter; +}; + +#endif \ No newline at end of file -- GitLab From 4de60c5aff093d96cb419bb3d2c9b906f26f6001 Mon Sep 17 00:00:00 2001 From: yzach Date: Tue, 29 Dec 2020 11:04:23 +0100 Subject: [PATCH 06/14] Add pad trigger RDO persistent classes to dictionary --- .../MuonEventTPCnv/MuonEventTPCnv/MuonEventTPCnvDict.h | 6 ++++++ .../MuonCnv/MuonEventTPCnv/MuonEventTPCnv/selection.xml | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonEventTPCnvDict.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonEventTPCnvDict.h index 97935fc5f83..883a4a0f62d 100755 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonEventTPCnvDict.h +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonEventTPCnvDict.h @@ -39,6 +39,7 @@ #include "MuonEventTPCnv/MuonDigitContainer/CscSimDataCollection_p2.h" #include "MuonEventTPCnv/MuonRDO/STGC_RawDataContainer_p1.h" #include "MuonEventTPCnv/MuonRDO/MM_RawDataContainer_p1.h" +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h" struct MuonEventTPCnvDict { @@ -84,6 +85,11 @@ struct MuonEventTPCnvDict Muon::MM_RawDataContainer_p1 m_v30; Muon::MM_RawDataCollection_p1 m_v31; std::vector< Muon::MM_RawData_p1 > m_v32; + Muon::NSW_PadTriggerRawData_p1 m_v33; + Muon::NSW_PadTriggerRawDataCollection_p1 m_v34; + Muon::NSW_PadTriggerRawDataContainer_p1 m_v35; + std::vector m_v36; + std::vector m_v37; }; #endif // MUONEVENTTPCNV_MUONEVENTTPCNVDICT_H diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/selection.xml b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/selection.xml index af69268d331..7c753b416d4 100755 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/selection.xml +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/selection.xml @@ -143,4 +143,10 @@ + + + + + + -- GitLab From 98848d3c4013d8a23e2a6bc06913ff37e78ddaa5 Mon Sep 17 00:00:00 2001 From: yzach Date: Tue, 29 Dec 2020 14:35:04 +0100 Subject: [PATCH 07/14] Add getters/setters and constructor to pad trigger data class --- .../MuonRDO/MuonRDO/NSW_PadTriggerRawData.h | 20 +++++++++- .../MuonRDO/src/NSW_PadTriggerRawData.cxx | 39 ++++++++++++++++++- 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h index 2cd086996fd..841784e95ab 100644 --- a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h @@ -6,16 +6,17 @@ namespace Muon { class NSW_PadTriggerRawData { -// TODO: Perhaps move this out of the class? using hitlist_t = std::vector; friend class NSW_PadTriggerRawDataCnv_p1; private: + // TODO: Perhaps move this out of the class / make public? static constexpr std::size_t BC_COUNT{ 3 }; // Metadata uint8_t m_sectorID; uint8_t m_endcap; + // BCID of the "L1A" bunch crossing (not of the additional two recorded) uint16_t m_BCID; uint32_t m_L1ID; @@ -27,6 +28,23 @@ private: std::array m_phiIDs; // Coincidence counts for each of the two wedges, per band ID. std::array, 4> m_coincidences; +public: + NSW_PadTriggerRawData() = default; + // Maybe too many parameters - can refactor class to hold e.g. struct TriggerMetadata, PadTriggerDecision, etc. + NSW_PadTriggerRawData(uint8_t sectorID, uint8_t endcap, uint16_t BCID, uint32_t L1ID, + std::array hitlists, std::array bandIDs, std::array phiIDs, + std::array, 4> m_coincidences); + + uint8_t sectorID() const; + uint8_t endcap() const; + uint16_t BCID() const; + uint32_t L1ID() const; + + std::array hitlists() const; + + std::array bandIDs() const; + std::array phiIDs() const; + std::array, 4> coincidences() const; }; } // namespace Muon diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx index 15085f872b8..2603e1eab2e 100644 --- a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx +++ b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx @@ -1,5 +1,42 @@ #include "MuonRDO/NSW_PadTriggerRawData.h" namespace Muon { - // TODO: impl here +NSW_PadTriggerRawData::NSW_PadTriggerRawData(uint8_t sectorID, uint8_t endcap, uint16_t BCID, uint32_t L1ID, + std::array hitlists, std::array bandIDs, std::array phiIDs, + std::array, 4> coincidences) + : m_sectorID(sectorID), m_endcap(endcap), m_BCID(BCID), m_L1ID(L1ID), m_hitlists(hitlists), m_bandIDs(bandIDs), + m_phiIDs(phiIDs), m_coincidences(coincidences) { } + +uint8_t NSW_PadTriggerRawData::sectorID() const { + return m_sectorID; +} + +uint8_t NSW_PadTriggerRawData::endcap() const { + return m_endcap; +} + +uint16_t NSW_PadTriggerRawData::BCID() const { + return m_BCID; +} + +uint32_t NSW_PadTriggerRawData::L1ID() const { + return m_L1ID; +} + +std::array NSW_PadTriggerRawData::hitlists() const { + return m_hitlists; +} + +std::array NSW_PadTriggerRawData::bandIDs() const { + return m_bandIDs; +} + +std::array NSW_PadTriggerRawData::phiIDs() const { + return m_phiIDs; +} + +std::array, 4> NSW_PadTriggerRawData::coincidences() const { + return m_coincidences; +} + } // namespace Muon \ No newline at end of file -- GitLab From 0dca0b0265599b99a8405773aa9c632cca271742 Mon Sep 17 00:00:00 2001 From: yzach Date: Wed, 30 Dec 2020 10:48:16 +0100 Subject: [PATCH 08/14] Add pad trigger data persistent-to-transient conversion methods --- .../src/NSW_PadTriggerRawDataContainerCnv.cxx | 14 +++++++++++-- .../MuonRDO/NSW_PadTriggerRawDataCnv_p1.h | 1 - .../NSW_PadTriggerRawDataContainerCnv_p1.h | 1 - .../MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx | 20 ++++++++++++------- .../NSW_PadTriggerRawDataContainerCnv_p1.cxx | 17 ++++++++++------ 5 files changed, 36 insertions(+), 17 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.cxx b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.cxx index 5a7868a6cd8..10f2b002f6f 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.cxx +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.cxx @@ -10,6 +10,16 @@ NSW_PadTriggerRawDataContainer_PERS* NSW_PadTriggerRawDataContainerCnv::createPe } Muon::NSW_PadTriggerRawDataContainer* NSW_PadTriggerRawDataContainerCnv::createTransient() { - // TODO implement - return new Muon::NSW_PadTriggerRawDataContainer{}; + MsgStream log(msgSvc(), "NSW_PadTriggerRawDataContainer"); + log << MSG::VERBOSE + << "NSW_PadTriggerRawDataContainerCnv::createTransient(): reading container from persistent storage" + << std::endl; + // UUID of of NSW_PadTriggerRawDataContainer_p1 + static pool::Guid p1_guid("2B1C6988-7B4C-4332-A2F5-83DC1D219650"); + if(compareClassGuid(p1_guid)) { + std::unique_ptr pContainer + { poolReadObject() }; + return m_TPConverter.createTransient(pContainer.get(), log); + } + throw std::runtime_error{ "No persistent version match for GUID on-disk" }; } \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h index 192a3dc2f9a..49838492b23 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h @@ -15,7 +15,6 @@ class NSW_PadTriggerRawDataCnv_p1 : public T_AthenaPoolTPCnvBasem_sectorID = persistentObj->m_sectorID; + transientObj->m_endcap = persistentObj->m_endcap; + transientObj->m_BCID = persistentObj->m_BCID; + transientObj->m_L1ID = persistentObj->m_L1ID; + + std::copy(persistentObj->m_hitlists, persistentObj->m_hitlists + 3, transientObj->m_hitlists.begin()); + std::copy(persistentObj->m_bandIDs, persistentObj->m_bandIDs + 4, transientObj->m_bandIDs.begin()); + std::copy(persistentObj->m_phiIDs, persistentObj->m_phiIDs + 4, transientObj->m_phiIDs.begin()); + for (std::size_t i{}; i < 4; i++) { + const auto& cur = persistentObj->m_coincidences[i]; + std::copy(cur, cur + 2, transientObj->m_coincidences[i].begin()); + } } void NSW_PadTriggerRawDataCnv_p1::transToPers(const NSW_PadTriggerRawData* transientObj, NSW_PadTriggerRawData_p1* persistentObj, MsgStream &log) { @@ -14,7 +25,7 @@ void NSW_PadTriggerRawDataCnv_p1::transToPers(const NSW_PadTriggerRawData* trans persistentObj->m_BCID = transientObj->m_BCID; persistentObj->m_L1ID = transientObj->m_L1ID; - std::copy(transientObj->m_hitlists.begin(), transientObj->m_hitlists.begin() + 4, persistentObj->m_hitlists); + std::copy(transientObj->m_hitlists.begin(), transientObj->m_hitlists.begin() + 3, persistentObj->m_hitlists); std::copy(transientObj->m_bandIDs.begin(), transientObj->m_bandIDs.begin() + 4, persistentObj->m_bandIDs); std::copy(transientObj->m_phiIDs.begin(), transientObj->m_phiIDs.begin() + 4, persistentObj->m_phiIDs); @@ -24,9 +35,4 @@ void NSW_PadTriggerRawDataCnv_p1::transToPers(const NSW_PadTriggerRawData* trans } } -NSW_PadTriggerRawData* NSW_PadTriggerRawDataCnv_p1::createTransient(const NSW_PadTriggerRawData_p1* persistentObj, MsgStream& log) { - // TODO implement - log << MSG::VERBOSE << "NSW_PadTriggerRawDataCnv_p1::createTransient() called" << std::endl; - return new NSW_PadTriggerRawData; -} } // namespace Muon \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.cxx index d39667c9dcd..ec6a38ae9de 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.cxx +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.cxx @@ -2,8 +2,18 @@ namespace Muon { void NSW_PadTriggerRawDataContainerCnv_p1::persToTrans(const NSW_PadTriggerRawDataContainer_p1* persistentObj, NSW_PadTriggerRawDataContainer* transientObj, MsgStream &log) { - // TODO implement log << MSG::VERBOSE << "NSW_PadTriggerRawDataContainerCnv_p1::persToTrans() called" << std::endl; + for (const auto& pCollection : *persistentObj) { + auto tCollection = std::make_unique(pCollection.m_identifierHash); + tCollection->reserve(pCollection.size()); + for (std::size_t i{}; i < pCollection.size(); i++) { + tCollection->push_back(m_dataConverter.createTransient(&pCollection.at(i), log)); + } + auto idHash = tCollection->identifierHash(); + if(transientObj->addCollection(tCollection.release(), idHash).isFailure()) { + throw std::runtime_error{ "Could not add collection to transient container!" }; + } + } } void NSW_PadTriggerRawDataContainerCnv_p1::transToPers(const NSW_PadTriggerRawDataContainer* transientObj, NSW_PadTriggerRawDataContainer_p1* persistentObj, MsgStream &log) { @@ -26,9 +36,4 @@ void NSW_PadTriggerRawDataContainerCnv_p1::transToPers(const NSW_PadTriggerRawDa } } -NSW_PadTriggerRawDataContainer* NSW_PadTriggerRawDataContainerCnv_p1::createTransient(const NSW_PadTriggerRawDataContainer_p1* persistentObj, MsgStream& log) { - // TODO implement - log << MSG::VERBOSE << "NSW_PadTriggerRawDataContainerCnv_p1::createTransient() called" << std::endl; - return new NSW_PadTriggerRawDataContainer{}; -} } // namespace Muon \ No newline at end of file -- GitLab From 71ff00e7ac54fe2b7467409b790f7ea1239dc876 Mon Sep 17 00:00:00 2001 From: yzach Date: Wed, 30 Dec 2020 15:36:13 +0100 Subject: [PATCH 09/14] Add debug print methods to pad trigger data classes --- .../src/MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx | 3 ++- .../MuonRDO/MuonRDO/NSW_PadTriggerRawData.h | 8 ++++++++ .../MuonRDO/NSW_PadTriggerRawDataCollection.h | 9 +++++++++ .../MuonRDO/NSW_PadTriggerRawDataContainer.h | 9 +++++++++ .../MuonRDO/src/NSW_PadTriggerRawData.cxx | 15 +++++++++++++++ .../src/NSW_PadTriggerRawDataCollection.cxx | 15 +++++++++++++++ .../src/NSW_PadTriggerRawDataContainer.cxx | 16 ++++++++++++++++ 7 files changed, 74 insertions(+), 1 deletion(-) diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx index 55ec6505abe..d724f1e6903 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx @@ -7,7 +7,8 @@ void NSW_PadTriggerRawDataCnv_p1::persToTrans(const NSW_PadTriggerRawData_p1* pe transientObj->m_endcap = persistentObj->m_endcap; transientObj->m_BCID = persistentObj->m_BCID; transientObj->m_L1ID = persistentObj->m_L1ID; - + + // Can use std::begin() / std::end() instead of pointer arithematic here std::copy(persistentObj->m_hitlists, persistentObj->m_hitlists + 3, transientObj->m_hitlists.begin()); std::copy(persistentObj->m_bandIDs, persistentObj->m_bandIDs + 4, transientObj->m_bandIDs.begin()); std::copy(persistentObj->m_phiIDs, persistentObj->m_phiIDs + 4, transientObj->m_phiIDs.begin()); diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h index 841784e95ab..077b0f5675b 100644 --- a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h @@ -1,8 +1,11 @@ #ifndef MUONRDO_NSW_PADTRIGGERRAWDATA_H #define MUONRDO_NSW_PADTRIGGERRAWDATA_H +#include "GaudiKernel/MsgStream.h" + #include #include +#include namespace Muon { class NSW_PadTriggerRawData { @@ -45,6 +48,11 @@ public: std::array bandIDs() const; std::array phiIDs() const; std::array, 4> coincidences() const; + + std::string string() const; + + friend MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerRawData& rhs); + friend std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerRawData& rhs); }; } // namespace Muon diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataCollection.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataCollection.h index 486d221404b..913b4bc9ef5 100644 --- a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataCollection.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataCollection.h @@ -1,16 +1,25 @@ #ifndef MUONRDO_NSW_PADTRIGGERRAWDATACOLLECTION #define MUONRDO_NSW_PADTRIGGERRAWDATACOLLECTION +#include "GaudiKernel/MsgStream.h" + #include "DataModel/DataVector.h" #include "Identifier/IdentifierHash.h" #include "MuonRDO/NSW_PadTriggerRawData.h" +#include + namespace Muon { class NSW_PadTriggerRawDataCollection : public DataVector { public: NSW_PadTriggerRawDataCollection(IdentifierHash identifierHash); IdentifierHash identifierHash() const; + + std::string string() const; + + friend std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerRawDataCollection& rhs); + friend MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerRawDataCollection& rhs); private: IdentifierHash m_identifierHash; }; diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h index 7fcfa7a23ab..facbbebcd16 100644 --- a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h @@ -1,12 +1,16 @@ #ifndef MUONRDO_NSW_PADTRIGGERRAWDATACONTAINER #define MUONRDO_NSW_PADTRIGGERRAWDATACONTAINER +#include "GaudiKernel/MsgStream.h" + #include "MuonRDO/NSW_PadTriggerRawDataCollection.h" #include "EventContainers/IdentifiableContainer.h" #include "SGTools/CLASS_DEF.h" +#include + namespace Muon { class NSW_PadTriggerRawDataContainer : public IdentifiableContainer { public: @@ -15,6 +19,11 @@ public: static const CLID& classID(); const CLID& clID() const override; + + std::string string() const; + + friend std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerRawDataContainer& rhs); + friend MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerRawDataContainer& rhs); }; } // namespace Muon diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx index 2603e1eab2e..0279f8dde03 100644 --- a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx +++ b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx @@ -39,4 +39,19 @@ std::array, 4> NSW_PadTriggerRawData::coincidences() cons return m_coincidences; } +std::string NSW_PadTriggerRawData::string() const { + std::stringstream sstream{}; + sstream << "Sector: " << std::to_string(m_sectorID) << ", endcap: " << std::to_string(m_endcap) + << ", BCID: " << std::to_string(m_BCID) << ", L1ID: " << std::to_string(m_L1ID); + return sstream.str(); +} + +MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerRawData& rhs) { + return stream << rhs.string(); +} + +std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerRawData& rhs) { + return stream << rhs.string(); +} + } // namespace Muon \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataCollection.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataCollection.cxx index 9f047bb0da5..4ab887cbf69 100644 --- a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataCollection.cxx +++ b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataCollection.cxx @@ -7,4 +7,19 @@ NSW_PadTriggerRawDataCollection::NSW_PadTriggerRawDataCollection(IdentifierHash IdentifierHash NSW_PadTriggerRawDataCollection::identifierHash() const { return m_identifierHash; } + +std::string NSW_PadTriggerRawDataCollection::string() const { + std::stringstream sstream{}; + sstream << "IdentifierHash: " << m_identifierHash << ", size: " << size(); + return sstream.str(); +} + +std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerRawDataCollection& rhs) { + return stream << rhs.string(); +} + +MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerRawDataCollection& rhs) { + return stream << rhs.string(); +} + } // namespace Muon \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx index 06f7945df24..0d759acabb1 100644 --- a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx +++ b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx @@ -16,4 +16,20 @@ const CLID& NSW_PadTriggerRawDataContainer::clID() const { return classID(); } +std::string NSW_PadTriggerRawDataContainer::string() const { + std::stringstream sstream{}; + sstream << "Number of collections: " << numberOfCollections() << ". Contains collections: \n" << std::endl; + for (const auto& collection : *this) { + sstream << collection->string() << std::endl; + } + return sstream.str(); +} + +std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerRawDataContainer& rhs) { + return stream << rhs.string(); +} + +MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerRawDataContainer& rhs) { + return stream << rhs.string(); +} } // namespace Muon \ No newline at end of file -- GitLab From f5adc84dc369a1757c26db6dadfead127596284b Mon Sep 17 00:00:00 2001 From: yzach Date: Tue, 5 Jan 2021 15:46:04 +0100 Subject: [PATCH 10/14] Rework pad trigger RDO to data segment granularity --- .../MuonRDO/MuonRDO/NSW_PadTriggerData.h | 33 +++++++++++ ...tainer.h => NSW_PadTriggerDataContainer.h} | 14 ++--- .../MuonRDO/MuonRDO/NSW_PadTriggerRawData.h | 59 ------------------- .../MuonRDO/NSW_PadTriggerRawDataCollection.h | 28 --------- .../MuonRDO/MuonRDO/NSW_PadTriggerSegment.h | 33 +++++++++++ .../MuonRDO/src/NSW_PadTriggerData.cxx | 25 ++++++++ .../src/NSW_PadTriggerDataContainer.cxx | 35 +++++++++++ .../MuonRDO/src/NSW_PadTriggerRawData.cxx | 57 ------------------ .../src/NSW_PadTriggerRawDataCollection.cxx | 25 -------- .../src/NSW_PadTriggerRawDataContainer.cxx | 35 ----------- .../MuonRDO/src/NSW_PadTriggerSegment.cxx | 35 +++++++++++ 11 files changed, 168 insertions(+), 211 deletions(-) create mode 100644 MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h rename MuonSpectrometer/MuonRDO/MuonRDO/{NSW_PadTriggerRawDataContainer.h => NSW_PadTriggerDataContainer.h} (54%) delete mode 100644 MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h delete mode 100644 MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataCollection.h create mode 100644 MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerSegment.h create mode 100644 MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx create mode 100644 MuonSpectrometer/MuonRDO/src/NSW_PadTriggerDataContainer.cxx delete mode 100644 MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx delete mode 100644 MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataCollection.cxx delete mode 100644 MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx create mode 100644 MuonSpectrometer/MuonRDO/src/NSW_PadTriggerSegment.cxx diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h new file mode 100644 index 00000000000..18d91ed4094 --- /dev/null +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h @@ -0,0 +1,33 @@ +#ifndef MUONRDO_NSW_PADTRIGGERDATA +#define MUONRDO_NSW_PADTRIGGERDATA + +#include "GaudiKernel/MsgStream.h" + +#include "DataModel/DataVector.h" +#include "Identifier/IdentifierHash.h" + +#include "MuonRDO/NSW_PadTriggerSegment.h" + +#include + +namespace Muon { +class NSW_PadTriggerData : public DataVector { +public: + NSW_PadTriggerData(IdentifierHash identifierHash); + IdentifierHash identifierHash() const; + + std::string string() const; + + friend std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerData& rhs); + friend MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerData& rhs); +private: + IdentifierHash m_identifierHash; + uint8_t m_sectorID; + uint8_t m_sectorSize; + uint8_t m_endcap; + uint32_t m_BCID; + uint32_t m_L1ID; +}; +} // namespace Muon + +#endif // MUONRDO_NSW_PADTRIGGERDATA \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerDataContainer.h similarity index 54% rename from MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h rename to MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerDataContainer.h index facbbebcd16..b1fb67381a7 100644 --- a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataContainer.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerDataContainer.h @@ -3,7 +3,7 @@ #include "GaudiKernel/MsgStream.h" -#include "MuonRDO/NSW_PadTriggerRawDataCollection.h" +#include "MuonRDO/NSW_PadTriggerData.h" #include "EventContainers/IdentifiableContainer.h" @@ -12,21 +12,21 @@ #include namespace Muon { -class NSW_PadTriggerRawDataContainer : public IdentifiableContainer { +class NSW_PadTriggerDataContainer : public IdentifiableContainer { public: - NSW_PadTriggerRawDataContainer(); - NSW_PadTriggerRawDataContainer(unsigned int hashMax); + NSW_PadTriggerDataContainer(); + NSW_PadTriggerDataContainer(unsigned int hashMax); static const CLID& classID(); const CLID& clID() const override; std::string string() const; - friend std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerRawDataContainer& rhs); - friend MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerRawDataContainer& rhs); + friend std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerDataContainer& rhs); + friend MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerDataContainer& rhs); }; } // namespace Muon -CLASS_DEF( Muon::NSW_PadTriggerRawDataContainer , 1156203348 , 1 ) +CLASS_DEF( Muon::NSW_PadTriggerDataContainer , 1176278125 , 1 ) #endif // MUONRDO_NSW_PADTRIGGERRAWDATACONTAINER \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h deleted file mode 100644 index 077b0f5675b..00000000000 --- a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawData.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef MUONRDO_NSW_PADTRIGGERRAWDATA_H -#define MUONRDO_NSW_PADTRIGGERRAWDATA_H - -#include "GaudiKernel/MsgStream.h" - -#include -#include -#include - -namespace Muon { -class NSW_PadTriggerRawData { -using hitlist_t = std::vector; -friend class NSW_PadTriggerRawDataCnv_p1; - -private: - // TODO: Perhaps move this out of the class / make public? - static constexpr std::size_t BC_COUNT{ 3 }; - - // Metadata - uint8_t m_sectorID; - uint8_t m_endcap; - // BCID of the "L1A" bunch crossing (not of the additional two recorded) - uint16_t m_BCID; - uint32_t m_L1ID; - - // Pad trigger input - std::array m_hitlists; - - // Pad trigger decision - std::array m_bandIDs; - std::array m_phiIDs; - // Coincidence counts for each of the two wedges, per band ID. - std::array, 4> m_coincidences; -public: - NSW_PadTriggerRawData() = default; - // Maybe too many parameters - can refactor class to hold e.g. struct TriggerMetadata, PadTriggerDecision, etc. - NSW_PadTriggerRawData(uint8_t sectorID, uint8_t endcap, uint16_t BCID, uint32_t L1ID, - std::array hitlists, std::array bandIDs, std::array phiIDs, - std::array, 4> m_coincidences); - - uint8_t sectorID() const; - uint8_t endcap() const; - uint16_t BCID() const; - uint32_t L1ID() const; - - std::array hitlists() const; - - std::array bandIDs() const; - std::array phiIDs() const; - std::array, 4> coincidences() const; - - std::string string() const; - - friend MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerRawData& rhs); - friend std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerRawData& rhs); -}; -} // namespace Muon - -#endif // MUONRDO_NSW_PADTRIGGERRAWDATA_H \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataCollection.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataCollection.h deleted file mode 100644 index 913b4bc9ef5..00000000000 --- a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerRawDataCollection.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef MUONRDO_NSW_PADTRIGGERRAWDATACOLLECTION -#define MUONRDO_NSW_PADTRIGGERRAWDATACOLLECTION - -#include "GaudiKernel/MsgStream.h" - -#include "DataModel/DataVector.h" -#include "Identifier/IdentifierHash.h" - -#include "MuonRDO/NSW_PadTriggerRawData.h" - -#include - -namespace Muon { -class NSW_PadTriggerRawDataCollection : public DataVector { -public: - NSW_PadTriggerRawDataCollection(IdentifierHash identifierHash); - IdentifierHash identifierHash() const; - - std::string string() const; - - friend std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerRawDataCollection& rhs); - friend MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerRawDataCollection& rhs); -private: - IdentifierHash m_identifierHash; -}; -} // namespace Muon - -#endif // MUONRDO_NSW_PADTRIGGERRAWDATACOLLECTION \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerSegment.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerSegment.h new file mode 100644 index 00000000000..9897440858f --- /dev/null +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerSegment.h @@ -0,0 +1,33 @@ +#ifndef MUONRDO_NSW_PADTRIGGERSEGMENT_H +#define MUONRDO_NSW_PADTRIGGERSEGMENT_H + +#include "GaudiKernel/MsgStream.h" + +#include +#include +#include + +namespace Muon { +class NSW_PadTriggerSegment { +friend class NSW_PadTriggerRawDataCnv_p1; +public: + NSW_PadTriggerSegment() = default; + NSW_PadTriggerSegment(uint8_t bandID, uint8_t phiID, std::array activeLayers); + + uint8_t bandID() const noexcept; + uint8_t phiID() const noexcept; + std::array activeLayers() const noexcept; + + std::string string() const; + + friend MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerSegment& rhs); + friend std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerSegment& rhs); +private: + uint8_t m_bandID; + uint8_t m_phiID; + // aka "coincidences", active layer count in each wedge ([0] = inner, [1] = outer) + std::array m_activeLayers; +}; +} // namespace Muon + +#endif // MUONRDO_NSW_PADTRIGGERSEGMENT_H \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx new file mode 100644 index 00000000000..96e66418578 --- /dev/null +++ b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx @@ -0,0 +1,25 @@ +#include "MuonRDO/NSW_PadTriggerData.h" + +namespace Muon { +NSW_PadTriggerData::NSW_PadTriggerData(IdentifierHash identifierHash) + : m_identifierHash(identifierHash) { } + +IdentifierHash NSW_PadTriggerData::identifierHash() const { + return m_identifierHash; +} + +std::string NSW_PadTriggerData::string() const { + std::stringstream sstream{}; + sstream << "IdentifierHash: " << m_identifierHash << ", size: " << size(); + return sstream.str(); +} + +std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerData& rhs) { + return stream << rhs.string(); +} + +MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerData& rhs) { + return stream << rhs.string(); +} + +} // namespace Muon \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerDataContainer.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerDataContainer.cxx new file mode 100644 index 00000000000..76ac5d98437 --- /dev/null +++ b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerDataContainer.cxx @@ -0,0 +1,35 @@ +#include "MuonRDO/NSW_PadTriggerDataContainer.h" + +namespace Muon { + +NSW_PadTriggerDataContainer::NSW_PadTriggerDataContainer() + : IdentifiableContainer(0) { } + +NSW_PadTriggerDataContainer::NSW_PadTriggerDataContainer(unsigned int hashMax) + : IdentifiableContainer(hashMax) { } + +const CLID& NSW_PadTriggerDataContainer::classID() { + return ClassID_traits::ID(); +} + +const CLID& NSW_PadTriggerDataContainer::clID() const { + return classID(); +} + +std::string NSW_PadTriggerDataContainer::string() const { + std::stringstream sstream{}; + sstream << "Number of collections: " << numberOfCollections() << ". Contains collections: \n" << std::endl; + for (const auto& collection : *this) { + sstream << collection->string() << std::endl; + } + return sstream.str(); +} + +std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerDataContainer& rhs) { + return stream << rhs.string(); +} + +MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerDataContainer& rhs) { + return stream << rhs.string(); +} +} // namespace Muon \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx deleted file mode 100644 index 0279f8dde03..00000000000 --- a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawData.cxx +++ /dev/null @@ -1,57 +0,0 @@ -#include "MuonRDO/NSW_PadTriggerRawData.h" - -namespace Muon { -NSW_PadTriggerRawData::NSW_PadTriggerRawData(uint8_t sectorID, uint8_t endcap, uint16_t BCID, uint32_t L1ID, - std::array hitlists, std::array bandIDs, std::array phiIDs, - std::array, 4> coincidences) - : m_sectorID(sectorID), m_endcap(endcap), m_BCID(BCID), m_L1ID(L1ID), m_hitlists(hitlists), m_bandIDs(bandIDs), - m_phiIDs(phiIDs), m_coincidences(coincidences) { } - -uint8_t NSW_PadTriggerRawData::sectorID() const { - return m_sectorID; -} - -uint8_t NSW_PadTriggerRawData::endcap() const { - return m_endcap; -} - -uint16_t NSW_PadTriggerRawData::BCID() const { - return m_BCID; -} - -uint32_t NSW_PadTriggerRawData::L1ID() const { - return m_L1ID; -} - -std::array NSW_PadTriggerRawData::hitlists() const { - return m_hitlists; -} - -std::array NSW_PadTriggerRawData::bandIDs() const { - return m_bandIDs; -} - -std::array NSW_PadTriggerRawData::phiIDs() const { - return m_phiIDs; -} - -std::array, 4> NSW_PadTriggerRawData::coincidences() const { - return m_coincidences; -} - -std::string NSW_PadTriggerRawData::string() const { - std::stringstream sstream{}; - sstream << "Sector: " << std::to_string(m_sectorID) << ", endcap: " << std::to_string(m_endcap) - << ", BCID: " << std::to_string(m_BCID) << ", L1ID: " << std::to_string(m_L1ID); - return sstream.str(); -} - -MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerRawData& rhs) { - return stream << rhs.string(); -} - -std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerRawData& rhs) { - return stream << rhs.string(); -} - -} // namespace Muon \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataCollection.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataCollection.cxx deleted file mode 100644 index 4ab887cbf69..00000000000 --- a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataCollection.cxx +++ /dev/null @@ -1,25 +0,0 @@ -#include "MuonRDO/NSW_PadTriggerRawDataCollection.h" - -namespace Muon { -NSW_PadTriggerRawDataCollection::NSW_PadTriggerRawDataCollection(IdentifierHash identifierHash) - : m_identifierHash(identifierHash) { } - -IdentifierHash NSW_PadTriggerRawDataCollection::identifierHash() const { - return m_identifierHash; -} - -std::string NSW_PadTriggerRawDataCollection::string() const { - std::stringstream sstream{}; - sstream << "IdentifierHash: " << m_identifierHash << ", size: " << size(); - return sstream.str(); -} - -std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerRawDataCollection& rhs) { - return stream << rhs.string(); -} - -MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerRawDataCollection& rhs) { - return stream << rhs.string(); -} - -} // namespace Muon \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx deleted file mode 100644 index 0d759acabb1..00000000000 --- a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerRawDataContainer.cxx +++ /dev/null @@ -1,35 +0,0 @@ -#include "MuonRDO/NSW_PadTriggerRawDataContainer.h" - -namespace Muon { - -NSW_PadTriggerRawDataContainer::NSW_PadTriggerRawDataContainer() - : IdentifiableContainer(0) { } - -NSW_PadTriggerRawDataContainer::NSW_PadTriggerRawDataContainer(unsigned int hashMax) - : IdentifiableContainer(hashMax) { } - -const CLID& NSW_PadTriggerRawDataContainer::classID() { - return ClassID_traits::ID(); -} - -const CLID& NSW_PadTriggerRawDataContainer::clID() const { - return classID(); -} - -std::string NSW_PadTriggerRawDataContainer::string() const { - std::stringstream sstream{}; - sstream << "Number of collections: " << numberOfCollections() << ". Contains collections: \n" << std::endl; - for (const auto& collection : *this) { - sstream << collection->string() << std::endl; - } - return sstream.str(); -} - -std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerRawDataContainer& rhs) { - return stream << rhs.string(); -} - -MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerRawDataContainer& rhs) { - return stream << rhs.string(); -} -} // namespace Muon \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerSegment.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerSegment.cxx new file mode 100644 index 00000000000..a3480b82830 --- /dev/null +++ b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerSegment.cxx @@ -0,0 +1,35 @@ +#include "MuonRDO/NSW_PadTriggerSegment.h" + +namespace Muon { +NSW_PadTriggerSegment::NSW_PadTriggerSegment(uint8_t bandID, uint8_t phiID, std::array activeLayers) + : m_bandID(bandID), m_phiID(phiID), m_activeLayers(activeLayers) { } + +uint8_t NSW_PadTriggerSegment::bandID() const noexcept { + return m_bandID; +} + +uint8_t NSW_PadTriggerSegment::phiID() const noexcept { + return m_phiID; +} + +std::array NSW_PadTriggerSegment::activeLayers() const noexcept { + return m_activeLayers; +} + +std::string NSW_PadTriggerSegment::string() const { + std::stringstream sstream{}; + sstream << "band ID: " << std::to_string(m_bandID) << ", phi ID: " << std::to_string(m_phiID) + << ", inner active layers: " << std::to_string(m_activeLayers[0]) << ", outer active layers: " + << std::to_string(m_activeLayers[1]); + return sstream.str(); +} + +MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerSegment& rhs) { + return stream << rhs.string(); +} + +std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerSegment& rhs) { + return stream << rhs.string(); +} + +} // namespace Muon \ No newline at end of file -- GitLab From 16640d4c87575d6425c2457e22506380a18ef317 Mon Sep 17 00:00:00 2001 From: yzach Date: Mon, 11 Jan 2021 17:30:39 +0100 Subject: [PATCH 11/14] Rewrite converters to work with new RDO format --- .../MuonEventAthenaPool/CMakeLists.txt | 4 +- .../src/NSW_PadTriggerDataContainerCnv.cxx | 25 ++++++++++ .../src/NSW_PadTriggerDataContainerCnv.h | 22 +++++++++ .../src/NSW_PadTriggerRawDataContainerCnv.cxx | 25 ---------- .../src/NSW_PadTriggerRawDataContainerCnv.h | 22 --------- .../MuonEventTPCnv/MuonEventTPCnvDict.h | 12 ++--- .../NSW_PadTriggerDataContainerCnv_p1.h | 20 ++++++++ .../MuonRDO/NSW_PadTriggerDataContainer_p1.h | 13 +++++ .../MuonRDO/NSW_PadTriggerData_p1.h | 19 +++++++ .../MuonRDO/NSW_PadTriggerRawDataCnv_p1.h | 21 -------- .../NSW_PadTriggerRawDataCollection_p1.h | 14 ------ .../NSW_PadTriggerRawDataContainerCnv_p1.h | 20 -------- .../NSW_PadTriggerRawDataContainer_p1.h | 13 ----- .../MuonRDO/NSW_PadTriggerRawData_p1.h | 27 ---------- .../MuonRDO/NSW_PadTriggerSegmentCnv_p1.h | 21 ++++++++ .../MuonRDO/NSW_PadTriggerSegment_p1.h | 15 ++++++ .../MuonEventTPCnv/selection.xml | 10 ++-- .../NSW_PadTriggerDataContainerCnv_p1.cxx | 49 +++++++++++++++++++ .../MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx | 39 --------------- .../NSW_PadTriggerRawDataContainerCnv_p1.cxx | 39 --------------- .../MuonRDO/NSW_PadTriggerSegmentCnv_p1.cxx | 21 ++++++++ .../MuonRDO/MuonRDO/NSW_PadTriggerData.h | 10 +++- .../MuonRDO/MuonRDO/NSW_PadTriggerSegment.h | 2 +- .../MuonRDO/src/NSW_PadTriggerData.cxx | 26 +++++++++- 24 files changed, 252 insertions(+), 237 deletions(-) create mode 100644 MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerDataContainerCnv.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerDataContainerCnv.h delete mode 100644 MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.cxx delete mode 100644 MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.h create mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.h create mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainer_p1.h create mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerData_p1.h delete mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h delete mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCollection_p1.h delete mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.h delete mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h delete mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawData_p1.h create mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerSegmentCnv_p1.h create mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerSegment_p1.h create mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.cxx delete mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx delete mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerSegmentCnv_p1.cxx diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/CMakeLists.txt b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/CMakeLists.txt index 78f33d64010..fbc740d78b8 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/CMakeLists.txt +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/CMakeLists.txt @@ -40,8 +40,8 @@ find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) # Component(s) in the package: atlas_add_poolcnv_library( MuonEventAthenaPoolPoolCnv src/*.cxx - FILES MuonSimData/MuonSimDataCollection.h MuonSimData/CscSimDataCollection.h MuonRDO/MdtCsmContainer.h MuonRDO/RpcPadContainer.h MuonRDO/TgcRdoContainer.h MuonRDO/CscRawDataContainer.h MuonRDO/RpcSectorLogicContainer.h MuonRDO/STGC_RawDataContainer.h MuonRDO/MM_RawDataContainer.h MuonRDO/NSW_PadTriggerRawDataContainer MuonDigitContainer/MdtDigitContainer.h MuonDigitContainer/RpcDigitContainer.h MuonDigitContainer/TgcDigitContainer.h MuonDigitContainer/CscDigitContainer.h MuonDigitContainer/MmDigitContainer.h MuonDigitContainer/sTgcDigitContainer.h CscCalibEvent/CscCalibDataContainer.h MuonPrepRawData/CscPrepDataContainer.h MuonPrepRawData/CscStripPrepDataContainer.h MuonPrepRawData/RpcPrepDataContainer.h MuonPrepRawData/TgcPrepDataContainer.h MuonPrepRawData/MdtPrepDataContainer.h MuonPrepRawData/MMPrepDataContainer.h MuonPrepRawData/sTgcPrepDataContainer.h MuonTrigCoinData/TgcCoinDataContainer.h MuonTrigCoinData/RpcCoinDataContainer.h MuonChamberT0s/ChamberT0s.h src/MuonMeasurements.h - TYPES_WITH_NAMESPACE Muon::STGC_RawDataContainer Muon::MM_RawDataContainer Muon::NSW_PadTriggerRawDataContainer Muon::CscPrepDataContainer Muon::CscStripPrepRawDataContainer Muon::RpcPrepDataContainer Muon::TgcPrepDataContainer Muon::MdtPrepDataContainer Muon::MMPrepDataContainer Muon::sTgcPrepDataContainer Muon::TgcCoinDataContainer Muon::ChamberT0s TPCnv::MuonMeasurements + FILES MuonSimData/MuonSimDataCollection.h MuonSimData/CscSimDataCollection.h MuonRDO/MdtCsmContainer.h MuonRDO/RpcPadContainer.h MuonRDO/TgcRdoContainer.h MuonRDO/CscRawDataContainer.h MuonRDO/RpcSectorLogicContainer.h MuonRDO/STGC_RawDataContainer.h MuonRDO/MM_RawDataContainer.h MuonRDO/NSW_PadTriggerDataContainer.h MuonDigitContainer/MdtDigitContainer.h MuonDigitContainer/RpcDigitContainer.h MuonDigitContainer/TgcDigitContainer.h MuonDigitContainer/CscDigitContainer.h MuonDigitContainer/MmDigitContainer.h MuonDigitContainer/sTgcDigitContainer.h CscCalibEvent/CscCalibDataContainer.h MuonPrepRawData/CscPrepDataContainer.h MuonPrepRawData/CscStripPrepDataContainer.h MuonPrepRawData/RpcPrepDataContainer.h MuonPrepRawData/TgcPrepDataContainer.h MuonPrepRawData/MdtPrepDataContainer.h MuonPrepRawData/MMPrepDataContainer.h MuonPrepRawData/sTgcPrepDataContainer.h MuonTrigCoinData/TgcCoinDataContainer.h MuonTrigCoinData/RpcCoinDataContainer.h MuonChamberT0s/ChamberT0s.h src/MuonMeasurements.h + TYPES_WITH_NAMESPACE Muon::STGC_RawDataContainer Muon::MM_RawDataContainer Muon::NSW_PadTriggerDataContainer Muon::CscPrepDataContainer Muon::CscStripPrepRawDataContainer Muon::RpcPrepDataContainer Muon::TgcPrepDataContainer Muon::MdtPrepDataContainer Muon::MMPrepDataContainer Muon::sTgcPrepDataContainer Muon::TgcCoinDataContainer Muon::ChamberT0s TPCnv::MuonMeasurements INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaPoolUtilities AtlasSealCLHEP MuonRDO MuonRIO_OnTrack MuonSegment DataModel SGTools StoreGateLib SGtests AthenaPoolCnvSvcLib Identifier GaudiKernel RPCcablingInterfaceLib CscCalibEvent MuonEventTPCnv MuonReadoutGeometry MuonDigitContainer MuonIdHelpersLib MuonChamberT0s MuonPrepRawData MuonTrigCoinData MuonSimData ) diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerDataContainerCnv.cxx b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerDataContainerCnv.cxx new file mode 100644 index 00000000000..bceaa88dd07 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerDataContainerCnv.cxx @@ -0,0 +1,25 @@ +#include "NSW_PadTriggerDataContainerCnv.h" + +NSW_PadTriggerDataContainerCnv::NSW_PadTriggerDataContainerCnv(ISvcLocator* svcLocator) + : NSW_PadTriggerDataContainerCnvBase(svcLocator) { } + +NSW_PadTriggerDataContainer_PERS* NSW_PadTriggerDataContainerCnv::createPersistent(Muon::NSW_PadTriggerDataContainer* transientContainer) { + MsgStream log{ msgSvc(), "NSW_PadTriggerDataContainerCnv" }; + log << MSG::VERBOSE << "NSW_PadTriggerDataContainerCnv::createPersistent(): converting container" << std::endl; + return m_TPConverter.createPersistent(transientContainer, log); +} + +Muon::NSW_PadTriggerDataContainer* NSW_PadTriggerDataContainerCnv::createTransient() { + MsgStream log(msgSvc(), "NSW_PadTriggerDataContainer"); + log << MSG::VERBOSE + << "NSW_PadTriggerDataContainerCnv::createTransient(): reading container from persistent storage" + << std::endl; + // UUID of of NSW_PadTriggerDataContainer_p1 + static pool::Guid p1_guid("E506DD96-47F1-43E0-BAA0-485A3FB407A1"); + if(compareClassGuid(p1_guid)) { + std::unique_ptr pContainer + { poolReadObject() }; + return m_TPConverter.createTransient(pContainer.get(), log); + } + throw std::runtime_error{ "No persistent version match for GUID on-disk" }; +} \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerDataContainerCnv.h b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerDataContainerCnv.h new file mode 100644 index 00000000000..029574df18d --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerDataContainerCnv.h @@ -0,0 +1,22 @@ +#ifndef MUONEVENTATHENAPOOL_NSW_PADTRIGGERDATACONTAINERCNV_H +#define MUONEVENTATHENAPOOL_NSW_PADTRIGGERDATACONTAINERCNV_H + +#include "AthenaPoolCnvSvc/T_AthenaPoolCustomCnv.h" + +#include "MuonRDO/NSW_PadTriggerDataContainer.h" +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainer_p1.h" +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.h" + +using NSW_PadTriggerDataContainer_PERS = Muon::NSW_PadTriggerDataContainer_p1; +using NSW_PadTriggerDataContainerCnvBase = T_AthenaPoolCustomCnv; + +class NSW_PadTriggerDataContainerCnv : public NSW_PadTriggerDataContainerCnvBase { +public: + NSW_PadTriggerDataContainerCnv(ISvcLocator* svcLocator); + NSW_PadTriggerDataContainer_PERS* createPersistent(Muon::NSW_PadTriggerDataContainer* transientContainer) final; + Muon::NSW_PadTriggerDataContainer* createTransient() final; +private: + Muon::NSW_PadTriggerDataContainerCnv_p1 m_TPConverter; +}; + +#endif // MUONEVENTATHENAPOOL_NSW_PADTRIGGERDATACONTAINERCNV_H \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.cxx b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.cxx deleted file mode 100644 index 10f2b002f6f..00000000000 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.cxx +++ /dev/null @@ -1,25 +0,0 @@ -#include "NSW_PadTriggerRawDataContainerCnv.h" - -NSW_PadTriggerRawDataContainerCnv::NSW_PadTriggerRawDataContainerCnv(ISvcLocator* svcLocator) - : NSW_PadTriggerRawDataContainerCnvBase(svcLocator) { } - -NSW_PadTriggerRawDataContainer_PERS* NSW_PadTriggerRawDataContainerCnv::createPersistent(Muon::NSW_PadTriggerRawDataContainer* transientContainer) { - MsgStream log{ msgSvc(), "NSW_PadTriggerRawDataContainerCnv" }; - log << MSG::VERBOSE << "NSW_PadTriggerRawDataContainerCnv::createPersistent(): converting container" << std::endl; - return m_TPConverter.createPersistent(transientContainer, log); -} - -Muon::NSW_PadTriggerRawDataContainer* NSW_PadTriggerRawDataContainerCnv::createTransient() { - MsgStream log(msgSvc(), "NSW_PadTriggerRawDataContainer"); - log << MSG::VERBOSE - << "NSW_PadTriggerRawDataContainerCnv::createTransient(): reading container from persistent storage" - << std::endl; - // UUID of of NSW_PadTriggerRawDataContainer_p1 - static pool::Guid p1_guid("2B1C6988-7B4C-4332-A2F5-83DC1D219650"); - if(compareClassGuid(p1_guid)) { - std::unique_ptr pContainer - { poolReadObject() }; - return m_TPConverter.createTransient(pContainer.get(), log); - } - throw std::runtime_error{ "No persistent version match for GUID on-disk" }; -} \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.h b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.h deleted file mode 100644 index 75d9fd324b3..00000000000 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerRawDataContainerCnv.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef MUONEVENTATHENAPOOL_NSW_PADTRIGGERRAWDATACONTAINERCNV_H -#define MUONEVENTATHENAPOOL_NSW_PADTRIGGERRAWDATACONTAINERCNV_H - -#include "AthenaPoolCnvSvc/T_AthenaPoolCustomCnv.h" - -#include "MuonRDO/NSW_PadTriggerRawDataContainer.h" -#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h" -#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.h" - -using NSW_PadTriggerRawDataContainer_PERS = Muon::NSW_PadTriggerRawDataContainer_p1; -using NSW_PadTriggerRawDataContainerCnvBase = T_AthenaPoolCustomCnv; - -class NSW_PadTriggerRawDataContainerCnv : public NSW_PadTriggerRawDataContainerCnvBase { -public: - NSW_PadTriggerRawDataContainerCnv(ISvcLocator* svcLocator); - NSW_PadTriggerRawDataContainer_PERS* createPersistent(Muon::NSW_PadTriggerRawDataContainer* transientContainer) final; - Muon::NSW_PadTriggerRawDataContainer* createTransient() final; -private: - Muon::NSW_PadTriggerRawDataContainerCnv_p1 m_TPConverter; -}; - -#endif \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonEventTPCnvDict.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonEventTPCnvDict.h index 883a4a0f62d..2c802425bdb 100755 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonEventTPCnvDict.h +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonEventTPCnvDict.h @@ -39,7 +39,7 @@ #include "MuonEventTPCnv/MuonDigitContainer/CscSimDataCollection_p2.h" #include "MuonEventTPCnv/MuonRDO/STGC_RawDataContainer_p1.h" #include "MuonEventTPCnv/MuonRDO/MM_RawDataContainer_p1.h" -#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h" +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainer_p1.h" struct MuonEventTPCnvDict { @@ -85,11 +85,11 @@ struct MuonEventTPCnvDict Muon::MM_RawDataContainer_p1 m_v30; Muon::MM_RawDataCollection_p1 m_v31; std::vector< Muon::MM_RawData_p1 > m_v32; - Muon::NSW_PadTriggerRawData_p1 m_v33; - Muon::NSW_PadTriggerRawDataCollection_p1 m_v34; - Muon::NSW_PadTriggerRawDataContainer_p1 m_v35; - std::vector m_v36; - std::vector m_v37; + Muon::NSW_PadTriggerSegment_p1 m_v33; + Muon::NSW_PadTriggerData_p1 m_v34; + Muon::NSW_PadTriggerDataContainer_p1 m_v35; + std::vector m_v36; + std::vector m_v37; }; #endif // MUONEVENTTPCNV_MUONEVENTTPCNVDICT_H diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.h new file mode 100644 index 00000000000..dd9b18b39ba --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.h @@ -0,0 +1,20 @@ +#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERDATACONTAINERCNV_P1_H +#define MUONEVENTTPCNV_NSW_PADTRIGGERDATACONTAINERCNV_P1_H + +#include "MuonRDO/NSW_PadTriggerDataContainer.h" +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainer_p1.h" +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerSegmentCnv_p1.h" + +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" + +namespace Muon { +class NSW_PadTriggerDataContainerCnv_p1 : public T_AthenaPoolTPCnvBase { +public: + void persToTrans(const NSW_PadTriggerDataContainer_p1* persistentObj, NSW_PadTriggerDataContainer* transientObj, MsgStream &log) final; + void transToPers(const NSW_PadTriggerDataContainer* transientObj, NSW_PadTriggerDataContainer_p1* persistentObj, MsgStream &log) final; +private: + NSW_PadTriggerSegmentCnv_p1 m_segmentConverter; +}; +} // namespace Muon + +#endif // MUONEVENTTPCNV_NSW_PADTRIGGERDATACONTAINERCNV_P1_H \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainer_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainer_p1.h new file mode 100644 index 00000000000..7eceb61fd75 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainer_p1.h @@ -0,0 +1,13 @@ +#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERDATACONTAINER_P1_H +#define MUONEVENTTPCNV_NSW_PADTRIGGERDATACONTAINER_P1_H + +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerData_p1.h" + +#include + +namespace Muon { +struct NSW_PadTriggerDataContainer_p1 : public std::vector + { }; +} // namespace Muon + +#endif // MUONEVENTTPCNV_NSW_PADTRIGGERDATACONTAINER_P1_H diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerData_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerData_p1.h new file mode 100644 index 00000000000..852d8fb4e2b --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerData_p1.h @@ -0,0 +1,19 @@ +#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERDATA_P1_H +#define MUONEVENTTPCNV_NSW_PADTRIGGERDATA_P1_H + +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerSegment_p1.h" + +#include + +namespace Muon { +struct NSW_PadTriggerData_p1 : public std::vector { + unsigned int m_identifierHash; + uint8_t m_sectorID; + uint8_t m_sectorSize; + uint8_t m_endcap; + uint32_t m_BCID; + uint32_t m_L1ID; +}; +} // namespace Muon + +#endif // MUONEVENTTPCNV_NSW_PADTRIGGERDATA_P1_H diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h deleted file mode 100644 index 49838492b23..00000000000 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACNV_P1_H -#define MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACNV_P1_H - -#include "MuonRDO/NSW_PadTriggerRawData.h" -#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawData_p1.h" - -#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" - -#include - -class MsgStream; - -namespace Muon { -class NSW_PadTriggerRawDataCnv_p1 : public T_AthenaPoolTPCnvBase { -public: - void persToTrans(const NSW_PadTriggerRawData_p1* persistentObj, NSW_PadTriggerRawData* transientObj, MsgStream &log) final; - void transToPers(const NSW_PadTriggerRawData* transientObj, NSW_PadTriggerRawData_p1* persistentObj, MsgStream &log) final; -}; -} // namespace Muon - -#endif // MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACNV_P1_H \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCollection_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCollection_p1.h deleted file mode 100644 index 43b2a8d7e0c..00000000000 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCollection_p1.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACOLLECTION_P1_H -#define MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACOLLECTION_P1_H - -#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawData_p1.h" - -#include - -namespace Muon { -struct NSW_PadTriggerRawDataCollection_p1 : public std::vector { - unsigned int m_identifierHash; -}; -} // namespace Muon - -#endif // MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACOLLECTION_P1_H diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.h deleted file mode 100644 index 03189150d20..00000000000 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACONTAINERCNV_P1_H -#define MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACONTAINERCNV_P1_H - -#include "MuonRDO/NSW_PadTriggerRawDataContainer.h" -#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h" -#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h" - -#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" - -namespace Muon { -class NSW_PadTriggerRawDataContainerCnv_p1 : public T_AthenaPoolTPCnvBase { -public: - void persToTrans(const NSW_PadTriggerRawDataContainer_p1* persistentObj, NSW_PadTriggerRawDataContainer* transientObj, MsgStream &log) final; - void transToPers(const NSW_PadTriggerRawDataContainer* transientObj, NSW_PadTriggerRawDataContainer_p1* persistentObj, MsgStream &log) final; -private: - NSW_PadTriggerRawDataCnv_p1 m_dataConverter; -}; -} // namespace Muon - -#endif // MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACONTAINERCNV_P1_H \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h deleted file mode 100644 index 9f8089588db..00000000000 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainer_p1.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACONTAINER_P1_H -#define MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACONTAINER_P1_H - -#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCollection_p1.h" - -#include - -namespace Muon { -struct NSW_PadTriggerRawDataContainer_p1 : public std::vector - { }; -} // namespace Muon - -#endif // MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATACONTAINER_P1_H diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawData_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawData_p1.h deleted file mode 100644 index 3318b19b253..00000000000 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawData_p1.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATA_P1_H -#define MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATA_P1_H - -#include -#include - -namespace Muon { -struct NSW_PadTriggerRawData_p1 { -using hitlist_t = std::vector; - // Metadata - uint8_t m_sectorID; - uint8_t m_endcap; - uint16_t m_BCID; - uint32_t m_L1ID; - - // Pad trigger input - hitlist_t m_hitlists[3]; - - // Pad trigger decision - uint8_t m_bandIDs[4]; - uint8_t m_phiIDs[4]; - // Coincidence counts for each of the two wedges, per band ID. - uint8_t m_coincidences[4][2]; -}; -} // namespace Muon - -#endif // MUONEVENTTPCNV_NSW_PADTRIGGERRAWDATA_P1_H \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerSegmentCnv_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerSegmentCnv_p1.h new file mode 100644 index 00000000000..b144916cc92 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerSegmentCnv_p1.h @@ -0,0 +1,21 @@ +#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERSEGMENTCNV_P1_H +#define MUONEVENTTPCNV_NSW_PADTRIGGERSEGMENTCNV_P1_H + +#include "MuonRDO/NSW_PadTriggerSegment.h" +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerSegment_p1.h" + +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" + +#include + +class MsgStream; + +namespace Muon { +class NSW_PadTriggerSegmentCnv_p1 : public T_AthenaPoolTPCnvBase { +public: + void persToTrans(const NSW_PadTriggerSegment_p1* persistentObj, NSW_PadTriggerSegment* transientObj, MsgStream &log) final; + void transToPers(const NSW_PadTriggerSegment* transientObj, NSW_PadTriggerSegment_p1* persistentObj, MsgStream &log) final; +}; +} // namespace Muon + +#endif // MUONEVENTTPCNV_NSW_PADTRIGGERSEGMENTCNV_P1_H \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerSegment_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerSegment_p1.h new file mode 100644 index 00000000000..680b15c5c91 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerSegment_p1.h @@ -0,0 +1,15 @@ +#ifndef MUONEVENTTPCNV_NSW_PADTRIGGERSEGMENT_P1_H +#define MUONEVENTTPCNV_NSW_PADTRIGGERSEGMENT_P1_H + +#include + +namespace Muon { +struct NSW_PadTriggerSegment_p1 { + uint8_t m_bandID; + uint8_t m_phiID; + uint8_t m_innerActiveLayers; + uint8_t m_outerActiveLayers; +}; +} // namespace Muon + +#endif // MUONEVENTTPCNV_NSW_PADTRIGGERSEGMENT_P1_H \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/selection.xml b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/selection.xml index 7c753b416d4..8160f03d6e5 100755 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/selection.xml +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/selection.xml @@ -143,10 +143,10 @@ - - - - - + + + + + diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.cxx new file mode 100644 index 00000000000..25c53eba7e7 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.cxx @@ -0,0 +1,49 @@ +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.h" + +namespace Muon { +void NSW_PadTriggerDataContainerCnv_p1::persToTrans(const NSW_PadTriggerDataContainer_p1* persistentObj, NSW_PadTriggerDataContainer* transientObj, MsgStream &log) { + log << MSG::VERBOSE << "NSW_PadTriggerDataContainerCnv_p1::persToTrans() called" << std::endl; + for (const auto& pCollection : *persistentObj) { + auto tCollection = std::make_unique(pCollection.m_identifierHash, pCollection.m_sectorID, + pCollection.m_sectorSize, pCollection.m_endcap, pCollection.m_BCID, pCollection.m_L1ID); + tCollection->reserve(pCollection.size()); + for (std::size_t i{}; i < pCollection.size(); i++) { + tCollection->push_back(m_segmentConverter.createTransient(&pCollection.at(i), log)); + } + + auto idHash = tCollection->identifierHash(); + if(transientObj->addCollection(tCollection.release(), idHash).isFailure()) { + throw std::runtime_error{ "Could not add collection to transient container!" }; + } + } +} + + +void NSW_PadTriggerDataContainerCnv_p1::transToPers(const NSW_PadTriggerDataContainer* transientObj, NSW_PadTriggerDataContainer_p1* persistentObj, MsgStream &log) { + // Can use T_AthenaPoolTPCnvIDCont / T_AthenaPoolTPPtrVectorCnv here, should we? + log << MSG::VERBOSE << "NSW_PadTriggerDataContainerCnv_p1::transToPers() called" << std::endl; + + persistentObj->reserve(transientObj->size()); + // Iterate over collections + for (const auto& tCollection : *transientObj) { + NSW_PadTriggerData_p1 pCollection{}; + pCollection.reserve(tCollection->size()); + + pCollection.m_identifierHash = tCollection->identifierHash(); + pCollection.m_sectorID = tCollection->sectorID(); + pCollection.m_sectorSize = tCollection->sectorSize(); + pCollection.m_endcap = tCollection->endcap(); + pCollection.m_BCID = tCollection->BCID(); + pCollection.m_L1ID = tCollection->L1ID(); + + // Convert each element in the transient collection to its persistent form + for (std::size_t i{}; i < tCollection->size(); i++) { + NSW_PadTriggerSegment_p1 pSegment{}; + m_segmentConverter.transToPers(tCollection->at(i), &pSegment, log); + pCollection.push_back(pSegment); + } + persistentObj->push_back(pCollection); + } +} + +} // namespace Muon diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx deleted file mode 100644 index d724f1e6903..00000000000 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataCnv_p1.cxx +++ /dev/null @@ -1,39 +0,0 @@ -#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataCnv_p1.h" - -namespace Muon { -void NSW_PadTriggerRawDataCnv_p1::persToTrans(const NSW_PadTriggerRawData_p1* persistentObj, NSW_PadTriggerRawData* transientObj, MsgStream &log) { - log << MSG::VERBOSE << "NSW_PadTriggerRawDataCnv_p1::persToTrans() called" << std::endl; - transientObj->m_sectorID = persistentObj->m_sectorID; - transientObj->m_endcap = persistentObj->m_endcap; - transientObj->m_BCID = persistentObj->m_BCID; - transientObj->m_L1ID = persistentObj->m_L1ID; - - // Can use std::begin() / std::end() instead of pointer arithematic here - std::copy(persistentObj->m_hitlists, persistentObj->m_hitlists + 3, transientObj->m_hitlists.begin()); - std::copy(persistentObj->m_bandIDs, persistentObj->m_bandIDs + 4, transientObj->m_bandIDs.begin()); - std::copy(persistentObj->m_phiIDs, persistentObj->m_phiIDs + 4, transientObj->m_phiIDs.begin()); - for (std::size_t i{}; i < 4; i++) { - const auto& cur = persistentObj->m_coincidences[i]; - std::copy(cur, cur + 2, transientObj->m_coincidences[i].begin()); - } -} - -void NSW_PadTriggerRawDataCnv_p1::transToPers(const NSW_PadTriggerRawData* transientObj, NSW_PadTriggerRawData_p1* persistentObj, MsgStream &log) { - log << MSG::VERBOSE << "NSW_PadTriggerRawDataCnv_p1::transToPers() called" << std::endl; - - persistentObj->m_sectorID = transientObj->m_sectorID; - persistentObj->m_endcap = transientObj->m_endcap; - persistentObj->m_BCID = transientObj->m_BCID; - persistentObj->m_L1ID = transientObj->m_L1ID; - - std::copy(transientObj->m_hitlists.begin(), transientObj->m_hitlists.begin() + 3, persistentObj->m_hitlists); - std::copy(transientObj->m_bandIDs.begin(), transientObj->m_bandIDs.begin() + 4, persistentObj->m_bandIDs); - std::copy(transientObj->m_phiIDs.begin(), transientObj->m_phiIDs.begin() + 4, persistentObj->m_phiIDs); - - for(std::size_t i{}; i < 4; i++) { - const auto& cur = transientObj->m_coincidences[i]; - std::copy(cur.begin(), cur.begin() + 2, persistentObj->m_coincidences[i]); - } -} - -} // namespace Muon \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.cxx deleted file mode 100644 index ec6a38ae9de..00000000000 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.cxx +++ /dev/null @@ -1,39 +0,0 @@ -#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerRawDataContainerCnv_p1.h" - -namespace Muon { -void NSW_PadTriggerRawDataContainerCnv_p1::persToTrans(const NSW_PadTriggerRawDataContainer_p1* persistentObj, NSW_PadTriggerRawDataContainer* transientObj, MsgStream &log) { - log << MSG::VERBOSE << "NSW_PadTriggerRawDataContainerCnv_p1::persToTrans() called" << std::endl; - for (const auto& pCollection : *persistentObj) { - auto tCollection = std::make_unique(pCollection.m_identifierHash); - tCollection->reserve(pCollection.size()); - for (std::size_t i{}; i < pCollection.size(); i++) { - tCollection->push_back(m_dataConverter.createTransient(&pCollection.at(i), log)); - } - auto idHash = tCollection->identifierHash(); - if(transientObj->addCollection(tCollection.release(), idHash).isFailure()) { - throw std::runtime_error{ "Could not add collection to transient container!" }; - } - } -} - -void NSW_PadTriggerRawDataContainerCnv_p1::transToPers(const NSW_PadTriggerRawDataContainer* transientObj, NSW_PadTriggerRawDataContainer_p1* persistentObj, MsgStream &log) { - // Can use T_AthenaPoolTPCnvIDCont / T_AthenaPoolTPPtrVectorCnv here, should we? - log << MSG::VERBOSE << "NSW_PadTriggerRawDataContainerCnv_p1::transToPers() called" << std::endl; - - persistentObj->reserve(transientObj->size()); - // Iterate over collections - for (const auto& tCollection : *transientObj) { - NSW_PadTriggerRawDataCollection_p1 pCollection{}; - pCollection.reserve(tCollection->size()); - pCollection.m_identifierHash = tCollection->identifierHash(); - // Convert each element in the transient collection to its persistent form - for (std::size_t i{}; i < tCollection->size(); i++) { - NSW_PadTriggerRawData_p1 pData{}; - m_dataConverter.transToPers(tCollection->at(i), &pData, log); - pCollection.push_back(std::move(pData)); - } - persistentObj->push_back(pCollection); - } -} - -} // namespace Muon \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerSegmentCnv_p1.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerSegmentCnv_p1.cxx new file mode 100644 index 00000000000..790f62ac43f --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerSegmentCnv_p1.cxx @@ -0,0 +1,21 @@ +#include "MuonEventTPCnv/MuonRDO/NSW_PadTriggerSegmentCnv_p1.h" + + +namespace Muon { +void NSW_PadTriggerSegmentCnv_p1::persToTrans(const NSW_PadTriggerSegment_p1* persistentObj, NSW_PadTriggerSegment* transientObj, MsgStream &log) { + log << MSG::VERBOSE << "NSW_PadTriggerSegmentCnv_p1::persToTrans() called" << std::endl; + transientObj->m_phiID = persistentObj->m_phiID; + transientObj->m_bandID = persistentObj->m_bandID; + transientObj->m_activeLayers[0] = persistentObj->m_innerActiveLayers; + transientObj->m_activeLayers[1] = persistentObj->m_outerActiveLayers; +} + +void NSW_PadTriggerSegmentCnv_p1::transToPers(const NSW_PadTriggerSegment* transientObj, NSW_PadTriggerSegment_p1* persistentObj, MsgStream &log) { + log << MSG::VERBOSE << "NSW_PadTriggerSegmentCnv_p1::transToPers() called" << std::endl; + persistentObj->m_phiID = transientObj->m_phiID; + persistentObj->m_bandID = transientObj->m_bandID; + persistentObj->m_innerActiveLayers = transientObj->m_activeLayers[0]; + persistentObj->m_outerActiveLayers = transientObj->m_activeLayers[1]; +} + +} // namespace Muon diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h index 18d91ed4094..b8c6a873601 100644 --- a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h @@ -13,11 +13,18 @@ namespace Muon { class NSW_PadTriggerData : public DataVector { public: - NSW_PadTriggerData(IdentifierHash identifierHash); + NSW_PadTriggerData(IdentifierHash identifierHash, uint8_t sectorID, uint8_t sectorSize, uint8_t endcap, + uint32_t BCID, uint32_t L1ID); IdentifierHash identifierHash() const; std::string string() const; + uint8_t sectorID() const; + uint8_t sectorSize() const; + uint8_t endcap() const; + uint32_t BCID() const; + uint32_t L1ID() const; + friend std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerData& rhs); friend MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerData& rhs); private: @@ -27,6 +34,7 @@ private: uint8_t m_endcap; uint32_t m_BCID; uint32_t m_L1ID; + // TODO(yzach) add hit list }; } // namespace Muon diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerSegment.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerSegment.h index 9897440858f..647ca467ccc 100644 --- a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerSegment.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerSegment.h @@ -9,7 +9,7 @@ namespace Muon { class NSW_PadTriggerSegment { -friend class NSW_PadTriggerRawDataCnv_p1; +friend class NSW_PadTriggerSegmentCnv_p1; public: NSW_PadTriggerSegment() = default; NSW_PadTriggerSegment(uint8_t bandID, uint8_t phiID, std::array activeLayers); diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx index 96e66418578..ab8f8c14af4 100644 --- a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx +++ b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx @@ -1,8 +1,10 @@ #include "MuonRDO/NSW_PadTriggerData.h" namespace Muon { -NSW_PadTriggerData::NSW_PadTriggerData(IdentifierHash identifierHash) - : m_identifierHash(identifierHash) { } +NSW_PadTriggerData::NSW_PadTriggerData(IdentifierHash identifierHash, uint8_t sectorID, uint8_t sectorSize, + uint8_t endcap, uint32_t BCID, uint32_t L1ID) + : m_identifierHash(identifierHash), m_sectorID(sectorID), m_sectorSize(sectorSize), m_endcap(endcap), m_BCID(BCID), + m_L1ID(L1ID) { } IdentifierHash NSW_PadTriggerData::identifierHash() const { return m_identifierHash; @@ -14,6 +16,26 @@ std::string NSW_PadTriggerData::string() const { return sstream.str(); } +uint8_t NSW_PadTriggerData::sectorID() const { + return m_sectorID; +} + +uint8_t NSW_PadTriggerData::sectorSize() const { + return m_sectorSize; +} + +uint8_t NSW_PadTriggerData::endcap() const { + return m_endcap; +} + +uint32_t NSW_PadTriggerData::BCID() const { + return m_BCID; +} + +uint32_t NSW_PadTriggerData::L1ID() const { + return m_L1ID; +} + std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerData& rhs) { return stream << rhs.string(); } -- GitLab From 5614012524c4096cf74133f9ceac79db79785b9f Mon Sep 17 00:00:00 2001 From: yzach Date: Sun, 17 Jan 2021 14:22:49 +0100 Subject: [PATCH 12/14] Add pad trigger input to NSW_PadTriggerData --- .../MuonRDO/NSW_PadTriggerDataContainerCnv_p1.h | 2 ++ .../MuonEventTPCnv/MuonRDO/NSW_PadTriggerData_p1.h | 4 ++++ .../src/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.cxx | 9 +++++++-- MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h | 7 +++++-- MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx | 8 ++++++-- 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.h index dd9b18b39ba..3cdeb894cb7 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.h +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.h @@ -7,6 +7,8 @@ #include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" +#include + namespace Muon { class NSW_PadTriggerDataContainerCnv_p1 : public T_AthenaPoolTPCnvBase { public: diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerData_p1.h b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerData_p1.h index 852d8fb4e2b..b8ec17bb994 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerData_p1.h +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/MuonRDO/NSW_PadTriggerData_p1.h @@ -13,6 +13,10 @@ struct NSW_PadTriggerData_p1 : public std::vector { uint8_t m_endcap; uint32_t m_BCID; uint32_t m_L1ID; + // Hitlists from the BCs preceding, following, and at the time of the L1A + std::vector m_precedingHitlist; + std::vector m_currentHitlist; + std::vector m_followingHitlist; }; } // namespace Muon diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.cxx index 25c53eba7e7..dbdabaf9347 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.cxx +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonRDO/NSW_PadTriggerDataContainerCnv_p1.cxx @@ -4,8 +4,10 @@ namespace Muon { void NSW_PadTriggerDataContainerCnv_p1::persToTrans(const NSW_PadTriggerDataContainer_p1* persistentObj, NSW_PadTriggerDataContainer* transientObj, MsgStream &log) { log << MSG::VERBOSE << "NSW_PadTriggerDataContainerCnv_p1::persToTrans() called" << std::endl; for (const auto& pCollection : *persistentObj) { + std::array, 3> persistent_hitlists{ pCollection.m_precedingHitlist, pCollection.m_currentHitlist, pCollection.m_followingHitlist }; + // Can initialize here with std::move(persistent_hitlists) and modify the transient constructor accordingly auto tCollection = std::make_unique(pCollection.m_identifierHash, pCollection.m_sectorID, - pCollection.m_sectorSize, pCollection.m_endcap, pCollection.m_BCID, pCollection.m_L1ID); + pCollection.m_sectorSize, pCollection.m_endcap, pCollection.m_BCID, pCollection.m_L1ID, persistent_hitlists); tCollection->reserve(pCollection.size()); for (std::size_t i{}; i < pCollection.size(); i++) { tCollection->push_back(m_segmentConverter.createTransient(&pCollection.at(i), log)); @@ -20,7 +22,6 @@ void NSW_PadTriggerDataContainerCnv_p1::persToTrans(const NSW_PadTriggerDataCont void NSW_PadTriggerDataContainerCnv_p1::transToPers(const NSW_PadTriggerDataContainer* transientObj, NSW_PadTriggerDataContainer_p1* persistentObj, MsgStream &log) { - // Can use T_AthenaPoolTPCnvIDCont / T_AthenaPoolTPPtrVectorCnv here, should we? log << MSG::VERBOSE << "NSW_PadTriggerDataContainerCnv_p1::transToPers() called" << std::endl; persistentObj->reserve(transientObj->size()); @@ -35,6 +36,10 @@ void NSW_PadTriggerDataContainerCnv_p1::transToPers(const NSW_PadTriggerDataCont pCollection.m_endcap = tCollection->endcap(); pCollection.m_BCID = tCollection->BCID(); pCollection.m_L1ID = tCollection->L1ID(); + + pCollection.m_precedingHitlist = tCollection->hitlists()[0]; + pCollection.m_currentHitlist = tCollection->hitlists()[1]; + pCollection.m_followingHitlist = tCollection->hitlists()[2]; // Convert each element in the transient collection to its persistent form for (std::size_t i{}; i < tCollection->size(); i++) { diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h index b8c6a873601..27052fdfb7d 100644 --- a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h @@ -12,9 +12,10 @@ namespace Muon { class NSW_PadTriggerData : public DataVector { +using hitlist_t = std::vector; public: NSW_PadTriggerData(IdentifierHash identifierHash, uint8_t sectorID, uint8_t sectorSize, uint8_t endcap, - uint32_t BCID, uint32_t L1ID); + uint32_t BCID, uint32_t L1ID, const std::array& hitlists); IdentifierHash identifierHash() const; std::string string() const; @@ -24,6 +25,7 @@ public: uint8_t endcap() const; uint32_t BCID() const; uint32_t L1ID() const; + const std::array& hitlists() const; friend std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerData& rhs); friend MsgStream& operator<<(MsgStream& stream, const NSW_PadTriggerData& rhs); @@ -34,7 +36,8 @@ private: uint8_t m_endcap; uint32_t m_BCID; uint32_t m_L1ID; - // TODO(yzach) add hit list + // List of pad hits, in a 3BC window around the L1A BC + std::array m_hitlists; }; } // namespace Muon diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx index ab8f8c14af4..1a65e3a85fa 100644 --- a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx +++ b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx @@ -2,9 +2,9 @@ namespace Muon { NSW_PadTriggerData::NSW_PadTriggerData(IdentifierHash identifierHash, uint8_t sectorID, uint8_t sectorSize, - uint8_t endcap, uint32_t BCID, uint32_t L1ID) + uint8_t endcap, uint32_t BCID, uint32_t L1ID, const std::array& hitlists) : m_identifierHash(identifierHash), m_sectorID(sectorID), m_sectorSize(sectorSize), m_endcap(endcap), m_BCID(BCID), - m_L1ID(L1ID) { } + m_L1ID(L1ID), m_hitlists(hitlists) { } IdentifierHash NSW_PadTriggerData::identifierHash() const { return m_identifierHash; @@ -36,6 +36,10 @@ uint32_t NSW_PadTriggerData::L1ID() const { return m_L1ID; } +const std::array& NSW_PadTriggerData::hitlists() const { + return m_hitlists; +} + std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerData& rhs) { return stream << rhs.string(); } -- GitLab From ae535fd602454b48d5688d9eed8c61f6cf77389d Mon Sep 17 00:00:00 2001 From: yzach Date: Sun, 17 Jan 2021 14:28:43 +0100 Subject: [PATCH 13/14] Update UUID of NSW_PadTriggerDataContainer --- .../MuonEventAthenaPool/src/NSW_PadTriggerDataContainerCnv.cxx | 2 +- .../MuonCnv/MuonEventTPCnv/MuonEventTPCnv/selection.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerDataContainerCnv.cxx b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerDataContainerCnv.cxx index bceaa88dd07..c018c37b283 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerDataContainerCnv.cxx +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/NSW_PadTriggerDataContainerCnv.cxx @@ -15,7 +15,7 @@ Muon::NSW_PadTriggerDataContainer* NSW_PadTriggerDataContainerCnv::createTransie << "NSW_PadTriggerDataContainerCnv::createTransient(): reading container from persistent storage" << std::endl; // UUID of of NSW_PadTriggerDataContainer_p1 - static pool::Guid p1_guid("E506DD96-47F1-43E0-BAA0-485A3FB407A1"); + static pool::Guid p1_guid("2930850B-526A-4A6B-BDC6-C86D43B06C7C"); if(compareClassGuid(p1_guid)) { std::unique_ptr pContainer { poolReadObject() }; diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/selection.xml b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/selection.xml index 8160f03d6e5..3a340f1bc69 100755 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/selection.xml +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/MuonEventTPCnv/selection.xml @@ -147,6 +147,6 @@ - + -- GitLab From 71816cc4f2b6d8c598b4d722cb5335ab78bd2a65 Mon Sep 17 00:00:00 2001 From: yzach Date: Sun, 17 Jan 2021 14:36:37 +0100 Subject: [PATCH 14/14] Add noexcept qualifier to NSW_PadTriggerData getter functions --- MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h | 10 +++++----- MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h index 27052fdfb7d..c4f457010d9 100644 --- a/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/NSW_PadTriggerData.h @@ -20,11 +20,11 @@ public: std::string string() const; - uint8_t sectorID() const; - uint8_t sectorSize() const; - uint8_t endcap() const; - uint32_t BCID() const; - uint32_t L1ID() const; + uint8_t sectorID() const noexcept; + uint8_t sectorSize() const noexcept; + uint8_t endcap() const noexcept; + uint32_t BCID() const noexcept; + uint32_t L1ID() const noexcept; const std::array& hitlists() const; friend std::ostream& operator<<(std::ostream& stream, const NSW_PadTriggerData& rhs); diff --git a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx index 1a65e3a85fa..99fc260c411 100644 --- a/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx +++ b/MuonSpectrometer/MuonRDO/src/NSW_PadTriggerData.cxx @@ -16,23 +16,23 @@ std::string NSW_PadTriggerData::string() const { return sstream.str(); } -uint8_t NSW_PadTriggerData::sectorID() const { +uint8_t NSW_PadTriggerData::sectorID() const noexcept { return m_sectorID; } -uint8_t NSW_PadTriggerData::sectorSize() const { +uint8_t NSW_PadTriggerData::sectorSize() const noexcept { return m_sectorSize; } -uint8_t NSW_PadTriggerData::endcap() const { +uint8_t NSW_PadTriggerData::endcap() const noexcept { return m_endcap; } -uint32_t NSW_PadTriggerData::BCID() const { +uint32_t NSW_PadTriggerData::BCID() const noexcept { return m_BCID; } -uint32_t NSW_PadTriggerData::L1ID() const { +uint32_t NSW_PadTriggerData::L1ID() const noexcept { return m_L1ID; } -- GitLab