| # Gaudi Framework, version v21r10p1 |

Home |  | Generated: 29 Jul 2010

# 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
    00053 class EventSelector : public extends1<Service, IEvtSelector> {
    00054 public:
    00055   typedef std::vector<EventSelectorDataStream*>  Streams;
    00056   typedef std::vector<std::string>               StreamSpecs;
    00057   typedef std::vector<StringProperty>            Properties;
    00058
    00059   long int m_streamID;
    00060
    00061 protected:
    00063   SmartIF<IIncidentSvc> m_incidentSvc;
    00064
    00065   SmartIF<IToolSvc>     m_toolSvc;
    00066
    00067   IDataStreamTool*      m_streamtool;
    00068
    00070   bool                  m_reconfigure;
    00072   StreamSpecs           m_streamSpecs;
    00074   StreamSpecs           m_streamSpecsLast;
    00076   Streams               m_streams;
    00078   int                   m_streamCount;
    00080   int                   m_firstEvent;
    00082   int                   m_evtMax;
    00084   int                   m_evtPrintFrequency;
    00085
    00086   std::string           m_streamManager;
    00087
    00088
    00089
    00091   virtual void printEvtInfo(const EvtSelectorContext* iter) const;
    00092
    00093 public:
    00095   virtual StatusCode initialize();
    00096
    00098   virtual StatusCode finalize();
    00099
    00101   virtual StatusCode reinitialize();
    00102
    00104
    00108   virtual StatusCode createContext(Context*& refpCtxt) const;
    00109
    00111
    00115   virtual StatusCode next(Context& refCtxt) const;
    00116
    00118
    00122   virtual StatusCode next(Context& refCtxt,int jump) const;
    00123
    00125
    00130   virtual StatusCode previous(Context& refCtxt) const;
    00131
    00133
    00138   virtual StatusCode previous(Context& refCtxt,int jump) const;
    00139
    00141
    00145   virtual StatusCode rewind(Context& refCtxt) const;
    00146
    00148
    00153   virtual StatusCode createAddress(const Context& refCtxt, IOpaqueAddress*& refpAddr) const;
    00154
    00156
    00160   virtual StatusCode releaseContext(Context*& refCtxt) const;
    00161
    00170   virtual StatusCode resetCriteria(const std::string& cr,Context& c)const;
    00171
    00177   virtual StatusCode last(Context& c) const;
    00178
    00180   StatusCode firstOfNextStream( bool shutDown, EvtSelectorContext& it) const;
    00182   StatusCode lastOfPreviousStream ( bool shutDown, EvtSelectorContext& it) const;
    00183
    00185   EventSelector( const std::string& name, ISvcLocator* svcloc );
    00186
    00188   virtual ~EventSelector();
    00189 };
    00190
    00191 #endif  // GAUDISVC_EVENTSELECTOR_EVENTSELECTOR_H