Skip to content

Commit

Permalink
Merge pull request #22976 from deguio/hcalMisfires_backportOf22974
Browse files Browse the repository at this point in the history
Update the ADC->fC table, simplify the charge reconstruction algorithm
  • Loading branch information
cmsbuild committed Jul 4, 2018
2 parents 4d97051 + 7d16a15 commit ebe21ce
Show file tree
Hide file tree
Showing 4 changed files with 172 additions and 207 deletions.
49 changes: 35 additions & 14 deletions RecoMET/METFilters/plugins/HcalLaserEventFilter.cc
Expand Up @@ -109,26 +109,24 @@ class HcalLaserEventFilter : public edm::global::EDFilter<> {
HcalLaserEventFilter::HcalLaserEventFilter(const edm::ParameterSet& iConfig)

// Get values from python cfg file
: vetoByRunEventNumber_ (iConfig.getUntrackedParameter<bool>("vetoByRunEventNumber",true))
, vetoByHBHEOccupancy_ (iConfig.getUntrackedParameter<bool>("vetoByHBHEOccupancy",false))
, minOccupiedHBHE_ (iConfig.getUntrackedParameter<unsigned int>("minOccupiedHBHE",5000))
, vetoByLaserMonitor_ (iConfig.getUntrackedParameter<bool>("vetoByLaserMonitor",false))
, minLaserMonitorCharge_ (iConfig.getUntrackedParameter<double>("minLaserMonitorCharge_",1000.))
, debug_ (iConfig.getUntrackedParameter<bool>("debug",false))
, reverseFilter_ (iConfig.getUntrackedParameter<bool>("reverseFilter",false))
: vetoByRunEventNumber_ (iConfig.getParameter<bool>("vetoByRunEventNumber"))
, vetoByHBHEOccupancy_ (iConfig.getParameter<bool>("vetoByHBHEOccupancy"))
, minOccupiedHBHE_ (iConfig.getParameter<unsigned int>("minOccupiedHBHE"))
, vetoByLaserMonitor_ (iConfig.getParameter<bool>("vetoByLaserMonitor"))
, minLaserMonitorCharge_ (iConfig.getParameter<double>("minLaserMonitorCharge"))
, debug_ (iConfig.getParameter<bool>("debug"))
, reverseFilter_ (iConfig.getParameter<bool>("reverseFilter"))
, hbheInputLabel_ (iConfig.getUntrackedParameter<edm::InputTag>("hbheInputLabel",edm::InputTag("hbhereco")))
, hbheToken_ (mayConsume<HBHERecHitCollection>(hbheInputLabel_))
, hcalNoiseSummaryLabel_ (iConfig.getUntrackedParameter<edm::InputTag>("hcalNoiseSummaryLabel",edm::InputTag("hcalnoise")))
, hcalNoiseSummaryToken_ (mayConsume<HcalNoiseSummary>(hcalNoiseSummaryLabel_))
, taggingMode_ (iConfig.getParameter<bool>("taggingMode"))
, forceUseRecHitCollection_ (iConfig.getUntrackedParameter<bool>("forceUseRecHitCollection",false))
, forceUseHcalNoiseSummary_ (iConfig.getUntrackedParameter<bool>("forceUseHcalNoiseSummary",false))
, forceUseRecHitCollection_ (iConfig.getParameter<bool>("forceUseRecHitCollection"))
, forceUseHcalNoiseSummary_ (iConfig.getParameter<bool>("forceUseHcalNoiseSummary"))

{
std::vector<unsigned int> dummy; // dummy empty vector
dummy.clear();

std::vector<unsigned int> temprunevt = iConfig.getUntrackedParameter<std::vector<unsigned int> >("BadRunEventNumbers",dummy);
std::vector<unsigned int> temprunevt = iConfig.getParameter<std::vector<unsigned int> >("BadRunEventNumbers");

// Make (run,evt) pairs for storing bad events
// Make this a map for better search performance?
Expand Down Expand Up @@ -286,8 +284,31 @@ HcalLaserEventFilter::fillDescriptions(edm::ConfigurationDescriptions& descripti
//The following says we do not know what parameters are allowed so do no validation
// Please change this to state exactly what you do use, even if it is no parameters
edm::ParameterSetDescription desc;
desc.setUnknown();
descriptions.addDefault(desc);

desc.add<bool>("vetoByRunEventNumber",false)->
setComment("Enable filtering by run number");
desc.add<bool>("vetoByHBHEOccupancy",true)->
setComment("Enable occupancy filtering");
desc.add<unsigned int>("minOccupiedHBHE",4000)->
setComment("Minimum occupancy to filter events");
desc.add<bool>("vetoByLaserMonitor",true)->
setComment("Enable Laser monitoring filtering");
desc.add<double>("minLaserMonitorCharge",5000.)->
setComment("Set minimum laser monitor charge to filter events");
desc.add<bool>("debug",false)->
setComment("Enable debugging messages");
desc.add<bool>("reverseFilter",false)->
setComment("Invert filter decision");
desc.add<bool>("taggingMode", false)->
setComment("do not filter, just tag the event");
desc.add<bool>("forceUseRecHitCollection",false)->
setComment("force the evaluation using RecHit collection");
desc.add<bool>("forceUseHcalNoiseSummary",false)->
setComment("force the evaluation using Noise Summary");
desc.add<std::vector<unsigned int> >("BadRunEventNumbers",{})->
setComment("vector of bad events to filter");

descriptions.add("hcallaserevent", desc);
}

std::vector<int> HcalLaserEventFilter::GetCMSSWVersion(std::string const& instring) const
Expand Down
27 changes: 8 additions & 19 deletions RecoMET/METFilters/python/hcalLaserEventFilter_cfi.py
@@ -1,27 +1,16 @@
import FWCore.ParameterSet.Config as cms
from RecoMET.METFilters.hcallaserevent_cfi import * # from fillDescriptions

try:
from hcalLaserBadEvents_2011 import badEvents
except:
print "<hcalLaserEventFilter_cfi> WARNING! No explicit list 'badEvents.py' containing bad HCAL laser run/events was found!"
badEvents=[]

hcalLaserEventFilter = cms.EDFilter("HcalLaserEventFilter",
vetoByRunEventNumber=cms.untracked.bool(False),
# Add each bad event as run #, event # in this list
BadRunEventNumbers=cms.untracked.vuint32(badEvents
# badEvents file contains 218 bad events, as of 28 Nov. 2011
hcalLaserEventFilter = hcallaserevent.clone(BadRunEventNumbers=cms.vuint32(badEvents) )

from Configuration.Eras.Modifier_run2_HCAL_2018_cff import run2_HCAL_2018
run2_HCAL_2018.toModify( hcalLaserEventFilter,
vetoByHBHEOccupancy=False,
minOccupiedHBHE=8000,
)

),
vetoByHBHEOccupancy=cms.untracked.bool(True),
minOccupiedHBHE=cms.untracked.uint32(4000), # minimum number of HBHErechits that must be present for HBHEOccupancy filter to remove event

debug = cms.untracked.bool(False),
reverseFilter = cms.untracked.bool(False), # if True, will select only events failing filter, rather than events passing
hbheInputLabel=cms.untracked.InputTag("hbhereco"),
hcalNoiseSummaryLabel=cms.untracked.InputTag("hcalnoise"),
taggingMode = cms.bool(False),
maxerrormessage = cms.untracked.int32(5), # max number of error messages to print
forceUseRecHitCollection=cms.untracked.bool(False), # if specified, will attempt to use HBHE RecHit Collection directly; otherwise, will use information as stored in HcalNoiseSummary object for CMSSW_5_2_0 and above. (If CMSSW version is < 5_2_0, RecHit collection will be used automatically, since HcalNoiseSummary in those versions didn't contain this filter info)
forceUseHcalNoiseSummary=cms.untracked.bool(False), # Can likewise specify to force the use of Hcal Noise Summary, regardless of CMSSW version. Perhaps this should be the default, since version checked doesn't allow for comparison of patched older versions with new version?
)
1 change: 1 addition & 0 deletions RecoMET/METProducers/interface/HcalNoiseInfoProducer.h
Expand Up @@ -142,6 +142,7 @@ namespace reco {

int laserMonitorTSStart_;
int laserMonitorTSEnd_;
unsigned laserMonitorSamples_;

std::vector<float> adc2fC;
std::vector<float> adc2fCHF;
Expand Down

0 comments on commit ebe21ce

Please sign in to comment.