Gaudi Framework, version v21r9

Home   Generated: 3 May 2010

EventSelector Class Reference

Definition of class EventSelector. More...

#include <EventSelector.h>

Inheritance diagram for EventSelector:

Inheritance graph
[legend]
Collaboration diagram for EventSelector:

Collaboration graph
[legend]

List of all members.

Public Types

typedef std::vector
< EventSelectorDataStream * > 
Streams
typedef std::vector< std::stringStreamSpecs
typedef std::vector
< StringProperty
Properties

Public Member Functions

virtual StatusCode initialize ()
 IService implementation: Db event selector override.
virtual StatusCode finalize ()
 IService implementation: Service finalization.
virtual StatusCode reinitialize ()
 Service override: Reinitialize service.
virtual StatusCode createContext (Context *&refpCtxt) const
 Create a new event loop context.
virtual StatusCode next (Context &refCtxt) const
 Get next iteration item from the event loop context.
virtual StatusCode next (Context &refCtxt, int jump) const
 Get next iteration item from the event loop context, but skip jump elements.
virtual StatusCode previous (Context &refCtxt) const
 Get previous iteration item from the event loop context.
virtual StatusCode previous (Context &refCtxt, int jump) const
 Get previous iteration item from the event loop context, but skip jump elements.
virtual StatusCode rewind (Context &refCtxt) const
 Rewind the dataset.
virtual StatusCode createAddress (const Context &refCtxt, IOpaqueAddress *&refpAddr) const
 Create new Opaque address corresponding to the current record.
virtual StatusCode releaseContext (Context *&refCtxt) const
 Release existing event iteration context.
virtual StatusCode resetCriteria (const std::string &cr, Context &c) const
 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.
virtual StatusCode last (Context &c) const
 Access last item in the iteration.
StatusCode firstOfNextStream (bool shutDown, EvtSelectorContext &it) const
 Retrieve first entry of the next data stream.
StatusCode lastOfPreviousStream (bool shutDown, EvtSelectorContext &it) const
 Retrieve last entry of the previous data stream.
 EventSelector (const std::string &name, ISvcLocator *svcloc)
 Standard Constructor.
virtual ~EventSelector ()
 Standard Destructor.

Public Attributes

long int m_streamID

Protected Member Functions

virtual void printEvtInfo (const EvtSelectorContext *iter) const
 Progress report.

Protected Attributes

SmartIF< IIncidentSvcm_incidentSvc
 Reference to the indicent service.
SmartIF< IToolSvcm_toolSvc
IDataStreamToolm_streamtool
bool m_reconfigure
 Reconfigure occurred.
StreamSpecs m_streamSpecs
 Input stream specifiers (for job options).
StreamSpecs m_streamSpecsLast
 Input stream specifiers (last used).
Streams m_streams
 Input streams.
int m_streamCount
 Input stream counter (0..oo, monotonely increasing).
int m_firstEvent
 First event to be processed.
int m_evtMax
 Maximum number of events to be processed.
int m_evtPrintFrequency
 Printout frequency.
std::string m_streamManager


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

Definition at line 55 of file EventSelector.h.

Definition at line 56 of file EventSelector.h.

Definition at line 57 of file EventSelector.h.


Constructor & Destructor Documentation

EventSelector::EventSelector ( const std::string name,
ISvcLocator svcloc 
)

Standard Constructor.

Definition at line 27 of file EventSelector.cpp.

00028   : base_class( name, svcloc)
00029 {
00030   m_incidentSvc       = 0;
00031   m_toolSvc           = 0;
00032   m_streamCount       = 0;
00033   m_firstEvent        = 0;
00034   m_evtPrintFrequency = 10;
00035   m_evtMax            = INT_MAX;
00036   declareProperty( "Input",      m_streamSpecs);
00037   declareProperty( "FirstEvent", m_firstEvent);
00038   declareProperty( "EvtMax",     m_evtMax);
00039   declareProperty( "PrintFreq",  m_evtPrintFrequency);
00040   declareProperty( "StreamManager",  m_streamManager="DataStreamTool");
00041   m_reconfigure = false;
00042 }

EventSelector::~EventSelector (  )  [virtual]

Standard Destructor.

Definition at line 45 of file EventSelector.cpp.

00046 {
00047 }


Member Function Documentation

void EventSelector::printEvtInfo ( const EvtSelectorContext iter  )  const [protected, virtual]

Progress report.

Definition at line 57 of file EventSelector.cpp.

00057                                                                      {
00058   if ( 0 != iter )  {
00059     long count = iter->numEvent();
00060     // Print an message every m_evtPrintFrequency events
00061     if ( 0 == iter->context() )   {
00062       MsgStream log(msgSvc(), name());
00063       log << MSG::INFO << "End of event input reached." << endmsg;
00064     }
00065     else if( iter->numStreamEvent() == -1 ) {
00066       // Intial value for this stream
00067     }
00068     else if( m_evtPrintFrequency != -1 && (count % m_evtPrintFrequency == 0))   {
00069       MsgStream log(msgSvc(), name());
00070       log << MSG::ALWAYS << "Reading Event record " << count+1
00071           << ". Record number within stream " << iter->ID()+1
00072           << ": " << iter->numStreamEvent()+1 << endmsg;
00073     }
00074   }
00075   else  {
00076     MsgStream log(msgSvc(), name());
00077     log << MSG::INFO << "End of event input reached." << endmsg;
00078   }
00079 }

StatusCode EventSelector::initialize (  )  [virtual]

IService implementation: Db event selector override.

Reimplemented from Service.

Definition at line 385 of file EventSelector.cpp.

00385                                         {
00386   // Initialize base class
00387   StatusCode status = Service::initialize();
00388   MsgStream logger(msgSvc(), name());
00389   if ( !status.isSuccess() )    {
00390     logger << MSG::ERROR << "Error initializing base class Service!" << endmsg;
00391     return status;
00392   }
00393   // Get the references to the services that are needed by the ApplicationMgr itself
00394   m_incidentSvc = serviceLocator()->service("IncidentSvc");
00395   if( !m_incidentSvc.isValid() )  {
00396     logger << MSG::FATAL << "Error retrieving IncidentSvc." << endmsg;
00397     return StatusCode::FAILURE;
00398   }
00399   if ( m_evtMax != INT_MAX )   {
00400     logger << MSG::ERROR << "EvtMax is an obsolete property of the event selector." << endmsg;
00401     logger << MSG::ERROR << "Please set \"ApplicationMgr.EvtMax = " << m_evtMax
00402            << ";\" to process the requested number of events." << endmsg;
00403     return StatusCode::FAILURE;
00404   }
00405 
00406   m_toolSvc = serviceLocator()->service("ToolSvc");
00407   if ( !m_toolSvc.isValid() ) {
00408     logger << MSG::ERROR << " Could not locate the Tool Service! " << endmsg;
00409     return StatusCode::FAILURE;
00410   }
00411 
00412   status = m_toolSvc->retrieveTool(m_streamManager.c_str(), m_streamtool, this);
00413 
00414   if( status.isFailure() ) {
00415     logger << MSG::ERROR << "Error initializing "
00416            << m_streamManager << endmsg;
00417     return status;
00418   }
00419 
00420   status = m_streamtool->clear();
00421   if( status.isFailure() ) {
00422     // Message already printed by the tool
00423     return status;
00424   }
00425 
00426   status = m_streamtool->addStreams(m_streamSpecs);
00427 
00428   m_streamSpecsLast = m_streamSpecs;
00429 
00430   m_streamID          = 0;
00431 
00432   return status;
00433 }

StatusCode EventSelector::finalize ( void   )  [virtual]

IService implementation: Service finalization.

Reimplemented from Service.

Definition at line 455 of file EventSelector.cpp.

00455                                       {
00456 
00457   MsgStream log(msgSvc(), name());
00458 
00459   log << MSG::DEBUG << "finalize()" << endmsg;
00460 
00461   m_incidentSvc = 0;
00462 
00463   if (m_streamtool) {
00464     if (m_toolSvc.isValid()) {
00465       m_toolSvc->releaseTool(m_streamtool).ignore();
00466     } else {
00467       // It should not be possible to get here
00468       m_streamtool->release();
00469     }
00470     m_streamtool = 0;
00471   }
00472 
00473   m_toolSvc = 0;
00474 
00475   return Service::finalize();
00476 }

StatusCode EventSelector::reinitialize (  )  [virtual]

Service override: Reinitialize service.

Reimplemented from Service.

Definition at line 436 of file EventSelector.cpp.

00436                                        {
00437   if ( FSMState() != Gaudi::StateMachine::INITIALIZED ) {
00438     MsgStream logger(msgSvc(), name());
00439     logger << MSG::ERROR << "Cannot reinitialize: service not in state initialized" << endmsg;
00440     return StatusCode::FAILURE;
00441   }
00442 
00443   if( m_streamSpecsLast != m_streamSpecs ) {
00444     StatusCode status = m_streamtool->clear();
00445     if ( status.isFailure() ) return status;
00446     m_streamSpecsLast = m_streamSpecs;
00447     m_reconfigure = true;
00448     return m_streamtool->addStreams(m_streamSpecs);
00449   }
00450 
00451   return StatusCode::SUCCESS;
00452 }

StatusCode EventSelector::createContext ( Context *&  refpCtxt  )  const [virtual]

Create a new event loop context.

Parameters:
refpCtxt [IN/OUT] Reference to pointer to store the context
Returns:
StatusCode indicating success or failure

Implements IEvtSelector.

Definition at line 197 of file EventSelector.cpp.

00198 {
00199   // Max event is zero. Return begin = end
00200   refpCtxt = 0;
00201   if ( m_firstEvent < 0 ) {
00202     MsgStream log(msgSvc(), name());
00203     log << MSG::ERROR  << "First Event = " << m_firstEvent << " not valid" << endmsg;
00204     log << MSG::ERROR  << "It should be > 0 " << endmsg;
00205     return StatusCode::FAILURE;    // if failure => iterators = end();
00206   }
00207   EvtSelectorContext* ctxt = new EvtSelectorContext(this);
00208   ctxt->set(0, -1, 0, 0);
00209   firstOfNextStream(true, *ctxt).ignore();
00210   refpCtxt = ctxt;
00211   long nskip = m_firstEvent;
00212   while( --nskip > 0 )    {
00213     StatusCode sc = next(*refpCtxt);
00214     if ( sc.isFailure() ) {
00215       MsgStream log(msgSvc(), name());
00216       log << MSG::ERROR << " createContext() failed to start with event number "
00217           << m_firstEvent << endmsg;
00218       releaseContext(refpCtxt);
00219       refpCtxt = 0;
00220       return StatusCode::FAILURE;
00221     }
00222   }
00223   return StatusCode::SUCCESS;
00224 }

StatusCode EventSelector::next ( Context refCtxt  )  const [virtual]

Get next iteration item from the event loop context.

Parameters:
refCtxt [IN/OUT] Reference to the context
Returns:
StatusCode indicating success or failure

Implements IEvtSelector.

Definition at line 227 of file EventSelector.cpp.

00227                                                       {
00228   return next(refCtxt, 1);
00229 }

StatusCode EventSelector::next ( Context refCtxt,
int  jump 
) const [virtual]

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

Implements IEvtSelector.

Definition at line 232 of file EventSelector.cpp.

00232                                                                        {
00233   EvtSelectorContext *pIt  = dynamic_cast<EvtSelectorContext*>(&refCtxt);
00234   if ( pIt )    {
00235     if ( pIt->ID() != -1 ) {
00236       const EventSelectorDataStream* s = m_streamtool->getStream(pIt->ID());
00237       Context* it = pIt->context();
00238       IEvtSelector* sel = s->selector();
00239       if ( it && sel )    { // First exploit the current stream
00240         StatusCode sc = sel->next(*it);  // This stream is empty: advance to the next stream
00241         if ( !sc.isSuccess() )   {
00242           if(s!=NULL) m_incidentSvc->fireIncident(Incident(s->dbName(),IncidentType::EndInputFile));
00243           sc = firstOfNextStream(true, *pIt);
00244           if (sc.isSuccess() ) sc = next(*pIt);
00245         }
00246         else  {
00247           pIt->increaseCounters(false);
00248           pIt->set(it, 0);
00249           printEvtInfo(pIt);
00250         }
00251         return sc;
00252       }
00253       else if ( m_reconfigure )  {
00254         StatusCode sc = firstOfNextStream(false, *pIt);
00255         printEvtInfo(pIt);
00256         return sc;
00257       }
00258     }
00259     else if ( m_reconfigure )  {
00260       StatusCode sc = firstOfNextStream(false, *pIt);
00261       printEvtInfo(pIt);
00262       return sc;
00263     }
00264     pIt->increaseCounters(false);
00265   }
00266   printEvtInfo(pIt);
00267   return StatusCode::FAILURE;
00268 }

StatusCode EventSelector::previous ( Context refCtxt  )  const [virtual]

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

Implements IEvtSelector.

Definition at line 271 of file EventSelector.cpp.

00271                                                           {
00272   return previous(refCtxt, 1);
00273 }

StatusCode EventSelector::previous ( Context refCtxt,
int  jump 
) const [virtual]

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

Implements IEvtSelector.

Definition at line 276 of file EventSelector.cpp.

00276                                                                     {
00277   EvtSelectorContext *pIt  = dynamic_cast<EvtSelectorContext*>(&refCtxt);
00278   if ( pIt && jump > 0 )    {
00279     StatusCode sc = StatusCode::SUCCESS;
00280     for ( int i = 0; i < jump && sc.isSuccess(); ++i ) {
00281       const EventSelectorDataStream* s = m_streamtool->getStream(pIt->ID());
00282       Context* it = pIt->context();
00283       IEvtSelector* sel = s->selector();
00284       if ( it && sel )    { // First exploit the current stream
00285                             // This stream is empty: advance to the next stream
00286         sc = sel->previous(*it);  // This stream is empty: advance to the next stream
00287         if ( !sc.isSuccess() )   {
00288           sc = lastOfPreviousStream(true, *pIt);
00289         }
00290         else  {
00291           pIt->increaseCounters(false);
00292           pIt->set(it, 0);
00293         }
00294         printEvtInfo(pIt);
00295         if ( !sc.isSuccess() ) {
00296           return sc;
00297         }
00298       }
00299       pIt->increaseCounters(false);
00300     }
00301     return sc;
00302   }
00303   printEvtInfo(pIt);
00304   return StatusCode::FAILURE;
00305 }

StatusCode EventSelector::rewind ( Context refCtxt  )  const [virtual]

Rewind the dataset.

Parameters:
refCtxt [IN/OUT] Reference to the context
Returns:
StatusCode indicating success or failure

Implements IEvtSelector.

Definition at line 316 of file EventSelector.cpp.

00316                                                         {
00317   EvtSelectorContext *ctxt  = dynamic_cast<EvtSelectorContext*>(&refCtxt);
00318   if ( ctxt )    {
00319     ctxt->set(0, -1, 0, 0);
00320     firstOfNextStream(true, *ctxt);
00321     long nskip = m_firstEvent;
00322     while( --nskip > 0 )    {
00323       StatusCode sc = next(*ctxt);
00324       if ( sc.isFailure() ) {
00325         MsgStream log(msgSvc(), name());
00326         log << MSG::ERROR << "rewind() failed to start with event number "
00327             << m_firstEvent << endmsg;
00328         return StatusCode::FAILURE;
00329       }
00330     }
00331     return StatusCode::SUCCESS;
00332   }
00333   return StatusCode::FAILURE;
00334 }

StatusCode EventSelector::createAddress ( const Context refCtxt,
IOpaqueAddress *&  refpAddr 
) const [virtual]

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

Implements IEvtSelector.

Definition at line 338 of file EventSelector.cpp.

00340 {
00341   const EvtSelectorContext *cpIt  = dynamic_cast<const EvtSelectorContext*>(&refCtxt);
00342   EvtSelectorContext *pIt  = const_cast<EvtSelectorContext*>(cpIt);
00343   refpAddr = 0;
00344   if ( pIt )    {
00345     const EventSelectorDataStream* s = m_streamtool->getStream(pIt->ID());
00346     Context* it = pIt->context();
00347     IEvtSelector* sel = s->selector();
00348     if ( it && sel )    {
00349       IOpaqueAddress* pAddr = 0;
00350       StatusCode sc = sel->createAddress(*it, pAddr);
00351       if ( sc.isSuccess() )  {
00352         refpAddr = pAddr;
00353       }
00354       pIt->set(it, pAddr);
00355       return sc;
00356     }
00357   }
00358   return StatusCode::FAILURE;
00359 }

StatusCode EventSelector::releaseContext ( Context *&  refCtxt  )  const [virtual]

Release existing event iteration context.

Parameters:
refCtxt [IN/OUT] Reference to the context
Returns:
StatusCode indicating success or failure

Implements IEvtSelector.

Definition at line 362 of file EventSelector.cpp.

00362                                                                  {
00363   const EvtSelectorContext *cpIt = dynamic_cast<const EvtSelectorContext*>(refCtxt);
00364   EvtSelectorContext       *pIt  = const_cast<EvtSelectorContext*>(cpIt);
00365   if ( pIt && pIt->ID() >= 0 && pIt->ID() < (long)m_streamtool->size() ) {
00366     const EventSelectorDataStream* s = m_streamtool->getStream(pIt->ID());
00367     Context* it = pIt->context();
00368     IEvtSelector* sel = s->selector();
00369     if ( it && sel )    {
00370       StatusCode sc = sel->releaseContext(it);
00371       if ( sc.isSuccess() )  {
00372         refCtxt = 0;
00373         delete pIt;
00374         return sc;
00375       }
00376     }
00377   }
00378   if ( pIt )   {
00379     delete pIt;
00380   }
00381   return StatusCode::SUCCESS;
00382 }

StatusCode EventSelector::resetCriteria ( const std::string cr,
Context c 
) const [virtual]

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

Implements IEvtSelector.

Definition at line 50 of file EventSelector.cpp.

00052 {
00053   return StatusCode::FAILURE;
00054 }

StatusCode EventSelector::last ( Context c  )  const [virtual]

Access last item in the iteration.

Parameters:
c Reference to the Context object.
Returns:
StatusCode indicating success or failure

Implements IEvtSelector.

Definition at line 308 of file EventSelector.cpp.

00308                                                      {
00309   EvtSelectorContext *pIt  = dynamic_cast<EvtSelectorContext*>(&refCtxt);
00310   if ( pIt )    {
00311   }
00312   return StatusCode::FAILURE;
00313 }

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

Retrieve first entry of the next data stream.

Definition at line 83 of file EventSelector.cpp.

00083                                                                               {
00084   StatusCode status = StatusCode::SUCCESS;
00085   IDataStreamTool::size_type iter_id = (m_reconfigure) ? 0 : iter.ID()+1;
00086   if ( m_reconfigure ) const_cast<EventSelector*>(this)->m_reconfigure = false;
00087   if ( shutDown )   {
00088     if ( iter.ID() >= 0 && iter.ID() < (long)m_streamtool->size() )   {
00089       const EventSelectorDataStream* s = m_streamtool->getStream(iter.ID());
00090       if ( s->isInitialized() )    {
00091         EventSelector* thisPtr = const_cast<EventSelector*>(this);
00092         if ( s->selector() && iter.context() )  {
00093           Context* ctxt = iter.context();
00094           s->selector()->releaseContext(ctxt).ignore();
00095           iter.set(0,0);
00096         }
00097         status = thisPtr->m_streamtool->finalizeStream(const_cast<EventSelectorDataStream*>(s));
00098         iter.set(0,0);
00099       }
00100     }
00101   }
00102 
00103   const EventSelectorDataStream* s ;
00104   status = m_streamtool->getNextStream( s , iter_id );
00105 
00106   if ( status.isSuccess() )   {
00107 
00108     if ( !s->isInitialized() )    {
00109       EventSelector* thisPtr = const_cast<EventSelector*>(this);
00110       status = thisPtr->m_streamtool->initializeStream(const_cast<EventSelectorDataStream*>(s));
00111     }
00112 
00113     if ( status.isSuccess() ) {
00114       const IEvtSelector* sel = s->selector();
00115       if ( sel )    {
00116         Context* ctxt = 0;
00117         status = sel->createContext(ctxt);
00118         if ( status.isSuccess() )   {
00119           status = sel->resetCriteria(s->criteria(), *ctxt);
00120           if ( status.isSuccess() )   {
00121             MsgStream log(msgSvc(), name());
00122             iter.set(this, iter_id, ctxt, 0);
00123             log << MSG::INFO << *s << endmsg;
00124             m_incidentSvc->fireIncident(Incident(s->dbName(),IncidentType::BeginInputFile));
00125             return StatusCode::SUCCESS;
00126           }
00127         }
00128       }
00129     }
00130     if(s!=NULL) {
00131       m_incidentSvc->fireIncident(Incident(s->dbName(),IncidentType::FailInputFile));
00132       // Set the return code to 2
00133       SmartIF<IProperty> appmgr(serviceLocator());
00134       Gaudi::setAppReturnCode(appmgr, 2).ignore();
00135     }
00136   }
00137 
00138   iter.set(this, -1, 0, 0);
00139   status.setChecked();
00140   //m_incidentSvc->fireIncident(Incident(s->dbName(),IncidentType::FailInputFile));
00141   return StatusCode::FAILURE;
00142 }

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

Retrieve last entry of the previous data stream.

Definition at line 146 of file EventSelector.cpp.

00146                                                                                  {
00147   StatusCode status = StatusCode::SUCCESS;
00148   if ( shutDown )   {
00149     if ( iter.ID() >= 0 && iter.ID() < (long)m_streamtool->size() )   {
00150       const EventSelectorDataStream* s = m_streamtool->getStream(iter.ID());
00151       if ( s->isInitialized() )    {
00152         EventSelector* thisPtr = const_cast<EventSelector*>(this);
00153         if ( s->selector() && iter.context() )  {
00154           Context* ctxt = iter.context();
00155           s->selector()->releaseContext(ctxt);
00156           iter.set(0,0);
00157         }
00158         status = thisPtr->m_streamtool->finalizeStream(const_cast<EventSelectorDataStream*>(s));
00159         iter.set(0,0);
00160       }
00161     }
00162   }
00163 
00164   IDataStreamTool::size_type iter_id = iter.ID()-1;
00165   const EventSelectorDataStream* s ;
00166   status = m_streamtool->getPreviousStream( s , iter_id );
00167 
00168   if ( status.isSuccess() )   {
00169 
00170     if ( !s->isInitialized() )    {
00171       EventSelector* thisPtr = const_cast<EventSelector*>(this);
00172       status = thisPtr->m_streamtool->initializeStream(const_cast<EventSelectorDataStream*>(s));
00173     }
00174     if ( status.isSuccess() )   {
00175       const IEvtSelector* sel = s->selector();
00176       if ( sel )  {
00177         Context* ctxt = 0;
00178         status = sel->createContext(ctxt);
00179         if ( status.isSuccess() )   {
00180           status = sel->resetCriteria(s->criteria(), *ctxt);
00181           if ( status.isSuccess() )   {
00182             MsgStream log(msgSvc(), name());
00183             iter.set(this, iter_id, ctxt, 0);
00184             log << MSG::INFO << *s << endmsg;
00185             return StatusCode::SUCCESS;
00186           }
00187         }
00188       }
00189     }
00190   }
00191 
00192   iter.set(this, -1, 0, 0);
00193   return StatusCode::FAILURE;
00194 }


Member Data Documentation

Definition at line 59 of file EventSelector.h.

Reference to the indicent service.

Definition at line 63 of file EventSelector.h.

Definition at line 65 of file EventSelector.h.

Definition at line 67 of file EventSelector.h.

Reconfigure occurred.

Definition at line 70 of file EventSelector.h.

Input stream specifiers (for job options).

Definition at line 72 of file EventSelector.h.

Input stream specifiers (last used).

Definition at line 74 of file EventSelector.h.

Input streams.

Definition at line 76 of file EventSelector.h.

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

Definition at line 78 of file EventSelector.h.

int EventSelector::m_firstEvent [protected]

First event to be processed.

Definition at line 80 of file EventSelector.h.

int EventSelector::m_evtMax [protected]

Maximum number of events to be processed.

Definition at line 82 of file EventSelector.h.

Printout frequency.

Definition at line 84 of file EventSelector.h.

Definition at line 86 of file EventSelector.h.


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

Generated at Mon May 3 12:24:10 2010 for Gaudi Framework, version v21r9 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004