CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
B2GDQM Class Reference

#include <B2GDQM.h>

Inheritance diagram for B2GDQM:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

 B2GDQM (const edm::ParameterSet &ps)
 
 ~B2GDQM () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Protected Member Functions

void analyze (edm::Event const &e, edm::EventSetup const &eSetup) override
 
virtual void analyzeAllHad (edm::Event const &e, edm::EventSetup const &eSetup)
 
virtual void analyzeJets (edm::Event const &e, edm::EventSetup const &eSetup)
 
virtual void analyzeSemiE (edm::Event const &e, edm::EventSetup const &eSetup)
 
virtual void analyzeSemiMu (edm::Event const &e, edm::EventSetup const &eSetup)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Private Member Functions

void bookHistograms (DQMStore::IBooker &bei, edm::Run const &, edm::EventSetup const &) override
 

Private Attributes

MonitorElementallHad_mass0
 
MonitorElementallHad_mass1
 
MonitorElementallHad_mttbar
 
MonitorElementallHad_phi0
 
MonitorElementallHad_phi1
 
MonitorElementallHad_pt0
 
MonitorElementallHad_pt1
 
MonitorElementallHad_wMass0
 
MonitorElementallHad_wMass1
 
MonitorElementallHad_y0
 
MonitorElementallHad_y1
 
double allHadDeltaPhiCut_
 
double allHadPtCut_
 
double allHadRapidityCut_
 
std::vector< MonitorElement * > boostedJet_massDrop
 
std::vector< MonitorElement * > boostedJet_subjetM
 
std::vector< MonitorElement * > boostedJet_subjetN
 
std::vector< MonitorElement * > boostedJet_subjetPhi
 
std::vector< MonitorElement * > boostedJet_subjetPt
 
std::vector< MonitorElement * > boostedJet_subjetY
 
std::vector< MonitorElement * > boostedJet_wMass
 
std::shared_ptr< StringCutObjectSelector< reco::GsfElectron > > elecSelect_
 
edm::InputTag electronLabel_
 
edm::EDGetTokenT< edm::View< reco::GsfElectron > > electronToken_
 
HLTConfigProvider hltConfigProvider_
 
int ievt
 
int irun
 
bool isValidHltConfig_
 
std::vector< edm::InputTagjetLabels_
 
std::vector< double > jetPtMins_
 
std::vector< edm::EDGetTokenT< edm::View< reco::Jet > > > jetTokens_
 
edm::InputTag muonLabel_
 
std::shared_ptr< StringCutObjectSelector< reco::Muon > > muonSelect_
 
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
 
int nEvents_
 
int nLumiSecs_
 
std::vector< MonitorElement * > pfJet_cemf
 
std::vector< MonitorElement * > pfJet_chef
 
std::vector< MonitorElement * > pfJet_m
 
std::vector< MonitorElement * > pfJet_nemf
 
std::vector< MonitorElement * > pfJet_nhef
 
std::vector< MonitorElement * > pfJet_phi
 
std::vector< MonitorElement * > pfJet_pt
 
std::vector< MonitorElement * > pfJet_y
 
std::string PFJetCorService_
 
MonitorElementpfMet_phi
 
MonitorElementpfMet_pt
 
edm::InputTag PFMETLabel_
 
edm::EDGetTokenT< std::vector< reco::PFMET > > PFMETToken_
 
edm::InputTag sdjetLabel_
 
edm::EDGetTokenT< edm::View< reco::BasicJet > > sdjetToken_
 
double semiE_dphiHadCut_
 
double semiE_dRMin_
 
MonitorElementsemiE_eDRMin
 
MonitorElementsemiE_eEta
 
MonitorElementsemiE_ePhi
 
MonitorElementsemiE_ePt
 
MonitorElementsemiE_ePtRel
 
MonitorElementsemiE_hadJetDR
 
MonitorElementsemiE_hadJetMass
 
MonitorElementsemiE_hadJetPhi
 
MonitorElementsemiE_hadJetPt
 
double semiE_HadJetPtCut_
 
MonitorElementsemiE_hadJetWMass
 
MonitorElementsemiE_hadJetY
 
double semiE_LepJetPtCut_
 
MonitorElementsemiE_mttbar
 
double semiE_ptRel_
 
double semiMu_dphiHadCut_
 
double semiMu_dRMin_
 
MonitorElementsemiMu_hadJetDR
 
MonitorElementsemiMu_hadJetMass
 
MonitorElementsemiMu_hadJetPhi
 
MonitorElementsemiMu_hadJetPt
 
double semiMu_HadJetPtCut_
 
MonitorElementsemiMu_hadJetWMass
 
MonitorElementsemiMu_hadJetY
 
double semiMu_LepJetPtCut_
 
MonitorElementsemiMu_mttbar
 
MonitorElementsemiMu_muDRMin
 
MonitorElementsemiMu_muEta
 
MonitorElementsemiMu_muPhi
 
MonitorElementsemiMu_muPt
 
MonitorElementsemiMu_muPtRel
 
double semiMu_ptRel_
 
edm::InputTag theTriggerResultsCollection
 
edm::Handle< edm::TriggerResultstriggerResults_
 
edm::EDGetTokenT< edm::TriggerResultstriggerToken_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 78 of file B2GDQM.h.

Constructor & Destructor Documentation

◆ B2GDQM()

B2GDQM::B2GDQM ( const edm::ParameterSet ps)

Definition at line 74 of file B2GDQM.cc.

References edm::ParameterSet::getParameter(), and AlCaHLTBitMon_QueryRunRegistry::string.

74  {
75  edm::LogInfo("B2GDQM") << " Starting B2GDQM "
76  << "\n";
77 
78  typedef std::vector<edm::InputTag> vtag;
79 
80  // Get parameters from configuration file
81  // Trigger
82  theTriggerResultsCollection = ps.getParameter<InputTag>("triggerResultsCollection");
83  triggerToken_ = consumes<edm::TriggerResults>(theTriggerResultsCollection);
84 
85  // Jets
86  jetLabels_ = ps.getParameter<std::vector<edm::InputTag> >("jetLabels");
87  for (std::vector<edm::InputTag>::const_iterator jetlabel = jetLabels_.begin(), jetlabelEnd = jetLabels_.end();
88  jetlabel != jetlabelEnd;
89  ++jetlabel) {
90  jetTokens_.push_back(consumes<edm::View<reco::Jet> >(*jetlabel));
91  }
92  sdjetLabel_ = ps.getParameter<edm::InputTag>("sdjetLabel");
93  sdjetToken_ = consumes<edm::View<reco::BasicJet> >(sdjetLabel_);
94 
95  muonToken_ = consumes<edm::View<reco::Muon> >(ps.getParameter<edm::InputTag>("muonSrc"));
96  electronToken_ = consumes<edm::View<reco::GsfElectron> >(ps.getParameter<edm::InputTag>("electronSrc"));
97 
98  jetPtMins_ = ps.getParameter<std::vector<double> >("jetPtMins");
99  allHadPtCut_ = ps.getParameter<double>("allHadPtCut");
100  allHadRapidityCut_ = ps.getParameter<double>("allHadRapidityCut");
101  allHadDeltaPhiCut_ = ps.getParameter<double>("allHadDeltaPhiCut");
102 
103  semiMu_HadJetPtCut_ = ps.getParameter<double>("semiMu_HadJetPtCut");
104  semiMu_LepJetPtCut_ = ps.getParameter<double>("semiMu_LepJetPtCut");
105  semiMu_dphiHadCut_ = ps.getParameter<double>("semiMu_dphiHadCut");
106  semiMu_dRMin_ = ps.getParameter<double>("semiMu_dRMin");
107  semiMu_ptRel_ = ps.getParameter<double>("semiMu_ptRel");
108  muonSelect_ = std::make_shared<StringCutObjectSelector<reco::Muon> >(
109 
110  ps.getParameter<std::string>("muonSelect"));
111 
112  semiE_HadJetPtCut_ = ps.getParameter<double>("semiE_HadJetPtCut");
113  semiE_LepJetPtCut_ = ps.getParameter<double>("semiE_LepJetPtCut");
114  semiE_dphiHadCut_ = ps.getParameter<double>("semiE_dphiHadCut");
115  semiE_dRMin_ = ps.getParameter<double>("semiE_dRMin");
116  semiE_ptRel_ = ps.getParameter<double>("semiE_ptRel");
117  elecSelect_ = std::make_shared<StringCutObjectSelector<reco::GsfElectron> >(
118 
119  ps.getParameter<std::string>("elecSelect"));
120 
121  PFJetCorService_ = ps.getParameter<std::string>("PFJetCorService");
122 
123  // MET
124  PFMETLabel_ = ps.getParameter<InputTag>("pfMETCollection");
125  PFMETToken_ = consumes<std::vector<reco::PFMET> >(PFMETLabel_);
126 }
double semiMu_dphiHadCut_
Definition: B2GDQM.h:133
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
double semiMu_HadJetPtCut_
Definition: B2GDQM.h:131
double semiE_HadJetPtCut_
Definition: B2GDQM.h:138
std::vector< double > jetPtMins_
Definition: B2GDQM.h:125
edm::InputTag theTriggerResultsCollection
Definition: B2GDQM.h:100
double semiE_ptRel_
Definition: B2GDQM.h:144
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
Definition: B2GDQM.h:116
double allHadDeltaPhiCut_
Definition: B2GDQM.h:129
double semiE_dphiHadCut_
Definition: B2GDQM.h:140
std::string PFJetCorService_
Definition: B2GDQM.h:147
edm::InputTag sdjetLabel_
Definition: B2GDQM.h:112
double semiE_dRMin_
Definition: B2GDQM.h:142
std::shared_ptr< StringCutObjectSelector< reco::Muon > > muonSelect_
Definition: B2GDQM.h:136
std::vector< edm::InputTag > jetLabels_
Definition: B2GDQM.h:105
Log< level::Info, false > LogInfo
double semiMu_ptRel_
Definition: B2GDQM.h:135
double allHadPtCut_
Definition: B2GDQM.h:127
std::vector< edm::EDGetTokenT< edm::View< reco::Jet > > > jetTokens_
Definition: B2GDQM.h:106
double semiE_LepJetPtCut_
Definition: B2GDQM.h:139
edm::EDGetTokenT< edm::TriggerResults > triggerToken_
Definition: B2GDQM.h:101
double allHadRapidityCut_
Definition: B2GDQM.h:128
std::shared_ptr< StringCutObjectSelector< reco::GsfElectron > > elecSelect_
Definition: B2GDQM.h:145
edm::EDGetTokenT< edm::View< reco::BasicJet > > sdjetToken_
Definition: B2GDQM.h:113
double semiMu_dRMin_
Definition: B2GDQM.h:134
edm::EDGetTokenT< std::vector< reco::PFMET > > PFMETToken_
Definition: B2GDQM.h:108
double semiMu_LepJetPtCut_
Definition: B2GDQM.h:132
edm::InputTag PFMETLabel_
Definition: B2GDQM.h:107
edm::EDGetTokenT< edm::View< reco::GsfElectron > > electronToken_
Definition: B2GDQM.h:119

◆ ~B2GDQM()

B2GDQM::~B2GDQM ( )
override

Definition at line 131 of file B2GDQM.cc.

131  {
132  edm::LogInfo("B2GDQM") << " Deleting B2GDQM "
133  << "\n";
134 }
Log< level::Info, false > LogInfo

Member Function Documentation

◆ analyze()

void B2GDQM::analyze ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 226 of file B2GDQM.cc.

References iEvent.

226  {
227  analyzeJets(iEvent, iSetup);
228  analyzeSemiMu(iEvent, iSetup);
229  analyzeSemiE(iEvent, iSetup);
230  analyzeAllHad(iEvent, iSetup);
231 }
virtual void analyzeSemiMu(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: B2GDQM.cc:362
virtual void analyzeAllHad(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: B2GDQM.cc:314
int iEvent
Definition: GenABIO.cc:224
virtual void analyzeSemiE(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: B2GDQM.cc:444
virtual void analyzeJets(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: B2GDQM.cc:233

◆ analyzeAllHad()

void B2GDQM::analyzeAllHad ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
protectedvirtual

Definition at line 314 of file B2GDQM.cc.

References funct::abs(), reco::CompositePtrCandidate::daughter(), reco::deltaPhi(), iEvent, edm::Ptr< T >::isAvailable(), jetfilter_cfi::jetCollection, M_PI, reco::Candidate::mass(), reco::LeafCandidate::mass(), reco::CompositePtrCandidate::numberOfDaughters(), reco::LeafCandidate::p4(), reco::LeafCandidate::phi(), reco::LeafCandidate::pt(), reco::LeafCandidate::rapidity(), and pseudoTop_cfi::wMass.

314  {
316  bool validJets = iEvent.getByToken(sdjetToken_, jetCollection);
317  if (!validJets)
318  return;
319 
320  // Require two back-to-back jets at high pt with |delta y| < 1.0
321  if (jetCollection->size() < 2)
322  return;
323  edm::Ptr<reco::BasicJet> jet0 = jetCollection->ptrAt(0);
324  edm::Ptr<reco::BasicJet> jet1 = jetCollection->ptrAt(1);
325  if (jet0.isAvailable() == false || jet1.isAvailable() == false)
326  return;
327  if (jet0->pt() < allHadPtCut_ || jet1->pt() < allHadPtCut_)
328  return;
329  if (std::abs(jet0->rapidity() - jet1->rapidity()) > allHadRapidityCut_)
330  return;
331  if (std::abs(reco::deltaPhi(jet0->phi(), jet1->phi())) < M_PI * 0.5)
332  return;
333 
334  allHad_pt0->Fill(jet0->pt());
335  allHad_y0->Fill(jet0->rapidity());
336  allHad_phi0->Fill(jet0->phi());
337  allHad_mass0->Fill(jet0->mass());
338  if (jet0->numberOfDaughters() > 2) {
339  double wMass =
340  jet0->daughter(0)->mass() >= jet0->daughter(1)->mass() ? jet0->daughter(0)->mass() : jet0->daughter(1)->mass();
342  } else {
343  allHad_wMass0->Fill(-1.0);
344  }
345 
346  allHad_pt1->Fill(jet1->pt());
347  allHad_y1->Fill(jet1->rapidity());
348  allHad_phi1->Fill(jet1->phi());
349  allHad_mass1->Fill(jet1->mass());
350  if (jet1->numberOfDaughters() > 2) {
351  double wMass =
352  jet1->daughter(0)->mass() >= jet1->daughter(1)->mass() ? jet1->daughter(0)->mass() : jet1->daughter(1)->mass();
354  } else {
355  allHad_wMass1->Fill(-1.0);
356  }
357 
358  auto p4cand = (jet0->p4() + jet1->p4());
359  allHad_mttbar->Fill(p4cand.mass());
360 }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
MonitorElement * allHad_wMass1
Definition: B2GDQM.h:204
double pt() const final
transverse momentum
MonitorElement * allHad_y0
Definition: B2GDQM.h:196
MonitorElement * allHad_pt0
Definition: B2GDQM.h:195
virtual double mass() const =0
mass
MonitorElement * allHad_wMass0
Definition: B2GDQM.h:199
MonitorElement * allHad_phi0
Definition: B2GDQM.h:197
MonitorElement * allHad_y1
Definition: B2GDQM.h:201
bool isAvailable() const
Definition: Ptr.h:232
const LorentzVector & p4() const final
four-momentum Lorentz vector
void Fill(long long x)
int iEvent
Definition: GenABIO.cc:224
double rapidity() const final
rapidity
MonitorElement * allHad_mass0
Definition: B2GDQM.h:198
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * allHad_mass1
Definition: B2GDQM.h:203
#define M_PI
size_t numberOfDaughters() const override
number of daughters
double allHadPtCut_
Definition: B2GDQM.h:127
MonitorElement * allHad_pt1
Definition: B2GDQM.h:200
MonitorElement * allHad_mttbar
Definition: B2GDQM.h:205
double allHadRapidityCut_
Definition: B2GDQM.h:128
double mass() const final
mass
edm::EDGetTokenT< edm::View< reco::BasicJet > > sdjetToken_
Definition: B2GDQM.h:113
const Candidate * daughter(size_type) const override
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
double phi() const final
momentum azimuthal angle
MonitorElement * allHad_phi1
Definition: B2GDQM.h:202

◆ analyzeJets()

void B2GDQM::analyzeJets ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
protectedvirtual

Definition at line 233 of file B2GDQM.cc.

References edm::View< T >::begin(), reco::PFJet::chargedEmEnergyFraction(), reco::PFJet::chargedHadronEnergyFraction(), runTheMatrix::const, edm::View< T >::end(), icoll, iEvent, metsig::jet, label, reco::Candidate::mass(), reco::PFJet::neutralEmEnergyFraction(), reco::PFJet::neutralHadronEnergyFraction(), ExoticaDQM_cfi::pfJetCollection, B2GDQM_cfi::pfMETCollection, reco::Candidate::phi(), DiDispStaMuonMonitor_cfi::pt, reco::Candidate::pt(), and reco::Candidate::rapidity().

233  {
234  // Loop over the different types of jets,
235  // Loop over the jets in that collection,
236  // fill PF jet information as well as substructure
237  // information for boosted jets.
238  // Utilizes the CMS top-tagging algorithm and the "mass drop" W-tagger.
239  for (unsigned int icoll = 0; icoll < jetLabels_.size(); ++icoll) {
241  bool ValidPFJets = iEvent.getByToken(jetTokens_[icoll], pfJetCollection);
242  if (!ValidPFJets)
243  continue;
244  edm::View<reco::Jet> const& pfjets = *pfJetCollection;
245 
246  // Jet Correction
247 
248  for (edm::View<reco::Jet>::const_iterator jet = pfjets.begin(), jetEnd = pfjets.end(); jet != jetEnd; ++jet) {
249  if (jet->pt() < jetPtMins_[icoll])
250  continue;
251  pfJet_pt[icoll]->Fill(jet->pt());
252  pfJet_y[icoll]->Fill(jet->rapidity());
253  pfJet_phi[icoll]->Fill(jet->phi());
254  pfJet_m[icoll]->Fill(jet->mass());
255 
256  // Dynamic cast the base class (reco::Jet) to the derived class (PFJet)
257  // to access the PFJet information
258  reco::PFJet const* pfjet = dynamic_cast<reco::PFJet const*>(&*jet);
259 
260  if (pfjet != nullptr) {
263  pfJet_cemf[icoll]->Fill(pfjet->chargedEmEnergyFraction());
264  pfJet_nemf[icoll]->Fill(pfjet->neutralEmEnergyFraction());
265  }
266 
267  // Dynamic cast the base class (reco::Jet) to the derived class (BasicJet)
268  // to access the substructure information
269  reco::BasicJet const* basicjet = dynamic_cast<reco::BasicJet const*>(&*jet);
270 
271  if (basicjet != nullptr) {
272  boostedJet_subjetN[icoll]->Fill(jet->numberOfDaughters());
273 
274  for (unsigned int ida = 0; ida < jet->numberOfDaughters(); ++ida) {
275  reco::Candidate const* subjet = jet->daughter(ida);
276  boostedJet_subjetPt[icoll]->Fill(subjet->pt());
277  boostedJet_subjetY[icoll]->Fill(subjet->rapidity());
278  boostedJet_subjetPhi[icoll]->Fill(subjet->phi());
279  boostedJet_subjetM[icoll]->Fill(subjet->mass());
280  }
281  // Check the various tagging algorithms
282  if ((jetLabels_[icoll].label() == "ak8PFJetsPuppiSoftdrop")) {
283  if (jet->numberOfDaughters() > 1) {
284  reco::Candidate const* da0 = jet->daughter(0);
285  reco::Candidate const* da1 = jet->daughter(1);
286  if (da0->mass() > da1->mass()) {
287  boostedJet_wMass[icoll]->Fill(da0->mass());
288  boostedJet_massDrop[icoll]->Fill(da0->mass() / jet->mass());
289  } else {
290  boostedJet_wMass[icoll]->Fill(da1->mass());
291  boostedJet_massDrop[icoll]->Fill(da1->mass() / jet->mass());
292  }
293 
294  } else {
295  boostedJet_massDrop[icoll]->Fill(-1.0);
296  }
297 
298  } // end if collection is AK8 PFJets Puppi soft-drop
299 
300  } // end if basic jet != 0
301  }
302  }
303 
304  // PFMETs
306  bool ValidPFMET = iEvent.getByToken(PFMETToken_, pfMETCollection);
307  if (!ValidPFMET)
308  return;
309 
310  pfMet_pt->Fill((*pfMETCollection)[0].pt());
311  pfMet_phi->Fill((*pfMETCollection)[0].phi());
312 }
std::vector< MonitorElement * > pfJet_nhef
Definition: B2GDQM.h:156
std::vector< MonitorElement * > boostedJet_subjetY
Definition: B2GDQM.h:160
std::vector< MonitorElement * > pfJet_phi
Definition: B2GDQM.h:153
MonitorElement * pfMet_pt
Definition: B2GDQM.h:166
float chargedEmEnergyFraction() const
chargedEmEnergyFraction
Definition: PFJet.h:141
std::vector< MonitorElement * > pfJet_cemf
Definition: B2GDQM.h:157
std::vector< MonitorElement * > pfJet_nemf
Definition: B2GDQM.h:158
virtual double pt() const =0
transverse momentum
virtual double mass() const =0
mass
std::vector< double > jetPtMins_
Definition: B2GDQM.h:125
std::vector< MonitorElement * > boostedJet_subjetPhi
Definition: B2GDQM.h:161
virtual double rapidity() const =0
rapidity
std::vector< MonitorElement * > pfJet_y
Definition: B2GDQM.h:152
Jets made from CaloTowers.
Definition: BasicJet.h:19
Jets made from PFObjects.
Definition: PFJet.h:20
void Fill(long long x)
char const * label
int iEvent
Definition: GenABIO.cc:224
std::vector< MonitorElement * > boostedJet_subjetN
Definition: B2GDQM.h:163
std::vector< MonitorElement * > boostedJet_subjetPt
Definition: B2GDQM.h:159
float chargedHadronEnergyFraction() const
chargedHadronEnergyFraction
Definition: PFJet.h:97
float neutralEmEnergyFraction() const
neutralEmEnergyFraction
Definition: PFJet.h:149
std::vector< edm::InputTag > jetLabels_
Definition: B2GDQM.h:105
std::vector< edm::EDGetTokenT< edm::View< reco::Jet > > > jetTokens_
Definition: B2GDQM.h:106
float neutralHadronEnergyFraction() const
neutralHadronEnergyFraction
Definition: PFJet.h:101
std::vector< MonitorElement * > pfJet_m
Definition: B2GDQM.h:154
std::vector< MonitorElement * > pfJet_pt
Definition: B2GDQM.h:151
std::vector< MonitorElement * > boostedJet_massDrop
Definition: B2GDQM.h:164
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:88
std::vector< MonitorElement * > pfJet_chef
Definition: B2GDQM.h:155
edm::EDGetTokenT< std::vector< reco::PFMET > > PFMETToken_
Definition: B2GDQM.h:108
std::vector< MonitorElement * > boostedJet_wMass
Definition: B2GDQM.h:165
const_iterator begin() const
const_iterator end() const
MonitorElement * pfMet_phi
Definition: B2GDQM.h:167
virtual double phi() const =0
momentum azimuthal angle
std::vector< MonitorElement * > boostedJet_subjetM
Definition: B2GDQM.h:162
int icoll
Definition: AMPTWrapper.h:146

◆ analyzeSemiE()

void B2GDQM::analyzeSemiE ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
protectedvirtual

Definition at line 444 of file B2GDQM.cc.

References funct::abs(), reco::CompositePtrCandidate::daughter(), reco::deltaPhi(), reco::deltaR(), HLT_2023v12_cff::dRMin, HPSPFTauProducerPuppi_cfi::electron, pdwgLeptonRecoSkim_cfi::electronCollection, iEvent, edm::Ptr< T >::isAvailable(), jetfilter_cfi::jetCollection, M_PI, reco::Candidate::mass(), reco::LeafCandidate::mass(), reco::CompositePtrCandidate::numberOfDaughters(), reco::LeafCandidate::p4(), reco::LeafCandidate::phi(), reco::LeafCandidate::pt(), electrons_cff::ptRel, reco::LeafCandidate::rapidity(), contentValuesCheck::ss, compareTotals::tot, and pseudoTop_cfi::wMass.

444  {
446  bool validElectrons = iEvent.getByToken(electronToken_, electronCollection);
447 
448  if (!validElectrons)
449  return;
450  if (electronCollection->empty())
451  return;
453  if (!(*elecSelect_)(electron))
454  return;
455 
457  bool validJets = iEvent.getByToken(sdjetToken_, jetCollection);
458  if (!validJets)
459  return;
460  if (jetCollection->size() < 2)
461  return;
462 
463  double pt0 = -1.0;
464  double dRMin = 999.0;
465  edm::Ptr<reco::BasicJet> hadJet; // highest pt jet with dphi(lep,jet) > pi/2
466  edm::Ptr<reco::BasicJet> lepJet; // closest jet to lepton with pt > ptMin
467 
468  for (auto ijet = jetCollection->begin(), ijetBegin = ijet, ijetEnd = jetCollection->end(); ijet != ijetEnd; ++ijet) {
469  // Hadronic jets
470  if (std::abs(reco::deltaPhi(electron, *ijet)) > M_PI * 0.5) {
471  if (ijet->pt() > pt0 && ijet->p() > semiE_HadJetPtCut_) {
472  hadJet = jetCollection->ptrAt(ijet - ijetBegin);
473  pt0 = hadJet->pt();
474  }
475  }
476  // Leptonic jets
477  else if (ijet->pt() > semiE_LepJetPtCut_) {
478  auto idRMin = reco::deltaR(electron, *ijet);
479  if (idRMin < dRMin) {
480  lepJet = jetCollection->ptrAt(ijet - ijetBegin);
481  dRMin = idRMin;
482  }
483  }
484  }
485  if (hadJet.isAvailable() == false || lepJet.isAvailable() == false)
486  return;
487 
488  auto lepJetP4 = lepJet->p4();
489  const auto& electronP4 = electron.p4();
490 
491  double tot = lepJetP4.mag2();
492  double ss = electronP4.Dot(lepJet->p4());
493  double per = electronP4.mag2();
494  if (tot > 0.0)
495  per -= ss * ss / tot;
496  if (per < 0)
497  per = 0;
498  double ptRel = per;
499  bool pass2D = dRMin > semiE_dRMin_ || ptRel > semiE_ptRel_;
500 
501  if (!pass2D)
502  return;
503 
504  semiE_ePt->Fill(electron.pt());
505  semiE_eEta->Fill(electron.eta());
506  semiE_ePhi->Fill(electron.phi());
509 
511  semiE_mttbar->Fill(0.0);
512 
513  semiE_hadJetPt->Fill(hadJet->pt());
514  semiE_hadJetY->Fill(hadJet->rapidity());
515  semiE_hadJetPhi->Fill(hadJet->phi());
516  semiE_hadJetMass->Fill(hadJet->mass());
517  if (hadJet->numberOfDaughters() > 2) {
518  double wMass = hadJet->daughter(0)->mass() >= hadJet->daughter(1)->mass() ? hadJet->daughter(0)->mass()
519  : hadJet->daughter(1)->mass();
521  } else {
522  semiE_hadJetWMass->Fill(-1.0);
523  }
524 }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
MonitorElement * semiE_hadJetPhi
Definition: B2GDQM.h:190
double pt() const final
transverse momentum
double semiE_HadJetPtCut_
Definition: B2GDQM.h:138
MonitorElement * semiE_eEta
Definition: B2GDQM.h:183
MonitorElement * semiE_ePtRel
Definition: B2GDQM.h:186
virtual double mass() const =0
mass
MonitorElement * semiE_ePt
Definition: B2GDQM.h:182
double semiE_ptRel_
Definition: B2GDQM.h:144
bool isAvailable() const
Definition: Ptr.h:232
const LorentzVector & p4() const final
four-momentum Lorentz vector
void Fill(long long x)
MonitorElement * semiE_eDRMin
Definition: B2GDQM.h:185
int iEvent
Definition: GenABIO.cc:224
MonitorElement * semiE_hadJetPt
Definition: B2GDQM.h:188
double rapidity() const final
rapidity
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double semiE_dRMin_
Definition: B2GDQM.h:142
MonitorElement * semiE_hadJetMass
Definition: B2GDQM.h:191
MonitorElement * semiE_mttbar
Definition: B2GDQM.h:193
#define M_PI
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
MonitorElement * semiE_hadJetDR
Definition: B2GDQM.h:187
size_t numberOfDaughters() const override
number of daughters
double semiE_LepJetPtCut_
Definition: B2GDQM.h:139
MonitorElement * semiE_hadJetY
Definition: B2GDQM.h:189
std::shared_ptr< StringCutObjectSelector< reco::GsfElectron > > elecSelect_
Definition: B2GDQM.h:145
double mass() const final
mass
edm::EDGetTokenT< edm::View< reco::BasicJet > > sdjetToken_
Definition: B2GDQM.h:113
MonitorElement * semiE_ePhi
Definition: B2GDQM.h:184
const Candidate * daughter(size_type) const override
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
double phi() const final
momentum azimuthal angle
MonitorElement * semiE_hadJetWMass
Definition: B2GDQM.h:192
edm::EDGetTokenT< edm::View< reco::GsfElectron > > electronToken_
Definition: B2GDQM.h:119

◆ analyzeSemiMu()

void B2GDQM::analyzeSemiMu ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
protectedvirtual

Definition at line 362 of file B2GDQM.cc.

References funct::abs(), reco::CompositePtrCandidate::daughter(), reco::deltaPhi(), reco::deltaR(), HLT_2023v12_cff::dRMin, iEvent, edm::Ptr< T >::isAvailable(), jetfilter_cfi::jetCollection, M_PI, reco::Candidate::mass(), reco::LeafCandidate::mass(), pdwgLeptonRecoSkim_cfi::muonCollection, reco::CompositePtrCandidate::numberOfDaughters(), reco::LeafCandidate::p4(), reco::LeafCandidate::phi(), reco::LeafCandidate::pt(), electrons_cff::ptRel, reco::LeafCandidate::rapidity(), contentValuesCheck::ss, compareTotals::tot, and pseudoTop_cfi::wMass.

362  {
364  bool validMuons = iEvent.getByToken(muonToken_, muonCollection);
365 
366  if (!validMuons)
367  return;
368  if (muonCollection->empty())
369  return;
370  reco::Muon const& muon = muonCollection->at(0);
371  if (!(*muonSelect_)(muon))
372  return;
373 
375  bool validJets = iEvent.getByToken(sdjetToken_, jetCollection);
376  if (!validJets)
377  return;
378  if (jetCollection->size() < 2)
379  return;
380 
381  double pt0 = -1.0;
382  double dRMin = 999.0;
383  edm::Ptr<reco::BasicJet> hadJet; // highest pt jet with dphi(lep,jet) > pi/2
384  edm::Ptr<reco::BasicJet> lepJet; // closest jet to lepton with pt > ptMin
385 
386  for (auto ijet = jetCollection->begin(), ijetBegin = ijet, ijetEnd = jetCollection->end(); ijet != ijetEnd; ++ijet) {
387  // Hadronic jets
388  if (std::abs(reco::deltaPhi(muon, *ijet)) > M_PI * 0.5) {
389  if (ijet->pt() > pt0 && ijet->p() > semiMu_HadJetPtCut_) {
390  hadJet = jetCollection->ptrAt(ijet - ijetBegin);
391  pt0 = hadJet->pt();
392  }
393  }
394  // Leptonic jets
395  else if (ijet->pt() > semiMu_LepJetPtCut_) {
396  auto idRMin = reco::deltaR(muon, *ijet);
397  if (idRMin < dRMin) {
398  lepJet = jetCollection->ptrAt(ijet - ijetBegin);
399  dRMin = idRMin;
400  }
401  }
402  }
403  if (hadJet.isAvailable() == false || lepJet.isAvailable() == false)
404  return;
405 
406  auto lepJetP4 = lepJet->p4();
407  const auto& muonP4 = muon.p4();
408 
409  double tot = lepJetP4.mag2();
410  double ss = muonP4.Dot(lepJet->p4());
411  double per = muonP4.mag2();
412  if (tot > 0.0)
413  per -= ss * ss / tot;
414  if (per < 0)
415  per = 0;
416  double ptRel = per;
417  bool pass2D = dRMin > semiMu_dRMin_ || ptRel > semiMu_ptRel_;
418 
419  if (!pass2D)
420  return;
421 
422  semiMu_muPt->Fill(muon.pt());
423  semiMu_muEta->Fill(muon.eta());
424  semiMu_muPhi->Fill(muon.phi());
427 
429  semiMu_mttbar->Fill(0.0);
430 
431  semiMu_hadJetPt->Fill(hadJet->pt());
432  semiMu_hadJetY->Fill(hadJet->rapidity());
433  semiMu_hadJetPhi->Fill(hadJet->phi());
434  semiMu_hadJetMass->Fill(hadJet->mass());
435  if (hadJet->numberOfDaughters() > 2) {
436  double wMass = hadJet->daughter(0)->mass() >= hadJet->daughter(1)->mass() ? hadJet->daughter(0)->mass()
437  : hadJet->daughter(1)->mass();
439  } else {
440  semiMu_hadJetWMass->Fill(-1.0);
441  }
442 }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
MonitorElement * semiMu_muPtRel
Definition: B2GDQM.h:173
double semiMu_HadJetPtCut_
Definition: B2GDQM.h:131
double pt() const final
transverse momentum
MonitorElement * semiMu_muPt
Definition: B2GDQM.h:169
virtual double mass() const =0
mass
MonitorElement * semiMu_mttbar
Definition: B2GDQM.h:180
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
Definition: B2GDQM.h:116
MonitorElement * semiMu_muPhi
Definition: B2GDQM.h:171
bool isAvailable() const
Definition: Ptr.h:232
const LorentzVector & p4() const final
four-momentum Lorentz vector
void Fill(long long x)
int iEvent
Definition: GenABIO.cc:224
MonitorElement * semiMu_hadJetY
Definition: B2GDQM.h:176
MonitorElement * semiMu_muDRMin
Definition: B2GDQM.h:172
MonitorElement * semiMu_hadJetDR
Definition: B2GDQM.h:174
double rapidity() const final
rapidity
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::shared_ptr< StringCutObjectSelector< reco::Muon > > muonSelect_
Definition: B2GDQM.h:136
MonitorElement * semiMu_hadJetWMass
Definition: B2GDQM.h:179
#define M_PI
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
MonitorElement * semiMu_muEta
Definition: B2GDQM.h:170
double semiMu_ptRel_
Definition: B2GDQM.h:135
size_t numberOfDaughters() const override
number of daughters
MonitorElement * semiMu_hadJetPt
Definition: B2GDQM.h:175
double mass() const final
mass
edm::EDGetTokenT< edm::View< reco::BasicJet > > sdjetToken_
Definition: B2GDQM.h:113
double semiMu_dRMin_
Definition: B2GDQM.h:134
const Candidate * daughter(size_type) const override
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
MonitorElement * semiMu_hadJetPhi
Definition: B2GDQM.h:177
double phi() const final
momentum azimuthal angle
double semiMu_LepJetPtCut_
Definition: B2GDQM.h:132
MonitorElement * semiMu_hadJetMass
Definition: B2GDQM.h:178

◆ bookHistograms()

void B2GDQM::bookHistograms ( DQMStore::IBooker bei,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprivatevirtual

Implements DQMEDAnalyzer.

Definition at line 139 of file B2GDQM.cc.

References dqm::implementation::IBooker::book1D(), icoll, dqm::implementation::NavigatorBase::setCurrentFolder(), and contentValuesCheck::ss.

139  {
140  bei.setCurrentFolder("Physics/B2G");
141 
142  //--- Jets
143 
144  for (unsigned int icoll = 0; icoll < jetLabels_.size(); ++icoll) {
145  std::stringstream ss;
146  ss << "Physics/B2G/" << jetLabels_[icoll].label();
147  bei.setCurrentFolder(ss.str());
148  pfJet_pt.push_back(bei.book1D("pfJet_pt", "Pt of PFJet (GeV)", 50, 0.0, 1000));
149  pfJet_y.push_back(bei.book1D("pfJet_y", "Rapidity of PFJet", 60, -6.0, 6.0));
150  pfJet_phi.push_back(bei.book1D("pfJet_phi", "#phi of PFJet (radians)", 60, -3.14159, 3.14159));
151  pfJet_m.push_back(bei.book1D("pfJet_m", "Mass of PFJet (GeV)", 50, 0.0, 500));
152  pfJet_chef.push_back(bei.book1D("pfJet_pfchef", "PFJetID CHEF", 50, 0.0, 1.0));
153  pfJet_nhef.push_back(bei.book1D("pfJet_pfnhef", "PFJetID NHEF", 50, 0.0, 1.0));
154  pfJet_cemf.push_back(bei.book1D("pfJet_pfcemf", "PFJetID CEMF", 50, 0.0, 1.0));
155  pfJet_nemf.push_back(bei.book1D("pfJet_pfnemf", "PFJetID NEMF", 50, 0.0, 1.0));
156 
157  boostedJet_subjetPt.push_back(bei.book1D("boostedJet_subjetPt", "Pt of subjets (GeV)", 50, 0.0, 500));
158  boostedJet_subjetY.push_back(bei.book1D("boostedJet_subjetY", "Rapidity of subjets", 60, -6.0, 6.0));
159  boostedJet_subjetPhi.push_back(
160  bei.book1D("boostedJet_subjetPhi", "#phi of subjets (radians)", 60, -3.14159, 3.14159));
161  boostedJet_subjetM.push_back(bei.book1D("boostedJet_subjetM", "Mass of subjets (GeV)", 50, 0.0, 250.));
162  boostedJet_subjetN.push_back(bei.book1D("boostedJet_subjetN", "Number of subjets", 10, 0, 10));
163  boostedJet_massDrop.push_back(bei.book1D("boostedJet_massDrop", "Mass drop for W-like jets", 50, 0.0, 1.0));
164  boostedJet_wMass.push_back(bei.book1D("boostedJet_wMass", "W Mass for top-like jets", 50, 0.0, 250.0));
165  }
166 
167  bei.setCurrentFolder("Physics/B2G/MET");
168  pfMet_pt = bei.book1D("pfMet_pt", "Pf Missing p_{T}; GeV", 50, 0.0, 500);
169  pfMet_phi = bei.book1D("pfMet_phi", "Pf Missing p_{T} #phi;#phi (radians)", 35, -3.5, 3.5);
170 
171  //--- Mu+Jets
172  bei.setCurrentFolder("Physics/B2G/SemiMu");
173  semiMu_muPt = bei.book1D("semiMu_muPt", "Pt of Muon in #mu+Jets Channel (GeV)", 50, 0.0, 1000);
174  semiMu_muEta = bei.book1D("semiMu_muEta", "#eta of Muon in #mu+Jets Channel", 60, -6.0, 6.0);
175  semiMu_muPhi = bei.book1D("semiMu_muPhi", "#phi of Muon in #mu+Jets Channel (radians)", 60, -3.14159, 3.14159);
176  semiMu_muDRMin = bei.book1D("semiMu_muDRMin", "#Delta R(E,nearest jet) in #mu+Jets Channel", 50, 0, 10.0);
177  semiMu_muPtRel = bei.book1D("semiMu_muPtRel", "p_{T}^{REL} in #mu+Jets Channel", 60, 0, 300.);
178  semiMu_hadJetDR = bei.book1D("semiMu_hadJetDR", "#Delta R(E,had jet) in #mu+Jets Channel", 50, 0, 10.0);
180  bei.book1D("semiMu_hadJetPt", "Pt of Leading Hadronic Jet in #mu+Jets Channel (GeV)", 50, 0.0, 1000);
181  semiMu_hadJetY = bei.book1D("semiMu_hadJetY", "Rapidity of Leading Hadronic Jet in #mu+Jets Channel", 60, -6.0, 6.0);
182  semiMu_hadJetPhi = bei.book1D(
183  "semiMu_hadJetPhi", "#phi of Leading Hadronic Jet in #mu+Jets Channel (radians)", 60, -3.14159, 3.14159);
185  bei.book1D("semiMu_hadJetMass", "Mass of Leading Hadronic Jet in #mu+Jets Channel (GeV)", 50, 0.0, 500);
187  bei.book1D("semiMu_hadJetwMass", "W Mass for Leading Hadronic Jet in #mu+Jets Channel (GeV)", 50, 0.0, 250.0);
188  semiMu_mttbar = bei.book1D("semiMu_mttbar", "Mass of #mu+Jets ttbar Candidate", 100, 0., 5000.);
189 
190  //--- E+Jets
191  bei.setCurrentFolder("Physics/B2G/SemiE");
192  semiE_ePt = bei.book1D("semiE_ePt", "Pt of Electron in e+Jets Channel (GeV)", 50, 0.0, 1000);
193  semiE_eEta = bei.book1D("semiE_eEta", "#eta of Electron in e+Jets Channel", 60, -6.0, 6.0);
194  semiE_ePhi = bei.book1D("semiE_ePhi", "#phi of Electron in e+Jets Channel (radians)", 60, -3.14159, 3.14159);
195  semiE_eDRMin = bei.book1D("semiE_eDRMin", "#Delta R(E,nearest jet) in e+Jets Channel", 50, 0, 10.0);
196  semiE_ePtRel = bei.book1D("semiE_ePtRel", "p_{T}^{REL} in e+Jets Channel", 60, 0, 300.);
197  semiE_hadJetDR = bei.book1D("semiE_hadJetDR", "#Delta R(E,had jet) in e+Jets Channel", 50, 0, 10.0);
198  semiE_hadJetPt = bei.book1D("semiE_hadJetPt", "Pt of Leading Hadronic Jet in e+Jets Channel (GeV)", 50, 0.0, 1000);
199  semiE_hadJetY = bei.book1D("semiE_hadJetY", "Rapidity of Leading Hadronic Jet in e+Jets Channel", 60, -6.0, 6.0);
201  bei.book1D("semiE_hadJetPhi", "#phi of Leading Hadronic Jet in e+Jets Channel (radians)", 60, -3.14159, 3.14159);
203  bei.book1D("semiE_hadJetMass", "Mass of Leading Hadronic Jet in e+Jets Channel (GeV)", 50, 0.0, 500);
205  bei.book1D("semiE_hadJetwMass", "W Mass for Leading Hadronic Jet in e+Jets Channel (GeV)", 50, 0.0, 250.0);
206  semiE_mttbar = bei.book1D("semiE_mttbar", "Mass of e+Jets ttbar Candidate", 100, 0., 5000.);
207 
208  //--- All-hadronic
209  bei.setCurrentFolder("Physics/B2G/AllHad");
210  allHad_pt0 = bei.book1D("allHad_pt0", "Pt of Leading All-Hadronic PFJet (GeV)", 50, 0.0, 1000);
211  allHad_y0 = bei.book1D("allHad_y0", "Rapidity of Leading All-Hadronic PFJet", 60, -6.0, 6.0);
212  allHad_phi0 = bei.book1D("allHad_phi0", "#phi of Leading All-Hadronic PFJet (radians)", 60, -3.14159, 3.14159);
213  allHad_mass0 = bei.book1D("allHad_mass0", "Mass of Leading All-Hadronic PFJet (GeV)", 50, 0.0, 500);
214  allHad_wMass0 = bei.book1D("allHad_wMass0", "W Mass for Leading All-Hadronic PFJet (GeV)", 50, 0.0, 250.0);
215  allHad_pt1 = bei.book1D("allHad_pt1", "Pt of Subleading All-Hadronic PFJet (GeV)", 50, 0.0, 1000);
216  allHad_y1 = bei.book1D("allHad_y1", "Rapidity of Subleading All-Hadronic PFJet", 60, -6.0, 6.0);
217  allHad_phi1 = bei.book1D("allHad_phi1", "#phi of Subleading All-Hadronic PFJet (radians)", 60, -3.14159, 3.14159);
218  allHad_mass1 = bei.book1D("allHad_mass1", "Mass of Subleading All-Hadronic PFJet (GeV)", 50, 0.0, 500);
219  allHad_wMass1 = bei.book1D("allHad_wMass1", "W Mass for Subleading All-Hadronic PFJet (GeV)", 50, 0.0, 250.0);
220  allHad_mttbar = bei.book1D("allHad_mttbar", "Mass of All-Hadronic ttbar Candidate", 100, 0., 5000.);
221 }
std::vector< MonitorElement * > pfJet_nhef
Definition: B2GDQM.h:156
MonitorElement * semiE_hadJetPhi
Definition: B2GDQM.h:190
std::vector< MonitorElement * > boostedJet_subjetY
Definition: B2GDQM.h:160
std::vector< MonitorElement * > pfJet_phi
Definition: B2GDQM.h:153
MonitorElement * pfMet_pt
Definition: B2GDQM.h:166
MonitorElement * semiMu_muPtRel
Definition: B2GDQM.h:173
MonitorElement * allHad_wMass1
Definition: B2GDQM.h:204
MonitorElement * semiE_eEta
Definition: B2GDQM.h:183
MonitorElement * semiMu_muPt
Definition: B2GDQM.h:169
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * semiE_ePtRel
Definition: B2GDQM.h:186
std::vector< MonitorElement * > pfJet_cemf
Definition: B2GDQM.h:157
MonitorElement * allHad_y0
Definition: B2GDQM.h:196
std::vector< MonitorElement * > pfJet_nemf
Definition: B2GDQM.h:158
MonitorElement * allHad_pt0
Definition: B2GDQM.h:195
MonitorElement * semiE_ePt
Definition: B2GDQM.h:182
MonitorElement * allHad_wMass0
Definition: B2GDQM.h:199
MonitorElement * semiMu_mttbar
Definition: B2GDQM.h:180
std::vector< MonitorElement * > boostedJet_subjetPhi
Definition: B2GDQM.h:161
std::vector< MonitorElement * > pfJet_y
Definition: B2GDQM.h:152
MonitorElement * allHad_phi0
Definition: B2GDQM.h:197
MonitorElement * allHad_y1
Definition: B2GDQM.h:201
MonitorElement * semiMu_muPhi
Definition: B2GDQM.h:171
MonitorElement * semiE_eDRMin
Definition: B2GDQM.h:185
MonitorElement * semiMu_hadJetY
Definition: B2GDQM.h:176
MonitorElement * semiMu_muDRMin
Definition: B2GDQM.h:172
MonitorElement * semiMu_hadJetDR
Definition: B2GDQM.h:174
MonitorElement * semiE_hadJetPt
Definition: B2GDQM.h:188
MonitorElement * allHad_mass0
Definition: B2GDQM.h:198
std::vector< MonitorElement * > boostedJet_subjetN
Definition: B2GDQM.h:163
std::vector< MonitorElement * > boostedJet_subjetPt
Definition: B2GDQM.h:159
MonitorElement * allHad_mass1
Definition: B2GDQM.h:203
MonitorElement * semiE_hadJetMass
Definition: B2GDQM.h:191
MonitorElement * semiE_mttbar
Definition: B2GDQM.h:193
MonitorElement * semiMu_hadJetWMass
Definition: B2GDQM.h:179
std::vector< edm::InputTag > jetLabels_
Definition: B2GDQM.h:105
MonitorElement * semiE_hadJetDR
Definition: B2GDQM.h:187
MonitorElement * semiMu_muEta
Definition: B2GDQM.h:170
MonitorElement * allHad_pt1
Definition: B2GDQM.h:200
std::vector< MonitorElement * > pfJet_m
Definition: B2GDQM.h:154
MonitorElement * semiMu_hadJetPt
Definition: B2GDQM.h:175
MonitorElement * semiE_hadJetY
Definition: B2GDQM.h:189
MonitorElement * allHad_mttbar
Definition: B2GDQM.h:205
std::vector< MonitorElement * > pfJet_pt
Definition: B2GDQM.h:151
std::vector< MonitorElement * > boostedJet_massDrop
Definition: B2GDQM.h:164
MonitorElement * semiE_ePhi
Definition: B2GDQM.h:184
std::vector< MonitorElement * > pfJet_chef
Definition: B2GDQM.h:155
std::vector< MonitorElement * > boostedJet_wMass
Definition: B2GDQM.h:165
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MonitorElement * semiMu_hadJetPhi
Definition: B2GDQM.h:177
MonitorElement * semiE_hadJetWMass
Definition: B2GDQM.h:192
MonitorElement * pfMet_phi
Definition: B2GDQM.h:167
MonitorElement * allHad_phi1
Definition: B2GDQM.h:202
MonitorElement * semiMu_hadJetMass
Definition: B2GDQM.h:178
std::vector< MonitorElement * > boostedJet_subjetM
Definition: B2GDQM.h:162
int icoll
Definition: AMPTWrapper.h:146

Member Data Documentation

◆ allHad_mass0

MonitorElement* B2GDQM::allHad_mass0
private

Definition at line 198 of file B2GDQM.h.

◆ allHad_mass1

MonitorElement* B2GDQM::allHad_mass1
private

Definition at line 203 of file B2GDQM.h.

◆ allHad_mttbar

MonitorElement* B2GDQM::allHad_mttbar
private

Definition at line 205 of file B2GDQM.h.

◆ allHad_phi0

MonitorElement* B2GDQM::allHad_phi0
private

Definition at line 197 of file B2GDQM.h.

◆ allHad_phi1

MonitorElement* B2GDQM::allHad_phi1
private

Definition at line 202 of file B2GDQM.h.

◆ allHad_pt0

MonitorElement* B2GDQM::allHad_pt0
private

Definition at line 195 of file B2GDQM.h.

◆ allHad_pt1

MonitorElement* B2GDQM::allHad_pt1
private

Definition at line 200 of file B2GDQM.h.

◆ allHad_wMass0

MonitorElement* B2GDQM::allHad_wMass0
private

Definition at line 199 of file B2GDQM.h.

◆ allHad_wMass1

MonitorElement* B2GDQM::allHad_wMass1
private

Definition at line 204 of file B2GDQM.h.

◆ allHad_y0

MonitorElement* B2GDQM::allHad_y0
private

Definition at line 196 of file B2GDQM.h.

◆ allHad_y1

MonitorElement* B2GDQM::allHad_y1
private

Definition at line 201 of file B2GDQM.h.

◆ allHadDeltaPhiCut_

double B2GDQM::allHadDeltaPhiCut_
private

Definition at line 129 of file B2GDQM.h.

◆ allHadPtCut_

double B2GDQM::allHadPtCut_
private

Definition at line 127 of file B2GDQM.h.

◆ allHadRapidityCut_

double B2GDQM::allHadRapidityCut_
private

Definition at line 128 of file B2GDQM.h.

◆ boostedJet_massDrop

std::vector<MonitorElement*> B2GDQM::boostedJet_massDrop
private

Definition at line 164 of file B2GDQM.h.

◆ boostedJet_subjetM

std::vector<MonitorElement*> B2GDQM::boostedJet_subjetM
private

Definition at line 162 of file B2GDQM.h.

◆ boostedJet_subjetN

std::vector<MonitorElement*> B2GDQM::boostedJet_subjetN
private

Definition at line 163 of file B2GDQM.h.

◆ boostedJet_subjetPhi

std::vector<MonitorElement*> B2GDQM::boostedJet_subjetPhi
private

Definition at line 161 of file B2GDQM.h.

◆ boostedJet_subjetPt

std::vector<MonitorElement*> B2GDQM::boostedJet_subjetPt
private

Definition at line 159 of file B2GDQM.h.

◆ boostedJet_subjetY

std::vector<MonitorElement*> B2GDQM::boostedJet_subjetY
private

Definition at line 160 of file B2GDQM.h.

◆ boostedJet_wMass

std::vector<MonitorElement*> B2GDQM::boostedJet_wMass
private

Definition at line 165 of file B2GDQM.h.

◆ elecSelect_

std::shared_ptr<StringCutObjectSelector<reco::GsfElectron> > B2GDQM::elecSelect_
private

Definition at line 145 of file B2GDQM.h.

◆ electronLabel_

edm::InputTag B2GDQM::electronLabel_
private

Definition at line 118 of file B2GDQM.h.

◆ electronToken_

edm::EDGetTokenT<edm::View<reco::GsfElectron> > B2GDQM::electronToken_
private

Definition at line 119 of file B2GDQM.h.

◆ hltConfigProvider_

HLTConfigProvider B2GDQM::hltConfigProvider_
private

Definition at line 96 of file B2GDQM.h.

◆ ievt

int B2GDQM::ievt
private

Definition at line 94 of file B2GDQM.h.

◆ irun

int B2GDQM::irun
private

Definition at line 94 of file B2GDQM.h.

◆ isValidHltConfig_

bool B2GDQM::isValidHltConfig_
private

Definition at line 97 of file B2GDQM.h.

◆ jetLabels_

std::vector<edm::InputTag> B2GDQM::jetLabels_
private

Definition at line 105 of file B2GDQM.h.

◆ jetPtMins_

std::vector<double> B2GDQM::jetPtMins_
private

Definition at line 125 of file B2GDQM.h.

◆ jetTokens_

std::vector<edm::EDGetTokenT<edm::View<reco::Jet> > > B2GDQM::jetTokens_
private

Definition at line 106 of file B2GDQM.h.

◆ muonLabel_

edm::InputTag B2GDQM::muonLabel_
private

Definition at line 115 of file B2GDQM.h.

◆ muonSelect_

std::shared_ptr<StringCutObjectSelector<reco::Muon> > B2GDQM::muonSelect_
private

Definition at line 136 of file B2GDQM.h.

◆ muonToken_

edm::EDGetTokenT<edm::View<reco::Muon> > B2GDQM::muonToken_
private

Definition at line 116 of file B2GDQM.h.

◆ nEvents_

int B2GDQM::nEvents_
private

Definition at line 94 of file B2GDQM.h.

◆ nLumiSecs_

int B2GDQM::nLumiSecs_
private

Definition at line 93 of file B2GDQM.h.

◆ pfJet_cemf

std::vector<MonitorElement*> B2GDQM::pfJet_cemf
private

Definition at line 157 of file B2GDQM.h.

◆ pfJet_chef

std::vector<MonitorElement*> B2GDQM::pfJet_chef
private

Definition at line 155 of file B2GDQM.h.

◆ pfJet_m

std::vector<MonitorElement*> B2GDQM::pfJet_m
private

Definition at line 154 of file B2GDQM.h.

◆ pfJet_nemf

std::vector<MonitorElement*> B2GDQM::pfJet_nemf
private

Definition at line 158 of file B2GDQM.h.

◆ pfJet_nhef

std::vector<MonitorElement*> B2GDQM::pfJet_nhef
private

Definition at line 156 of file B2GDQM.h.

◆ pfJet_phi

std::vector<MonitorElement*> B2GDQM::pfJet_phi
private

Definition at line 153 of file B2GDQM.h.

◆ pfJet_pt

std::vector<MonitorElement*> B2GDQM::pfJet_pt
private

Definition at line 151 of file B2GDQM.h.

◆ pfJet_y

std::vector<MonitorElement*> B2GDQM::pfJet_y
private

Definition at line 152 of file B2GDQM.h.

◆ PFJetCorService_

std::string B2GDQM::PFJetCorService_
private

Definition at line 147 of file B2GDQM.h.

◆ pfMet_phi

MonitorElement* B2GDQM::pfMet_phi
private

Definition at line 167 of file B2GDQM.h.

◆ pfMet_pt

MonitorElement* B2GDQM::pfMet_pt
private

Definition at line 166 of file B2GDQM.h.

◆ PFMETLabel_

edm::InputTag B2GDQM::PFMETLabel_
private

Definition at line 107 of file B2GDQM.h.

◆ PFMETToken_

edm::EDGetTokenT<std::vector<reco::PFMET> > B2GDQM::PFMETToken_
private

Definition at line 108 of file B2GDQM.h.

◆ sdjetLabel_

edm::InputTag B2GDQM::sdjetLabel_
private

Definition at line 112 of file B2GDQM.h.

◆ sdjetToken_

edm::EDGetTokenT<edm::View<reco::BasicJet> > B2GDQM::sdjetToken_
private

Definition at line 113 of file B2GDQM.h.

◆ semiE_dphiHadCut_

double B2GDQM::semiE_dphiHadCut_
private

Definition at line 140 of file B2GDQM.h.

◆ semiE_dRMin_

double B2GDQM::semiE_dRMin_
private

Definition at line 142 of file B2GDQM.h.

◆ semiE_eDRMin

MonitorElement* B2GDQM::semiE_eDRMin
private

Definition at line 185 of file B2GDQM.h.

◆ semiE_eEta

MonitorElement* B2GDQM::semiE_eEta
private

Definition at line 183 of file B2GDQM.h.

◆ semiE_ePhi

MonitorElement* B2GDQM::semiE_ePhi
private

Definition at line 184 of file B2GDQM.h.

◆ semiE_ePt

MonitorElement* B2GDQM::semiE_ePt
private

Definition at line 182 of file B2GDQM.h.

◆ semiE_ePtRel

MonitorElement* B2GDQM::semiE_ePtRel
private

Definition at line 186 of file B2GDQM.h.

◆ semiE_hadJetDR

MonitorElement* B2GDQM::semiE_hadJetDR
private

Definition at line 187 of file B2GDQM.h.

◆ semiE_hadJetMass

MonitorElement* B2GDQM::semiE_hadJetMass
private

Definition at line 191 of file B2GDQM.h.

◆ semiE_hadJetPhi

MonitorElement* B2GDQM::semiE_hadJetPhi
private

Definition at line 190 of file B2GDQM.h.

◆ semiE_hadJetPt

MonitorElement* B2GDQM::semiE_hadJetPt
private

Definition at line 188 of file B2GDQM.h.

◆ semiE_HadJetPtCut_

double B2GDQM::semiE_HadJetPtCut_
private

Definition at line 138 of file B2GDQM.h.

◆ semiE_hadJetWMass

MonitorElement* B2GDQM::semiE_hadJetWMass
private

Definition at line 192 of file B2GDQM.h.

◆ semiE_hadJetY

MonitorElement* B2GDQM::semiE_hadJetY
private

Definition at line 189 of file B2GDQM.h.

◆ semiE_LepJetPtCut_

double B2GDQM::semiE_LepJetPtCut_
private

Definition at line 139 of file B2GDQM.h.

◆ semiE_mttbar

MonitorElement* B2GDQM::semiE_mttbar
private

Definition at line 193 of file B2GDQM.h.

◆ semiE_ptRel_

double B2GDQM::semiE_ptRel_
private

Definition at line 144 of file B2GDQM.h.

◆ semiMu_dphiHadCut_

double B2GDQM::semiMu_dphiHadCut_
private

Definition at line 133 of file B2GDQM.h.

◆ semiMu_dRMin_

double B2GDQM::semiMu_dRMin_
private

Definition at line 134 of file B2GDQM.h.

◆ semiMu_hadJetDR

MonitorElement* B2GDQM::semiMu_hadJetDR
private

Definition at line 174 of file B2GDQM.h.

◆ semiMu_hadJetMass

MonitorElement* B2GDQM::semiMu_hadJetMass
private

Definition at line 178 of file B2GDQM.h.

◆ semiMu_hadJetPhi

MonitorElement* B2GDQM::semiMu_hadJetPhi
private

Definition at line 177 of file B2GDQM.h.

◆ semiMu_hadJetPt

MonitorElement* B2GDQM::semiMu_hadJetPt
private

Definition at line 175 of file B2GDQM.h.

◆ semiMu_HadJetPtCut_

double B2GDQM::semiMu_HadJetPtCut_
private

Definition at line 131 of file B2GDQM.h.

◆ semiMu_hadJetWMass

MonitorElement* B2GDQM::semiMu_hadJetWMass
private

Definition at line 179 of file B2GDQM.h.

◆ semiMu_hadJetY

MonitorElement* B2GDQM::semiMu_hadJetY
private

Definition at line 176 of file B2GDQM.h.

◆ semiMu_LepJetPtCut_

double B2GDQM::semiMu_LepJetPtCut_
private

Definition at line 132 of file B2GDQM.h.

◆ semiMu_mttbar

MonitorElement* B2GDQM::semiMu_mttbar
private

Definition at line 180 of file B2GDQM.h.

◆ semiMu_muDRMin

MonitorElement* B2GDQM::semiMu_muDRMin
private

Definition at line 172 of file B2GDQM.h.

◆ semiMu_muEta

MonitorElement* B2GDQM::semiMu_muEta
private

Definition at line 170 of file B2GDQM.h.

◆ semiMu_muPhi

MonitorElement* B2GDQM::semiMu_muPhi
private

Definition at line 171 of file B2GDQM.h.

◆ semiMu_muPt

MonitorElement* B2GDQM::semiMu_muPt
private

Definition at line 169 of file B2GDQM.h.

◆ semiMu_muPtRel

MonitorElement* B2GDQM::semiMu_muPtRel
private

Definition at line 173 of file B2GDQM.h.

◆ semiMu_ptRel_

double B2GDQM::semiMu_ptRel_
private

Definition at line 135 of file B2GDQM.h.

◆ theTriggerResultsCollection

edm::InputTag B2GDQM::theTriggerResultsCollection
private

Definition at line 100 of file B2GDQM.h.

◆ triggerResults_

edm::Handle<edm::TriggerResults> B2GDQM::triggerResults_
private

Definition at line 103 of file B2GDQM.h.

◆ triggerToken_

edm::EDGetTokenT<edm::TriggerResults> B2GDQM::triggerToken_
private

Definition at line 101 of file B2GDQM.h.