![]() |
ATLAS Offline Software
|
Tool responsible for filling an HLT result object with serialised EDM collections. More...
#include <TriggerEDMSerialiserTool.h>
Classes | |
| class | Address |
| Internal structure to keep configuration organised conveniently. More... | |
| class | TruncationInfo |
| Internal structure to keep information for truncation debugging. More... | |
Public Member Functions | |
| TriggerEDMSerialiserTool (const std::string &type, const std::string &name, const IInterface *parent) | |
| virtual | ~TriggerEDMSerialiserTool () override=default |
| virtual StatusCode | fill (HLT::HLTResultMT &resultToFill, const EventContext &ctx) const override |
| virtual StatusCode | initialize () override |
Private Types | |
| using | TruncationInfoMap = std::unordered_map<uint16_t, std::vector<TruncationInfo>> |
| Typedef for collection of TruncationInfo objects for full event. | |
Private Member Functions | |
| StatusCode | addCollectionToSerialise (const std::string &typeKeyAuxIDs, std::vector< Address > &addressVec) const |
| Parse entry from m_collectionsToSerialize and add it to m_toSerialise. | |
| StatusCode | fillPayload (const void *data, size_t sz, std::vector< uint32_t > &buffer) const |
| Copy bytes from the memory into the buffer converting from char[] to uint32_t[] This function is candidate to be made global function at some point and we will need also readPayload function. | |
| StatusCode | serialiseContainer (void *data, const Address &address, std::vector< uint32_t > &buffer) const |
| Place inside the buffer the serialised container (can be either TP, xAOD) involves simple invocation of serialiser. | |
| StatusCode | serialisexAODAuxContainer (void *data, const Address &address, std::vector< uint32_t > &buffer, SGImplSvc *evtStore) const |
| Place inside the buffer serialised the xAOD Aux container involves selection and recording of dynamic variables. | |
| StatusCode | serialiseTPContainer (void *data, const Address &address, std::vector< uint32_t > &buffer) const |
| Place inside the buffer the serialised old type of container involves T/P conversion. | |
| StatusCode | serialiseDynAux (DataObject *dObject, const Address &address, std::vector< uint32_t > &buffer, size_t &nDynWritten) const |
| Add dynamic variables to the payload. | |
| StatusCode | serialise (const Address &address, std::vector< uint32_t > &buffer, SGImplSvc *evtStore) const |
| Retrieve data from event store, serialise and fill the buffer using one of the specific serialise methods, depending on the data type. | |
| 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 |
| Try appending serialised data to HLT result. | |
| StatusCode | fillDebugInfo (const TruncationInfoMap &truncationInfoMap, xAOD::TrigCompositeContainer &debugInfoCont, HLT::HLTResultMT &resultToFill, SGImplSvc *evtStore) const |
| Parse the truncation debug information, fill monitoring histograms, fill and record the debug info collection. | |
Static Private Member Functions | |
| static StatusCode | makeHeader (const TriggerEDMSerialiserTool::Address &address, std::vector< uint32_t > &buffer) |
| Given the ID of the collection (in address arg) insert basic streaming info into the buffer. | |
| static std::string | version (const std::string &name) |
| Obtain version from the actual type name. | |
| static std::set< uint16_t > | activeModuleIDs (const HLT::HLTResultMT &result) |
| Build a list of module IDs to serialise based on the stream tags. | |
Private Attributes | |
| Gaudi::Property< std::vector< std::string > > | m_collectionsToSerialize |
| Gaudi::Property< bool > | m_saveDynamic |
| Gaudi::Property< std::map< uint16_t, uint32_t > > | m_truncationThresholds |
| Gaudi::Property< int > | m_eventSizeHardLimitMB |
| Gaudi::Property< float > | m_fullResultTruncationFrac |
| SG::WriteHandleKey< xAOD::TrigCompositeContainer > | m_debugInfoWHKey |
| StoreGate key for the truncation debug info object. | |
| SG::ReadHandleKey< TrigCompositeUtils::DecisionContainer > | m_debugNavigationSummaryRHKey |
| StoreGate key for the navigation summary object - with this we can print which chains accepted the event which truncated. | |
| std::vector< Address > | m_toSerialise |
| ServiceHandle< IClassIDSvc > | m_clidSvc |
| ServiceHandle< IAthenaSerializeSvc > | m_serializerSvc |
| ToolHandle< TrigSerTPTool > | m_tpTool |
| ToolHandle< GenericMonitoringTool > | m_monTool { this, "MonTool", "", "Monitoring tool" } |
Friends | |
| StatusCode | tester (TriggerEDMSerialiserTool *) |
Tool responsible for filling an HLT result object with serialised EDM collections.
Its configuration is a list of EDM classes + keys + designation of dynamic variables + HLT result IDs. According to this list, objects are looked up in the main store and if found the serialisation service is used to convert the collections into arrays of bytes. Serialised data is wrapped info a vector of 32-bit integers and prefixed with header containing description of the payload (details may change). Such fragments for subsequent collections are concatenated together to form EDM payload in HLTResultMT. The HLTResultMT object stores serialised payload for all HLT result ROBs and all of them are filled together following the IDs in the configuration list.
For unpacking, the
Definition at line 37 of file TriggerEDMSerialiserTool.h.
|
private |
Typedef for collection of TruncationInfo objects for full event.
Definition at line 118 of file TriggerEDMSerialiserTool.h.
| TriggerEDMSerialiserTool::TriggerEDMSerialiserTool | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Definition at line 32 of file TriggerEDMSerialiserTool.cxx.
|
overridevirtualdefault |
|
staticprivate |
Build a list of module IDs to serialise based on the stream tags.
Definition at line 655 of file TriggerEDMSerialiserTool.cxx.
|
private |
Parse entry from m_collectionsToSerialize and add it to m_toSerialise.
Definition at line 89 of file TriggerEDMSerialiserTool.cxx.
|
overridevirtual |
Definition at line 402 of file TriggerEDMSerialiserTool.cxx.
|
private |
Parse the truncation debug information, fill monitoring histograms, fill and record the debug info collection.
Definition at line 538 of file TriggerEDMSerialiserTool.cxx.
|
private |
Copy bytes from the memory into the buffer converting from char[] to uint32_t[] This function is candidate to be made global function at some point and we will need also readPayload function.
Definition at line 198 of file TriggerEDMSerialiserTool.cxx.
|
overridevirtual |
Definition at line 37 of file TriggerEDMSerialiserTool.cxx.
|
staticprivate |
Given the ID of the collection (in address arg) insert basic streaming info into the buffer.
Definition at line 185 of file TriggerEDMSerialiserTool.cxx.
|
private |
Retrieve data from event store, serialise and fill the buffer using one of the specific serialise methods, depending on the data type.
Definition at line 375 of file TriggerEDMSerialiserTool.cxx.
|
private |
Place inside the buffer the serialised container (can be either TP, xAOD) involves simple invocation of serialiser.
Definition at line 287 of file TriggerEDMSerialiserTool.cxx.
|
private |
Add dynamic variables to the payload.
Definition at line 212 of file TriggerEDMSerialiserTool.cxx.
|
private |
Place inside the buffer the serialised old type of container involves T/P conversion.
Definition at line 360 of file TriggerEDMSerialiserTool.cxx.
|
private |
Place inside the buffer serialised the xAOD Aux container involves selection and recording of dynamic variables.
Definition at line 314 of file TriggerEDMSerialiserTool.cxx.
|
private |
Try appending serialised data to HLT result.
If data would exceed truncation threshold, don't add and flag the corresponding module ID as truncated.
Definition at line 494 of file TriggerEDMSerialiserTool.cxx.
|
staticprivate |
Obtain version from the actual type name.
Definition at line 644 of file TriggerEDMSerialiserTool.cxx.
|
friend |
|
private |
Definition at line 122 of file TriggerEDMSerialiserTool.h.
|
private |
Definition at line 53 of file TriggerEDMSerialiserTool.h.
|
private |
StoreGate key for the truncation debug info object.
Definition at line 79 of file TriggerEDMSerialiserTool.h.
|
private |
StoreGate key for the navigation summary object - with this we can print which chains accepted the event which truncated.
Definition at line 83 of file TriggerEDMSerialiserTool.h.
|
private |
Definition at line 69 of file TriggerEDMSerialiserTool.h.
|
private |
Definition at line 74 of file TriggerEDMSerialiserTool.h.
|
private |
Definition at line 130 of file TriggerEDMSerialiserTool.h.
|
private |
Definition at line 63 of file TriggerEDMSerialiserTool.h.
|
private |
Definition at line 124 of file TriggerEDMSerialiserTool.h.
|
private |
Definition at line 120 of file TriggerEDMSerialiserTool.h.
|
private |
Definition at line 127 of file TriggerEDMSerialiserTool.h.
|
private |
Definition at line 66 of file TriggerEDMSerialiserTool.h.