ATLAS Offline Software
Loading...
Searching...
No Matches
TrigEventSelectorByteStream Class Reference

online implementation of IEvtSelector for ByteStream More...

#include <TrigEventSelectorByteStream.h>

Inheritance diagram for TrigEventSelectorByteStream:
Collaboration diagram for TrigEventSelectorByteStream:

Classes

class  Context
 Event Selector context for TrigEventSelectorByteStream. More...

Public Member Functions

 TrigEventSelectorByteStream (const std::string &name, ISvcLocator *svcLoc)
 Standard constructor.
virtual ~TrigEventSelectorByteStream ()
 Standard destructor.
virtual StatusCode initialize () override
virtual StatusCode finalize () override
virtual StatusCode createContext (IEvtSelector::Context *&c) const override
virtual StatusCode next (IEvtSelector::Context &c) const override
virtual StatusCode next (IEvtSelector::Context &c, int jump) const override
virtual StatusCode previous (IEvtSelector::Context &c) const override
virtual StatusCode previous (IEvtSelector::Context &c, int jump) const override
virtual StatusCode last (IEvtSelector::Context &refContext) const override
virtual StatusCode rewind (IEvtSelector::Context &c) const override
virtual StatusCode createAddress (const IEvtSelector::Context &c, IOpaqueAddress *&iop) const override
virtual StatusCode releaseContext (IEvtSelector::Context *&c) const override
virtual StatusCode resetCriteria (const std::string &cr, IEvtSelector::Context &c) const override

Private Attributes

ServiceHandle< IByteStreamInputSvcm_eventSource
ServiceHandle< StoreGateSvcm_evtStore

Detailed Description

online implementation of IEvtSelector for ByteStream

Definition at line 20 of file TrigEventSelectorByteStream.h.

Constructor & Destructor Documentation

◆ TrigEventSelectorByteStream()

TrigEventSelectorByteStream::TrigEventSelectorByteStream ( const std::string & name,
ISvcLocator * svcLoc )

Standard constructor.

Definition at line 22 of file TrigEventSelectorByteStream.cxx.

23: base_class(name, svcLoc),
24 m_eventSource("ByteStreamInputSvc", name),
25 m_evtStore("StoreGateSvc", name) {
26 declareProperty("ByteStreamInputSvc", m_eventSource);
27}
ServiceHandle< IByteStreamInputSvc > m_eventSource
ServiceHandle< StoreGateSvc > m_evtStore

◆ ~TrigEventSelectorByteStream()

TrigEventSelectorByteStream::~TrigEventSelectorByteStream ( )
virtual

Standard destructor.

Definition at line 32 of file TrigEventSelectorByteStream.cxx.

32{}

Member Function Documentation

◆ createAddress()

StatusCode TrigEventSelectorByteStream::createAddress ( const IEvtSelector::Context & c,
IOpaqueAddress *& iop ) const
overridevirtual

Definition at line 136 of file TrigEventSelectorByteStream.cxx.

137{
138 ATH_MSG_VERBOSE("start of " << __FUNCTION__);
139
140 // Get the EventContext via event store because the interface doesn't allow passing it explicitly as an argument
141 // and we don't want to use ThreadLocalContext. Don't use ReadHandle here because it calls ThreadLocalContext if
142 // not given a context (which we want to retrieve).
143 const EventContext* eventContext = nullptr;
144 ATH_CHECK(m_evtStore->retrieve(eventContext));
145
146 // Create and record ByteStreamAddress for xAOD::EventInfo
147 CxxUtils::RefCountedPtr<ByteStreamAddress> addr
148 (new ByteStreamAddress(ClassID_traits<xAOD::EventInfo>::ID(), "EventInfo", ""));
149 addr->setEventContext(*eventContext);
150 iop = addr.get();
151 ATH_CHECK(m_evtStore->recordAddress("EventInfo",std::move(addr)));
152 ATH_MSG_DEBUG("Recorded new ByteStreamAddress for xAOD::EventInfo with event context " << *eventContext);
153
154 // Create and record ByteStreamAddress for xAOD::EventAuxInfo
155 CxxUtils::RefCountedPtr<ByteStreamAddress> auxaddr
156 (new ByteStreamAddress(ClassID_traits<xAOD::EventAuxInfo>::ID(), "EventInfoAux.", ""));
157 auxaddr->setEventContext(*eventContext);
158 ATH_CHECK(m_evtStore->recordAddress("EventInfoAux.", std::move(auxaddr)));
159 ATH_MSG_DEBUG("Recorded new ByteStreamAddress for xAOD::EventAuxInfo with event context " << *eventContext);
160
161 ATH_MSG_VERBOSE("end of " << __FUNCTION__);
162 return StatusCode::SUCCESS;
163}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_DEBUG(x)

◆ createContext()

StatusCode TrigEventSelectorByteStream::createContext ( IEvtSelector::Context *& c) const
overridevirtual

Definition at line 118 of file TrigEventSelectorByteStream.cxx.

119{
120 c = new TrigEventSelectorByteStream::Context(this);
121 return StatusCode::SUCCESS;
122}

◆ finalize()

StatusCode TrigEventSelectorByteStream::finalize ( )
overridevirtual

Definition at line 51 of file TrigEventSelectorByteStream.cxx.

52{
53 ATH_MSG_VERBOSE("start of " << __FUNCTION__);
54 if (m_eventSource.release().isFailure()) {
55 ATH_MSG_WARNING("Cannot release the event source service");
56 }
57 ATH_MSG_VERBOSE("end of " << __FUNCTION__);
58 return StatusCode::SUCCESS;
59}
#define ATH_MSG_WARNING(x)

◆ initialize()

StatusCode TrigEventSelectorByteStream::initialize ( )
overridevirtual

Definition at line 37 of file TrigEventSelectorByteStream.cxx.

38{
39 ATH_MSG_VERBOSE("start of " << __FUNCTION__);
40
41 ATH_CHECK(m_eventSource.retrieve());
42 ATH_CHECK(m_evtStore.retrieve());
43
44 ATH_MSG_VERBOSE("end of " << __FUNCTION__);
45 return StatusCode::SUCCESS;
46}

◆ last()

StatusCode TrigEventSelectorByteStream::last ( IEvtSelector::Context & refContext) const
overridevirtual

Definition at line 187 of file TrigEventSelectorByteStream.cxx.

188{
190}
#define TRIGEVENTSELECTORBYTESTREAM_UNIMPL

◆ next() [1/2]

StatusCode TrigEventSelectorByteStream::next ( IEvtSelector::Context & c) const
overridevirtual

Definition at line 65 of file TrigEventSelectorByteStream.cxx.

66{
67 ATH_MSG_VERBOSE("start of " << __FUNCTION__);
68
69 // RawEvent is a typedef for FullEventFragment
70 const RawEvent* ptrRawEvent = nullptr;
71
72 // Try to get the next event from the event source
73 try {
74 ptrRawEvent = m_eventSource->nextEvent();
75 }
76 catch (const hltonl::Exception::NoMoreEvents& e) {
77 ATH_MSG_INFO(e.what());
78 throw; // rethrow NoMoreEvents
79 }
80 catch (const hltonl::Exception::NoEventsTemporarily& e) {
81 ATH_MSG_DEBUG(e.what());
82 throw; // rethrow NoEventsTemporarily
83 }
84 catch (const hltonl::Exception::EventSourceCorrupted& e) {
85 ATH_MSG_ERROR(e.what());
86 throw; // rethrow EventSourceCorrupted
87 }
88 catch (const hltonl::Exception::MissingCTPFragment& e) {
89 ATH_MSG_INFO(e.what());
90 throw; // rethrow MissingCTPFragment
91 }
92 catch (const hltonl::Exception::BadCTPFragment& e) {
93 ATH_MSG_INFO(e.what());
94 throw; // rethrow BadCTPFragment
95 }
96 catch (const std::exception& e) {
97 ATH_MSG_ERROR("Failed to get next event from the event source, std::exception caught: " << e.what());
98 return StatusCode::FAILURE;
99 }
100 catch (...) {
101 ATH_MSG_ERROR("Failed to get next event from the event source, unknown exception caught");
102 return StatusCode::FAILURE;
103 }
104
105 // Check if something was returned
106 if (ptrRawEvent == nullptr) {
107 ATH_MSG_ERROR("Failed to get next event from the event source, nullptr returned");
108 return StatusCode::FAILURE;
109 }
110
111 ATH_MSG_VERBOSE("end of " << __FUNCTION__);
112 return StatusCode::SUCCESS;
113}
#define ATH_MSG_ERROR(x)
#define ATH_MSG_INFO(x)
OFFLINE_FRAGMENTS_NAMESPACE::FullEventFragment RawEvent
data type for reading raw event
Definition RawEvent.h:37

◆ next() [2/2]

StatusCode TrigEventSelectorByteStream::next ( IEvtSelector::Context & c,
int jump ) const
overridevirtual

Definition at line 172 of file TrigEventSelectorByteStream.cxx.

◆ previous() [1/2]

StatusCode TrigEventSelectorByteStream::previous ( IEvtSelector::Context & c) const
overridevirtual

Definition at line 177 of file TrigEventSelectorByteStream.cxx.

◆ previous() [2/2]

StatusCode TrigEventSelectorByteStream::previous ( IEvtSelector::Context & c,
int jump ) const
overridevirtual

Definition at line 182 of file TrigEventSelectorByteStream.cxx.

◆ releaseContext()

StatusCode TrigEventSelectorByteStream::releaseContext ( IEvtSelector::Context *& c) const
overridevirtual

Definition at line 127 of file TrigEventSelectorByteStream.cxx.

128{
129 // this does nothing
130 return StatusCode::SUCCESS;
131}

◆ resetCriteria()

StatusCode TrigEventSelectorByteStream::resetCriteria ( const std::string & cr,
IEvtSelector::Context & c ) const
overridevirtual

Definition at line 197 of file TrigEventSelectorByteStream.cxx.

◆ rewind()

StatusCode TrigEventSelectorByteStream::rewind ( IEvtSelector::Context & c) const
overridevirtual

Definition at line 192 of file TrigEventSelectorByteStream.cxx.

Member Data Documentation

◆ m_eventSource

ServiceHandle<IByteStreamInputSvc> TrigEventSelectorByteStream::m_eventSource
private

Definition at line 64 of file TrigEventSelectorByteStream.h.

◆ m_evtStore

ServiceHandle<StoreGateSvc> TrigEventSelectorByteStream::m_evtStore
private

Definition at line 66 of file TrigEventSelectorByteStream.h.


The documentation for this class was generated from the following files: