All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
EventCollectionSelector.h
Go to the documentation of this file.
1 //====================================================================
2 // EventCollectionSelector.h
3 //--------------------------------------------------------------------
4 //
5 // Package : EventCollectionSelector (LHCb Event Selector Package)
6 //
7 // Author : M.Frank
8 // Created : 4/10/00
9 //
10 //====================================================================
11 #ifndef GAUDISVC_EventCollectionSelector_EventCollectionSelector_H
12 #define GAUDISVC_EventCollectionSelector_EventCollectionSelector_H 1
13 
14 // Include files
15 #include "GaudiKernel/Service.h"
18 #include "GaudiKernel/NTuple.h"
19 
20 // Forward declarations
21 class INTuple;
22 class INTupleSvc;
23 class IAddressCreator;
25 template <class TYPE> class EventIterator;
26 
41 class EventCollectionSelector : public extends1<Service, IEvtSelector> {
42 public:
44  public:
45  std::string criteria;
52  tuple = t;
53  item = i;
54  }
58  tuple = (ctxt) ? ctxt->tuple : 0;
59  item = (ctxt) ? ctxt->item : 0;
60  }
62  : IEvtSelector::Context(ctxt)
63  {
66  tuple = ctxt.tuple;
67  item = ctxt.item;
68  }
69  virtual ~MyContextType() {
71  }
72  virtual void* identifier() const {
73  return (void*)addressBuffer;
74  }
75  void setAddress(IOpaqueAddress* pAddr);
76  };
77 protected:
82  std::string m_tupleSvcName;
84  std::string m_authentication;
86  std::string m_cntName;
88  std::string m_itemName;
90  std::string m_criteria;
92  std::string m_database;
94  std::string m_dbType;
96  std::string m_dbSvc;
98  std::string m_statement;
99 public:
100 
102  virtual StatusCode initialize();
104  virtual StatusCode finalize();
105 
107 
111  virtual StatusCode createContext(Context*& refpCtxt) const;
112 
114 
118  virtual StatusCode next(Context& refCtxt) const;
119 
121 
125  virtual StatusCode next(Context& refCtxt,int jump) const;
126 
128 
133  virtual StatusCode previous(Context& refCtxt) const;
134 
136 
141  virtual StatusCode previous(Context& refCtxt,int jump) const;
142 
144 
148  virtual StatusCode rewind(Context& refCtxt) const;
149 
151 
156  virtual StatusCode createAddress(const Context& refCtxt, IOpaqueAddress*& refpAddr) const;
157 
159 
163  virtual StatusCode releaseContext(Context*& refCtxt) const;
164 
173  virtual StatusCode resetCriteria(const std::string& cr,Context& c)const;
174 
180  virtual StatusCode last(Context& refCtxt) const;
181 
183  virtual StatusCode connectCollection(MyContextType* ctxt) const;
184 
186  virtual StatusCode connectDataSource(const std::string& db, const std::string& typ) const;
188  virtual StatusCode connectTuple(const std::string& nam, const std::string& itName, NTuple::Tuple*& tup, NTuple::Item<IOpaqueAddress*>*& item) const;
190  virtual StatusCode connectStatement(const std::string& typ, const std::string& crit, INTuple* tuple) const;
192  virtual StatusCode getNextRecord(NTuple::Tuple* tuple) const;
194  virtual StatusCode getPreviousRecord(NTuple::Tuple* tuple) const;
195 
197  EventCollectionSelector( const std::string& name, ISvcLocator* svcloc );
199  virtual ~EventCollectionSelector();
200 };
201 
202 #endif // GAUDISVC_EventCollectionSelector_EventCollectionSelector_H
SmartIF< INTupleSvc > m_tupleSvc
Reference to Tuple service.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:26
virtual StatusCode getNextRecord(NTuple::Tuple *tuple) const
Read next record of the N-tuple.
The Event Selector Interface.
Definition: IEvtSelector.h:19
virtual StatusCode releaseContext(Context *&refCtxt) const
Release existing event iteration context.
MyContextType(NTuple::Tuple *t, NTuple::Item< IOpaqueAddress * > *i)
tuple c
Definition: gaudirun.py:341
virtual StatusCode connectDataSource(const std::string &db, const std::string &typ) const
Connect collection's data source to selector.
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...
IAddressCreator interface definition.
std::string m_criteria
Criteria.
virtual unsigned long release()=0
release reference to object
virtual StatusCode initialize()
Service override: Initialize service.
Generic Transient Address.
virtual StatusCode previous(Context &refCtxt) const
Get previous iteration item from the event loop context.
virtual StatusCode createContext(Context *&refpCtxt) const
Create a new event loop context.
virtual StatusCode finalize()
Service override: Finalize Service.
NTuple interface class definition.
Definition: INTuple.h:80
std::string m_tupleSvcName
Name of the event collection service name.
std::string m_cntName
Container name.
virtual StatusCode createAddress(const Context &refCtxt, IOpaqueAddress *&refpAddr) const
Create new Opaque address corresponding to the current record.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
std::string m_itemName
Item name.
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
virtual StatusCode last(Context &refCtxt) const
Access last item in the iteration.
void setAddress(IOpaqueAddress *pAddr)
std::string m_dbType
Database type identifier.
virtual const std::string & name() const
Retrieve name of the service.
Definition: Service.cpp:331
Abstract base class which allows the user to interact with the actual N tuple implementation.
Definition: NTuple.h:367
std::string m_dbSvc
Database service (exclusive property with db type)
std::string m_database
Datafile name.
virtual StatusCode getPreviousRecord(NTuple::Tuple *tuple) const
Read next record of the N-tuple.
Definition of class EventCollectionSelector.
Definition of class EventSelectorDataStream.
tuple item
print s1,s2
Definition: ana.py:146
NTuple::Item< IOpaqueAddress * > * item
virtual ~EventCollectionSelector()
Standard Destructor.
virtual StatusCode next(Context &refCtxt) const
Get next iteration item from the event loop context.
virtual StatusCode connectTuple(const std::string &nam, const std::string &itName, NTuple::Tuple *&tup, NTuple::Item< IOpaqueAddress * > *&item) const
Connect to existing N-tuple.
virtual StatusCode rewind(Context &refCtxt) const
Rewind the dataset.
std::string m_authentication
Authentication string (if needed)
EventCollectionSelector(const std::string &name, ISvcLocator *svcloc)
Standard Constructor.
Opaque address interface definition.
SmartIF< IAddressCreator > m_pAddrCreator
virtual StatusCode connectCollection(MyContextType *ctxt) const
Connect collection to selector.
list i
Definition: ana.py:128
std::string m_statement
Selector name.
virtual unsigned long addRef()=0
Add reference to object.
virtual StatusCode connectStatement(const std::string &typ, const std::string &crit, INTuple *tuple) const
Connect selection statement to refine data access.