|
Gaudi Framework, version v21r4 |
| Home | Generated: 7 Sep 2009 |
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