/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/RootCnvSvc/RootCnvSvc-02-01-12/RootCnvSvc/RootEvtSelector.h

Go to the documentation of this file.
00001 #ifndef ROOTEVTSELECTOR_H
00002 #define ROOTEVTSELECTOR_H 1
00003 
00004 #include "GaudiKernel/IEvtSelector.h"
00005 #include "GaudiKernel/ISvcLocator.h"
00006 #include "GaudiKernel/Service.h"
00007 
00008 
00009 class IAddressCreator;
00010 class IDataProviderSvc;
00011 class RootInterface;
00012 class RootEventContext;
00013 class TagFilterSvc;
00014 
00015 static const InterfaceID IID_IRootEvtSelector("IRootEvtSelector", 1, 0);
00016 
00029 class RootEvtSelector : virtual public Service, 
00030                         virtual public IEvtSelector,
00031                         virtual public IProperty {
00032 public:
00033   // constructor and destructor 
00034   RootEvtSelector(  const std::string& name, ISvcLocator* svcloc );
00035   ~RootEvtSelector();
00036 
00037   // IEvtSelector implementation
00038   virtual StatusCode initialize();
00039 
00040   // Implementation of the IEvtSelector interface methods. 
00041   virtual StatusCode createContext(Context*& it) const; 
00042   StatusCode next() const;
00043   virtual StatusCode next(Context& it) const; 
00044   virtual StatusCode next(Context& it, int jump) const; 
00045   virtual StatusCode previous(Context& it) const; 
00046   virtual StatusCode previous(Context& it, int jump) const; 
00047     
00048   virtual StatusCode last(Context& it) const; 
00049   virtual StatusCode rewind(Context& it) const; 
00050     
00051   virtual StatusCode createAddress(const Context& it,IOpaqueAddress*& iop) const; 
00052   virtual StatusCode releaseContext(Context*& it) const; 
00053   virtual StatusCode resetCriteria(const std::string& criteria, Context& context) const; 
00054         
00055   virtual StatusCode setCriteria( const std::string& criteria ); 
00056      
00057   // IInterface implementation
00058   virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvInterface); 
00059     
00060   // int IEvtSelector::getrecId();
00061   int getRecId() const {  return (*m_recId); }
00062 
00063   void getEntryFromTag() const ;
00064 
00065     
00066 private:
00067   enum CriteriaType { 
00068     ROOT,   //When the input is a ROOT file
00069     NONE    //When there is no input
00070   };
00071        
00072   // Used internally to get the MaxEvent from the ApplicationMgr
00073   StatusCode getMaxEvent();
00074 
00075   RootEventContext*    p_beginContext; 
00076   RootEventContext*    p_endContext; 
00077 
00078   std::string           m_criteria;
00079   StringProperty        m_jobInput;
00080   CriteriaType          m_criteriaType;
00081  
00082   // pointer to RootInterface
00083   RootInterface*              m_rootInterface;
00084 
00085   // pointer to AddressCreator
00086   IAddressCreator*      m_addrCreator;
00087 
00088   // CLID of root basic object
00089   CLID                  m_rootCLID;
00090 
00092   int                   m_evtMax;
00093 
00095   int*                   m_recId;
00096   
00097   TagFilterSvc* m_tagFilterSvc;
00098 };
00099 
00100 #endif  // RootEvtSelector_H

Generated on Tue Nov 29 22:58:37 2016 for BOSS_7.0.2 by  doxygen 1.4.7