| The Gaudi Framework v32r1 (f65d50dc)

Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
EventSelector Class Reference

Definition of class EventSelector. More...

`#include <src/EventSelector/EventSelector.h>`

Inheritance diagram for EventSelector:
[legend]
Collaboration diagram for EventSelector:
[legend]

## Public Types
typedef std::vector< EventSelectorDataStream * > | Streams
typedef std::vector< std::string > | StreamSpecs
typedef std::vector< Gaudi::Property< std::string > > | Properties
Public Types inherited from extends< Service, IEvtSelector >
using | base_class = extends
| Typedef to this class. More...
using | extend_interfaces_base = extend_interfaces< Interfaces... >
| Typedef to the base of this class. More...
Public Types inherited from Service
using | Factory = Gaudi::PluginService::Factory< IService *(const std::string &, ISvcLocator *)>
Public Types inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
using | PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
| Typedef used to refer to this class from derived classes, as in. More...
Public Types inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
using | base_class = CommonMessaging
Public Types inherited from extend_interfaces< Interfaces... >
using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
| take union of the ext_iids of all Interfaces... More...

## Public Member Functions
StatusCode | initialize () override
| IService implementation: Db event selector override. More...
StatusCode | finalize () override
| IService implementation: Service finalization. More...
StatusCode | reinitialize () override
| Service override: Reinitialize service. More...
StatusCode | createContext (Context *&refpCtxt) const override
| Create a new event loop context. More...
StatusCode | next (Context &refCtxt) const override
| Get next iteration item from the event loop context. More...
StatusCode | next (Context &refCtxt, int jump) const override
| Get next iteration item from the event loop context, but skip jump elements. More...
StatusCode | previous (Context &refCtxt) const override
| Get previous iteration item from the event loop context. More...
StatusCode | previous (Context &refCtxt, int jump) const override
| Get previous iteration item from the event loop context, but skip jump elements. More...
StatusCode | rewind (Context &refCtxt) const override
| Rewind the dataset. More...
StatusCode | createAddress (const Context &refCtxt, IOpaqueAddress *&refpAddr) const override
| Create new Opaque address corresponding to the current record. More...
StatusCode | releaseContext (Context *&refCtxt) const override
| Release existing event iteration context. More...
StatusCode | resetCriteria (const std::string &cr, Context &c) const override
| Will set a new criteria for the selection of the next list of events and will change the state of the context in a way to point to the new list. More...
StatusCode | last (Context &c) const override
| Access last item in the iteration. More...
StatusCode | firstOfNextStream (bool shutDown, EvtSelectorContext &it) const
| Retrieve first entry of the next data stream. More...
StatusCode | lastOfPreviousStream (bool shutDown, EvtSelectorContext &it) const
| Retrieve last entry of the previous data stream. More...
Public Member Functions inherited from extends< Service, IEvtSelector >
void * | i_cast (const InterfaceID &tid) const override
| Implementation of IInterface::i_cast. More...
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override
| Implementation of IInterface::queryInterface. More...
std::vector< std::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
Public Member Functions inherited from Service
const std::string & | name () const override
| Retrieve name of the service. More...
StatusCode | configure () override
StatusCode | initialize () override
StatusCode | start () override
StatusCode | stop () override
StatusCode | finalize () override
StatusCode | terminate () override
Gaudi::StateMachine::State | FSMState () const override
Gaudi::StateMachine::State | targetFSMState () const override
StatusCode | reinitialize () override
StatusCode | restart () override
StatusCode | sysInitialize () override
| Initialize Service. More...
StatusCode | sysStart () override
| Initialize Service. More...
StatusCode | sysStop () override
| Initialize Service. More...
StatusCode | sysFinalize () override
| Finalize Service. More...
StatusCode | sysReinitialize () override
| Re-initialize the Service. More...
StatusCode | sysRestart () override
| Re-initialize the Service. More...
| Service (std::string name, ISvcLocator *svcloc)
| Standard Constructor. More...
SmartIF< ISvcLocator > & | serviceLocator () const override
| Retrieve pointer to service locator. More...
StatusCode | setProperties ()
| Method for setting declared properties to the values specified for the job. More...
template<class T >
StatusCode | service (const std::string &name, const T *&psvc, bool createIf=true) const
| Access a service by name, creating it if it doesn't already exist. More...
template<class T >
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const
template<typename IFace = IService>
SmartIF< IFace > | service (const std::string &name, bool createIf=true) const
template<class T >
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const
| Access a service by name and type, creating it if it doesn't already exist. More...
template<class T >
StatusCode | declareTool (ToolHandle< T > &handle, std::string toolTypeAndName, bool createIf=true)
| Declare used tool. More...
SmartIF< IAuditorSvc > & | auditorSvc () const
| The standard auditor service.May not be invoked before sysInitialize() has been invoked. More...
Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
| PropertyHolder ()=default
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Details::PropertyBase &prop)
| Declare a property. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, TYPE &value, const std::string &doc="none")
| Helper to wrap a regular data member and use it as a regular property. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
| Declare a PropertyBase instance setting name and documentation. More...
Gaudi::Details::PropertyBase * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
| Declare a remote property. More...
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) override
| set the property form another property More...
StatusCode | setProperty (const std::string &s) override
| set the property from the formatted string More...
StatusCode | setProperty (const std::string &n, const std::string &v) override
| set the property from name and the value More...
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value More...
StatusCode | getProperty (Gaudi::Details::PropertyBase *p) const override
| get the property More...
const Gaudi::Details::PropertyBase & | getProperty (const std::string &name) const override
| get the property by name More...
StatusCode | getProperty (const std::string &n, std::string &v) const override
| convert the property to the string More...
const std::vector< Gaudi::Details::PropertyBase * > & | getProperties () const override
| get all properties More...
bool | hasProperty (const std::string &name) const override
| Return true if we have a property with the given name. More...
| PropertyHolder (const PropertyHolder &)=delete
PropertyHolder & | operator= (const PropertyHolder &)=delete
Public Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
MSG::Level | msgLevel () const
| get the cached level (originally extracted from the embedded MsgStream) More...
bool | msgLevel (MSG::Level lvl) const
| get the output level from the embedded MsgStream More...
MSG::Level | outputLevel () const
| Backward compatibility function for getting the output level. More...
Public Member Functions inherited from CommonMessagingBase
virtual | ~CommonMessagingBase ()=default
| Virtual destructor. More...
const SmartIF< IMessageSvc > & | msgSvc () const
| The standard message service. More...
MsgStream & | msgStream () const
| Return an uninitialized MsgStream. More...
MsgStream & | msgStream (const MSG::Level level) const
| Predefined configurable message stream for the efficient printouts. More...
MsgStream & | always () const
| shortcut for the method msgStream(MSG::ALWAYS) More...
MsgStream & | fatal () const
| shortcut for the method msgStream(MSG::FATAL) More...
MsgStream & | err () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | error () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | warning () const
| shortcut for the method msgStream(MSG::WARNING) More...
MsgStream & | info () const
| shortcut for the method msgStream(MSG::INFO) More...
MsgStream & | debug () const
| shortcut for the method msgStream(MSG::DEBUG) More...
MsgStream & | verbose () const
| shortcut for the method msgStream(MSG::VERBOSE) More...
MsgStream & | msg () const
| shortcut for the method msgStream(MSG::INFO) More...

## Public Attributes
long int | m_streamID

## Protected Member Functions
virtual void | printEvtInfo (const EvtSelectorContext *iter) const
| Progress report. More...
Protected Member Functions inherited from Service
| ~Service () override
| Standard Destructor. More...
int | outputLevel () const
| get the `Service's` output level More...
Protected Member Functions inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
Gaudi::Details::PropertyBase * | property (const std::string &name) const
Protected Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
MSG::Level | setUpMessaging () const
| Set up local caches. More...
MSG::Level | resetMessaging ()
| Reinitialize internal states. More...
void | updateMsgStreamOutputLevel (int level)
| Update the output level of the cached MsgStream. More...

## Protected Attributes
SmartIF< IIncidentSvc > | m_incidentSvc = nullptr
| Reference to the indicent service. More...
SmartIF< IToolSvc > | m_toolSvc = nullptr
IDataStreamTool * | m_streamtool = nullptr
bool | m_reconfigure = false
| Reconfigure occurred. More...
StreamSpecs | m_streamSpecsLast
| Input stream specifiers (last used) More...
Streams | m_streams
| Input streams. More...
int | m_streamCount = 0
| Input stream counter (0..oo, monotonely increasing) More...
Gaudi::Property< StreamSpecs > | m_streamSpecs {this, "Input", {}, "input stream specifiers (for job options)"}
Gaudi::Property< int > | m_firstEvent {this, "FirstEvent", 0, "first event to be processed"}
Gaudi::Property< int > | m_evtMax {this, "EvtMax", INT_MAX, "maximum number of events to be processed"}
Gaudi::Property< int > | m_evtPrintFrequency {this, "PrintFreq", 10, "printout frequency"}
Gaudi::Property< std::string > | m_streamManager {this, "StreamManager", "DataStreamTool", ""}
Protected Attributes inherited from Service
Gaudi::StateMachine::State | m_state = Gaudi::StateMachine::OFFLINE
| Service state. More...
Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::OFFLINE
| Service state. More...
Gaudi::Property< int > | m_outputLevel {this, "OutputLevel", MSG::NIL, "output level"}
Gaudi::Property< bool > | m_auditInit {this, "AuditServices", false, " unused"}
Gaudi::Property< bool > | m_auditorInitialize {this, "AuditInitialize", false, "trigger auditor on initialize()"}
Gaudi::Property< bool > | m_auditorStart {this, "AuditStart", false, "trigger auditor on start()"}
Gaudi::Property< bool > | m_auditorStop {this, "AuditStop", false, "trigger auditor on stop()"}
Gaudi::Property< bool > | m_auditorFinalize {this, "AuditFinalize", false, "trigger auditor on finalize()"}
Gaudi::Property< bool > | m_auditorReinitialize {this, "AuditReinitialize", false, "trigger auditor on reinitialize()"}
Gaudi::Property< bool > | m_auditorRestart {this, "AuditRestart", false, "trigger auditor on restart()"}
SmartIF< IAuditorSvc > | m_pAuditorSvc
| Auditor Service. More...

## Detailed Description

Definition of class EventSelector.

Basic event selector service. The event selector service itself is able to connect other services to attached streams.

History: +------—+-------------------------------------------—+---------—+ | Date | Comment | Who | +------—+-------------------------------------------—+---------—+ | 3/10/00 | Initial version | M.Frank | +------—+-------------------------------------------—+---------—+ | 4/09/09 | Added firing incident on opening/ending file | R. Lambert | +------—+-------------------------------------------—+---------—+

Author
  Markus Frank
  R. Lambert

Version
  1.0

Definition at line 53 of file EventSelector.h.

## Member Typedef Documentation

## ◆ Properties

typedef std::vector<Gaudi::Property<std::string> > EventSelector::Properties

Definition at line 57 of file EventSelector.h.

## ◆ Streams

typedef std::vector<EventSelectorDataStream*> EventSelector::Streams

Definition at line 55 of file EventSelector.h.

## ◆ StreamSpecs

typedef std::vector<std::string> EventSelector::StreamSpecs

Definition at line 56 of file EventSelector.h.

## Member Function Documentation

## ◆ createAddress()

StatusCode EventSelector::createAddress | ( | const Context & | refCtxt,
|  | IOpaqueAddress *& | refpAddr
| ) |  | const
| override

Create new Opaque address corresponding to the current record.

Parameters

  refCtxt | [IN/OUT] Reference to the context
  refpAddr | [OUT] Reference to address pointer

Returns
  StatusCode indicating success or failure

Definition at line 274 of file EventSelector.cpp.

274 {
275 const EvtSelectorContext* cpIt = dynamic_cast<const EvtSelectorContext*>( &refCtxt );
276 EvtSelectorContext* pIt = const_cast<EvtSelectorContext*>( cpIt );
277 refpAddr = nullptr;
278 if ( pIt ) {
279 const EventSelectorDataStream* s = m_streamtool->getStream( pIt->ID() );
280 Context* it = pIt->context();
281 IEvtSelector* sel = s->selector();
282 if ( it && sel ) {
283 IOpaqueAddress* pAddr = nullptr;
284 StatusCode sc = sel->createAddress( *it, pAddr );
285 if ( sc.isSuccess() ) refpAddr = pAddr;
286 pIt->set( it, pAddr );
287 return sc;
288 }
289 }
290 return StatusCode::FAILURE;
291 }
EvtSelectorContext::context
IEvtSelector::Context * context() const
Access "real" iterator.
Definition: EventIterator.h:70
IEvtSelector
The Event Selector Interface.
Definition: IEvtSelector.h:18
EventSelector::m_streamtool
IDataStreamTool * m_streamtool
Definition: EventSelector.h:67
IOTest.sel
sel
Definition: IOTest.py:93
EvtSelectorContext
Definition of class EventIterator.
Definition: EventIterator.h:32
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
IDataStreamTool::getStream
virtual EventSelectorDataStream * getStream(size_type)=0
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
EvtSelectorContext::set
void set(const IEvtSelector *sel, IDataStreamTool::size_type id, IEvtSelector::Context *it, IOpaqueAddress *pA)
Set the address of the iterator.
Definition: EventIterator.h:55
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
gaudirun.s
string s
Definition: gaudirun.py:316
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
EvtSelectorContext::ID
virtual IDataStreamTool::size_type ID() const
Stream identifier.
Definition: EventIterator.h:89
IOpaqueAddress
Opaque address interface definition.
Definition: IOpaqueAddress.h:23

## ◆ createContext()

StatusCode EventSelector::createContext | ( | Context *& | refpCtxt | ) | const
| override

Create a new event loop context.

Parameters

  refpCtxt | [IN/OUT] Reference to pointer to store the context

Returns
  StatusCode indicating success or failure

Definition at line 151 of file EventSelector.cpp.

151 {
152 // Max event is zero. Return begin = end
153 refpCtxt = nullptr;
154 if ( m_firstEvent < 0 ) {
155 error() << "First Event = " << m_firstEvent << " not valid" << endmsg;
156 error() << "It should be > 0 " << endmsg;
157 return StatusCode::FAILURE; // if failure => iterators = end();
158 }
159 EvtSelectorContext* ctxt = new EvtSelectorContext( this );
160 ctxt->set( 0, -1, 0, 0 );
161 firstOfNextStream( true, *ctxt ).ignore();
162 refpCtxt = ctxt;
163 long nskip = m_firstEvent;
164 while ( --nskip > 0 ) {
165 StatusCode sc = next( *refpCtxt );
166 if ( sc.isFailure() ) {
167 error() << " createContext() failed to start with event number " << m_firstEvent << endmsg;
168 releaseContext( refpCtxt );
169 refpCtxt = nullptr;
170 return StatusCode::FAILURE;
171 }
172 }
173 return StatusCode::SUCCESS;
174 }
EventSelector::releaseContext
StatusCode releaseContext(Context *&refCtxt) const override
Release existing event iteration context.
Definition: EventSelector.cpp:294
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
EventSelector::next
StatusCode next(Context &refCtxt) const override
Get next iteration item from the event loop context.
Definition: EventSelector.cpp:177
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:98
EvtSelectorContext
Definition of class EventIterator.
Definition: EventIterator.h:32
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
EventSelector::firstOfNextStream
StatusCode firstOfNextStream(bool shutDown, EvtSelectorContext &it) const
Retrieve first entry of the next data stream.
Definition: EventSelector.cpp:43
EventSelector::m_firstEvent
Gaudi::Property< int > m_firstEvent
Definition: EventSelector.h:80
StatusCode::ignore
const StatusCode & ignore() const
Ignore/check StatusCode.
Definition: StatusCode.h:153
EvtSelectorContext::set
void set(const IEvtSelector *sel, IDataStreamTool::size_type id, IEvtSelector::Context *it, IOpaqueAddress *pA)
Set the address of the iterator.
Definition: EventIterator.h:55
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
StatusCode::isFailure
bool isFailure() const
Definition: StatusCode.h:130
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ finalize()

StatusCode EventSelector::finalize | ( |  | ) |
| override

IService implementation: Service finalization.

Definition at line 386 of file EventSelector.cpp.

386 {
387
388 if ( msgLevel( MSG::DEBUG ) ) { debug() << "finalize()" << endmsg; }
389
390 m_incidentSvc = nullptr;
391
392 if ( m_streamtool ) {
393 if ( m_toolSvc ) {
394 m_toolSvc->releaseTool( m_streamtool ).ignore();
395 } else {
396 // It should not be possible to get here
397 m_streamtool->release();
398 }
399 m_streamtool = nullptr;
400 }
401 m_toolSvc.reset();
402
403 return Service::finalize();
404 }
EventSelector::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the indicent service.
Definition: EventSelector.h:63
Service::finalize
StatusCode finalize() override
Definition: Service.cpp:164
EventSelector::m_streamtool
IDataStreamTool * m_streamtool
Definition: EventSelector.h:67
MSG::DEBUG
Definition: IMessageSvc.h:15
CommonMessaging< implements< IService, IProperty, IStateful > >::msgLevel
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)
Definition: CommonMessaging.h:138
CommonMessagingBase::debug
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
Definition: CommonMessaging.h:107
EventSelector::m_toolSvc
SmartIF< IToolSvc > m_toolSvc
Definition: EventSelector.h:65
StatusCode::ignore
const StatusCode & ignore() const
Ignore/check StatusCode.
Definition: StatusCode.h:153
IInterface::release
virtual unsigned long release()=0
Release Interface instance.
IToolSvc::releaseTool
virtual StatusCode releaseTool(IAlgTool *tool)=0
Release the tool.
SmartIF::reset
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
Definition: SmartIF.h:86
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ firstOfNextStream()

StatusCode EventSelector::firstOfNextStream | ( | bool | shutDown,
|  | EvtSelectorContext & | it
| ) |  | const

Retrieve first entry of the next data stream.

Definition at line 43 of file EventSelector.cpp.

43 {
44 StatusCode status = StatusCode::SUCCESS;
45 IDataStreamTool::size_type iter_id = ( m_reconfigure ) ? 0 : iter.ID() + 1;
46 if ( m_reconfigure ) const_cast<EventSelector*>( this )->m_reconfigure = false;
47 if ( shutDown ) {
48 if ( iter.ID() >= 0 && iter.ID() < (long)m_streamtool->size() ) {
49 const EventSelectorDataStream* s = m_streamtool->getStream( iter.ID() );
50 if ( s->isInitialized() ) {
51 EventSelector* thisPtr = const_cast<EventSelector*>( this );
52 if ( s->selector() && iter.context() ) {
53 Context* ctxt = iter.context();
54 s->selector()->releaseContext( ctxt ).ignore();
55 iter.set( 0, 0 );
56 }
57 status = thisPtr->m_streamtool->finalizeStream( const_cast<EventSelectorDataStream*>( s ) );
58 iter.set( 0, 0 );
59 }
60 }
61 }
62
63 const EventSelectorDataStream* s;
64 status = m_streamtool->getNextStream( s, iter_id );
65
66 if ( status.isSuccess() ) {
67
68 if ( s ) {
69 if ( !s->isInitialized() ) {
70 EventSelector* thisPtr = const_cast<EventSelector*>( this );
71 status = thisPtr->m_streamtool->initializeStream( const_cast<EventSelectorDataStream*>( s ) );
72 }
73
74 if ( status.isSuccess() ) {
75 const IEvtSelector* sel = s->selector();
76 if ( sel ) {
77 Context* ctxt = nullptr;
78 status = sel->createContext( ctxt );
79 if ( status.isSuccess() ) {
80 status = sel->resetCriteria( s->criteria(), *ctxt );
81 if ( status.isSuccess() ) {
82 iter.set( this, iter_id, ctxt, 0 );
83 info() << *s << endmsg;
84 m_incidentSvc->fireIncident( Incident( s->dbName(), IncidentType::BeginInputFile ) );
85 return StatusCode::SUCCESS;
86 }
87 }
88 }
89 }
90 m_incidentSvc->fireIncident( Incident( s->dbName(), IncidentType::FailInputFile ) );
91 }
92 }
93
94 iter.set( this, -1, 0, 0 );
95 status.setChecked();
96 // m_incidentSvc->fireIncident(Incident(s->dbName(),IncidentType::FailInputFile));
97 return StatusCode::FAILURE;
98 }
EventSelector::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the indicent service.
Definition: EventSelector.h:63
IDataStreamTool::finalizeStream
virtual StatusCode finalizeStream(EventSelectorDataStream *)=0
IEvtSelector
The Event Selector Interface.
Definition: IEvtSelector.h:18
EventSelector::m_streamtool
IDataStreamTool * m_streamtool
Definition: EventSelector.h:67
IOTest.sel
sel
Definition: IOTest.py:93
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:104
IIncidentSvc::fireIncident
virtual void fireIncident(const Incident &incident)=0
Fire an Incident.
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
IDataStreamTool::getStream
virtual EventSelectorDataStream * getStream(size_type)=0
IDataStreamTool::size_type
long size_type
Definition: IDataStreamTool.h:28
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
Incident
Base class for all Incidents (computing events).
Definition: Incident.h:17
gaudirun.s
string s
Definition: gaudirun.py:316
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
EventSelector
Definition of class EventSelector.
Definition: EventSelector.h:53
IDataStreamTool::size
virtual size_type size()=0
IDataStreamTool::initializeStream
virtual StatusCode initializeStream(EventSelectorDataStream *)=0
EventSelector::m_reconfigure
bool m_reconfigure
Reconfigure occurred.
Definition: EventSelector.h:70
IDataStreamTool::getNextStream
virtual StatusCode getNextStream(const EventSelectorDataStream *&, size_type &)=0
StatusCode::setChecked
const StatusCode & setChecked(bool checked=true) const
Check/uncheck StatusCode.
Definition: StatusCode.h:143
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ initialize()

StatusCode EventSelector::initialize | ( |  | ) |
| override

IService implementation: Db event selector override.

Definition at line 313 of file EventSelector.cpp.

313 {
314 // Initialize base class
315 StatusCode status = Service::initialize();
316 if ( !status.isSuccess() ) {
317 error() << "Error initializing base class Service!" << endmsg;
318 return status;
319 }
320 // Get the references to the services that are needed by the ApplicationMgr itself
321 m_incidentSvc = serviceLocator()->service( "IncidentSvc" );
322 if ( !m_incidentSvc ) {
323 fatal() << "Error retrieving IncidentSvc." << endmsg;
324 return StatusCode::FAILURE;
325 }
326 if ( m_evtMax != INT_MAX ) {
327 error() << "EvtMax is an obsolete property of the event selector." << endmsg;
328 error() << "Please set \"ApplicationMgr.EvtMax = " << m_evtMax << ";\" to process the requested number of events."
329 << endmsg;
330 return StatusCode::FAILURE;
331 }
332
333 m_toolSvc = serviceLocator()->service( "ToolSvc" );
334 if ( !m_toolSvc ) {
335 error() << " Could not locate the Tool Service! " << endmsg;
336 return StatusCode::FAILURE;
337 }
338 // make sure we finalize _prior_ to ToolSvc... we are about to get a
339 // a pointer to a tool which gets finalized and released by the ToolSvc
340 // during ToolSvc::finalize, and we don't want dangling pointers...
341 SmartIF<ISvcManager> mgr( serviceLocator() );
342 auto prio = mgr->getPriority( "ToolSvc" );
343 mgr->setPriority( name(), prio + 1 ).ignore();
344
345 status = m_toolSvc->retrieveTool( m_streamManager, m_streamtool, this );
346
347 if ( status.isFailure() ) {
348 error() << "Error initializing " << m_streamManager << endmsg;
349 return status;
350 }
351
352 status = m_streamtool->clear();
353 if ( status.isFailure() ) {
354 // Message already printed by the tool
355 return status;
356 }
357
358 status = m_streamtool->addStreams( m_streamSpecs );
359
360 m_streamSpecsLast = m_streamSpecs;
361
362 m_streamID = 0;
363
364 return status;
365 }
EventSelector::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the indicent service.
Definition: EventSelector.h:63
Service::initialize
StatusCode initialize() override
Definition: Service.cpp:60
SmartIF< ISvcManager >
Service::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:277
EventSelector::m_streamtool
IDataStreamTool * m_streamtool
Definition: EventSelector.h:67
EventSelector::m_streamID
long int m_streamID
Definition: EventSelector.h:59
IToolSvc::retrieveTool
StatusCode retrieveTool(const std::string &type, T *&tool, const IInterface *parent=nullptr, bool createIf=true)
Retrieve specified tool sub-type with tool dependent part of the name automatically assigned.
Definition: IToolSvc.h:138
EventSelector::m_streamSpecsLast
StreamSpecs m_streamSpecsLast
Input stream specifiers (last used)
Definition: EventSelector.h:72
IDataStreamTool::addStreams
virtual StatusCode addStreams(const StreamSpecs &)=0
ISvcLocator::service
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:76
Service::name
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:274
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:98
EventSelector::m_streamManager
Gaudi::Property< std::string > m_streamManager
Definition: EventSelector.h:83
IDataStreamTool::clear
virtual StatusCode clear()=0
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
EventSelector::m_evtMax
Gaudi::Property< int > m_evtMax
Definition: EventSelector.h:81
EventSelector::m_streamSpecs
Gaudi::Property< StreamSpecs > m_streamSpecs
Definition: EventSelector.h:79
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
EventSelector::m_toolSvc
SmartIF< IToolSvc > m_toolSvc
Definition: EventSelector.h:65
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
StatusCode::isFailure
bool isFailure() const
Definition: StatusCode.h:130
CommonMessagingBase::fatal
MsgStream & fatal() const
shortcut for the method msgStream(MSG::FATAL)
Definition: CommonMessaging.h:92
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ last()

StatusCode EventSelector::last | ( | Context & | c | ) | const
| override

Access last item in the iteration.

Parameters

  c | Reference to the Context object.

Returns
  StatusCode indicating success or failure

Definition at line 248 of file EventSelector.cpp.

248 {
249 EvtSelectorContext* pIt = dynamic_cast<EvtSelectorContext*>( &refCtxt );
250 if ( pIt ) {}
251 return StatusCode::FAILURE;
252 }
EvtSelectorContext
Definition of class EventIterator.
Definition: EventIterator.h:32
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86

## ◆ lastOfPreviousStream()

StatusCode EventSelector::lastOfPreviousStream | ( | bool | shutDown,
|  | EvtSelectorContext & | it
| ) |  | const

Retrieve last entry of the previous data stream.

Definition at line 101 of file EventSelector.cpp.

101 {
102 StatusCode status = StatusCode::SUCCESS;
103 if ( shutDown ) {
104 if ( iter.ID() >= 0 && iter.ID() < (long)m_streamtool->size() ) {
105 const EventSelectorDataStream* s = m_streamtool->getStream( iter.ID() );
106 if ( s->isInitialized() ) {
107 EventSelector* thisPtr = const_cast<EventSelector*>( this );
108 if ( s->selector() && iter.context() ) {
109 Context* ctxt = iter.context();
110 s->selector()->releaseContext( ctxt );
111 iter.set( 0, 0 );
112 }
113 status = thisPtr->m_streamtool->finalizeStream( const_cast<EventSelectorDataStream*>( s ) );
114 iter.set( 0, 0 );
115 }
116 }
117 }
118
119 IDataStreamTool::size_type iter_id = iter.ID() - 1;
120 const EventSelectorDataStream* s = nullptr;
121 status = m_streamtool->getPreviousStream( s, iter_id );
122
123 if ( status.isSuccess() ) {
124
125 if ( !s->isInitialized() ) {
126 EventSelector* thisPtr = const_cast<EventSelector*>( this );
127 status = thisPtr->m_streamtool->initializeStream( const_cast<EventSelectorDataStream*>( s ) );
128 }
129 if ( status.isSuccess() ) {
130 const IEvtSelector* sel = s->selector();
131 if ( sel ) {
132 Context* ctxt = nullptr;
133 status = sel->createContext( ctxt );
134 if ( status.isSuccess() ) {
135 status = sel->resetCriteria( s->criteria(), *ctxt );
136 if ( status.isSuccess() ) {
137 iter.set( this, iter_id, ctxt, 0 );
138 info() << *s << endmsg;
139 return StatusCode::SUCCESS;
140 }
141 }
142 }
143 }
144 }
145
146 iter.set( this, -1, 0, 0 );
147 return StatusCode::FAILURE;
148 }
IDataStreamTool::finalizeStream
virtual StatusCode finalizeStream(EventSelectorDataStream *)=0
IEvtSelector
The Event Selector Interface.
Definition: IEvtSelector.h:18
EventSelector::m_streamtool
IDataStreamTool * m_streamtool
Definition: EventSelector.h:67
IOTest.sel
sel
Definition: IOTest.py:93
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:104
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
IDataStreamTool::getStream
virtual EventSelectorDataStream * getStream(size_type)=0
IDataStreamTool::size_type
long size_type
Definition: IDataStreamTool.h:28
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
IDataStreamTool::getPreviousStream
virtual StatusCode getPreviousStream(const EventSelectorDataStream *&, size_type &)=0
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
gaudirun.s
string s
Definition: gaudirun.py:316
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
EventSelector
Definition of class EventSelector.
Definition: EventSelector.h:53
IDataStreamTool::size
virtual size_type size()=0
IDataStreamTool::initializeStream
virtual StatusCode initializeStream(EventSelectorDataStream *)=0
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ next() [1/2]

StatusCode EventSelector::next | ( | Context & | refCtxt | ) | const
| override

Get next iteration item from the event loop context.

Parameters

  refCtxt | [IN/OUT] Reference to the context

Returns
  StatusCode indicating success or failure

Definition at line 177 of file EventSelector.cpp.

177 { return next( refCtxt, 1 ); }
EventSelector::next
StatusCode next(Context &refCtxt) const override
Get next iteration item from the event loop context.
Definition: EventSelector.cpp:177

## ◆ next() [2/2]

StatusCode EventSelector::next | ( | Context & | refCtxt,
|  | int | jump
| ) |  | const
| override

Get next iteration item from the event loop context, but skip jump elements.

Parameters

  refCtxt | [IN/OUT] Reference to the context

Returns
  StatusCode indicating success or failure

Definition at line 180 of file EventSelector.cpp.

180 {
181 EvtSelectorContext* pIt = dynamic_cast<EvtSelectorContext*>( &refCtxt );
182 if ( pIt ) {
183 if ( pIt->ID() != -1 ) {
184 const EventSelectorDataStream* s = m_streamtool->getStream( pIt->ID() );
185 Context* it = pIt->context();
186 IEvtSelector* sel = s->selector();
187 if ( it && sel ) { // First exploit the current stream
188 StatusCode sc = sel->next( *it ); // This stream is empty: advance to the next stream
189 if ( !sc.isSuccess() ) {
190 m_incidentSvc->fireIncident( Incident( s->dbName(), IncidentType::EndInputFile ) );
191 sc = firstOfNextStream( true, *pIt );
192 if ( sc.isSuccess() ) sc = next( *pIt );
193 } else {
194 pIt->increaseCounters( false );
195 pIt->set( it, 0 );
196 printEvtInfo( pIt );
197 }
198 return sc;
199 } else if ( m_reconfigure ) {
200 StatusCode sc = firstOfNextStream( false, *pIt );
201 printEvtInfo( pIt );
202 return sc;
203 }
204 } else if ( m_reconfigure ) {
205 StatusCode sc = firstOfNextStream( false, *pIt );
206 printEvtInfo( pIt );
207 return sc;
208 }
209 pIt->increaseCounters( false );
210 }
211 printEvtInfo( pIt );
212 return StatusCode::FAILURE;
213 }
EventSelector::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the indicent service.
Definition: EventSelector.h:63
EvtSelectorContext::context
IEvtSelector::Context * context() const
Access "real" iterator.
Definition: EventIterator.h:70
IEvtSelector
The Event Selector Interface.
Definition: IEvtSelector.h:18
EventSelector::m_streamtool
IDataStreamTool * m_streamtool
Definition: EventSelector.h:67
IOTest.sel
sel
Definition: IOTest.py:93
EventSelector::next
StatusCode next(Context &refCtxt) const override
Get next iteration item from the event loop context.
Definition: EventSelector.cpp:177
IIncidentSvc::fireIncident
virtual void fireIncident(const Incident &incident)=0
Fire an Incident.
EvtSelectorContext
Definition of class EventIterator.
Definition: EventIterator.h:32
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
EventSelector::printEvtInfo
virtual void printEvtInfo(const EvtSelectorContext *iter) const
Progress report.
Definition: EventSelector.cpp:25
IDataStreamTool::getStream
virtual EventSelectorDataStream * getStream(size_type)=0
EventSelector::firstOfNextStream
StatusCode firstOfNextStream(bool shutDown, EvtSelectorContext &it) const
Retrieve first entry of the next data stream.
Definition: EventSelector.cpp:43
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
EvtSelectorContext::set
void set(const IEvtSelector *sel, IDataStreamTool::size_type id, IEvtSelector::Context *it, IOpaqueAddress *pA)
Set the address of the iterator.
Definition: EventIterator.h:55
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
Incident
Base class for all Incidents (computing events).
Definition: Incident.h:17
gaudirun.s
string s
Definition: gaudirun.py:316
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
EvtSelectorContext::ID
virtual IDataStreamTool::size_type ID() const
Stream identifier.
Definition: EventIterator.h:89
EvtSelectorContext::increaseCounters
IDataStreamTool::size_type increaseCounters(bool reset=false)
Increase counters.
Definition: EventIterator.h:72
EventSelector::m_reconfigure
bool m_reconfigure
Reconfigure occurred.
Definition: EventSelector.h:70

## ◆ previous() [1/2]

StatusCode EventSelector::previous | ( | Context & | refCtxt | ) | const
| override

Get previous iteration item from the event loop context.

Parameters

  refCtxt | [IN/OUT] Reference to the context
  jump | [IN] Number of events to be skipped

Returns
  StatusCode indicating success or failure

Definition at line 216 of file EventSelector.cpp.

216 { return previous( refCtxt, 1 ); }
EventSelector::previous
StatusCode previous(Context &refCtxt) const override
Get previous iteration item from the event loop context.
Definition: EventSelector.cpp:216

## ◆ previous() [2/2]

StatusCode EventSelector::previous | ( | Context & | refCtxt,
|  | int | jump
| ) |  | const
| override

Get previous iteration item from the event loop context, but skip jump elements.

Parameters

  refCtxt | [IN/OUT] Reference to the context
  jump | [IN] Number of events to be skipped

Returns
  StatusCode indicating success or failure

Definition at line 219 of file EventSelector.cpp.

219 {
220 EvtSelectorContext* pIt = dynamic_cast<EvtSelectorContext*>( &refCtxt );
221 if ( pIt && jump > 0 ) {
222 StatusCode sc = StatusCode::SUCCESS;
223 for ( int i = 0; i < jump && sc.isSuccess(); ++i ) {
224 const EventSelectorDataStream* s = m_streamtool->getStream( pIt->ID() );
225 Context* it = pIt->context();
226 IEvtSelector* sel = s->selector();
227 if ( it && sel ) { // First exploit the current stream
228 // This stream is empty: advance to the next stream
229 sc = sel->previous( *it ); // This stream is empty: advance to the next stream
230 if ( !sc.isSuccess() ) {
231 sc = lastOfPreviousStream( true, *pIt );
232 } else {
233 pIt->increaseCounters( false );
234 pIt->set( it, 0 );
235 }
236 printEvtInfo( pIt );
237 if ( !sc.isSuccess() ) { return sc; }
238 }
239 pIt->increaseCounters( false );
240 }
241 return sc;
242 }
243 printEvtInfo( pIt );
244 return StatusCode::FAILURE;
245 }
EvtSelectorContext::context
IEvtSelector::Context * context() const
Access "real" iterator.
Definition: EventIterator.h:70
IEvtSelector
The Event Selector Interface.
Definition: IEvtSelector.h:18
EventSelector::m_streamtool
IDataStreamTool * m_streamtool
Definition: EventSelector.h:67
IOTest.sel
sel
Definition: IOTest.py:93
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
EvtSelectorContext
Definition of class EventIterator.
Definition: EventIterator.h:32
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
EventSelector::printEvtInfo
virtual void printEvtInfo(const EvtSelectorContext *iter) const
Progress report.
Definition: EventSelector.cpp:25
IDataStreamTool::getStream
virtual EventSelectorDataStream * getStream(size_type)=0
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
EventSelector::lastOfPreviousStream
StatusCode lastOfPreviousStream(bool shutDown, EvtSelectorContext &it) const
Retrieve last entry of the previous data stream.
Definition: EventSelector.cpp:101
EvtSelectorContext::set
void set(const IEvtSelector *sel, IDataStreamTool::size_type id, IEvtSelector::Context *it, IOpaqueAddress *pA)
Set the address of the iterator.
Definition: EventIterator.h:55
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
gaudirun.s
string s
Definition: gaudirun.py:316
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
EvtSelectorContext::ID
virtual IDataStreamTool::size_type ID() const
Stream identifier.
Definition: EventIterator.h:89
EvtSelectorContext::increaseCounters
IDataStreamTool::size_type increaseCounters(bool reset=false)
Increase counters.
Definition: EventIterator.h:72

## ◆ printEvtInfo()

void EventSelector::printEvtInfo | ( | const EvtSelectorContext * | iter | ) | const
| protected virtual

Progress report.

Definition at line 25 of file EventSelector.cpp.

25 {
26 if ( iter ) {
27 long count = iter->numEvent();
28 // Print an message every m_evtPrintFrequency events
29 if ( 0 == iter->context() ) {
30 info() << "End of event input reached." << endmsg;
31 } else if ( iter->numStreamEvent() == -1 ) {
32 // Intial value for this stream
33 } else if ( m_evtPrintFrequency != -1 && ( count % m_evtPrintFrequency == 0 ) ) {
34 always() << "Reading Event record " << count + 1 << ". Record number within stream " << iter->ID() + 1 << ": "
35 << iter->numStreamEvent() + 1 << endmsg;
36 }
37 } else {
38 info() << "End of event input reached." << endmsg;
39 }
40 }
EvtSelectorContext::context
IEvtSelector::Context * context() const
Access "real" iterator.
Definition: EventIterator.h:70
CommonMessagingBase::always
MsgStream & always() const
shortcut for the method msgStream(MSG::ALWAYS)
Definition: CommonMessaging.h:89
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:104
EventSelector::m_evtPrintFrequency
Gaudi::Property< int > m_evtPrintFrequency
Definition: EventSelector.h:82
EvtSelectorContext::numEvent
long numEvent() const
Access counter.
Definition: EventIterator.h:91
std::count
T count(T... args)
EvtSelectorContext::ID
virtual IDataStreamTool::size_type ID() const
Stream identifier.
Definition: EventIterator.h:89
EvtSelectorContext::numStreamEvent
long numStreamEvent() const
Access counter within stream.
Definition: EventIterator.h:93
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ reinitialize()

StatusCode EventSelector::reinitialize | ( |  | ) |
| override

Service override: Reinitialize service.

Definition at line 368 of file EventSelector.cpp.

368 {
369 if ( FSMState() != Gaudi::StateMachine::INITIALIZED ) {
370 error() << "Cannot reinitialize: service not in state initialized" << endmsg;
371 return StatusCode::FAILURE;
372 }
373
374 if ( m_streamSpecsLast != m_streamSpecs ) {
375 StatusCode status = m_streamtool->clear();
376 if ( status.isFailure() ) return status;
377 m_streamSpecsLast = m_streamSpecs;
378 m_reconfigure = true;
379 return m_streamtool->addStreams( m_streamSpecs );
380 }
381
382 return StatusCode::SUCCESS;
383 }
Gaudi::StateMachine::INITIALIZED
Definition: StateMachine.h:15
Service::FSMState
Gaudi::StateMachine::State FSMState() const override
Definition: Service.h:52
EventSelector::m_streamtool
IDataStreamTool * m_streamtool
Definition: EventSelector.h:67
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
EventSelector::m_streamSpecsLast
StreamSpecs m_streamSpecsLast
Input stream specifiers (last used)
Definition: EventSelector.h:72
IDataStreamTool::addStreams
virtual StatusCode addStreams(const StreamSpecs &)=0
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:98
IDataStreamTool::clear
virtual StatusCode clear()=0
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
EventSelector::m_streamSpecs
Gaudi::Property< StreamSpecs > m_streamSpecs
Definition: EventSelector.h:79
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
StatusCode::isFailure
bool isFailure() const
Definition: StatusCode.h:130
EventSelector::m_reconfigure
bool m_reconfigure
Reconfigure occurred.
Definition: EventSelector.h:70
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ releaseContext()

StatusCode EventSelector::releaseContext | ( | Context *& | refCtxt | ) | const
| override

Release existing event iteration context.

Parameters

  refCtxt | [IN/OUT] Reference to the context

Returns
  StatusCode indicating success or failure

Definition at line 294 of file EventSelector.cpp.

294 {
295 const EvtSelectorContext* cpIt = dynamic_cast<const EvtSelectorContext*>( refCtxt );
296 std::unique_ptr<EvtSelectorContext> pIt{const_cast<EvtSelectorContext*>( cpIt )};
297 if ( pIt && pIt->ID() >= 0 && pIt->ID() < (long)m_streamtool->size() ) {
298 const EventSelectorDataStream* s = m_streamtool->getStream( pIt->ID() );
299 Context* it = pIt->context();
300 IEvtSelector* sel = s->selector();
301 if ( it && sel ) {
302 StatusCode sc = sel->releaseContext( it );
303 if ( sc.isSuccess() ) {
304 refCtxt = nullptr;
305 return sc;
306 }
307 }
308 }
309 return StatusCode::SUCCESS;
310 }
IEvtSelector
The Event Selector Interface.
Definition: IEvtSelector.h:18
EventSelector::m_streamtool
IDataStreamTool * m_streamtool
Definition: EventSelector.h:67
IOTest.sel
sel
Definition: IOTest.py:93
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
EvtSelectorContext
Definition of class EventIterator.
Definition: EventIterator.h:32
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
IDataStreamTool::getStream
virtual EventSelectorDataStream * getStream(size_type)=0
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
std::unique_ptr
STL class.
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
gaudirun.s
string s
Definition: gaudirun.py:316
IDataStreamTool::size
virtual size_type size()=0

## ◆ resetCriteria()

StatusCode EventSelector::resetCriteria | ( | const std::string & | cr,
|  | Context & | c
| ) |  | const
| override

Will set a new criteria for the selection of the next list of events and will change the state of the context in a way to point to the new list.

Parameters

  cr | The new criteria string.
  c | Reference pointer to the Context object.

Returns
  StatusCode indicating success or failure

Definition at line 20 of file EventSelector.cpp.

20 {
21 return StatusCode::FAILURE;
22 }
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86

## ◆ rewind()

StatusCode EventSelector::rewind | ( | Context & | refCtxt | ) | const
| override

Rewind the dataset.

Parameters

  refCtxt | [IN/OUT] Reference to the context

Returns
  StatusCode indicating success or failure

Definition at line 255 of file EventSelector.cpp.

255 {
256 EvtSelectorContext* ctxt = dynamic_cast<EvtSelectorContext*>( &refCtxt );
257 if ( ctxt ) {
258 ctxt->set( 0, -1, 0, 0 );
259 firstOfNextStream( true, *ctxt );
260 long nskip = m_firstEvent;
261 while ( --nskip > 0 ) {
262 StatusCode sc = next( *ctxt );
263 if ( sc.isFailure() ) {
264 error() << "rewind() failed to start with event number " << m_firstEvent << endmsg;
265 return StatusCode::FAILURE;
266 }
267 }
268 return StatusCode::SUCCESS;
269 }
270 return StatusCode::FAILURE;
271 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
EventSelector::next
StatusCode next(Context &refCtxt) const override
Get next iteration item from the event loop context.
Definition: EventSelector.cpp:177
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:98
EvtSelectorContext
Definition of class EventIterator.
Definition: EventIterator.h:32
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
EventSelector::firstOfNextStream
StatusCode firstOfNextStream(bool shutDown, EvtSelectorContext &it) const
Retrieve first entry of the next data stream.
Definition: EventSelector.cpp:43
EventSelector::m_firstEvent
Gaudi::Property< int > m_firstEvent
Definition: EventSelector.h:80
EvtSelectorContext::set
void set(const IEvtSelector *sel, IDataStreamTool::size_type id, IEvtSelector::Context *it, IOpaqueAddress *pA)
Set the address of the iterator.
Definition: EventIterator.h:55
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
StatusCode::isFailure
bool isFailure() const
Definition: StatusCode.h:130
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## Member Data Documentation

## ◆ m_evtMax

Gaudi::Property<int> EventSelector::m_evtMax {this, "EvtMax", INT_MAX, "maximum number of events to be processed"}
| protected

Definition at line 81 of file EventSelector.h.

## ◆ m_evtPrintFrequency

Gaudi::Property<int> EventSelector::m_evtPrintFrequency {this, "PrintFreq", 10, "printout frequency"}
| protected

Definition at line 82 of file EventSelector.h.

## ◆ m_firstEvent

Gaudi::Property<int> EventSelector::m_firstEvent {this, "FirstEvent", 0, "first event to be processed"}
| protected

Definition at line 80 of file EventSelector.h.

## ◆ m_incidentSvc

SmartIF<IIncidentSvc> EventSelector::m_incidentSvc = nullptr
| protected

Reference to the indicent service.

Definition at line 63 of file EventSelector.h.

## ◆ m_reconfigure

bool EventSelector::m_reconfigure = false
| protected

Reconfigure occurred.

Definition at line 70 of file EventSelector.h.

## ◆ m_streamCount

int EventSelector::m_streamCount = 0
| protected

Input stream counter (0..oo, monotonely increasing)

Definition at line 76 of file EventSelector.h.

## ◆ m_streamID

long int EventSelector::m_streamID

Definition at line 59 of file EventSelector.h.

## ◆ m_streamManager

Gaudi::Property<std::string> EventSelector::m_streamManager {this, "StreamManager", "DataStreamTool", ""}
| protected

Definition at line 83 of file EventSelector.h.

## ◆ m_streams

Streams EventSelector::m_streams
| protected

Input streams.

Definition at line 74 of file EventSelector.h.

## ◆ m_streamSpecs

Gaudi::Property<StreamSpecs> EventSelector::m_streamSpecs {this, "Input", {}, "input stream specifiers (for job options)"}
| protected

Definition at line 79 of file EventSelector.h.

## ◆ m_streamSpecsLast

StreamSpecs EventSelector::m_streamSpecsLast
| protected

Input stream specifiers (last used)

Definition at line 72 of file EventSelector.h.

## ◆ m_streamtool

IDataStreamTool* EventSelector::m_streamtool = nullptr
| protected

Definition at line 67 of file EventSelector.h.

## ◆ m_toolSvc

SmartIF<IToolSvc> EventSelector::m_toolSvc = nullptr
| protected

Definition at line 65 of file EventSelector.h.

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

- GaudiCoreSvc/src/EventSelector/EventSelector.h
- GaudiCoreSvc/src/EventSelector/EventSelector.cpp