![]() |
![]() |
00001 #ifndef FWCore_Sources_EventSkipperByID_h 00002 #define FWCore_Sources_EventSkipperByID_h 00003 00004 #include "DataFormats/Provenance/interface/EventRange.h" 00005 #include "DataFormats/Provenance/interface/LuminosityBlockID.h" 00006 #include "DataFormats/Provenance/interface/LuminosityBlockRange.h" 00007 #include "DataFormats/Provenance/interface/EventID.h" 00008 #include "boost/shared_ptr.hpp" 00009 #include <memory> 00010 #include <vector> 00011 00012 namespace edm { 00013 class ParameterSet; 00014 class ParameterSetDescription; 00015 00016 class EventSkipperByID { 00017 public: 00018 explicit EventSkipperByID(ParameterSet const& pset); 00019 ~EventSkipperByID(); 00020 bool skipIt(RunNumber_t run, LuminosityBlockNumber_t lumi, EventNumber_t event) const; 00021 bool skippingLumis() const {return skippingLumis_;} 00022 bool skippingEvents() const {return skippingEvents_;} 00023 bool somethingToSkip() const {return somethingToSkip_;} 00024 static 00025 std::auto_ptr<EventSkipperByID>create(ParameterSet const& pset); 00026 static void fillDescription(ParameterSetDescription & desc); 00027 00028 private: 00029 00030 RunNumber_t firstRun_; 00031 LuminosityBlockNumber_t firstLumi_; 00032 EventNumber_t firstEvent_; 00033 std::vector<LuminosityBlockRange> whichLumisToSkip_; 00034 std::vector<LuminosityBlockRange> whichLumisToProcess_; 00035 std::vector<EventRange> whichEventsToSkip_; 00036 std::vector<EventRange> whichEventsToProcess_; 00037 bool skippingLumis_; 00038 bool skippingEvents_; 00039 bool somethingToSkip_; 00040 }; 00041 } 00042 00043 #endif