![]() |
ATLAS Offline Software
|
ROBDataProvider service for retrieving and serving ROB data in HLT online. More...
#include <HltROBDataProviderSvc.h>
Classes | |
| struct | EventCache |
| struct which provides the event cache for each slot More... | |
Public Types | |
| typedef OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment | ROBF |
| ROB Fragment class. | |
Public Member Functions | |
| HltROBDataProviderSvc (const std::string &name, ISvcLocator *pSvcLocator) | |
| virtual StatusCode | initialize () override |
| virtual StatusCode | finalize () override |
| virtual void | addROBData (const EventContext &, const std::vector< uint32_t > &, const std::string_view callerName="UNKNOWN") override |
| Signal ROB fragments which should be considered for prefetching in online running. | |
| virtual void | setNextEvent (const EventContext &, const std::vector< ROBF > &) override |
| Start a new event with a set of ROB fragments, e.g. from LVL1 result, in online and add the fragments to the ROB cache. | |
| virtual void | setNextEvent (const EventContext &, const RawEvent *) override |
| Start a new event with a full event fragment and add all ROB fragments in to the ROB cache. | |
| virtual void | getROBData (const EventContext &, const std::vector< uint32_t > &, std::vector< const ROBF * > &, const std::string_view callerName="UNKNOWN") override |
| Retrieve ROB fragments for given ROB ids from the ROB cache. | |
| virtual const RawEvent * | getEvent (const EventContext &) override |
| Retrieve the full event fragment. | |
| virtual void | setEventStatus (const EventContext &, uint32_t) override |
| Store the status for the event. | |
| virtual uint32_t | getEventStatus (const EventContext &) override |
| Retrieve the status for the event. | |
| virtual void | processCachedROBs (const EventContext &, const std::function< void(const ROBF *)> &) const override |
| Apply a function to all ROBs in the cache. | |
| virtual bool | isEventComplete (const EventContext &) const override |
| Flag to check if all event data have been retrieved. | |
| virtual int | collectCompleteEventData (const EventContext &, const std::string_view callerName="UNKNOWN") override |
| retrieve in online running all ROBs for the event from the readout system. Only those ROBs are retrieved which are not already in the cache | |
Private Types | |
| typedef tbb::concurrent_unordered_map< uint32_t, ROBF > | ROBMAP |
| map for all the ROB fragments | |
| typedef std::vector< std::pair< int, int > > | ArrayPairIntType |
| vector of Source ids and status words to be ignored for the ROB map | |
| typedef std::map< uint32_t, std::vector< uint32_t > > | FilterRobMap |
| map of full ROB Source ids and status words to be ignored for the ROB map | |
| typedef std::map< eformat::SubDetector, std::vector< uint32_t > > | FilterSubDetMap |
| map of Sub Det Source ids and status words to be ignored for the ROB map | |
Private Member Functions | |
| bool | robmap_filterRobWithStatus (const ROBF *) |
| method to filter ROBs with given Status code | |
| robmonitor::ROBDataStruct | robmap_getRobData (const ROBF &, robmonitor::ROBHistory) |
| method to get ROB fragment from ROBF input: context ROB fragment to be parsed ROB history status | |
| void | eventCache_clear (EventCache *) |
| method to clear an event cache in a slot input: pointer to cache | |
| void | eventCache_checkRobListToCache (EventCache *, const std::vector< uint32_t > &, std::vector< const ROBF * > &, std::vector< uint32_t > &, std::optional< std::reference_wrapper< std::set< uint32_t > > > robIds_disabled=std::nullopt) |
| method to compare a list of ROB Ids to the ones in an event cache in a slot input: pointer to cache vector of ROB Ids to compare to existing ones in cache output: vector of ROB fragments available already in cache vector of ROB Ids missing in cache set of disabled ROBs | |
| void | eventCache_addRobData (EventCache *, std::vector< ROBF > &&, std::optional< std::reference_wrapper< std::set< uint32_t > > > robIds_ignored=std::nullopt) |
| method to add ROB fragments to an event cache in a slot input: pointer to cache vector of ROB fragments to add to the cache output: set of ignored ROBs | |
Private Attributes | |
| SG::SlotSpecificObj< EventCache > | m_eventsCache |
| An event cache for each slot. | |
| Gaudi::Property< ArrayPairIntType > | m_filterRobWithStatus |
| Gaudi::Property< ArrayPairIntType > | m_filterSubDetWithStatus |
| FilterRobMap | m_filterRobMap |
| FilterSubDetMap | m_filterSubDetMap |
| Gaudi::Property< bool > | m_filterEmptyROB |
| Filter out empty ROB fragments which are send by the ROS. | |
| bool | m_maskL2EFModuleID = false |
| For Run 1 the module ID for the Lvl2/EF result contained the machine ID and needed to be filtered out to access these result records transparently. | |
| Gaudi::Property< bool > | m_readROBfromOKS |
| Gaudi::Property< std::vector< uint32_t > > | m_enabledROBs |
| Gaudi::Property< bool > | m_prefetchAllROBsfromROS |
| Gaudi::Property< std::vector< uint8_t > > | m_prefetchSubDetROS |
| std::vector< uint32_t > | m_prefetchWholeROSList |
| Gaudi::Property< bool > | m_doCostMonitoring |
| ServiceHandle< ITrigCostSvc > | m_trigCostSvcHandle |
| ToolHandle< GenericMonitoringTool > | m_monTool {this, "MonTool", "", "Monitoring tool"} |
| Monitoring tool. | |
ROBDataProvider service for retrieving and serving ROB data in HLT online.
Definition at line 38 of file HltROBDataProviderSvc.h.
|
private |
vector of Source ids and status words to be ignored for the ROB map
Definition at line 111 of file HltROBDataProviderSvc.h.
|
private |
map of full ROB Source ids and status words to be ignored for the ROB map
Definition at line 118 of file HltROBDataProviderSvc.h.
|
private |
map of Sub Det Source ids and status words to be ignored for the ROB map
Definition at line 121 of file HltROBDataProviderSvc.h.
ROB Fragment class.
Definition at line 41 of file HltROBDataProviderSvc.h.
|
private |
map for all the ROB fragments
Definition at line 88 of file HltROBDataProviderSvc.h.
| HltROBDataProviderSvc::HltROBDataProviderSvc | ( | const std::string & | name, |
| ISvcLocator * | pSvcLocator ) |
Definition at line 25 of file HltROBDataProviderSvc.cxx.
|
overridevirtual |
Signal ROB fragments which should be considered for prefetching in online running.
— Implementation of IROBDataProviderSvc interface —
Signal ROB fragments which should be considered for prefetching in online running
Definition at line 201 of file HltROBDataProviderSvc.cxx.
|
overridevirtual |
retrieve in online running all ROBs for the event from the readout system. Only those ROBs are retrieved which are not already in the cache
Definition at line 476 of file HltROBDataProviderSvc.cxx.
|
private |
method to add ROB fragments to an event cache in a slot input: pointer to cache vector of ROB fragments to add to the cache output: set of ignored ROBs
Definition at line 652 of file HltROBDataProviderSvc.cxx.
|
private |
method to compare a list of ROB Ids to the ones in an event cache in a slot input: pointer to cache vector of ROB Ids to compare to existing ones in cache output: vector of ROB fragments available already in cache vector of ROB Ids missing in cache set of disabled ROBs
Definition at line 597 of file HltROBDataProviderSvc.cxx.
|
private |
method to clear an event cache in a slot input: pointer to cache
Definition at line 586 of file HltROBDataProviderSvc.cxx.
|
overridevirtual |
Definition at line 192 of file HltROBDataProviderSvc.cxx.
|
overridevirtual |
Retrieve the full event fragment.
Definition at line 438 of file HltROBDataProviderSvc.cxx.
|
overridevirtual |
Retrieve the status for the event.
Definition at line 452 of file HltROBDataProviderSvc.cxx.
|
overridevirtual |
Retrieve ROB fragments for given ROB ids from the ROB cache.
Definition at line 305 of file HltROBDataProviderSvc.cxx.
|
overridevirtual |
Definition at line 30 of file HltROBDataProviderSvc.cxx.
|
overridevirtual |
Flag to check if all event data have been retrieved.
Definition at line 469 of file HltROBDataProviderSvc.cxx.
|
overridevirtual |
Apply a function to all ROBs in the cache.
Definition at line 459 of file HltROBDataProviderSvc.cxx.
|
private |
method to filter ROBs with given Status code
Definition at line 535 of file HltROBDataProviderSvc.cxx.
|
private |
method to get ROB fragment from ROBF input: context ROB fragment to be parsed ROB history status
Definition at line 427 of file HltROBDataProviderSvc.cxx.
|
overridevirtual |
|
overridevirtual |
Start a new event with a full event fragment and add all ROB fragments in to the ROB cache.
Definition at line 246 of file HltROBDataProviderSvc.cxx.
|
overridevirtual |
Start a new event with a set of ROB fragments, e.g. from LVL1 result, in online and add the fragments to the ROB cache.
Definition at line 239 of file HltROBDataProviderSvc.cxx.
|
private |
Definition at line 154 of file HltROBDataProviderSvc.h.
|
private |
Definition at line 137 of file HltROBDataProviderSvc.h.
|
private |
An event cache for each slot.
Definition at line 104 of file HltROBDataProviderSvc.h.
|
private |
Filter out empty ROB fragments which are send by the ROS.
Definition at line 125 of file HltROBDataProviderSvc.h.
|
private |
Definition at line 119 of file HltROBDataProviderSvc.h.
|
private |
Definition at line 112 of file HltROBDataProviderSvc.h.
|
private |
Definition at line 122 of file HltROBDataProviderSvc.h.
|
private |
Definition at line 114 of file HltROBDataProviderSvc.h.
|
private |
For Run 1 the module ID for the Lvl2/EF result contained the machine ID and needed to be filtered out to access these result records transparently.
Definition at line 130 of file HltROBDataProviderSvc.h.
|
private |
Monitoring tool.
Definition at line 205 of file HltROBDataProviderSvc.h.
|
private |
Definition at line 141 of file HltROBDataProviderSvc.h.
|
private |
Definition at line 149 of file HltROBDataProviderSvc.h.
|
private |
Definition at line 152 of file HltROBDataProviderSvc.h.
|
private |
Definition at line 133 of file HltROBDataProviderSvc.h.
|
private |
Definition at line 157 of file HltROBDataProviderSvc.h.