//==================================================================== // EventSelectorAthenaPool.h //-------------------------------------------------------------------- // // Package : EventSelectorAthenaPool // // Description: EventSelector for Pool input // // // Author : Hong Ma // Created : 3/1/01 // Changes : Updated for New StoreGame Oct 2 , 2001 // // This is the default EventSelector for AthenaPool // It handles the default Pool persistency of the new StoreGate // Other Pool Input source should provide EventSelector sub class // to override the methods: nextEvent(), reference(Interator& it) //==================================================================== #ifndef EVENTSELECTORATHENAPOOL_EVENTSELECTORATHENAPOOL_H #define EVENTSELECTORATHENAPOOL_EVENTSELECTORATHENAPOOL_H // Include files #include "GaudiKernel/IEvtSelector.h" #include "GaudiKernel/IProperty.h" #include "GaudiKernel/Service.h" #include "GaudiKernel/Property.h" /*no forward decl: typedef*/ #include "Collection/Collection.h" // Forward declarations class EventSource; class ISvcLocator; class IEvtSelector::Iterator; class EventIteratorAthenaPool; class IOpaqueAddress; class ActiveStoreSvc; class EventHeaderConverter; class PoolSvc; class AthenaPoolCnvSvc; #ifdef WIN32 // Disable warning C4786: identifier was truncated to '255' characters in the debug information #pragma warning ( disable : 4786 ) #endif //-------------------------------------------------------------------- // Event Selector //-------------------------------------------------------------------- class EventSelectorAthenaPool : virtual public Service, virtual public IEvtSelector, virtual public IProperty { public: static IService* createClassObject( const std::string& svcname, ISvcLocator* svcloc ); // IEvtSelector implementation virtual StatusCode initialize(); virtual StatusCode setCriteria( const std::string& criteria ); virtual StatusCode setCriteria( const SelectionCriteria& criteria ); virtual Iterator* begin() const; virtual Iterator* end() const; virtual Iterator& next(Iterator& it) const; virtual Iterator& previous(Iterator& it) const; virtual IOpaqueAddress* reference(const Iterator& it) const; // IOpaqueAddress* reference() const; // IProperty implementation // virtual StatusCode setProperty(const Property& property); // virtual StatusCode getProperty( Property* property ) const; // IInterface implementation virtual StatusCode queryInterface(const IID& riid, void** ppvInterface); // Constructors & Destructors EventSelectorAthenaPool( const std::string& name, ISvcLocator* svcloc ); ~EventSelectorAthenaPool(); // virtual void nextEvent(); //AthenaPoolAddress* reference(const Iterator& it) const; private: // EventSource* p_eventSource; EventIteratorAthenaPool* p_beginIter; EventIteratorAthenaPool* p_endIter; ActiveStoreSvc* m_pActiveStore; EventHeaderConverter *m_EventHeaderConverter; PoolSvc *m_PoolSvc; pool::CollectionIterator *m_HeaderIterator; AthenaPoolCnvSvc *m_AthenaPoolCnvSvc; BooleanProperty m_hitsFlag; BooleanProperty m_digitsFlag; BooleanProperty m_calosFlag; BooleanProperty m_emBarrelFlag; BooleanProperty m_emEndcapFlag; BooleanProperty m_hecFlag; BooleanProperty m_fcalFlag; BooleanProperty m_tileFlag; BooleanProperty m_muonsFlag; BooleanProperty m_cscFlag; BooleanProperty m_mdtFlag; BooleanProperty m_rpcFlag; BooleanProperty m_tgcFlag; BooleanProperty m_indetFlag; BooleanProperty m_trtFlag; BooleanProperty m_sctFlag; BooleanProperty m_pixelFlag; }; #endif // MCEVENTCNV_EventSelectorAthenaPool_H