1 #ifndef SINGLETOPTCHANNELLEPTONDQM
2 #define SINGLETOPTCHANNELLEPTONDQM
51 namespace SingleTopTChannelLepton {
88 const std::vector<std::string>
labels)
const;
95 hists_.find(histName)->second->Fill(value);
100 hists_.find(histName)->second->Fill(xValue, yValue);
103 void fill(
const std::string histName,
double xValue,
double yValue,
double zValue)
const {
105 hists_.find(histName)->second->Fill(xValue, yValue, zValue);
114 std::vector<edm::EDGetTokenT<edm::View<reco::MET> > >
mets_;
153 std::unique_ptr<StringCutObjectSelector<reco::PFCandidate> >
elecSelect_;
158 std::unique_ptr<StringCutObjectSelector<reco::Vertex> >
pvSelect_;
161 std::unique_ptr<StringCutObjectSelector<reco::PFCandidate> >
muonIso_;
164 std::unique_ptr<StringCutObjectSelector<reco::PFCandidate> >
muonSelect_;
193 std::map<std::string, MonitorElement*>
hists_;
198 std::unique_ptr<StringCutObjectSelector<reco::PFCandidate, true> >
muonSelect;
199 std::unique_ptr<StringCutObjectSelector<reco::PFCandidate, true> >
muonIso;
201 std::unique_ptr<StringCutObjectSelector<reco::PFCandidate, true> >
elecSelect;
202 std::unique_ptr<StringCutObjectSelector<reco::PFCandidate, true> >
elecIso;
206 for (
unsigned int idx = 0; idx < labels.size(); ++idx) {
207 hists_[channel +
"Mon_"]->setBinLabel(idx + 1,
"[" +
monitorPath(labels[idx]) +
"]", 1);
208 hists_[channel +
"Eff_"]->setBinLabel(
216 const std::vector<std::string>
labels)
const {
217 for (
unsigned int idx = 0; idx < labels.size(); ++idx) {
219 fill(channel +
"Mon_", idx + 0.5);
221 int evts =
hists_.find(channel +
"Mon_")->second->getBinContent(idx + 1);
222 double value =
hists_.find(channel +
"Eff_")->second->getBinContent(idx + 1);
224 channel +
"Eff_", idx + 0.5, 1. / evts * (
accept(event, triggerTable,
selectionPath(labels[idx])) - value));
324 std::map<std::string, std::pair<edm::ParameterSet, std::unique_ptr<SingleTopTChannelLepton::MonitorEnsemble> > >
327 std::unique_ptr<SelectionStep<reco::Muon> >
MuonStep;
328 std::unique_ptr<SelectionStep<reco::PFCandidate> >
PFMuonStep;
331 std::unique_ptr<SelectionStep<reco::Vertex> >
PvStep;
333 std::vector<std::unique_ptr<SelectionStep<reco::Jet> > >
JetSteps;
334 std::vector<std::unique_ptr<SelectionStep<reco::CaloJet> > >
CaloJetSteps;
335 std::vector<std::unique_ptr<SelectionStep<reco::PFJet> > >
PFJetSteps;
337 std::unique_ptr<SelectionStep<reco::MET> >
METStep;
338 std::vector<edm::ParameterSet>
sel;
std::vector< std::string > selectionOrder_
std::map< std::string, MonitorElement * > hists_
std::string objectType(const std::string &label)
edm::EDGetTokenT< reco::JetIDValueMap > jetIDLabel_
jetID as an extra selection type
double btagEffWP_
btag working points
std::vector< std::string > triggerPaths_
trigger paths
Level verbosity_
verbosity level for booking
~SingleTopTChannelLeptonDQM() override
default destructor
std::unique_ptr< StringCutObjectSelector< reco::PFJet > > jetlooseSelection_
std::unique_ptr< StringCutObjectSelector< reco::PFCandidate, true > > elecSelect
std::unique_ptr< SelectionStep< reco::Vertex > > PvStep
std::vector< ParameterSet > VParameterSet
int logged_
number of logged interesting events
std::vector< std::unique_ptr< SelectionStep< reco::CaloJet > > > CaloJetSteps
std::vector< std::unique_ptr< SelectionStep< reco::Jet > > > JetSteps
define MonitorEnsembple to be used
bool booked(const std::string histName) const
check if histogram was booked
edm::EDGetTokenT< reco::JetTagCollection > btagCombVtx_
edm::EDGetTokenT< edm::TriggerResults > triggerTable__
trigger table
edm::InputTag beamspot_
beamspot
std::vector< std::string > triggerPaths_
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
edm::EDGetTokenT< edm::View< reco::PFCandidate > > muons_
SingleTopTChannelLeptonDQM(const edm::ParameterSet &cfg)
default constructor
dqm::reco::DQMStore DQMStore
edm::InputTag vertex_
primary vertex
std::unique_ptr< StringCutObjectSelector< reco::PFCandidate > > muonSelect_
extra selection on muons
std::unique_ptr< StringCutObjectSelector< reco::PFCandidate > > muonIso_
extra isolation criterion on muon
double lowerEdge_
mass window upper and lower edge
void triggerBinLabels(std::string channel, const std::vector< std::string > labels)
set configurable labels for trigger monitoring histograms
std::vector< edm::ParameterSet > sel
std::string monitorPath(const std::string &label) const
edm::EDGetTokenT< edm::View< reco::GsfElectron > > elecs_gsf_
std::unique_ptr< StringCutObjectSelector< reco::Vertex > > pvSelect_
edm::ESGetToken< JetCorrector, JetCorrectionsRecord > jetCorrector_
jetCorrector
void fill(const std::string histName, double xValue, double yValue, double zValue) const
fill histogram if it had been booked before (2-dim version)
edm::EDGetTokenT< reco::JetTagCollection > btagPur_
std::unique_ptr< StringCutObjectSelector< reco::PFCandidate, true > > muonIso
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
edm::EDGetTokenT< reco::JetTagCollection > btagEff_
btag discriminator labels
edm::EDConsumerBase tmpConsumerBase
std::unique_ptr< StringCutObjectSelector< reco::JetID > > jetIDSelect_
extra jetID selection on calo jets
std::unique_ptr< StringCutObjectSelector< reco::PFCandidate, true > > elecIso
std::unique_ptr< SelectionStep< reco::PFCandidate > > PFElectronStep
std::string selectionPath(const std::string &label) const
edm::EDGetTokenT< edm::TriggerResults > triggerTable_
trigger table
edm::EDGetTokenT< edm::ValueMap< float > > electronId_
electronId label
edm::EDGetTokenT< reco::JetTagCollection > btagCSV_
std::string selectionStep(const std::string &label)
std::unique_ptr< SelectionStep< reco::GsfElectron > > ElectronStep
dqm::legacy::MonitorElement MonitorElement
edm::EDGetTokenT< reco::JetTagCollection > btagVtx_
edm::EDGetTokenT< edm::View< reco::Vertex > > pvs_
edm::EDGetTokenT< edm::View< reco::PFCandidate > > elecs_
std::unique_ptr< SelectionStep< reco::MET > > METStep
std::vector< edm::EDGetTokenT< edm::View< reco::MET > > > mets_
considers a vector of METs
void fill(const edm::Event &event, const edm::EventSetup &setup)
fill monitor histograms with electronId and jetCorrections
edm::EDGetTokenT< edm::View< reco::Jet > > jets_
input sources for monitoring
std::unique_ptr< StringCutObjectSelector< reco::Vertex > > vertexSelect_
string cut selector
edm::EDGetTokenT< reco::Vertex > vertex__
MonitorEnsemble(const char *label, const edm::ParameterSet &cfg, const edm::VParameterSet &vcfg, edm::ConsumesCollector &&iC)
default contructor
void book(DQMStore::IBooker &ibooker)
book histograms in subdirectory directory
edm::EDGetTokenT< reco::BeamSpot > beamspot__
std::unique_ptr< StringCutObjectSelector< reco::BeamSpot > > beamspotSelect_
string cut selector
~MonitorEnsemble()
default destructor
std::unique_ptr< StringCutObjectSelector< reco::PFJet > > jetSelection_
void analyze(const edm::Event &event, const edm::EventSetup &setup) override
do this during the event loop
void fill(const std::string histName, double value) const
fill histogram if it had been booked before
std::vector< std::unique_ptr< SelectionStep< reco::PFJet > > > PFJetSteps
void fill(const std::string histName, double xValue, double yValue) const
fill histogram if it had been booked before (2-dim version)
std::map< std::string, std::pair< edm::ParameterSet, std::unique_ptr< SingleTopTChannelLepton::MonitorEnsemble > > > selection_
std::unique_ptr< SelectionStep< reco::Muon > > MuonStep
std::unique_ptr< StringCutObjectSelector< reco::PFCandidate > > elecSelect_
extra selection on electrons
Level
different verbosity levels
std::unique_ptr< SelectionStep< reco::PFCandidate > > PFMuonStep
std::string label_
instance label
std::unique_ptr< StringCutObjectSelector< reco::PFCandidate, true > > muonSelect
std::string elecIso_
extra isolation criterion on electron