4#ifndef TRIGOUTPUTHANDLING_TRIGGEREDMSERIALISERTOOL_H
5#define TRIGOUTPUTHANDLING_TRIGGEREDMSERIALISERTOOL_H
12#include "GaudiKernel/IClassIDSvc.h"
13#include "GaudiKernel/ServiceHandle.h"
22#include "Gaudi/Parsers/Factory.h"
46 const std::string& name,
47 const IInterface* parent );
50 virtual StatusCode
fill(
HLT::HLTResultMT& resultToFill,
const EventContext& ctx )
const override;
57 this,
"CollectionsToSerialize", {},
58 "EDM streaming configuration \'collectionKeyType;module1,module2,...[;allowTruncation]\' where collectionKeyType is a string "
59 "formatted like for AthenaOutputStream, e.g. TYPE#SG.aux1.aux2..etc. For xAOD classes the typedef type should be "
60 "used and the _vN version number is automatically detected. For old T/P classes the persistent version has to be "
61 "given. Module IDs following the semicolon are the HLT result ROB module IDs to which the collection should be "
62 "written. ID=0 is the main result, other IDs are used for data scouting. The optional allowTruncation "
63 "indicates if the collection can be truncated without raising an ERROR.",
64 "OrderedSet<std::string>"
67 this,
"SaveDynamic",
true,
"If false skips serialising of dynamic variables. Use for test purpose only."
70 this,
"TruncationThresholds", {},
"HLT result truncation thresholds. Key is module ID, value is max size in bytes"
73 this,
"EventSizeHardLimitMB", -1,
74 "Hard limit for output event size in megabytes. Set automatically in initialize from run parameters. "
75 "In partition, it corresponds to DCM sbaBlockSize_MiB. Value <0 means no limit."
78 this,
"FullResultTruncationFrac", 0.8,
79 "Fraction of EventSizeHardLimitMB which defines the limit on the total size of HLT output (sum of all modules)"
83 this,
"DebugInfoWHKey",
"TruncationDebugInfo"
87 this,
"NavigationSummaryRHKey",
"HLTNav_Summary"
114 std::hash<SG::auxid_t>,
115 std::equal_to<SG::auxid_t>,
136 "Service to translate class name to CLID" };
138 "Service to translate transient to persistent representation" };
140 ToolHandle<TrigSerTPTool>
m_tpTool{
this,
"TPTool",
"TrigSerTPTool/TrigSerTPTool",
141 "Tool to do Transient/Persistent conversion (Old EDM)"};
143 ToolHandle<GenericMonitoringTool>
m_monTool{
this,
"MonTool",
"",
"Monitoring tool" };
160 StatusCode
fillPayload(
const void* data,
size_t sz, std::vector<uint32_t>& buffer )
const;
167 StatusCode
serialiseContainer(
void* data,
const Address& address, std::vector<uint32_t>& buffer )
const;
178 StatusCode
serialiseTPContainer(
void* data,
const Address& address, std::vector<uint32_t>& buffer )
const;
183 StatusCode
serialiseDynAux( DataObject* dObject,
const Address& address, std::vector<uint32_t>& buffer,
size_t& nDynWritten )
const;
189 StatusCode
serialise(
const Address& address, std::vector<uint32_t>& buffer,
SGImplSvc* evtStore )
const;
196 StatusCode
tryAddData(
HLT::HLTResultMT& hltResult,
const uint16_t
id,
const std::vector<uint32_t>& data,
Address::Truncation truncationMode,
const std::unordered_map<uint16_t, std::vector<uint32_t>>& deferredInterfaceBuffer)
const;
206 static std::string
version(
const std::string& name );
Hash map from pointers/integers to arbitrary objects allowing concurrent, lockless reads.
uint32_t CLID
The Class ID type.
Header file to be included by clients of the Monitored infrastructure.
Simple (non-deleting) Updater implementation.
Define macros for attributes used to control the static checker.
Simple (non-deleting) Updater implementation.
A container class for data required to build online output from HLT.
The Athena Transient Store API.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Class helping in dealing with dynamic branch selection.
ConcurrentToValMap(Updater_t &&updater, size_type capacity=64, const Context_t &ctx=Updater_t::defaultContext())
Hash map from pointers/integers to arbitrary objects allowing concurrent, lockless reads.
static const auxid_t null_auxid
To signal no aux data item.
size_t auxid_t
Identifier for a particular aux data item.
TrigCompositeContainer_v1 TrigCompositeContainer
Declare the latest version of the container.