All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
EventSelector.h
Go to the documentation of this file.
1 //====================================================================
2 // EventSelector.h
3 //--------------------------------------------------------------------
4 //
5 // Package : EventSelector (LHCb Event Selector Package)
6 //
7 // Author : M.Frank
8 // Created : 4/10/00
9 //
10 //====================================================================
11 // Modified : 11/11/06
12 //
13 // Author : Andres Felipe OSORIO OLIVEROS
14 // : Marco CLEMENCIC
15 //
16 //====================================================================
17 
18 #ifndef GAUDISVC_EVENTSELECTOR_EVENTSELECTOR_H
19 #define GAUDISVC_EVENTSELECTOR_EVENTSELECTOR_H 1
20 
21 // Include files
22 #include "GaudiKernel/Service.h"
23 #include "GaudiKernel/IEvtSelector.h"
24 
25 // STL include files
26 #include <vector>
27 
28 // Forward declarations
29 class IIncidentSvc;
30 class IAddressCreator;
31 class IToolSvc;
33 class EvtSelectorContext;
34 class IDataStreamTool;
35 
53 class EventSelector : public extends1<Service, IEvtSelector> {
54 public:
55  typedef std::vector<EventSelectorDataStream*> Streams;
56  typedef std::vector<std::string> StreamSpecs;
57  typedef std::vector<StringProperty> Properties;
58 
59  long int m_streamID;
60 
61 protected:
64 
66 
68 
70  bool m_reconfigure = false;
72  StreamSpecs m_streamSpecs;
74  StreamSpecs m_streamSpecsLast;
76  Streams m_streams;
78  int m_streamCount = 0;
80  int m_firstEvent = 0;
82  int m_evtMax = INT_MAX;
85 
86  std::string m_streamManager="DataStreamTool";
87 
88 
89 
91  virtual void printEvtInfo(const EvtSelectorContext* iter) const;
92 
93 public:
95  StatusCode initialize() override;
96 
98  StatusCode finalize() override;
99 
101  StatusCode reinitialize() override;
102 
104 
108  StatusCode createContext(Context*& refpCtxt) const override;
109 
111 
115  StatusCode next(Context& refCtxt) const override;
116 
118 
122  StatusCode next(Context& refCtxt,int jump) const override;
123 
125 
130  StatusCode previous(Context& refCtxt) const override;
131 
133 
138  StatusCode previous(Context& refCtxt,int jump) const override;
139 
141 
145  StatusCode rewind(Context& refCtxt) const override;
146 
148 
153  StatusCode createAddress(const Context& refCtxt, IOpaqueAddress*& refpAddr) const override;
154 
156 
160  StatusCode releaseContext(Context*& refCtxt) const override;
161 
170  StatusCode resetCriteria(const std::string& cr,Context& c) const override;
171 
177  StatusCode last(Context& c) const override;
178 
180  StatusCode firstOfNextStream( bool shutDown, EvtSelectorContext& it) const;
182  StatusCode lastOfPreviousStream ( bool shutDown, EvtSelectorContext& it) const;
183 
185  EventSelector( const std::string& name, ISvcLocator* svcloc );
186 
188  ~EventSelector() override = default;
189 };
190 
191 #endif // GAUDISVC_EVENTSELECTOR_EVENTSELECTOR_H
StatusCode lastOfPreviousStream(bool shutDown, EvtSelectorContext &it) const
Retrieve last entry of the previous data stream.
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the indicent service.
Definition: EventSelector.h:63
The interface implemented by the IToolSvc base class.
Definition: IToolSvc.h:18
tuple c
Definition: gaudirun.py:391
int m_evtPrintFrequency
Printout frequency.
Definition: EventSelector.h:84
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:25
int m_firstEvent
First event to be processed.
Definition: EventSelector.h:80
int m_evtMax
Maximum number of events to be processed.
Definition: EventSelector.h:82
std::vector< EventSelectorDataStream * > Streams
Definition: EventSelector.h:55
StatusCode releaseContext(Context *&refCtxt) const override
Release existing event iteration context.
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...
~EventSelector() override=default
Standard Destructor.
IDataStreamTool * m_streamtool
Definition: EventSelector.h:67
Streams m_streams
Input streams.
Definition: EventSelector.h:76
IAddressCreator interface definition.
long int m_streamID
Definition: EventSelector.h:59
virtual void printEvtInfo(const EvtSelectorContext *iter) const
Progress report.
StatusCode firstOfNextStream(bool shutDown, EvtSelectorContext &it) const
Retrieve first entry of the next data stream.
StreamSpecs m_streamSpecsLast
Input stream specifiers (last used)
Definition: EventSelector.h:74
StatusCode next(Context &refCtxt) const override
Get next iteration item from the event loop context.
std::vector< StringProperty > Properties
Definition: EventSelector.h:57
StatusCode rewind(Context &refCtxt) const override
Rewind the dataset.
StatusCode reinitialize() override
Service override: Reinitialize service.
StatusCode previous(Context &refCtxt) const override
Get previous iteration item from the event loop context.
Definition of class EventIterator.
Definition: EventIterator.h:32
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
StatusCode initialize() override
IService implementation: Db event selector override.
StreamSpecs m_streamSpecs
Input stream specifiers (for job options)
Definition: EventSelector.h:72
StatusCode finalize() override
IService implementation: Service finalization.
std::vector< std::string > StreamSpecs
Definition: EventSelector.h:56
SmartIF< IToolSvc > m_toolSvc
Definition: EventSelector.h:65
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
Definition of class EventSelectorDataStream.
int m_streamCount
Input stream counter (0..oo, monotonely increasing)
Definition: EventSelector.h:78
Definition of class EventSelector.
Definition: EventSelector.h:53
StatusCode createAddress(const Context &refCtxt, IOpaqueAddress *&refpAddr) const override
Create new Opaque address corresponding to the current record.
EventSelector(const std::string &name, ISvcLocator *svcloc)
Standard Constructor.
bool m_reconfigure
Reconfigure occurred.
Definition: EventSelector.h:70
Opaque address interface definition.
StatusCode last(Context &c) const override
Access last item in the iteration.
std::string m_streamManager
Definition: EventSelector.h:86
StatusCode createContext(Context *&refpCtxt) const override
Create a new event loop context.
The interface implemented by the IncidentSvc service.
Definition: IIncidentSvc.h:21