67 std::vector<std::pair<edm::RunNumber_t,edm::EventNumber_t> >
RunEventData_;
117 ,
debug_ (iConfig.getParameter<
bool>(
"debug"))
119 ,
hbheInputLabel_ (iConfig.getUntrackedParameter<
edm::InputTag>(
"hbheInputLabel",
edm::InputTag(
"hbhereco")))
129 std::vector<unsigned int> temprunevt = iConfig.
getParameter<std::vector<unsigned int> >(
"BadRunEventNumbers");
133 for (
unsigned int i=0;
i+1<temprunevt.size();
i+=2)
174 bool filterDecision=
true;
186 if (
debug_)
edm::LogInfo(
"HcalLaserEventFilter")<<
"\t<HcalLaserEventFilter> Filtering bad event; Run "<<iEvent.
id().
run()<<
" Event = "<<iEvent.
id().
event();
187 filterDecision=
false;
216 if (
debug_)
edm::LogInfo(
"HcalLaserEventFilter") <<
"<HcalLaserEventFilter> Filtering because of large HBHE rechit size; "<<hbheRecHits->
size()<<
" rechits is greater than or equal to the allowed maximum of "<<
minOccupiedHBHE_;
217 filterDecision=
false;
239 if (
debug_)
edm::LogInfo(
"HcalLaserEventFilter") <<
"<HcalLaserEventFilter> Filtering because of large HBHE rechit size in HcalNoiseSummary; "<<hSummary->
GetRecHitCount()<<
" rechits is greater than or equal to the allowed maximum of "<<
minOccupiedHBHE_;
240 filterDecision=
false;
263 filterDecision=
false;
274 filterDecision=!filterDecision;
276 iEvent.
put(std::make_unique<bool>(filterDecision));
288 desc.
add<
bool>(
"vetoByRunEventNumber",
false)->
289 setComment(
"Enable filtering by run number");
290 desc.
add<
bool>(
"vetoByHBHEOccupancy",
true)->
291 setComment(
"Enable occupancy filtering");
292 desc.
add<
unsigned int>(
"minOccupiedHBHE",4000)->
293 setComment(
"Minimum occupancy to filter events");
294 desc.
add<
bool>(
"vetoByLaserMonitor",
true)->
295 setComment(
"Enable Laser monitoring filtering");
296 desc.
add<
double>(
"minLaserMonitorCharge",5000.)->
297 setComment(
"Set minimum laser monitor charge to filter events");
298 desc.
add<
bool>(
"debug",
false)->
299 setComment(
"Enable debugging messages");
300 desc.
add<
bool>(
"reverseFilter",
false)->
301 setComment(
"Invert filter decision");
302 desc.
add<
bool>(
"taggingMode",
false)->
303 setComment(
"do not filter, just tag the event");
304 desc.
add<
bool>(
"forceUseRecHitCollection",
false)->
305 setComment(
"force the evaluation using RecHit collection");
306 desc.
add<
bool>(
"forceUseHcalNoiseSummary",
false)->
307 setComment(
"force the evaluation using Noise Summary");
308 desc.
add<std::vector<unsigned int> >(
"BadRunEventNumbers",{})->
309 setComment(
"vector of bad events to filter");
311 descriptions.
add(
"hcallaserevent", desc);
316 std::vector <int>
temp;
322 std::istringstream oss(instring);
323 getline(oss, prefix,
'_');
324 getline(oss, v1,
'_');
325 getline(oss, v2,
'_');
326 getline(oss, v3,
'_');
328 std::stringstream
buffer(v1);
355 if (currentVersion[0]<
minVersion_[0])
return false;
360 if (currentVersion[1]<
minVersion_[1])
return false;
364 if (currentVersion[2]<
minVersion_[2])
return false;
edm::EDGetTokenT< HBHERecHitCollection > hbheToken_
T getParameter(std::string const &) const
EventNumber_t event() const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
edm::EDGetTokenT< HcalNoiseSummary > hcalNoiseSummaryToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
bool forceUseRecHitCollection_
const edm::InputTag hcalNoiseSummaryLabel_
const edm::InputTag hbheInputLabel_
HcalLaserEventFilter(const edm::ParameterSet &)
unsigned long long EventNumber_t
const bool vetoByRunEventNumber_
const bool vetoByLaserMonitor_
const bool reverseFilter_
bool filter(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
~HcalLaserEventFilter() override
bool useHcalNoiseSummary_
const double minLaserMonitorCharge_
bool IsGreaterThanMinCMSSWVersion(std::vector< int > const &) const
#define DEFINE_FWK_MODULE(type)
bool forceUseHcalNoiseSummary_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::string getReleaseVersion()
std::vector< int > minVersion_
const bool vetoByHBHEOccupancy_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::vector< std::pair< edm::RunNumber_t, edm::EventNumber_t > > RunEventData_
double GetLaserMonitorCharge(void) const
const unsigned int minOccupiedHBHE_
std::vector< int > GetCMSSWVersion(std::string const &) const
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
int GetRecHitCount(void) const