5#ifndef BYTESTREAMCNVSVC_EVENTSELECTORBYTESTREAM_H
6#define BYTESTREAMCNVSVC_EVENTSELECTORBYTESTREAM_H
19#include "GaudiKernel/IEvtSelector.h"
20#include "GaudiKernel/ServiceHandle.h"
21#include "GaudiKernel/ToolHandle.h"
22#include "GaudiKernel/IIoComponent.h"
43 public extends<::AthService, IEvtSelector, IEvtSelectorSeek, IEventShare, IIoComponent, ISecondaryEventSelector>
53 virtual StatusCode
start()
override;
54 virtual StatusCode
stop()
override;
55 virtual StatusCode
finalize()
override;
60 virtual StatusCode
createContext(Context*& it)
const override;
62 virtual StatusCode
next(Context& it)
const override;
65 virtual StatusCode
next(Context& it,
int jump)
const override;
67 virtual StatusCode
previous(Context& it)
const override;
70 virtual StatusCode
previous(Context& it,
int jump)
const override;
73 virtual StatusCode
last(Context& it)
const override;
75 virtual StatusCode
rewind(Context& it)
const override;
79 virtual StatusCode
createAddress(
const Context& it,IOpaqueAddress*& iop)
const override;
87 virtual StatusCode
resetCriteria(
const std::string& criteria, Context& context)
const override;
94 virtual StatusCode
seek (Context& ,
int evtnum)
const override;
98 virtual int curEvent (
const Context& it)
const override;
102 virtual int size (Context& it)
const override;
107 virtual StatusCode
makeServer(
int num)
override;
110 virtual StatusCode
makeClient(
int num)
override;
114 virtual StatusCode
share(
int evtnum)
override;
118 virtual StatusCode
readEvent(
int maxevt)
override;
134 virtual StatusCode
nextWithSkip(IEvtSelector::Context& ctxt)
const override;
138 virtual StatusCode
fillAttributeList(coral::AttributeList *attrList,
const std::string &suffix,
bool copySource)
const override;
152 StatusCode
fillAttributeListImpl(coral::AttributeList *attrList,
const std::string &suffix,
bool copySource,
177 mutable ToolHandle<IAthenaIPCTool> m_eventStreamingTool
ATLAS_THREAD_SAFE {
this,
"SharedMemoryTool",
"",
""};
200 ToolHandleArray<IAthenaSelectorTool>
m_helperTools{
this,
"HelperTools", {},
"Helper tools executed by EventSelector"};
209 Gaudi::CheckedProperty<uint32_t>
m_runNo{
this,
"RunNumber", 0,
""};
211 Gaudi::CheckedProperty<uint64_t>
m_eventsPerRun{
this,
"EventsPerRun", 1000000,
""};
212 Gaudi::CheckedProperty<uint32_t>
m_firstLBNo{
this,
"FirstLB", 0,
""};
213 Gaudi::CheckedProperty<uint32_t>
m_eventsPerLB{
this,
"EventsPerLB", 1000,
""};
Extension to IEvtSelector to allow for seeking.
Abstract interface for secondary event selectors.
Define macros for attributes used to control the static checker.
This class provides the Context for EventSelectorByteStream.
virtual StatusCode initialize() override
Implementation of Service base class methods.
virtual StatusCode stop() override
Gaudi::Property< bool > m_isSecondary
IsSecondary, know if this is an instance of secondary event selector.
virtual StatusCode previous(Context &it, int jump) const override
virtual int size(Context &it) const override
Always returns -1.
virtual StatusCode fillAttributeList(coral::AttributeList *attrList, const std::string &suffix, bool copySource) const override
Fill AttributeList with specific items from the selector and a suffix.
Gaudi::Property< std::string > m_eventSourceName
ToolHandle< IAthenaSelectorTool > m_counterTool
virtual StatusCode share(int evtnum) override
Request to share a given event number.
Gaudi::Property< bool > m_filebased
Gaudi::Property< uint32_t > m_timeStampInterval
virtual StatusCode resetCriteria(const std::string &criteria, Context &context) const override
Set a selection criteria.
std::lock_guard< mutex_t > lock_t
SmartIF< IByteStreamInputSvc > m_eventSource
Gaudi::CheckedProperty< uint32_t > m_firstLBNo
virtual StatusCode readEvent(int maxevt) override
Read the next maxevt events.
EventContextByteStream * m_endIter
int findEvent(int evtNum, lock_t &lock) const
Search for event with number evtNum.
virtual StatusCode releaseContext(Context *&it) const override
virtual StatusCode makeServer(int num) override
Make this a server.
virtual StatusCode next(Context &it, int jump) const override
virtual bool disconnectIfFinished(const SG::SourceID &fid) const override
Gaudi::CheckedProperty< uint64_t > m_eventsPerRun
StatusCode nextImpl(Context &it, int jump, lock_t &lock) const
virtual StatusCode nextWithSkip(IEvtSelector::Context &ctxt) const override
Go to next event and skip if necessary.
ToolHandleArray< IAthenaSelectorTool > m_helperTools
HelperTools, vector of names of AlgTools that are executed by the EventSelector.
virtual StatusCode finalize() override
StatusCode previousImpl(Context &it, lock_t &lock) const
virtual StatusCode last(Context &it) const override
Gaudi::CheckedProperty< uint32_t > m_initTimeStamp
Gaudi::CheckedProperty< uint32_t > m_eventsPerLB
Gaudi::Property< bool > m_overrideRunNumber
The following are included for compatibility with McEventSelector and are not really used.
Gaudi::Property< bool > m_procBadEvent
process bad events, which fail check_tree().
Gaudi::CheckedProperty< uint32_t > m_runNo
virtual StatusCode createContext(Context *&it) const override
create context
virtual StatusCode createAddress(const Context &it, IOpaqueAddress *&iop) const override
virtual StatusCode makeClient(int num) override
Make this a client.
virtual int curEvent(const Context &it) const override
Return the current event number.
ServiceHandle< IIncidentSvc > m_incidentSvc
StatusCode nextImpl(Context &it, lock_t &lock) const
StatusCode fillAttributeListImpl(coral::AttributeList *attrList, const std::string &suffix, bool copySource, lock_t &lock) const
void nextFile(lock_t &lock) const
StatusCode nextHandleFileTransitionImpl(IEvtSelector::Context &ctxt, lock_t &lock) const
virtual StatusCode rewind(Context &it) const override
StatusCode reinit(lock_t &lock)
Reinitialize the service when a fork() occurred/was-issued.
std::recursive_mutex mutex_t
Gaudi::Property< std::vector< std::string > > m_inputCollectionsProp
virtual StatusCode next(Context &it) const override
int m_fileCount ATLAS_THREAD_SAFE
number of files to process.
StatusCode openNewRun(lock_t &lock) const
virtual StatusCode io_reinit() override
Callback method to reinitialize the internal state of the component for I/O purposes (e....
virtual ~EventSelectorByteStream()
Standard Destructor.
Gaudi::Property< std::vector< long > > m_skipEventSequenceProp
StoreGateSvc * eventStore() const
void inputCollectionsHandler(Gaudi::Details::PropertyBase &)
virtual StatusCode start() override
virtual StatusCode recordAttributeList() const override
Record AttributeList in StoreGate.
virtual StatusCode seek(Context &, int evtnum) const override
Seek to a given event number.
StatusCode nextWithSkipImpl(IEvtSelector::Context &ctxt, lock_t &lock) const
StatusCode recordAttributeListImpl(lock_t &lock) const
Gaudi::CheckedProperty< uint64_t > m_firstEventNo
EventContextByteStream * m_beginIter
virtual StatusCode nextHandleFileTransition(IEvtSelector::Context &ctxt) const override
Handle file transition at the next iteration.
StatusCode previousImpl(Context &it, int jump, lock_t &lock) const
Gaudi::Property< long > m_skipEvents
virtual StatusCode previous(Context &it) const override
Gaudi::Property< int > m_maxBadEvts
number of bad events allowed before quitting.
EventSelectorByteStream(const std::string &name, ISvcLocator *svcloc)
Standard Constructor.
Interface class for managing ROB for both online and offline.
The Athena Transient Store API.