|
ATLAS Offline Software
|
Go to the documentation of this file.
4 #ifndef TRIGT1RESULTBYTESTREAM_IL1TRIGGERBYTESTREAMTOOL_H
5 #define TRIGT1RESULTBYTESTREAM_IL1TRIGGERBYTESTREAMTOOL_H
11 #include "GaudiKernel/IAlgTool.h"
12 #include "GaudiKernel/EventContext.h"
13 #include "eformat/Status.h"
31 const EventContext& eventContext)
const = 0;
46 const EventContext& eventContext) = 0;
55 virtual const std::vector<uint32_t>&
robIds()
const = 0;
61 template<
typename RHK,
typename WHK>
69 if constexpr (std::is_base_of_v<SG::VarHandleKeyArray, RHK>) {
70 msg << MSG::ERROR <<
"Exactly one of the read / write handle key arrays has to be set and the other has to"
71 <<
" be empty, but they have " << readHandleKeys.size() <<
" / " <<
writeHandleKeys.size() <<
" elements"
73 }
else if constexpr (std::is_base_of_v<SG::VarHandleKey, RHK>) {
74 msg << MSG::ERROR <<
"Exactly one of the read / write handle keys has to be set and the other has to"
75 <<
" be empty, but they are \"" << readHandleKeys.key() <<
"\" / \"" <<
writeHandleKeys.key() <<
"\""
81 inline void clearCache(
const EventContext& eventContext) {
82 m_cache.get(eventContext)->clear();
88 return cache->
rodData.back().get();
92 const EventContext& eventContext,
97 uint32_t status_position = eformat::STATUS_BACK) {
100 const EventIDBase& eid = eventContext.eventID();
101 cache->
robFragments.push_back(std::make_unique<OFFLINE_FRAGMENTS_NAMESPACE_WRITE::ROBFragment>(
105 eid.bunch_crossing_id(),
124 std::vector<std::unique_ptr<uint32_t[]>>
rodData;
125 std::vector<std::unique_ptr<OFFLINE_FRAGMENTS_NAMESPACE_WRITE::ROBFragment>>
robFragments;
135 #endif // TRIGT1RESULTBYTESTREAM_IL1TRIGGERBYTESTREAMTOOL_H
char data[hepevt_bytes_allocation_ATLAS]
A property holding a SG store/key/clid from which a VarHandle is made.
Base class for VarHandleKeyArray for reading from StoreGate.
Maintain a set of objects, one per slot.
::StatusCode StatusCode
StatusCode definition for legacy code.
eformat::write::ROBFragment ROBFragment
Maintain a set of objects, one per slot.