CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_9_patch3/src/FWCore/Sources/interface/EventSkipperByID.h

Go to the documentation of this file.
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