13 firstRun_(pset.getUntrackedParameter<unsigned
int>(
"firstRun", 1
U)),
14 firstLumi_(pset.getUntrackedParameter<unsigned
int>(
"firstLuminosityBlock", 0
U)),
15 firstEvent_(pset.existsAs<unsigned
int>(
"firstEvent",
false)
16 ? pset.getUntrackedParameter<unsigned
int>(
"firstEvent")
17 : pset.getUntrackedParameter<unsigned long long>(
"firstEvent", 1
U)),
24 whichEventsToProcess_(
26 skippingLumis_(!(whichLumisToSkip_.
empty() && whichLumisToProcess_.
empty())),
27 skippingEvents_(!(whichEventsToSkip_.
empty() && whichEventsToProcess_.
empty())),
28 somethingToSkip_(skippingLumis_ || skippingEvents_ ||
29 !(firstRun_ <= 1
U && firstLumi_ <= 1
U && firstEvent_ <= 1
U)) {
39 auto evSkp = std::make_unique<EventSkipperByID>(
pset);
40 if (!evSkp->somethingToSkip()) {
117 desc.
addUntracked<
unsigned int>(
"firstRun", 1
U)->setComment(
"Skip any run with run number < 'firstRun'.");
119 ->setComment(
"Skip any lumi in run 'firstRun' with lumi number < 'firstLuminosityBlock'.");
124 "'firstEvent' is an XOR group because it can have type uint32 or uint64, default:1\n" 125 "If 'firstLuminosityBlock' == 0, skip any event in run 'firstRun' with event number < 'firstEvent'.\n" 126 "If 'firstLuminosityBlock' != 0, skip any event in lumi 'firstRun:firstLuminosityBlock' with event number " 129 std::vector<LuminosityBlockRange> defaultLumis;
130 desc.
addUntracked<std::vector<LuminosityBlockRange> >(
"lumisToSkip", defaultLumis)
132 "Skip any lumi inside the specified run:lumi range. In python do 'help(cms.LuminosityBlockRange)' for " 134 desc.
addUntracked<std::vector<LuminosityBlockRange> >(
"lumisToProcess", defaultLumis)
136 "If not empty, skip any lumi outside the specified run:lumi range. In python do " 137 "'help(cms.LuminosityBlockRange)' for documentation.");
139 std::vector<EventRange> defaultEvents;
140 desc.
addUntracked<std::vector<EventRange> >(
"eventsToSkip", defaultEvents)
142 "Skip any event inside the specified run:event or run:lumi:event range. In python do " 143 "'help(cms.EventRange)' for documentation.");
144 desc.
addUntracked<std::vector<EventRange> >(
"eventsToProcess", defaultEvents)
146 "If not empty, skip any event outside the specified run:event or run:lumi:event range. In python do " 147 "'help(cms.EventRange)' for documentation.");
void setComment(std::string const &value)
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
bool skippingLumis() const
static std::unique_ptr< EventSkipperByID > create(ParameterSet const &pset)
unsigned long long EventNumber_t
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
bool skipIt(RunNumber_t run, LuminosityBlockNumber_t lumi, EventNumber_t event) const
LuminosityBlockNumber_t firstLumi_
unsigned int LuminosityBlockNumber_t
bool skippingEvents() const
std::vector< LuminosityBlockRange > whichLumisToSkip_
std::vector< EventRange > whichEventsToProcess_
bool lessThanSpecial(EventRange const &lh, EventRange const &rh)
std::vector< LuminosityBlockRange > whichLumisToProcess_
std::vector< EventRange > whichEventsToSkip_
EventNumber_t firstEvent_
static void fillDescription(ParameterSetDescription &desc)
std::vector< EventRange > & sortAndRemoveOverlaps(std::vector< EventRange > &eventRange)
bool binary_search_all(ForwardSequence const &s, Datum const &d)
wrappers for std::binary_search
bool lessThan(EventRange const &lh, EventRange const &rh)
EventSkipperByID(ParameterSet const &pset)