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::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 B2GDQM (const edm::ParameterSet &ps)
 
 ~B2GDQM () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
 DQMEDAnalyzer (DQMEDAnalyzer const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer &&)=delete
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDAnalyzer () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

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 edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Private Member Functions

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

Private Attributes

MonitorElementallHad_mass0
 
MonitorElementallHad_mass1
 
MonitorElementallHad_minMass0
 
MonitorElementallHad_minMass1
 
MonitorElementallHad_mttbar
 
MonitorElementallHad_phi0
 
MonitorElementallHad_phi1
 
MonitorElementallHad_pt0
 
MonitorElementallHad_pt1
 
MonitorElementallHad_y0
 
MonitorElementallHad_y1
 
double allHadDeltaPhiCut_
 
double allHadPtCut_
 
double allHadRapidityCut_
 
std::vector< MonitorElement * > boostedJet_massDrop
 
std::vector< MonitorElement * > boostedJet_minMass
 
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
 
edm::InputTag cmsTagLabel_
 
edm::EDGetTokenT< edm::View< reco::BasicJet > > cmsTagToken_
 
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_
 
double semiE_dphiHadCut_
 
double semiE_dRMin_
 
MonitorElementsemiE_eDRMin
 
MonitorElementsemiE_eEta
 
MonitorElementsemiE_ePhi
 
MonitorElementsemiE_ePt
 
MonitorElementsemiE_ePtRel
 
MonitorElementsemiE_hadJetDR
 
MonitorElementsemiE_hadJetMass
 
MonitorElementsemiE_hadJetMinMass
 
MonitorElementsemiE_hadJetPhi
 
MonitorElementsemiE_hadJetPt
 
double semiE_HadJetPtCut_
 
MonitorElementsemiE_hadJetY
 
double semiE_LepJetPtCut_
 
MonitorElementsemiE_mttbar
 
double semiE_ptRel_
 
double semiMu_dphiHadCut_
 
double semiMu_dRMin_
 
MonitorElementsemiMu_hadJetDR
 
MonitorElementsemiMu_hadJetMass
 
MonitorElementsemiMu_hadJetMinMass
 
MonitorElementsemiMu_hadJetPhi
 
MonitorElementsemiMu_hadJetPt
 
double semiMu_HadJetPtCut_
 
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 edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 80 of file B2GDQM.h.

Constructor & Destructor Documentation

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

Definition at line 82 of file B2GDQM.cc.

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

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

Definition at line 144 of file B2GDQM.cc.

144  {
145  edm::LogInfo("B2GDQM") << " Deleting B2GDQM "
146  << "\n";
147 }

Member Function Documentation

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

Reimplemented from DQMEDAnalyzer.

Definition at line 311 of file B2GDQM.cc.

311  {
312 
313  analyzeJets(iEvent, iSetup);
314  analyzeSemiMu(iEvent, iSetup);
315  analyzeSemiE(iEvent, iSetup);
316  analyzeAllHad(iEvent, iSetup);
317 }
virtual void analyzeSemiMu(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: B2GDQM.cc:459
virtual void analyzeAllHad(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: B2GDQM.cc:415
int iEvent
Definition: GenABIO.cc:230
virtual void analyzeSemiE(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: B2GDQM.cc:536
virtual void analyzeJets(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: B2GDQM.cc:319
void B2GDQM::analyzeAllHad ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
protectedvirtual

Definition at line 415 of file B2GDQM.cc.

References funct::abs(), reco::deltaPhi(), edm::Event::getByToken(), edm::Ptr< T >::isAvailable(), M_PI, reco::LeafCandidate::mass(), reco::CATopJetProperties::minMass, reco::CompositePtrCandidate::numberOfDaughters(), reco::LeafCandidate::p4(), reco::LeafCandidate::phi(), reco::LeafCandidate::pt(), and reco::LeafCandidate::rapidity().

415  {
416 
418  bool validJets = iEvent.getByToken(cmsTagToken_, jetCollection);
419  if (!validJets) return;
420 
421  // Require two back-to-back jets at high pt with |delta y| < 1.0
422  if (jetCollection->size() < 2) return;
423  edm::Ptr<reco::BasicJet> jet0 = jetCollection->ptrAt(0);
424  edm::Ptr<reco::BasicJet> jet1 = jetCollection->ptrAt(1);
425  if (jet0.isAvailable() == false || jet1.isAvailable() == false) return;
426  if (jet0->pt() < allHadPtCut_ || jet1->pt() < allHadPtCut_) return;
427  if (std::abs(jet0->rapidity() - jet1->rapidity()) > allHadRapidityCut_)
428  return;
429  if (std::abs(reco::deltaPhi(jet0->phi(), jet1->phi())) < M_PI * 0.5) return;
430 
431  CATopJetHelper helper(173., 80.4);
432 
433  allHad_pt0->Fill(jet0->pt());
434  allHad_y0->Fill(jet0->rapidity());
435  allHad_phi0->Fill(jet0->phi());
436  allHad_mass0->Fill(jet0->mass());
437  reco::CATopJetProperties properties0 = helper(*jet0);
438  if (jet0->numberOfDaughters() > 2) {
439  allHad_minMass0->Fill(properties0.minMass);
440  } else {
441  allHad_minMass0->Fill(-1.0);
442  }
443 
444  allHad_pt1->Fill(jet1->pt());
445  allHad_y1->Fill(jet1->rapidity());
446  allHad_phi1->Fill(jet1->phi());
447  allHad_mass1->Fill(jet1->mass());
448  reco::CATopJetProperties properties1 = helper(*jet1);
449  if (jet1->numberOfDaughters() > 2) {
450  allHad_minMass1->Fill(properties1.minMass);
451  } else {
452  allHad_minMass1->Fill(-1.0);
453  }
454 
455  auto p4cand = (jet0->p4() + jet1->p4());
456  allHad_mttbar->Fill(p4cand.mass());
457 }
Definition: helper.py:1
MonitorElement * allHad_y0
Definition: B2GDQM.h:202
MonitorElement * allHad_pt0
Definition: B2GDQM.h:201
double rapidity() const final
rapidity
bool isAvailable() const
Definition: Ptr.h:258
MonitorElement * allHad_minMass1
Definition: B2GDQM.h:210
double pt() const final
transverse momentum
MonitorElement * allHad_phi0
Definition: B2GDQM.h:203
MonitorElement * allHad_y1
Definition: B2GDQM.h:207
MonitorElement * allHad_minMass0
Definition: B2GDQM.h:205
void Fill(long long x)
size_t numberOfDaughters() const override
number of daughters
int iEvent
Definition: GenABIO.cc:230
edm::EDGetTokenT< edm::View< reco::BasicJet > > cmsTagToken_
Definition: B2GDQM.h:117
MonitorElement * allHad_mass0
Definition: B2GDQM.h:204
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const LorentzVector & p4() const final
four-momentum Lorentz vector
Definition: LeafCandidate.h:99
MonitorElement * allHad_mass1
Definition: B2GDQM.h:209
#define M_PI
double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:22
double allHadPtCut_
Definition: B2GDQM.h:131
MonitorElement * allHad_pt1
Definition: B2GDQM.h:206
MonitorElement * allHad_mttbar
Definition: B2GDQM.h:211
double allHadRapidityCut_
Definition: B2GDQM.h:132
double phi() const final
momentum azimuthal angle
MonitorElement * allHad_phi1
Definition: B2GDQM.h:208
double mass() const final
mass
void B2GDQM::analyzeJets ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
protectedvirtual

Definition at line 319 of file B2GDQM.cc.

References edm::View< T >::begin(), reco::PFJet::chargedEmEnergyFraction(), reco::PFJet::chargedHadronEnergyFraction(), edm::View< T >::end(), edm::Event::getByToken(), icoll, metsig::jet, diffTwoXMLs::label, reco::Candidate::mass(), reco::CATopJetProperties::minMass, reco::PFJet::neutralEmEnergyFraction(), reco::PFJet::neutralHadronEnergyFraction(), reco::Candidate::phi(), EnergyCorrector::pt, reco::Candidate::pt(), and reco::Candidate::rapidity().

319  {
320 
321  // Loop over the different types of jets,
322  // Loop over the jets in that collection,
323  // fill PF jet information as well as substructure
324  // information for boosted jets.
325  // Utilizes the CMS top-tagging algorithm and the "mass drop" W-tagger.
326  for (unsigned int icoll = 0; icoll < jetLabels_.size(); ++icoll) {
327 
328  edm::Handle<edm::View<reco::Jet> > pfJetCollection;
329  bool ValidPFJets = iEvent.getByToken(jetTokens_[icoll], pfJetCollection);
330  if (!ValidPFJets) continue;
331  edm::View<reco::Jet> const& pfjets = *pfJetCollection;
332 
333  // Jet Correction
334  int countJet = 0;
335  // const JetCorrector* pfcorrector =
336  // JetCorrector::getJetCorrector(PFJetCorService_,iSetup);
337 
339  jetEnd = pfjets.end();
340  jet != jetEnd; ++jet) {
341  if (jet->pt() < jetPtMins_[icoll]) continue;
342  pfJet_pt[icoll]->Fill(jet->pt());
343  pfJet_y[icoll]->Fill(jet->rapidity());
344  pfJet_phi[icoll]->Fill(jet->phi());
345  pfJet_m[icoll]->Fill(jet->mass());
346 
347  // Dynamic cast the base class (reco::Jet) to the derived class (PFJet)
348  // to access the PFJet information
349  reco::PFJet const* pfjet = dynamic_cast<reco::PFJet const*>(&*jet);
350 
351  if (pfjet != nullptr) {
354  pfJet_cemf[icoll]->Fill(pfjet->chargedEmEnergyFraction());
355  pfJet_nemf[icoll]->Fill(pfjet->neutralEmEnergyFraction());
356  }
357 
358  // Dynamic cast the base class (reco::Jet) to the derived class (BasicJet)
359  // to access the substructure information
360  reco::BasicJet const* basicjet =
361  dynamic_cast<reco::BasicJet const*>(&*jet);
362 
363  if (basicjet != nullptr) {
364  boostedJet_subjetN[icoll]->Fill(jet->numberOfDaughters());
365 
366  for (unsigned int ida = 0; ida < jet->numberOfDaughters(); ++ida) {
367  reco::Candidate const* subjet = jet->daughter(ida);
368  boostedJet_subjetPt[icoll]->Fill(subjet->pt());
369  boostedJet_subjetY[icoll]->Fill(subjet->rapidity());
370  boostedJet_subjetPhi[icoll]->Fill(subjet->phi());
371  boostedJet_subjetM[icoll]->Fill(subjet->mass());
372  }
373  // Check the various tagging algorithms
374 
375  // For top-tagging, check the minimum mass pairing
376  if (jetLabels_[icoll].label() == "cmsTopTagPFJetsCHS") {
377  CATopJetHelper helper(173., 80.4);
378  reco::CATopJetProperties properties = helper(*basicjet);
379  if (jet->numberOfDaughters() > 2) {
380  boostedJet_minMass[icoll]->Fill(properties.minMass);
381  } else {
382  boostedJet_minMass[icoll]->Fill(-1.0);
383  }
384 
385  // For W-tagging, check the mass drop
386  } else if ((jetLabels_[icoll].label() == "ak8PFJetsCHSPruned")||(jetLabels_[icoll].label() == "ak8PFJetsCHSSoftdrop")) {
387  if (jet->numberOfDaughters() > 1) {
388  reco::Candidate const* da0 = jet->daughter(0);
389  reco::Candidate const* da1 = jet->daughter(1);
390  if (da0->mass() > da1->mass()) {
391  boostedJet_massDrop[icoll]->Fill(da0->mass() / jet->mass());
392  } else {
393  boostedJet_massDrop[icoll]->Fill(da1->mass() / jet->mass());
394  }
395  } else {
396  boostedJet_massDrop[icoll]->Fill(-1.0);
397  }
398 
399  } // end if collection is AK8 PFJets CHS Pruned
400 
401  } // end if basic jet != 0
402  countJet++;
403  }
404  }
405 
406  // PFMETs
407  edm::Handle<std::vector<reco::PFMET> > pfMETCollection;
408  bool ValidPFMET = iEvent.getByToken(PFMETToken_, pfMETCollection);
409  if (!ValidPFMET) return;
410 
411  pfMet_pt->Fill((*pfMETCollection)[0].pt());
412  pfMet_phi->Fill((*pfMETCollection)[0].phi());
413 }
std::vector< MonitorElement * > pfJet_nhef
Definition: B2GDQM.h:162
std::vector< MonitorElement * > boostedJet_subjetY
Definition: B2GDQM.h:166
std::vector< MonitorElement * > pfJet_phi
Definition: B2GDQM.h:159
MonitorElement * pfMet_pt
Definition: B2GDQM.h:172
Definition: helper.py:1
std::vector< MonitorElement * > pfJet_cemf
Definition: B2GDQM.h:163
std::vector< MonitorElement * > pfJet_nemf
Definition: B2GDQM.h:164
float chargedHadronEnergyFraction() const
chargedHadronEnergyFraction
Definition: PFJet.h:100
std::vector< double > jetPtMins_
Definition: B2GDQM.h:129
std::vector< MonitorElement * > boostedJet_subjetPhi
Definition: B2GDQM.h:167
std::vector< MonitorElement * > pfJet_y
Definition: B2GDQM.h:158
Jets made from CaloTowers.
Definition: BasicJet.h:20
Jets made from PFObjects.
Definition: PFJet.h:21
void Fill(long long x)
float neutralEmEnergyFraction() const
neutralEmEnergyFraction
Definition: PFJet.h:152
int iEvent
Definition: GenABIO.cc:230
const_iterator begin() const
std::vector< MonitorElement * > boostedJet_subjetN
Definition: B2GDQM.h:169
float neutralHadronEnergyFraction() const
neutralHadronEnergyFraction
Definition: PFJet.h:104
std::vector< MonitorElement * > boostedJet_subjetPt
Definition: B2GDQM.h:165
std::vector< edm::InputTag > jetLabels_
Definition: B2GDQM.h:111
std::vector< MonitorElement * > boostedJet_minMass
Definition: B2GDQM.h:171
float chargedEmEnergyFraction() const
chargedEmEnergyFraction
Definition: PFJet.h:144
std::vector< edm::EDGetTokenT< edm::View< reco::Jet > > > jetTokens_
Definition: B2GDQM.h:112
virtual double pt() const =0
transverse momentum
virtual double mass() const =0
mass
std::vector< MonitorElement * > pfJet_m
Definition: B2GDQM.h:160
virtual double rapidity() const =0
rapidity
std::vector< MonitorElement * > pfJet_pt
Definition: B2GDQM.h:157
std::vector< MonitorElement * > boostedJet_massDrop
Definition: B2GDQM.h:170
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
std::vector< MonitorElement * > pfJet_chef
Definition: B2GDQM.h:161
const_iterator end() const
edm::EDGetTokenT< std::vector< reco::PFMET > > PFMETToken_
Definition: B2GDQM.h:114
virtual double phi() const =0
momentum azimuthal angle
MonitorElement * pfMet_phi
Definition: B2GDQM.h:173
std::vector< MonitorElement * > boostedJet_subjetM
Definition: B2GDQM.h:168
int icoll
Definition: AMPTWrapper.h:136
void B2GDQM::analyzeSemiE ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
protectedvirtual

Definition at line 536 of file B2GDQM.cc.

References funct::abs(), reco::deltaPhi(), reco::deltaR(), allElectronIsolations_cfi::dRMin, metsig::electron, ElectronMcFakeValidator_cfi::electronCollection, reco::LeafCandidate::eta(), edm::Event::getByToken(), edm::Ptr< T >::isAvailable(), M_PI, reco::LeafCandidate::mass(), reco::CATopJetProperties::minMass, reco::CompositePtrCandidate::numberOfDaughters(), reco::LeafCandidate::p4(), reco::GsfElectron::p4(), reco::LeafCandidate::phi(), reco::LeafCandidate::pt(), ptRel(), and reco::LeafCandidate::rapidity().

536  {
537 
539  bool validElectrons = iEvent.getByToken(electronToken_, electronCollection);
540 
541  if (!validElectrons) return;
542  if (electronCollection->empty()) return;
543  reco::GsfElectron const& electron = electronCollection->at(0);
544  if (!(*elecSelect_)(electron)) return;
545 
547  bool validJets = iEvent.getByToken(cmsTagToken_, jetCollection);
548  if (!validJets) return;
549  if (jetCollection->size() < 2) return;
550 
551  double pt0 = -1.0;
552  double dRMin = 999.0;
553  edm::Ptr<reco::BasicJet> hadJet; // highest pt jet with dphi(lep,jet) > pi/2
554  edm::Ptr<reco::BasicJet> lepJet; // closest jet to lepton with pt > ptMin
555 
556  for (auto ijet = jetCollection->begin(), ijetBegin = ijet,
557  ijetEnd = jetCollection->end();
558  ijet != ijetEnd; ++ijet) {
559  // Hadronic jets
560  if (std::abs(reco::deltaPhi(electron, *ijet)) > M_PI * 0.5) {
561  if (ijet->pt() > pt0 && ijet->p() > semiE_HadJetPtCut_) {
562  hadJet = jetCollection->ptrAt(ijet - ijetBegin);
563  pt0 = hadJet->pt();
564  }
565  }
566  // Leptonic jets
567  else if (ijet->pt() > semiE_LepJetPtCut_) {
568  auto idRMin = reco::deltaR(electron, *ijet);
569  if (idRMin < dRMin) {
570  lepJet = jetCollection->ptrAt(ijet - ijetBegin);
571  dRMin = idRMin;
572  }
573  }
574  }
575  if (hadJet.isAvailable() == false || lepJet.isAvailable() == false) return;
576 
577  auto lepJetP4 = lepJet->p4();
578  const auto& electronP4 = electron.p4();
579 
580  double tot = lepJetP4.mag2();
581  double ss = electronP4.Dot(lepJet->p4());
582  double per = electronP4.mag2();
583  if (tot > 0.0) per -= ss * ss / tot;
584  if (per < 0) per = 0;
585  double ptRel = per;
586  bool pass2D = dRMin > semiE_dRMin_ || ptRel > semiE_ptRel_;
587 
588  if (!pass2D) return;
589 
590  CATopJetHelper helper(173., 80.4);
591 
592  semiE_ePt->Fill(electron.pt());
593  semiE_eEta->Fill(electron.eta());
594  semiE_ePhi->Fill(electron.phi());
595  semiE_eDRMin->Fill(dRMin);
596  semiE_ePtRel->Fill(ptRel);
597 
598  semiE_hadJetDR->Fill(reco::deltaR(electron, *hadJet));
599  semiE_mttbar->Fill(0.0);
600 
601  semiE_hadJetPt->Fill(hadJet->pt());
602  semiE_hadJetY->Fill(hadJet->rapidity());
603  semiE_hadJetPhi->Fill(hadJet->phi());
604  semiE_hadJetMass->Fill(hadJet->mass());
605  reco::CATopJetProperties properties0 = helper(*hadJet);
606  if (hadJet->numberOfDaughters() > 2) {
607  semiE_hadJetMinMass->Fill(properties0.minMass);
608  } else {
609  semiE_hadJetMinMass->Fill(-1.0);
610  }
611 }
MonitorElement * semiE_hadJetPhi
Definition: B2GDQM.h:196
double eta() const final
momentum pseudorapidity
Definition: helper.py:1
double semiE_HadJetPtCut_
Definition: B2GDQM.h:143
MonitorElement * semiE_eEta
Definition: B2GDQM.h:189
const LorentzVector & p4(P4Kind kind) const
Definition: GsfElectron.cc:225
MonitorElement * semiE_ePtRel
Definition: B2GDQM.h:192
MonitorElement * semiE_hadJetMinMass
Definition: B2GDQM.h:198
MonitorElement * semiE_ePt
Definition: B2GDQM.h:188
double rapidity() const final
rapidity
bool isAvailable() const
Definition: Ptr.h:258
double semiE_ptRel_
Definition: B2GDQM.h:149
double pt() const final
transverse momentum
void Fill(long long x)
size_t numberOfDaughters() const override
number of daughters
MonitorElement * semiE_eDRMin
Definition: B2GDQM.h:191
int iEvent
Definition: GenABIO.cc:230
MonitorElement * semiE_hadJetPt
Definition: B2GDQM.h:194
edm::EDGetTokenT< edm::View< reco::BasicJet > > cmsTagToken_
Definition: B2GDQM.h:117
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
const LorentzVector & p4() const final
four-momentum Lorentz vector
Definition: LeafCandidate.h:99
double semiE_dRMin_
Definition: B2GDQM.h:147
MonitorElement * semiE_hadJetMass
Definition: B2GDQM.h:197
MonitorElement * semiE_mttbar
Definition: B2GDQM.h:199
#define M_PI
MonitorElement * semiE_hadJetDR
Definition: B2GDQM.h:193
double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:22
float ptRel(const reco::Candidate::LorentzVector &muP4, const reco::Candidate::LorentzVector &jetP4, bool subtractMuon=true)
double semiE_LepJetPtCut_
Definition: B2GDQM.h:144
MonitorElement * semiE_hadJetY
Definition: B2GDQM.h:195
std::shared_ptr< StringCutObjectSelector< reco::GsfElectron > > elecSelect_
Definition: B2GDQM.h:151
MonitorElement * semiE_ePhi
Definition: B2GDQM.h:190
double phi() const final
momentum azimuthal angle
double mass() const final
mass
edm::EDGetTokenT< edm::View< reco::GsfElectron > > electronToken_
Definition: B2GDQM.h:123
void B2GDQM::analyzeSemiMu ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
protectedvirtual

Definition at line 459 of file B2GDQM.cc.

References funct::abs(), reco::deltaPhi(), reco::deltaR(), allElectronIsolations_cfi::dRMin, reco::LeafCandidate::eta(), edm::Event::getByToken(), edm::Ptr< T >::isAvailable(), M_PI, reco::LeafCandidate::mass(), reco::CATopJetProperties::minMass, HiRecoMuon_cff::muonCollection, reco::CompositePtrCandidate::numberOfDaughters(), reco::LeafCandidate::p4(), reco::LeafCandidate::phi(), reco::LeafCandidate::pt(), ptRel(), and reco::LeafCandidate::rapidity().

459  {
460 
462  bool validMuons = iEvent.getByToken(muonToken_, muonCollection);
463 
464  if (!validMuons) return;
465  if (muonCollection->empty()) return;
466  reco::Muon const& muon = muonCollection->at(0);
467  if (!(*muonSelect_)(muon)) return;
468 
470  bool validJets = iEvent.getByToken(cmsTagToken_, jetCollection);
471  if (!validJets) return;
472  if (jetCollection->size() < 2) return;
473 
474  double pt0 = -1.0;
475  double dRMin = 999.0;
476  edm::Ptr<reco::BasicJet> hadJet; // highest pt jet with dphi(lep,jet) > pi/2
477  edm::Ptr<reco::BasicJet> lepJet; // closest jet to lepton with pt > ptMin
478 
479  for (auto ijet = jetCollection->begin(), ijetBegin = ijet,
480  ijetEnd = jetCollection->end();
481  ijet != ijetEnd; ++ijet) {
482  // Hadronic jets
483  if (std::abs(reco::deltaPhi(muon, *ijet)) > M_PI * 0.5) {
484  if (ijet->pt() > pt0 && ijet->p() > semiMu_HadJetPtCut_) {
485  hadJet = jetCollection->ptrAt(ijet - ijetBegin);
486  pt0 = hadJet->pt();
487  }
488  }
489  // Leptonic jets
490  else if (ijet->pt() > semiMu_LepJetPtCut_) {
491  auto idRMin = reco::deltaR(muon, *ijet);
492  if (idRMin < dRMin) {
493  lepJet = jetCollection->ptrAt(ijet - ijetBegin);
494  dRMin = idRMin;
495  }
496  }
497  }
498  if (hadJet.isAvailable() == false || lepJet.isAvailable() == false) return;
499 
500  auto lepJetP4 = lepJet->p4();
501  const auto& muonP4 = muon.p4();
502 
503  double tot = lepJetP4.mag2();
504  double ss = muonP4.Dot(lepJet->p4());
505  double per = muonP4.mag2();
506  if (tot > 0.0) per -= ss * ss / tot;
507  if (per < 0) per = 0;
508  double ptRel = per;
509  bool pass2D = dRMin > semiMu_dRMin_ || ptRel > semiMu_ptRel_;
510 
511  if (!pass2D) return;
512 
513  CATopJetHelper helper(173., 80.4);
514 
515  semiMu_muPt->Fill(muon.pt());
516  semiMu_muEta->Fill(muon.eta());
517  semiMu_muPhi->Fill(muon.phi());
518  semiMu_muDRMin->Fill(dRMin);
519  semiMu_muPtRel->Fill(ptRel);
520 
521  semiMu_hadJetDR->Fill(reco::deltaR(muon, *hadJet));
522  semiMu_mttbar->Fill(0.0);
523 
524  semiMu_hadJetPt->Fill(hadJet->pt());
525  semiMu_hadJetY->Fill(hadJet->rapidity());
526  semiMu_hadJetPhi->Fill(hadJet->phi());
527  semiMu_hadJetMass->Fill(hadJet->mass());
528  reco::CATopJetProperties properties0 = helper(*hadJet);
529  if (hadJet->numberOfDaughters() > 2) {
530  semiMu_hadJetMinMass->Fill(properties0.minMass);
531  } else {
532  semiMu_hadJetMinMass->Fill(-1.0);
533  }
534 }
MonitorElement * semiMu_muPtRel
Definition: B2GDQM.h:179
double eta() const final
momentum pseudorapidity
Definition: helper.py:1
double semiMu_HadJetPtCut_
Definition: B2GDQM.h:135
MonitorElement * semiMu_muPt
Definition: B2GDQM.h:175
double rapidity() const final
rapidity
bool isAvailable() const
Definition: Ptr.h:258
MonitorElement * semiMu_mttbar
Definition: B2GDQM.h:186
double pt() const final
transverse momentum
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
Definition: B2GDQM.h:120
MonitorElement * semiMu_muPhi
Definition: B2GDQM.h:177
void Fill(long long x)
size_t numberOfDaughters() const override
number of daughters
int iEvent
Definition: GenABIO.cc:230
MonitorElement * semiMu_hadJetY
Definition: B2GDQM.h:182
MonitorElement * semiMu_muDRMin
Definition: B2GDQM.h:178
MonitorElement * semiMu_hadJetDR
Definition: B2GDQM.h:180
edm::EDGetTokenT< edm::View< reco::BasicJet > > cmsTagToken_
Definition: B2GDQM.h:117
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
const LorentzVector & p4() const final
four-momentum Lorentz vector
Definition: LeafCandidate.h:99
std::shared_ptr< StringCutObjectSelector< reco::Muon > > muonSelect_
Definition: B2GDQM.h:141
#define M_PI
double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:22
MonitorElement * semiMu_muEta
Definition: B2GDQM.h:176
double semiMu_ptRel_
Definition: B2GDQM.h:139
float ptRel(const reco::Candidate::LorentzVector &muP4, const reco::Candidate::LorentzVector &jetP4, bool subtractMuon=true)
MonitorElement * semiMu_hadJetMinMass
Definition: B2GDQM.h:185
MonitorElement * semiMu_hadJetPt
Definition: B2GDQM.h:181
double semiMu_dRMin_
Definition: B2GDQM.h:138
MonitorElement * semiMu_hadJetPhi
Definition: B2GDQM.h:183
double phi() const final
momentum azimuthal angle
double semiMu_LepJetPtCut_
Definition: B2GDQM.h:136
MonitorElement * semiMu_hadJetMass
Definition: B2GDQM.h:184
double mass() const final
mass
void B2GDQM::bookHistograms ( DQMStore::IBooker bei,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprivatevirtual

Implements DQMEDAnalyzer.

Definition at line 152 of file B2GDQM.cc.

References DQMStore::IBooker::book1D(), icoll, and DQMStore::IBooker::setCurrentFolder().

153  {
154 
155  bei.setCurrentFolder("Physics/B2G");
156 
157  //--- Jets
158 
159  for (unsigned int icoll = 0; icoll < jetLabels_.size(); ++icoll) {
160  std::stringstream ss;
161  ss << "Physics/B2G/" << jetLabels_[icoll].label();
162  bei.setCurrentFolder(ss.str());
163  pfJet_pt.push_back(
164  bei.book1D("pfJet_pt", "Pt of PFJet (GeV)", 50, 0.0, 1000));
165  pfJet_y.push_back(
166  bei.book1D("pfJet_y", "Rapidity of PFJet", 60, -6.0, 6.0));
167  pfJet_phi.push_back(bei.book1D("pfJet_phi", "#phi of PFJet (radians)", 60,
168  -3.14159, 3.14159));
169  pfJet_m.push_back(
170  bei.book1D("pfJet_m", "Mass of PFJet (GeV)", 50, 0.0, 500));
171  pfJet_chef.push_back(
172  bei.book1D("pfJet_pfchef", "PFJetID CHEF", 50, 0.0, 1.0));
173  pfJet_nhef.push_back(
174  bei.book1D("pfJet_pfnhef", "PFJetID NHEF", 50, 0.0, 1.0));
175  pfJet_cemf.push_back(
176  bei.book1D("pfJet_pfcemf", "PFJetID CEMF", 50, 0.0, 1.0));
177  pfJet_nemf.push_back(
178  bei.book1D("pfJet_pfnemf", "PFJetID NEMF", 50, 0.0, 1.0));
179 
180  boostedJet_subjetPt.push_back(
181  bei.book1D("boostedJet_subjetPt", "Pt of subjets (GeV)", 50, 0.0, 500));
182  boostedJet_subjetY.push_back(
183  bei.book1D("boostedJet_subjetY", "Rapidity of subjets", 60, -6.0, 6.0));
184  boostedJet_subjetPhi.push_back(bei.book1D("boostedJet_subjetPhi",
185  "#phi of subjets (radians)", 60,
186  -3.14159, 3.14159));
187  boostedJet_subjetM.push_back(bei.book1D(
188  "boostedJet_subjetM", "Mass of subjets (GeV)", 50, 0.0, 250.));
189  boostedJet_subjetN.push_back(
190  bei.book1D("boostedJet_subjetN", "Number of subjets", 10, 0, 10));
191  boostedJet_massDrop.push_back(bei.book1D(
192  "boostedJet_massDrop", "Mass drop for W-like jets", 50, 0.0, 1.0));
193  boostedJet_minMass.push_back(
194  bei.book1D("boostedJet_minMass",
195  "Minimum Mass Pairing for top-like jets", 50, 0.0, 250.0));
196  }
197 
198  bei.setCurrentFolder("Physics/B2G/MET");
199  pfMet_pt = bei.book1D("pfMet_pt", "Pf Missing p_{T}; GeV", 50, 0.0, 500);
200  pfMet_phi = bei.book1D("pfMet_phi", "Pf Missing p_{T} #phi;#phi (radians)",
201  35, -3.5, 3.5);
202 
203  //--- Mu+Jets
204  bei.setCurrentFolder("Physics/B2G/SemiMu");
205  semiMu_muPt = bei.book1D(
206  "semiMu_muPt", "Pt of Muon in #mu+Jets Channel (GeV)", 50, 0.0, 1000);
207  semiMu_muEta = bei.book1D("semiMu_muEta", "#eta of Muon in #mu+Jets Channel",
208  60, -6.0, 6.0);
209  semiMu_muPhi =
210  bei.book1D("semiMu_muPhi", "#phi of Muon in #mu+Jets Channel (radians)",
211  60, -3.14159, 3.14159);
213  bei.book1D("semiMu_muDRMin",
214  "#Delta R(E,nearest jet) in #mu+Jets Channel", 50, 0, 10.0);
215  semiMu_muPtRel = bei.book1D("semiMu_muPtRel",
216  "p_{T}^{REL} in #mu+Jets Channel", 60, 0, 300.);
218  bei.book1D("semiMu_hadJetDR", "#Delta R(E,had jet) in #mu+Jets Channel",
219  50, 0, 10.0);
220  semiMu_hadJetPt = bei.book1D(
221  "semiMu_hadJetPt", "Pt of Leading Hadronic Jet in #mu+Jets Channel (GeV)",
222  50, 0.0, 1000);
223  semiMu_hadJetY = bei.book1D(
224  "semiMu_hadJetY", "Rapidity of Leading Hadronic Jet in #mu+Jets Channel",
225  60, -6.0, 6.0);
227  bei.book1D("semiMu_hadJetPhi",
228  "#phi of Leading Hadronic Jet in #mu+Jets Channel (radians)",
229  60, -3.14159, 3.14159);
231  "semiMu_hadJetMass",
232  "Mass of Leading Hadronic Jet in #mu+Jets Channel (GeV)", 50, 0.0, 500);
234  "semiMu_hadJetminMass",
235  "Minimum Mass Pairing for Leading Hadronic Jet in #mu+Jets Channel (GeV)",
236  50, 0.0, 250.0);
237  semiMu_mttbar = bei.book1D(
238  "semiMu_mttbar", "Mass of #mu+Jets ttbar Candidate", 100, 0., 5000.);
239 
240  //--- E+Jets
241  bei.setCurrentFolder("Physics/B2G/SemiE");
242  semiE_ePt = bei.book1D("semiE_ePt", "Pt of Electron in e+Jets Channel (GeV)",
243  50, 0.0, 1000);
244  semiE_eEta = bei.book1D("semiE_eEta", "#eta of Electron in e+Jets Channel",
245  60, -6.0, 6.0);
246  semiE_ePhi =
247  bei.book1D("semiE_ePhi", "#phi of Electron in e+Jets Channel (radians)",
248  60, -3.14159, 3.14159);
249  semiE_eDRMin = bei.book1D(
250  "semiE_eDRMin", "#Delta R(E,nearest jet) in e+Jets Channel", 50, 0, 10.0);
251  semiE_ePtRel =
252  bei.book1D("semiE_ePtRel", "p_{T}^{REL} in e+Jets Channel", 60, 0, 300.);
253  semiE_hadJetDR = bei.book1D(
254  "semiE_hadJetDR", "#Delta R(E,had jet) in e+Jets Channel", 50, 0, 10.0);
255  semiE_hadJetPt = bei.book1D(
256  "semiE_hadJetPt", "Pt of Leading Hadronic Jet in e+Jets Channel (GeV)",
257  50, 0.0, 1000);
258  semiE_hadJetY = bei.book1D(
259  "semiE_hadJetY", "Rapidity of Leading Hadronic Jet in e+Jets Channel", 60,
260  -6.0, 6.0);
262  bei.book1D("semiE_hadJetPhi",
263  "#phi of Leading Hadronic Jet in e+Jets Channel (radians)", 60,
264  -3.14159, 3.14159);
265  semiE_hadJetMass = bei.book1D(
266  "semiE_hadJetMass",
267  "Mass of Leading Hadronic Jet in e+Jets Channel (GeV)", 50, 0.0, 500);
269  "semiE_hadJetminMass",
270  "Minimum Mass Pairing for Leading Hadronic Jet in e+Jets Channel (GeV)",
271  50, 0.0, 250.0);
272  semiE_mttbar = bei.book1D("semiE_mttbar", "Mass of e+Jets ttbar Candidate",
273  100, 0., 5000.);
274 
275  //--- All-hadronic
276  bei.setCurrentFolder("Physics/B2G/AllHad");
277  allHad_pt0 = bei.book1D(
278  "allHad_pt0", "Pt of Leading All-Hadronic PFJet (GeV)", 50, 0.0, 1000);
279  allHad_y0 = bei.book1D("allHad_y0", "Rapidity of Leading All-Hadronic PFJet",
280  60, -6.0, 6.0);
281  allHad_phi0 =
282  bei.book1D("allHad_phi0", "#phi of Leading All-Hadronic PFJet (radians)",
283  60, -3.14159, 3.14159);
284  allHad_mass0 = bei.book1D(
285  "allHad_mass0", "Mass of Leading All-Hadronic PFJet (GeV)", 50, 0.0, 500);
287  bei.book1D("allHad_minMass0",
288  "Minimum Mass Pairing for Leading All-Hadronic PFJet (GeV)",
289  50, 0.0, 250.0);
290  allHad_pt1 = bei.book1D(
291  "allHad_pt1", "Pt of Subleading All-Hadronic PFJet (GeV)", 50, 0.0, 1000);
292  allHad_y1 = bei.book1D(
293  "allHad_y1", "Rapidity of Subleading All-Hadronic PFJet", 60, -6.0, 6.0);
294  allHad_phi1 = bei.book1D("allHad_phi1",
295  "#phi of Subleading All-Hadronic PFJet (radians)",
296  60, -3.14159, 3.14159);
297  allHad_mass1 =
298  bei.book1D("allHad_mass1", "Mass of Subleading All-Hadronic PFJet (GeV)",
299  50, 0.0, 500);
301  bei.book1D("allHad_minMass1",
302  "Minimum Mass Pairing for Subleading All-Hadronic PFJet (GeV)",
303  50, 0.0, 250.0);
304  allHad_mttbar = bei.book1D(
305  "allHad_mttbar", "Mass of All-Hadronic ttbar Candidate", 100, 0., 5000.);
306 }
std::vector< MonitorElement * > pfJet_nhef
Definition: B2GDQM.h:162
MonitorElement * semiE_hadJetPhi
Definition: B2GDQM.h:196
std::vector< MonitorElement * > boostedJet_subjetY
Definition: B2GDQM.h:166
std::vector< MonitorElement * > pfJet_phi
Definition: B2GDQM.h:159
MonitorElement * pfMet_pt
Definition: B2GDQM.h:172
MonitorElement * semiMu_muPtRel
Definition: B2GDQM.h:179
MonitorElement * semiE_eEta
Definition: B2GDQM.h:189
MonitorElement * semiMu_muPt
Definition: B2GDQM.h:175
MonitorElement * semiE_ePtRel
Definition: B2GDQM.h:192
std::vector< MonitorElement * > pfJet_cemf
Definition: B2GDQM.h:163
MonitorElement * allHad_y0
Definition: B2GDQM.h:202
std::vector< MonitorElement * > pfJet_nemf
Definition: B2GDQM.h:164
MonitorElement * allHad_pt0
Definition: B2GDQM.h:201
MonitorElement * semiE_hadJetMinMass
Definition: B2GDQM.h:198
MonitorElement * semiE_ePt
Definition: B2GDQM.h:188
MonitorElement * semiMu_mttbar
Definition: B2GDQM.h:186
MonitorElement * allHad_minMass1
Definition: B2GDQM.h:210
std::vector< MonitorElement * > boostedJet_subjetPhi
Definition: B2GDQM.h:167
std::vector< MonitorElement * > pfJet_y
Definition: B2GDQM.h:158
MonitorElement * allHad_phi0
Definition: B2GDQM.h:203
MonitorElement * allHad_y1
Definition: B2GDQM.h:207
MonitorElement * semiMu_muPhi
Definition: B2GDQM.h:177
MonitorElement * allHad_minMass0
Definition: B2GDQM.h:205
MonitorElement * semiE_eDRMin
Definition: B2GDQM.h:191
MonitorElement * semiMu_hadJetY
Definition: B2GDQM.h:182
MonitorElement * semiMu_muDRMin
Definition: B2GDQM.h:178
MonitorElement * semiMu_hadJetDR
Definition: B2GDQM.h:180
MonitorElement * semiE_hadJetPt
Definition: B2GDQM.h:194
MonitorElement * allHad_mass0
Definition: B2GDQM.h:204
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:118
std::vector< MonitorElement * > boostedJet_subjetN
Definition: B2GDQM.h:169
std::vector< MonitorElement * > boostedJet_subjetPt
Definition: B2GDQM.h:165
MonitorElement * allHad_mass1
Definition: B2GDQM.h:209
MonitorElement * semiE_hadJetMass
Definition: B2GDQM.h:197
MonitorElement * semiE_mttbar
Definition: B2GDQM.h:199
std::vector< edm::InputTag > jetLabels_
Definition: B2GDQM.h:111
MonitorElement * semiE_hadJetDR
Definition: B2GDQM.h:193
std::vector< MonitorElement * > boostedJet_minMass
Definition: B2GDQM.h:171
MonitorElement * semiMu_muEta
Definition: B2GDQM.h:176
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:279
MonitorElement * semiMu_hadJetMinMass
Definition: B2GDQM.h:185
MonitorElement * allHad_pt1
Definition: B2GDQM.h:206
std::vector< MonitorElement * > pfJet_m
Definition: B2GDQM.h:160
MonitorElement * semiMu_hadJetPt
Definition: B2GDQM.h:181
MonitorElement * semiE_hadJetY
Definition: B2GDQM.h:195
MonitorElement * allHad_mttbar
Definition: B2GDQM.h:211
std::vector< MonitorElement * > pfJet_pt
Definition: B2GDQM.h:157
std::vector< MonitorElement * > boostedJet_massDrop
Definition: B2GDQM.h:170
MonitorElement * semiE_ePhi
Definition: B2GDQM.h:190
std::vector< MonitorElement * > pfJet_chef
Definition: B2GDQM.h:161
MonitorElement * semiMu_hadJetPhi
Definition: B2GDQM.h:183
MonitorElement * pfMet_phi
Definition: B2GDQM.h:173
MonitorElement * allHad_phi1
Definition: B2GDQM.h:208
MonitorElement * semiMu_hadJetMass
Definition: B2GDQM.h:184
std::vector< MonitorElement * > boostedJet_subjetM
Definition: B2GDQM.h:168
int icoll
Definition: AMPTWrapper.h:136

Member Data Documentation

MonitorElement* B2GDQM::allHad_mass0
private

Definition at line 204 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_mass1
private

Definition at line 209 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_minMass0
private

Definition at line 205 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_minMass1
private

Definition at line 210 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_mttbar
private

Definition at line 211 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_phi0
private

Definition at line 203 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_phi1
private

Definition at line 208 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_pt0
private

Definition at line 201 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_pt1
private

Definition at line 206 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_y0
private

Definition at line 202 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_y1
private

Definition at line 207 of file B2GDQM.h.

double B2GDQM::allHadDeltaPhiCut_
private

Definition at line 133 of file B2GDQM.h.

double B2GDQM::allHadPtCut_
private

Definition at line 131 of file B2GDQM.h.

double B2GDQM::allHadRapidityCut_
private

Definition at line 132 of file B2GDQM.h.

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

Definition at line 170 of file B2GDQM.h.

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

Definition at line 171 of file B2GDQM.h.

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

Definition at line 168 of file B2GDQM.h.

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

Definition at line 169 of file B2GDQM.h.

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

Definition at line 167 of file B2GDQM.h.

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

Definition at line 165 of file B2GDQM.h.

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

Definition at line 166 of file B2GDQM.h.

edm::InputTag B2GDQM::cmsTagLabel_
private

Definition at line 116 of file B2GDQM.h.

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

Definition at line 117 of file B2GDQM.h.

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

Definition at line 151 of file B2GDQM.h.

edm::InputTag B2GDQM::electronLabel_
private

Definition at line 122 of file B2GDQM.h.

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

Definition at line 123 of file B2GDQM.h.

HLTConfigProvider B2GDQM::hltConfigProvider_
private

Definition at line 102 of file B2GDQM.h.

int B2GDQM::ievt
private

Definition at line 100 of file B2GDQM.h.

int B2GDQM::irun
private

Definition at line 100 of file B2GDQM.h.

bool B2GDQM::isValidHltConfig_
private

Definition at line 103 of file B2GDQM.h.

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

Definition at line 111 of file B2GDQM.h.

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

Definition at line 129 of file B2GDQM.h.

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

Definition at line 112 of file B2GDQM.h.

edm::InputTag B2GDQM::muonLabel_
private

Definition at line 119 of file B2GDQM.h.

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

Definition at line 141 of file B2GDQM.h.

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

Definition at line 120 of file B2GDQM.h.

int B2GDQM::nEvents_
private

Definition at line 100 of file B2GDQM.h.

int B2GDQM::nLumiSecs_
private

Definition at line 99 of file B2GDQM.h.

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

Definition at line 163 of file B2GDQM.h.

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

Definition at line 161 of file B2GDQM.h.

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

Definition at line 160 of file B2GDQM.h.

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

Definition at line 164 of file B2GDQM.h.

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

Definition at line 162 of file B2GDQM.h.

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

Definition at line 159 of file B2GDQM.h.

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

Definition at line 157 of file B2GDQM.h.

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

Definition at line 158 of file B2GDQM.h.

std::string B2GDQM::PFJetCorService_
private

Definition at line 153 of file B2GDQM.h.

MonitorElement* B2GDQM::pfMet_phi
private

Definition at line 173 of file B2GDQM.h.

MonitorElement* B2GDQM::pfMet_pt
private

Definition at line 172 of file B2GDQM.h.

edm::InputTag B2GDQM::PFMETLabel_
private

Definition at line 113 of file B2GDQM.h.

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

Definition at line 114 of file B2GDQM.h.

double B2GDQM::semiE_dphiHadCut_
private

Definition at line 145 of file B2GDQM.h.

double B2GDQM::semiE_dRMin_
private

Definition at line 147 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_eDRMin
private

Definition at line 191 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_eEta
private

Definition at line 189 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_ePhi
private

Definition at line 190 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_ePt
private

Definition at line 188 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_ePtRel
private

Definition at line 192 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_hadJetDR
private

Definition at line 193 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_hadJetMass
private

Definition at line 197 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_hadJetMinMass
private

Definition at line 198 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_hadJetPhi
private

Definition at line 196 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_hadJetPt
private

Definition at line 194 of file B2GDQM.h.

double B2GDQM::semiE_HadJetPtCut_
private

Definition at line 143 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_hadJetY
private

Definition at line 195 of file B2GDQM.h.

double B2GDQM::semiE_LepJetPtCut_
private

Definition at line 144 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_mttbar
private

Definition at line 199 of file B2GDQM.h.

double B2GDQM::semiE_ptRel_
private

Definition at line 149 of file B2GDQM.h.

double B2GDQM::semiMu_dphiHadCut_
private

Definition at line 137 of file B2GDQM.h.

double B2GDQM::semiMu_dRMin_
private

Definition at line 138 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_hadJetDR
private

Definition at line 180 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_hadJetMass
private

Definition at line 184 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_hadJetMinMass
private

Definition at line 185 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_hadJetPhi
private

Definition at line 183 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_hadJetPt
private

Definition at line 181 of file B2GDQM.h.

double B2GDQM::semiMu_HadJetPtCut_
private

Definition at line 135 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_hadJetY
private

Definition at line 182 of file B2GDQM.h.

double B2GDQM::semiMu_LepJetPtCut_
private

Definition at line 136 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_mttbar
private

Definition at line 186 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_muDRMin
private

Definition at line 178 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_muEta
private

Definition at line 176 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_muPhi
private

Definition at line 177 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_muPt
private

Definition at line 175 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_muPtRel
private

Definition at line 179 of file B2GDQM.h.

double B2GDQM::semiMu_ptRel_
private

Definition at line 139 of file B2GDQM.h.

edm::InputTag B2GDQM::theTriggerResultsCollection
private

Definition at line 106 of file B2GDQM.h.

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

Definition at line 109 of file B2GDQM.h.

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

Definition at line 107 of file B2GDQM.h.