51 std::vector<edm::EventID>
ids_;
71 ids_(iConfig.getUntrackedParameter<std::vector<edm::
EventID> >(
"eventSequence")),
73 multiProcessSequentialEvents_(iConfig.getUntrackedParameter<unsigned int>(
"multiProcessSequentialEvents")),
74 numberOfEventsLeftBeforeSearch_(0),
95 struct CompareWithoutLumi {
96 CompareWithoutLumi(
edm::EventID const& iThis) : m_this(iThis) {
99 return m_this.run() == iOther.
run() && m_this.event() == iOther.
event();
112 std::vector<edm::EventID>::iterator itFind= std::find_if(
ids_.begin()+
index_,
ids_.end(), CompareWithoutLumi(iEvent.
id()));
113 if(itFind ==
ids_.end()) {
114 throw cms::Exception(
"MissedEvent") <<
"The event " << iEvent.
id() <<
"is not in the list.\n";
122 throw cms::Exception(
"TooManyEvents") <<
"Was passes " <<
ids_.size() <<
" EventIDs but have processed more events than that\n";
144 desc.
addUntracked<std::vector<edm::EventID> >(
"eventSequence");
145 desc.
addUntracked<
unsigned int>(
"multiProcessSequentialEvents", 0U);
146 descriptions.
add(
"eventIDChecker", desc);
EventNumber_t event() const
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
#define DEFINE_FWK_MODULE(type)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
unsigned int multiProcessSequentialEvents_
std::vector< edm::EventID > ids_
virtual void postForkReacquireResources(unsigned int iChildIndex, unsigned int iNumberOfChildren)
unsigned int numberOfEventsLeftBeforeSearch_
void add(std::string const &label, ParameterSetDescription const &psetDescription)
EventIDChecker(edm::ParameterSet const &)
virtual void analyze(edm::Event const &, edm::EventSetup const &)