16 namespace SingleTopTChannelLepton_miniAOD {
23 static const double WMASS = 80.4;
25 MonitorEnsemble::MonitorEnsemble(
const char*
label,
46 sources.
getParameter<std::vector<edm::InputTag>>(
"mets"))
144 triggerExtras.
getParameter<std::vector<std::string>>(
"paths");
195 hists_[
"pvMult_"] = ibooker.
book1D(
"PvMult",
"N_{pvs}", 100, 0., 100.);
197 hists_[
"muonPt_"] = ibooker.
book1D(
"MuonPt",
"pt(#mu)", 50, 0., 250.);
199 hists_[
"muonMult_"] = ibooker.
book1D(
"MuonMult",
"N_{20}(#mu)", 10, 0., 10.);
201 hists_[
"muonMultIso_"] = ibooker.
book1D(
"MuonMultIso",
"N_{Iso}(#mu)", 10, 0., 10.);
203 hists_[
"elecPt_"] = ibooker.
book1D(
"ElecPt",
"pt(e)", 50, 0., 250.);
205 hists_[
"elecMult_"] = ibooker.
book1D(
"ElecMult",
"N_{30}(e)", 10, 0., 10.);
207 hists_[
"elecMultIso_"] = ibooker.
book1D(
"ElecMultIso",
"N_{Iso}(e)", 10, 0., 10.);
209 hists_[
"jetMult_"] = ibooker.
book1D(
"JetMult",
"N_{30}(jet)", 10, 0., 10.);
212 "Eff(trigger)", nPaths, 0., nPaths);
215 "Mon(trigger)", nPaths, 0., nPaths);
217 hists_[
"slimmedMETs_"] = ibooker.
book1D(
"slimmedMETs",
"MET_{slimmed}", 50, 0., 200.);
220 hists_[
"slimmedMETsNoHF_"] = ibooker.
book1D(
"slimmedMETsNoHF",
"MET_{slimmedNoHF}", 50, 0., 200.);
222 hists_[
"slimmedMETsPuppi_"] = ibooker.
book1D(
"slimmedMETsPuppi",
"MET_{slimmedPuppi}", 50, 0., 200.);
224 hists_[
"massW_"] = ibooker.
book1D(
"MassW",
"M(W)", 60, 0., 300.);
226 hists_[
"massTop_"] = ibooker.
book1D(
"MassTop",
"M(Top)", 50, 0., 500.);
228 hists_[
"MTWm_"] = ibooker.
book1D(
"MTWm",
"M_{T}^{W}(#mu)", 60, 0., 300.);
230 hists_[
"mMTT_"] = ibooker.
book1D(
"mMTT",
"M_{T}^{t}(#mu)", 50, 0., 500.);
233 hists_[
"MTWe_"] = ibooker.
book1D(
"MTWe",
"M_{T}^{W}(e)", 60, 0., 300.);
235 hists_[
"eMTT_"] = ibooker.
book1D(
"eMTT",
"M_{T}^{t}(e)", 50, 0., 500.);
245 hists_[
"muonEta_"] = ibooker.
book1D(
"MuonEta",
"#eta(#mu)", 30, -3., 3.);
247 hists_[
"muonPFRelIso_"] = ibooker.
book1D(
"MuonPFRelIso",
248 "PFIso_{Rel}(#mu)", 50, 0., 1.);
249 hists_[
"muonRelIso_"] = ibooker.
book1D(
"MuonRelIso",
"Iso_{Rel}(#mu)", 50, 0., 1.);
252 hists_[
"elecEta_"] = ibooker.
book1D(
"ElecEta",
"#eta(e)", 30, -3., 3.);
254 hists_[
"elecRelIso_"] = ibooker.
book1D(
"ElecRelIso",
"Iso_{Rel}(e)", 50, 0., 1.);
255 hists_[
"elecPFRelIso_"] = ibooker.
book1D(
"ElecPFRelIso",
256 "PFIso_{Rel}(e)", 50, 0., 1.);
261 "N_{30}(b/eff)", 10, 0., 10.);
265 "Disc_{b/eff}(jet)", 100, 0., 10.);
268 hists_[
"jet1Eta_"] = ibooker.
book1D(
"Jet1Eta",
"#eta (jet1)", 50, -5., 5.);
270 hists_[
"jet2Eta_"] = ibooker.
book1D(
"Jet2Eta",
"#eta (jet2)", 50, -5., 5.);
273 hists_[
"jet1Pt_"] = ibooker.
book1D(
"Jet1Pt",
"pt_{L2L3}(jet1)", 60, 0., 300.);
275 hists_[
"jet2Pt_"] = ibooker.
book1D(
"Jet2Pt",
"pt_{L2L3}(jet2)", 60, 0., 300.);
278 hists_[
"TaggedJetEta_"] = ibooker.
book1D(
"TaggedJetEta",
279 "#eta (Tagged jet)", 50, -5., 5.);
281 "pt_{L2L3}(Tagged jet)", 60, 0., 300.);
284 hists_[
"UnTaggedJetEta_"] = ibooker.
book1D(
"UnTaggedJetEta",
285 "#eta (UnTagged jet)", 50, -5., 5.);
286 hists_[
"UnTaggedJetPt_"] = ibooker.
book1D(
"UnTaggedJetPt",
287 "pt_{L2L3}(UnTagged jet)", 60, 0., 300.);
290 hists_[
"FwdJetEta_"] = ibooker.
book1D(
"FwdJetEta",
"#eta (Fwd jet)", 50, -5., 5.);
292 "pt_{L2L3}(Fwd jet)", 60, 0., 300.);
295 hists_[
"TaggedJetPtEta_"] = ibooker.
book2D(
"TaggedJetPt_Eta",
296 "(pt vs #eta)_{L2L3}(Tagged jet)", 60, 0., 300., 50, -5., 5.);
299 hists_[
"UnTaggedJetPtEta_"] = ibooker.
book2D(
"UnTaggedJetPt_Eta",
300 "(pt vs #eta)_{L2L3}(UnTagged jet)", 60, 0., 300., 50, -5., 5.);
305 hists_[
"muonDelZ_"] = ibooker.
book1D(
"MuonDelZ",
"d_{z}(#mu)", 50, -25., 25.);
308 "d_{xy}(#mu)", 50, -0.1, 0.1, 50, -0.1, 0.1);
311 hists_[
"muonDelXY_"]->setAxisTitle(
"x [cm]", 1);
312 hists_[
"muonDelXY_"]->setAxisTitle(
"y [cm]", 2);
319 hists_[
"muonChHadIso_"] = ibooker.
book1D(
"MuonChHadIso",
320 "Iso_{ChHad}(#mu)", 100, 0., 1.);
322 hists_[
"muonNeuHadIso_"] = ibooker.
book1D(
"MuonNeuHadIso",
323 "Iso_{NeuHad}(#mu)", 100, 0., 1.);
325 hists_[
"muonPhIso_"] = ibooker.
book1D(
"MuonPhIso",
"Iso_{Ph}(#mu)", 100, 0., 1.);
328 hists_[
"elecChHadIso_"] = ibooker.
book1D(
"ElecChHadIso",
329 "Iso_{ChHad}(e)", 100, 0., 1.);
331 hists_[
"elecNeuHadIso_"] = ibooker.
book1D(
"ElecNeuHadIso",
332 "Iso_{NeuHad}(e)", 100, 0., 1.);
334 hists_[
"elecPhIso_"] = ibooker.
book1D(
"ElecPhIso",
"Iso_{Ph}(e)", 100, 0., 1.);
339 "N_{30}(b/pur)", 10, 0., 10.);
342 "Disc_{b/pur}(Jet)", 200, -10., 10.);
344 hists_[
"jet1BDiscPur_"] = ibooker.
book1D(
"Jet1BDiscPur",
345 "Disc_{b/pur}(Jet1)", 200, -10., 10.);
347 hists_[
"jet2BDiscPur_"] = ibooker.
book1D(
"Jet2BDiscPur",
348 "Disc_{b/pur}(Jet2)", 200, -10., 10.);
352 "N_{30}(b/vtx)", 10, 0., 10.);
355 "Disc_{b/vtx}(Jet)", 35, -1., 6.);
359 hists_[
"jetMultBCombVtx_"] = ibooker.
book1D(
"JetMultBCombVtx",
360 "N_{30}(b/CSV)", 10, 0., 10.);
362 hists_[
"jetBDiscCombVtx_"] = ibooker.
book1D(
"JetBDiscCombVtx",
363 "Disc_{b/CSV}(Jet)", 60, -1., 2.);
365 hists_[
"jet1BDiscCombVtx_"] = ibooker.
book1D(
"Jet1BDiscCombVtx",
366 "Disc_{b/CSV}(Jet1)", 60, -1., 2.);
368 hists_[
"jet2BDiscCombVtx_"] = ibooker.
book1D(
"Jet2BDiscCombVtx",
369 "Disc_{b/CSV}(Jet2)", 60, -1., 2.);
372 hists_[
"jet1PtRaw_"] = ibooker.
book1D(
"Jet1PtRaw",
"pt_{Raw}(jet1)", 60, 0., 300.);
374 hists_[
"jet2PtRaw_"] = ibooker.
book1D(
"Jet2PtRaw",
"pt_{Raw}(jet2)", 60, 0., 300.);
378 "Logged Events", 9, 0., 9., 10, 0., 10.);
381 hists_[
"eventLogger_"]->getTH1()->SetOption(
"TEXT");
382 hists_[
"eventLogger_"]->setBinLabel(1,
"Run", 1);
383 hists_[
"eventLogger_"]->setBinLabel(2,
"Block", 1);
384 hists_[
"eventLogger_"]->setBinLabel(3,
"Event", 1);
385 hists_[
"eventLogger_"]->setBinLabel(4,
"pt_{L2L3}(jet1)", 1);
386 hists_[
"eventLogger_"]->setBinLabel(5,
"pt_{L2L3}(jet2)", 1);
387 hists_[
"eventLogger_"]->setBinLabel(6,
"pt_{L2L3}(jet3)", 1);
388 hists_[
"eventLogger_"]->setBinLabel(7,
"pt_{L2L3}(jet4)", 1);
389 hists_[
"eventLogger_"]->setBinLabel(8,
"M_{W}", 1);
390 hists_[
"eventLogger_"]->setBinLabel(9,
"M_{Top}", 1);
391 hists_[
"eventLogger_"]->setAxisTitle(
"logged evts", 2);
413 unsigned int pvMult = 0;
415 pv != pvs->end(); ++
pv) {
418 fill(
"pvMult_", pvMult);
439 unsigned int eMult = 0, eMultIso = 0;
440 std::vector<const pat::Electron*> isoElecs;
443 unsigned int idx_gsf = 0;
448 double isolationRel =
449 (elec->dr03TkSumPt() + elec->dr03EcalRecHitSumEt() +
450 elec->dr03HcalTowerSumEt()) /
453 double isolationChHad =
455 (elec->pt() + elec->pfIsolationVariables().sumChargedHadronPt);
456 double isolationNeuHad =
458 (elec->pt() + elec->pfIsolationVariables().sumNeutralHadronEt);
459 double isolationPhoton =
461 (elec->pt() + elec->pfIsolationVariables().sumPhotonEt);
462 double el_ChHadIso = elec->pfIsolationVariables().sumChargedHadronPt;
463 double el_NeHadIso = elec->pfIsolationVariables().sumNeutralHadronEt;
464 double el_PhIso = elec->pfIsolationVariables().sumPhotonEt;
465 double PFisolationRel =
467 max(0., el_NeHadIso + el_PhIso -
468 0.5 * elec->pfIsolationVariables().sumPUPt)) /
472 fill(
"elecPt_", elec->pt());
473 fill(
"elecEta_", elec->eta());
474 fill(
"elecRelIso_", isolationRel);
475 fill(
"elecPFRelIso_", PFisolationRel);
476 fill(
"elecChHadIso_", isolationChHad);
477 fill(
"elecNeuHadIso_", isolationNeuHad);
478 fill(
"elecPhIso_", isolationPhoton);
483 if (eMultIso == 0) e = *elec;
484 isoElecs.push_back(&(*elec));
492 fill(
"elecMult_", eMult);
493 fill(
"elecMultIso_", eMultIso);
504 unsigned int mMult = 0, mMultIso = 0;
515 if (
muon->isGlobalMuon()) {
516 fill(
"muonDelZ_",
muon->globalTrack()->vz());
517 fill(
"muonDelXY_",
muon->globalTrack()->vx(),
muon->globalTrack()->vy());
522 double isolationRel =
523 (
muon->isolationR03().sumPt +
muon->isolationR03().emEt +
524 muon->isolationR03().hadEt) /
526 double isolationChHad =
528 (
muon->pt() +
muon->pfIsolationR04().sumChargedHadronPt);
529 double isolationNeuHad =
531 (
muon->pt() +
muon->pfIsolationR04().sumNeutralHadronEt);
532 double isolationPhoton =
533 muon->pt() / (
muon->pt() +
muon->pfIsolationR04().sumPhotonEt);
534 double PFisolationRel = (
muon->pfIsolationR04().sumChargedHadronPt +
535 muon->pfIsolationR04().sumNeutralHadronEt +
536 muon->pfIsolationR04().sumPhotonEt) /
543 fill(
"muonRelIso_", isolationRel);
544 fill(
"muonChHadIso_", isolationChHad);
545 fill(
"muonNeuHadIso_", isolationNeuHad);
546 fill(
"muonPhIso_", isolationPhoton);
547 fill(
"muonPFRelIso_", PFisolationRel);
552 if (mMultIso == 0) mu = *
muon;
558 fill(
"muonMult_", mMult);
559 fill(
"muonMultIso_", mMultIso);
570 std::vector<pat::Jet> correctedJets;
571 unsigned int mult = 0, multBEff = 0, multBPur = 0, multNoBPur = 0,
572 multBVtx = 0, multBCombVtx = 0;
577 vector<double> bJetDiscVal;
578 vector<double> NobJetDiscVal;
583 jet != jets->end(); ++
jet) {
594 correctedJets.push_back(monitorJet);
599 fill(
"jetBDiscEff_", monitorJet.
bDiscriminator(
"pfCombinedInclusiveSecondaryVertexV2BJetTags"));
600 if (monitorJet.
bDiscriminator(
"pfCombinedInclusiveSecondaryVertexV2BJetTags") > 0.89) ++multBEff;
604 if (monitorJet.
bDiscriminator(
"pfCombinedInclusiveSecondaryVertexV2BJetTags") > 0.89) {
606 TaggedJetCand = monitorJet;
607 bJetDiscVal.push_back(monitorJet.
bDiscriminator(
"pfCombinedInclusiveSecondaryVertexV2BJetTags"));
609 }
else if (multBPur == 1) {
610 bJetDiscVal.push_back(monitorJet.
bDiscriminator(
"pfCombinedInclusiveSecondaryVertexV2BJetTags"));
611 if (bJetDiscVal[1] > bJetDiscVal[0]) TaggedJetCand = monitorJet;
615 if (multNoBPur == 0) {
616 UnTaggedJetCand = monitorJet;
617 NobJetDiscVal.push_back(monitorJet.
bDiscriminator(
"pfCombinedInclusiveSecondaryVertexV2BJetTags"));
619 }
else if (multNoBPur == 1) {
620 NobJetDiscVal.push_back(monitorJet.
bDiscriminator(
"pfCombinedInclusiveSecondaryVertexV2BJetTags"));
621 if (NobJetDiscVal[1] < NobJetDiscVal[0]) UnTaggedJetCand = monitorJet;
628 if (monitorJet.
bDiscriminator(
"pfCombinedInclusiveSecondaryVertexV2BJetTags") > 0.89) ++multBEff;
630 fill(
"jet1BDiscPur_", monitorJet.
bDiscriminator(
"pfCombinedInclusiveSecondaryVertexV2BJetTags"));
631 }
else if (mult == 2) {
632 fill(
"jet2BDiscPur_", monitorJet.
bDiscriminator(
"pfCombinedInclusiveSecondaryVertexV2BJetTags"));
635 fill(
"jetBDiscPur_", monitorJet.
bDiscriminator(
"pfCombinedInclusiveSecondaryVertexV2BJetTags"));
640 fill(
"jet1Pt_", monitorJet.
pt());
641 fill(
"jet1Eta_", monitorJet.
eta());
643 FwdJetCand = monitorJet;
647 fill(
"jet2Pt_", monitorJet.
pt());
648 fill(
"jet2Eta_", monitorJet.
eta());
652 FwdJetCand = monitorJet;
655 fill(
"FwdJetPt_", FwdJetCand.
pt());
656 fill(
"FwdJetEta_", FwdJetCand.
eta());
660 if (multNoBPur == 1 && multBPur == 1) {
662 fill(
"TaggedJetPtEta_", TaggedJetCand.
pt(), TaggedJetCand.
eta());
663 fill(
"UnTaggedJetPtEta_", UnTaggedJetCand.
pt(), UnTaggedJetCand.
eta());
665 fill(
"TaggedJetPt_", TaggedJetCand.
pt());
666 fill(
"TaggedJetEta_", TaggedJetCand.
eta());
667 fill(
"UnTaggedJetPt_", UnTaggedJetCand.
pt());
668 fill(
"UnTaggedJetEta_", UnTaggedJetCand.
eta());
671 fill(
"jetMult_", mult);
672 fill(
"jetMultBEff_", multBEff);
673 fill(
"jetMultBPur_", multBPur);
674 fill(
"jetMultBVtx_", multBVtx);
675 fill(
"jetMultBCombVtx_", multBCombVtx);
689 met_ =
mets_.begin();
690 met_ !=
mets_.end(); ++met_) {
693 mET = *(met->begin());
694 if (met->begin() != met->end()) {
695 unsigned int idx = met_ -
mets_.begin();
696 if (idx == 0)
fill(
"slimmedMETs_", met->begin()->et());
697 if (idx == 1)
fill(
"slimmedMETsNoHF_", met->begin()->et());
698 if (idx == 2)
fill(
"slimmedMETsPuppi_", met->begin()->et());
713 double wMass = eventKinematics.
massWBoson(correctedJets);
714 double topMass = eventKinematics.
massTopQuark(correctedJets);
715 if (wMass >= 0 && topMass >= 0) {
716 fill(
"massW_", wMass);
717 fill(
"massTop_", topMass);
724 if (
logged_ <=
hists_.find(
"eventLogger_")->second->getNbinsY()) {
731 if (correctedJets.size() > 0)
732 fill(
"eventLogger_", 3.5,
logged_ + 0.5, correctedJets[0].
pt());
733 if (correctedJets.size() > 1)
734 fill(
"eventLogger_", 4.5,
logged_ + 0.5, correctedJets[1].
pt());
735 if (correctedJets.size() > 2)
736 fill(
"eventLogger_", 5.5,
logged_ + 0.5, correctedJets[2].
pt());
737 if (correctedJets.size() > 3)
738 fill(
"eventLogger_", 6.5,
logged_ + 0.5, correctedJets[3].
pt());
744 if (multBPur != 0 && mMultIso == 1) {
746 double mtW = eventKinematics.
tmassWBoson(&mu, mET, TaggedJetCand);
748 double MTT = eventKinematics.
tmassTopQuark(&mu, mET, TaggedJetCand);
752 if (multBPur != 0 && eMultIso == 1) {
753 double mtW = eventKinematics.
tmassWBoson(&e, mET, TaggedJetCand);
755 double MTT = eventKinematics.
tmassTopQuark(&e, mET, TaggedJetCand);
801 std::vector<edm::ParameterSet>
sel =
802 cfg.
getParameter<std::vector<edm::ParameterSet>>(
"selection");
804 for (
unsigned int i = 0;
i < sel.size(); ++
i) {
808 std::unique_ptr<SingleTopTChannelLepton_miniAOD::MonitorEnsemble>(
812 cfg.
getParameter<std::vector<edm::ParameterSet>>(
"selection"),
815 for (std::vector<std::string>::const_iterator selIt =
selectionOrder_.begin();
819 using std::unique_ptr;
821 if (
type ==
"muons") {
825 if (
type ==
"elecs") {
834 if (
type ==
"jets") {
850 selIt->second.second->book(ibooker);
874 unsigned int passed = 0;
875 unsigned int nJetSteps = -1;
877 for (std::vector<std::string>::const_iterator selIt =
selectionOrder_.begin();
881 if (
type ==
"empty") {
884 if (
type ==
"presel") {
901 if (
type ==
"jets") {
Analysis-level MET class.
std::vector< std::string > selectionOrder_
std::unique_ptr< SelectionStep< pat::Electron > > electronStep_
T getParameter(std::string const &) const
edm::EDGetTokenT< edm::ValueMap< float > > electronId_
electronId label
std::map< std::string, MonitorElement * > hists_
edm::EDGetTokenT< edm::View< pat::Electron > > elecs_gsf_
edm::EDGetTokenT< edm::TriggerResults > triggerTable_
trigger table
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
std::vector< std::string > triggerPaths_
double tmassWBoson(pat::Muon *lep, const pat::MET &met, const pat::Jet &b)
calculate W boson transverse mass estimate
static const double WMASS
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< ParameterSet > VParameterSet
std::unique_ptr< StringCutObjectSelector< reco::JetID > > jetIDSelect_
extra jetID selection on calo jets
void triggerBinLabels(std::string channel, const std::vector< std::string > labels)
set configurable labels for trigger monitoring histograms
Level verbosity_
verbosity level for booking
edm::EDGetTokenT< edm::View< reco::Vertex > > pvs_
std::unique_ptr< StringCutObjectSelector< pat::Muon, true > > muonIso
double massWBoson(const std::vector< pat::Jet > &jets)
calculate W boson mass estimate
static const double WMASS
std::map< std::string, std::pair< edm::ParameterSet, std::unique_ptr< SingleTopTChannelLepton_miniAOD::MonitorEnsemble > > > selection_
float bDiscriminator(const std::string &theLabel) const
-— methods for accessing b-tagging info -—
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
LuminosityBlockNumber_t luminosityBlock() const
edm::EDGetTokenT< edm::View< pat::Jet > > jets_
input sources for monitoring
double lowerEdge_
mass window upper and lower edge
std::unique_ptr< StringCutObjectSelector< pat::Electron, true > > elecSelect
std::string jetCorrector_
jetCorrector
void fill(const edm::Event &event, const edm::EventSetup &setup)
fill monitor histograms with electronId and jetCorrections
virtual void analyze(const edm::Event &event, const edm::EventSetup &setup) override
do this during the event loop
std::string selectionStep(const std::string &label)
edm::EDGetTokenT< edm::View< pat::Muon > > muons_
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
int logged_
number of logged interesting events
std::unique_ptr< SelectionStep< pat::MET > > metStep_
std::unique_ptr< StringCutObjectSelector< reco::Vertex > > pvSelect_
MonitorElement * book1D(Args &&...args)
std::string objectType(const std::string &label)
Abs< T >::type abs(const T &t)
std::unique_ptr< SelectionStep< pat::Muon > > muonStep_
edm::InputTag beamspot_
beamspot
edm::EDGetTokenT< reco::BeamSpot > beamspot__
std::string muonIso_
extra isolation criterion on muon
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
double massTopQuark(const std::vector< pat::Jet > &jets)
calculate t-quark mass estimate
string key
FastSim: produces sample of signal events, overlayed with premixed minbias events.
std::vector< edm::ParameterSet > sel
double tmassTopQuark(pat::Muon *lep, const pat::MET &met, const pat::Jet &b)
calculate top quark transverse mass estimate
std::vector< std::unique_ptr< SelectionStep< pat::Jet > > > jetSteps_
edm::EDGetTokenT< reco::JetIDValueMap > jetIDLabel_
jetID as an extra selection type
std::vector< std::string > triggerPaths_
trigger paths
edm::InputTag vertex_
primary vertex
EventAuxiliary const & eventAuxiliary() const
std::unique_ptr< StringCutObjectSelector< pat::Muon, true > > muonSelect
void book(DQMStore::IBooker &ibooker)
book histograms in subdirectory directory
void setCurrentFolder(const std::string &fullpath)
MonitorElement * book2D(Args &&...args)
std::string elecSelect_
extra selection on electrons
Analysis-level electron class.
Analysis-level calorimeter jet class.
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Templated helper class to allow a selection on a certain object collection.
std::string muonSelect_
extra selection on muons
edm::EDGetTokenT< reco::Vertex > vertex__
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
std::unique_ptr< StringCutObjectSelector< pat::Jet > > jetSelectJet
std::unique_ptr< StringCutObjectSelector< reco::Vertex > > vertexSelect_
string cut selector
std::unique_ptr< StringCutObjectSelector< pat::Electron, true > > elecIso
std::unique_ptr< StringCutObjectSelector< reco::BeamSpot > > beamspotSelect_
string cut selector
bool isUninitialized() const
std::string label_
instance label
virtual double eta() const final
momentum pseudorapidity
volatile std::atomic< bool > shutdown_flag false
std::vector< edm::EDGetTokenT< edm::View< pat::MET > > > mets_
considers a vector of METs
SingleTopTChannelLeptonDQM_miniAOD(const edm::ParameterSet &cfg)
default constructor
edm::EDGetTokenT< edm::TriggerResults > triggerTable__
trigger table
std::unique_ptr< SelectionStep< reco::Vertex > > pvStep_
Analysis-level muon class.
EventNumber_t event() const
std::string elecIso_
extra isolation criterion on electron
static const unsigned int MAXJETS
virtual double pt() const final
transverse momentum