 |
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef BYTESTREAMCNVSVCBASE_ROBDATAPROVIDERSVC_H
6 #define BYTESTREAMCNVSVCBASE_ROBDATAPROVIDERSVC_H
30 #include "eformat/SourceIdentifier.h"
33 #include "Gaudi/Property.h"
51 virtual void addROBData(
const EventContext& context,
const std::vector<uint32_t>& robIds,
const std::string_view callerName=
"UNKNOWN")
override;
54 virtual void setNextEvent(
const EventContext& context,
const std::vector<OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment>&
result)
override;
60 virtual void getROBData(
const EventContext& context,
const std::vector<uint32_t>& robIds, VROBFRAG& robFragments,
61 const std::string_view callerName=
"UNKNOWN")
override;
73 const std::function<
void(
const ROBF* )>&
fn )
const override;
75 virtual bool isEventComplete(
const EventContext& )
const override {
return true; }
83 using ROBMAP = std::map<uint32_t, std::unique_ptr<const ROBF>, std::less<uint32_t>>;
98 this,
"filterRobWithStatus", {},
"ROB IDs and status words to filter (full ROB SourceID)"};
100 this,
"filterSubDetWithStatus", {},
"Sub-detector IDs and status words to filter"};
112 Gaudi::Property<bool>
m_filterEmptyROB{
this,
"filterEmptyROB",
false,
"Filter out empty ROB fragments"};
virtual void setEventStatus(const EventContext &context, uint32_t status) override
Store the status for the event.
Gaudi::Property< ArrayPairIntType > m_filterRobWithStatus
virtual void addROBData(const EventContext &context, const std::vector< uint32_t > &robIds, const std::string_view callerName="UNKNOWN") override
Add ROBFragments to cache for given ROB ids, ROB fragments may be retrieved with DataCollector.
virtual void setNextEvent(const EventContext &context, const std::vector< OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment > &result) override
Add a given LVL1/LVL2 ROBFragment to cache.
eformat::ROBFragment< PointerType > ROBFragment
OFFLINE_FRAGMENTS_NAMESPACE::FullEventFragment RawEvent
data type for reading raw event
Gaudi::Property< bool > m_filterEmptyROB
Filter out empty ROB fragments which are send by the ROS.
virtual StatusCode initialize() override
initialize the service
Maintain a set of objects, one per slot.
::StatusCode StatusCode
StatusCode definition for legacy code.
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
virtual void getROBData(const EventContext &context, const std::vector< uint32_t > &robIds, VROBFRAG &robFragments, const std::string_view callerName="UNKNOWN") override
Retrieve ROBFragments for given ROB ids from cache.
ROBDataProviderSvc(const std::string &name, ISvcLocator *svcloc)
Constructor.
virtual uint32_t getEventStatus(const EventContext &context) override
Retrieve the status for the event.
virtual bool isEventComplete(const EventContext &) const override
virtual const RawEvent * getEvent(const EventContext &context) override
Retrieve the whole event.
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
FilterSubDetMap m_filterSubDetMap
const boost::regex re(r_e)
virtual int collectCompleteEventData(const EventContext &, const std::string_view) override
static void robmapClear(ROBMAP &toclear)
Maintain a set of objects, one per slot.
FilterRobMap m_filterRobMap
virtual void processCachedROBs(const EventContext &context, const std::function< void(const ROBF *)> &fn) const override
std::vector< std::pair< int, int > > ArrayPairIntType
Remaining attributes are for configuration vector of Source ids and status words to be ignored for th...
SG::SlotSpecificObj< EventCache > m_eventsCache
Gaudi::Property< ArrayPairIntType > m_filterSubDetWithStatus
bool filterRobWithStatus(const ROBF *rob)
method to filter ROBs with given Status code
std::map< uint32_t, std::unique_ptr< const ROBF >, std::less< uint32_t > > ROBMAP
vector of ROBFragment class