Gaudi Framework, version v21r4

Home   Generated: 7 Sep 2009

EventSelector.h

Go to the documentation of this file.
00001 //====================================================================
00002 //      EventSelector.h
00003 //--------------------------------------------------------------------
00004 //
00005 //      Package    : EventSelector  (LHCb Event Selector Package)
00006 //
00007 //      Author     : M.Frank
00008 //  Created    : 4/10/00
00009 //
00010 //====================================================================
00011 //  Modified   : 11/11/06
00012 //
00013 //  Author     : Andres Felipe OSORIO OLIVEROS
00014 //             : Marco CLEMENCIC
00015 //
00016 //====================================================================
00017 
00018 #ifndef GAUDISVC_EVENTSELECTOR_EVENTSELECTOR_H
00019 #define GAUDISVC_EVENTSELECTOR_EVENTSELECTOR_H 1
00020 
00021 // Include files
00022 #include "GaudiKernel/Service.h"
00023 #include "GaudiKernel/IEvtSelector.h"
00024 
00025 // STL include files
00026 #include <vector>
00027 
00028 // Forward declarations
00029 class IIncidentSvc;
00030 class IAddressCreator;
00031 class IToolSvc;
00032 class EventSelectorDataStream;
00033 class EvtSelectorContext;
00034 class IDataStreamTool;
00035 
00050 class EventSelector : public extends1<Service, IEvtSelector> {
00051 public:
00052   typedef std::vector<EventSelectorDataStream*>  Streams;
00053   typedef std::vector<std::string>               StreamSpecs;
00054   typedef std::vector<StringProperty>            Properties;
00055 
00056   long int m_streamID;
00057 
00058 protected:
00060   SmartIF<IIncidentSvc> m_incidentSvc;
00061 
00062   SmartIF<IToolSvc>     m_toolSvc;
00063 
00064   IDataStreamTool*      m_streamtool;
00065 
00067   bool                  m_reconfigure;
00069   StreamSpecs           m_streamSpecs;
00071   StreamSpecs           m_streamSpecsLast;
00073   Streams               m_streams;
00075   int                   m_streamCount;
00077   int                   m_firstEvent;
00079   int                   m_evtMax;
00081   int                   m_evtPrintFrequency;
00082 
00083   std::string           m_streamManager;
00084 
00085 
00086 
00088   virtual void printEvtInfo(const EvtSelectorContext* iter) const;
00089 
00090 public:
00092   virtual StatusCode initialize();
00093 
00095   virtual StatusCode finalize();
00096 
00098   virtual StatusCode reinitialize();
00099 
00101 
00105   virtual StatusCode createContext(Context*& refpCtxt) const;
00106 
00108 
00112   virtual StatusCode next(Context& refCtxt) const;
00113 
00115 
00119   virtual StatusCode next(Context& refCtxt,int jump) const;
00120 
00122 
00127   virtual StatusCode previous(Context& refCtxt) const;
00128 
00130 
00135   virtual StatusCode previous(Context& refCtxt,int jump) const;
00136 
00138 
00142   virtual StatusCode rewind(Context& refCtxt) const;
00143 
00145 
00150   virtual StatusCode createAddress(const Context& refCtxt, IOpaqueAddress*& refpAddr) const;
00151 
00153 
00157   virtual StatusCode releaseContext(Context*& refCtxt) const;
00158 
00167   virtual StatusCode resetCriteria(const std::string& cr,Context& c)const;
00168 
00174   virtual StatusCode last(Context& c) const;
00175 
00177   StatusCode firstOfNextStream( bool shutDown, EvtSelectorContext& it) const;
00179   StatusCode lastOfPreviousStream ( bool shutDown, EvtSelectorContext& it) const;
00180 
00182   EventSelector( const std::string& name, ISvcLocator* svcloc );
00183 
00185   virtual ~EventSelector();
00186 };
00187 
00188 #endif  // GAUDISVC_EVENTSELECTOR_EVENTSELECTOR_H

Generated at Mon Sep 7 18:05:47 2009 for Gaudi Framework, version v21r4 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004