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