00001 #ifndef MIXROOTEVTSELECTOR_H 00002 #define MIXROOTEVTSELECTOR_H 00003 00004 /* 00005 * \class MixEvtSelector 00006 * 00007 * One concrete Event Selector 00008 * - Based on RootIOEvtSelector class 00009 * - Supports inputs from multiple sample files 00010 * 00011 * Created by Xingtao Huang ( huangxt@sdu.edu.cn) 00012 * Date: Nov 5, 2008 00013 */ 00014 00015 #include "MixHeader.h" 00016 #include "RootIOSvc/RootIOAddress.h" 00017 #include "RootIOSvc/RootIOEvtSelector.h" 00018 00019 class RootInputStream; 00020 class IMixingSvc; 00021 00022 class MixRootEvtSelector : public RootIOEvtSelector 00023 { 00024 public: 00025 MixRootEvtSelector(const std::string& name, ISvcLocator* svcloc); 00026 virtual ~MixRootEvtSelector(); 00027 virtual StatusCode initialize(); 00028 00029 StatusCode setEntry(RootIOEvtSelector::Context& rc, int entry) const; 00030 StatusCode createAddress(const IEvtSelector::Context& c,IOpaqueAddress*& iop) const; 00031 00032 private: 00033 std::string m_reqSeqName; 00034 mutable RootInputStream* m_controlStream; 00035 IMixingSvc* m_mixSvc; 00036 }; 00037 00038 #endif