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::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator > 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 &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
 
virtual void dqmBeginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
virtual void dqmEndLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () 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 () noexcept(false) 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
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
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)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
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::ProducerBase
ProducesCollector producesCollector ()
 
- 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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
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 DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- 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 78 of file B2GDQM.h.

Constructor & Destructor Documentation

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

Definition at line 81 of file B2GDQM.cc.

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

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

Definition at line 138 of file B2GDQM.cc.

138  {
139  edm::LogInfo("B2GDQM") << " Deleting B2GDQM "
140  << "\n";
141 }

Member Function Documentation

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

Reimplemented from DQMEDAnalyzer.

Definition at line 236 of file B2GDQM.cc.

236  {
237  analyzeJets(iEvent, iSetup);
238  analyzeSemiMu(iEvent, iSetup);
239  analyzeSemiE(iEvent, iSetup);
240  analyzeAllHad(iEvent, iSetup);
241 }
virtual void analyzeSemiMu(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: B2GDQM.cc:386
virtual void analyzeAllHad(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: B2GDQM.cc:338
int iEvent
Definition: GenABIO.cc:224
virtual void analyzeSemiE(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: B2GDQM.cc:469
virtual void analyzeJets(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: B2GDQM.cc:243
void B2GDQM::analyzeAllHad ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
protectedvirtual

Definition at line 338 of file B2GDQM.cc.

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

338  {
340  bool validJets = iEvent.getByToken(cmsTagToken_, jetCollection);
341  if (!validJets)
342  return;
343 
344  // Require two back-to-back jets at high pt with |delta y| < 1.0
345  if (jetCollection->size() < 2)
346  return;
347  edm::Ptr<reco::BasicJet> jet0 = jetCollection->ptrAt(0);
348  edm::Ptr<reco::BasicJet> jet1 = jetCollection->ptrAt(1);
349  if (jet0.isAvailable() == false || jet1.isAvailable() == false)
350  return;
351  if (jet0->pt() < allHadPtCut_ || jet1->pt() < allHadPtCut_)
352  return;
353  if (std::abs(jet0->rapidity() - jet1->rapidity()) > allHadRapidityCut_)
354  return;
355  if (std::abs(reco::deltaPhi(jet0->phi(), jet1->phi())) < M_PI * 0.5)
356  return;
357 
358  CATopJetHelper helper(173., 80.4);
359 
360  allHad_pt0->Fill(jet0->pt());
361  allHad_y0->Fill(jet0->rapidity());
362  allHad_phi0->Fill(jet0->phi());
363  allHad_mass0->Fill(jet0->mass());
364  reco::CATopJetProperties properties0 = helper(*jet0);
365  if (jet0->numberOfDaughters() > 2) {
366  allHad_minMass0->Fill(properties0.minMass);
367  } else {
368  allHad_minMass0->Fill(-1.0);
369  }
370 
371  allHad_pt1->Fill(jet1->pt());
372  allHad_y1->Fill(jet1->rapidity());
373  allHad_phi1->Fill(jet1->phi());
374  allHad_mass1->Fill(jet1->mass());
375  reco::CATopJetProperties properties1 = helper(*jet1);
376  if (jet1->numberOfDaughters() > 2) {
377  allHad_minMass1->Fill(properties1.minMass);
378  } else {
379  allHad_minMass1->Fill(-1.0);
380  }
381 
382  auto p4cand = (jet0->p4() + jet1->p4());
383  allHad_mttbar->Fill(p4cand.mass());
384 }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
Definition: helper.py:1
MonitorElement * allHad_y0
Definition: B2GDQM.h:194
MonitorElement * allHad_pt0
Definition: B2GDQM.h:193
double rapidity() const final
rapidity
bool isAvailable() const
Definition: Ptr.h:229
MonitorElement * allHad_minMass1
Definition: B2GDQM.h:202
double pt() const final
transverse momentum
MonitorElement * allHad_phi0
Definition: B2GDQM.h:195
MonitorElement * allHad_y1
Definition: B2GDQM.h:199
MonitorElement * allHad_minMass0
Definition: B2GDQM.h:197
size_t numberOfDaughters() const override
number of daughters
void Fill(long long x)
int iEvent
Definition: GenABIO.cc:224
edm::EDGetTokenT< edm::View< reco::BasicJet > > cmsTagToken_
Definition: B2GDQM.h:111
MonitorElement * allHad_mass0
Definition: B2GDQM.h:196
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const LorentzVector & p4() const final
four-momentum Lorentz vector
MonitorElement * allHad_mass1
Definition: B2GDQM.h:201
#define M_PI
double allHadPtCut_
Definition: B2GDQM.h:125
MonitorElement * allHad_pt1
Definition: B2GDQM.h:198
MonitorElement * allHad_mttbar
Definition: B2GDQM.h:203
double allHadRapidityCut_
Definition: B2GDQM.h:126
double phi() const final
momentum azimuthal angle
MonitorElement * allHad_phi1
Definition: B2GDQM.h:200
double mass() const final
mass
void B2GDQM::analyzeJets ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
protectedvirtual

Definition at line 243 of file B2GDQM.cc.

References edm::View< T >::begin(), reco::PFJet::chargedEmEnergyFraction(), reco::PFJet::chargedHadronEnergyFraction(), watchdog::const, edm::View< T >::end(), edm::Event::getByToken(), icoll, metsig::jet, label, reco::Candidate::mass(), reco::CATopJetProperties::minMass, 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().

243  {
244  // Loop over the different types of jets,
245  // Loop over the jets in that collection,
246  // fill PF jet information as well as substructure
247  // information for boosted jets.
248  // Utilizes the CMS top-tagging algorithm and the "mass drop" W-tagger.
249  for (unsigned int icoll = 0; icoll < jetLabels_.size(); ++icoll) {
251  bool ValidPFJets = iEvent.getByToken(jetTokens_[icoll], pfJetCollection);
252  if (!ValidPFJets)
253  continue;
254  edm::View<reco::Jet> const& pfjets = *pfJetCollection;
255 
256  // Jet Correction
257  int countJet = 0;
258  // const JetCorrector* pfcorrector =
259  // JetCorrector::getJetCorrector(PFJetCorService_,iSetup);
260 
261  for (edm::View<reco::Jet>::const_iterator jet = pfjets.begin(), jetEnd = pfjets.end(); jet != jetEnd; ++jet) {
262  if (jet->pt() < jetPtMins_[icoll])
263  continue;
264  pfJet_pt[icoll]->Fill(jet->pt());
265  pfJet_y[icoll]->Fill(jet->rapidity());
266  pfJet_phi[icoll]->Fill(jet->phi());
267  pfJet_m[icoll]->Fill(jet->mass());
268 
269  // Dynamic cast the base class (reco::Jet) to the derived class (PFJet)
270  // to access the PFJet information
271  reco::PFJet const* pfjet = dynamic_cast<reco::PFJet const*>(&*jet);
272 
273  if (pfjet != nullptr) {
276  pfJet_cemf[icoll]->Fill(pfjet->chargedEmEnergyFraction());
277  pfJet_nemf[icoll]->Fill(pfjet->neutralEmEnergyFraction());
278  }
279 
280  // Dynamic cast the base class (reco::Jet) to the derived class (BasicJet)
281  // to access the substructure information
282  reco::BasicJet const* basicjet = dynamic_cast<reco::BasicJet const*>(&*jet);
283 
284  if (basicjet != nullptr) {
285  boostedJet_subjetN[icoll]->Fill(jet->numberOfDaughters());
286 
287  for (unsigned int ida = 0; ida < jet->numberOfDaughters(); ++ida) {
288  reco::Candidate const* subjet = jet->daughter(ida);
289  boostedJet_subjetPt[icoll]->Fill(subjet->pt());
290  boostedJet_subjetY[icoll]->Fill(subjet->rapidity());
291  boostedJet_subjetPhi[icoll]->Fill(subjet->phi());
292  boostedJet_subjetM[icoll]->Fill(subjet->mass());
293  }
294  // Check the various tagging algorithms
295 
296  // For top-tagging, check the minimum mass pairing
297  if (jetLabels_[icoll].label() == "cmsTopTagPFJetsCHS") {
298  CATopJetHelper helper(173., 80.4);
299  reco::CATopJetProperties properties = helper(*basicjet);
300  if (jet->numberOfDaughters() > 2) {
301  boostedJet_minMass[icoll]->Fill(properties.minMass);
302  } else {
303  boostedJet_minMass[icoll]->Fill(-1.0);
304  }
305 
306  // For W-tagging, check the mass drop
307  } else if ((jetLabels_[icoll].label() == "ak8PFJetsCHSPruned") ||
308  (jetLabels_[icoll].label() == "ak8PFJetsCHSSoftdrop")) {
309  if (jet->numberOfDaughters() > 1) {
310  reco::Candidate const* da0 = jet->daughter(0);
311  reco::Candidate const* da1 = jet->daughter(1);
312  if (da0->mass() > da1->mass()) {
313  boostedJet_massDrop[icoll]->Fill(da0->mass() / jet->mass());
314  } else {
315  boostedJet_massDrop[icoll]->Fill(da1->mass() / jet->mass());
316  }
317  } else {
318  boostedJet_massDrop[icoll]->Fill(-1.0);
319  }
320 
321  } // end if collection is AK8 PFJets CHS Pruned
322 
323  } // end if basic jet != 0
324  countJet++;
325  }
326  }
327 
328  // PFMETs
330  bool ValidPFMET = iEvent.getByToken(PFMETToken_, pfMETCollection);
331  if (!ValidPFMET)
332  return;
333 
334  pfMet_pt->Fill((*pfMETCollection)[0].pt());
335  pfMet_phi->Fill((*pfMETCollection)[0].phi());
336 }
std::vector< MonitorElement * > pfJet_nhef
Definition: B2GDQM.h:154
std::vector< MonitorElement * > boostedJet_subjetY
Definition: B2GDQM.h:158
std::vector< MonitorElement * > pfJet_phi
Definition: B2GDQM.h:151
MonitorElement * pfMet_pt
Definition: B2GDQM.h:164
Definition: helper.py:1
std::vector< MonitorElement * > pfJet_cemf
Definition: B2GDQM.h:155
std::vector< MonitorElement * > pfJet_nemf
Definition: B2GDQM.h:156
float chargedHadronEnergyFraction() const
chargedHadronEnergyFraction
Definition: PFJet.h:97
std::vector< double > jetPtMins_
Definition: B2GDQM.h:123
std::vector< MonitorElement * > boostedJet_subjetPhi
Definition: B2GDQM.h:159
std::vector< MonitorElement * > pfJet_y
Definition: B2GDQM.h:150
Jets made from CaloTowers.
Definition: BasicJet.h:19
Jets made from PFObjects.
Definition: PFJet.h:20
void Fill(long long x)
char const * label
float neutralEmEnergyFraction() const
neutralEmEnergyFraction
Definition: PFJet.h:149
int iEvent
Definition: GenABIO.cc:224
const_iterator begin() const
std::vector< MonitorElement * > boostedJet_subjetN
Definition: B2GDQM.h:161
float neutralHadronEnergyFraction() const
neutralHadronEnergyFraction
Definition: PFJet.h:101
std::vector< MonitorElement * > boostedJet_subjetPt
Definition: B2GDQM.h:157
std::vector< edm::InputTag > jetLabels_
Definition: B2GDQM.h:105
std::vector< MonitorElement * > boostedJet_minMass
Definition: B2GDQM.h:163
float chargedEmEnergyFraction() const
chargedEmEnergyFraction
Definition: PFJet.h:141
std::vector< edm::EDGetTokenT< edm::View< reco::Jet > > > jetTokens_
Definition: B2GDQM.h:106
virtual double pt() const =0
transverse momentum
virtual double mass() const =0
mass
std::vector< MonitorElement * > pfJet_m
Definition: B2GDQM.h:152
virtual double rapidity() const =0
rapidity
std::vector< MonitorElement * > pfJet_pt
Definition: B2GDQM.h:149
std::vector< MonitorElement * > boostedJet_massDrop
Definition: B2GDQM.h:162
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
std::vector< MonitorElement * > pfJet_chef
Definition: B2GDQM.h:153
const_iterator end() const
edm::EDGetTokenT< std::vector< reco::PFMET > > PFMETToken_
Definition: B2GDQM.h:108
virtual double phi() const =0
momentum azimuthal angle
MonitorElement * pfMet_phi
Definition: B2GDQM.h:165
std::vector< MonitorElement * > boostedJet_subjetM
Definition: B2GDQM.h:160
int icoll
Definition: AMPTWrapper.h:146
void B2GDQM::analyzeSemiE ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
protectedvirtual

Definition at line 469 of file B2GDQM.cc.

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

469  {
471  bool validElectrons = iEvent.getByToken(electronToken_, electronCollection);
472 
473  if (!validElectrons)
474  return;
475  if (electronCollection->empty())
476  return;
477  reco::GsfElectron const& electron = electronCollection->at(0);
478  if (!(*elecSelect_)(electron))
479  return;
480 
482  bool validJets = iEvent.getByToken(cmsTagToken_, jetCollection);
483  if (!validJets)
484  return;
485  if (jetCollection->size() < 2)
486  return;
487 
488  double pt0 = -1.0;
489  double dRMin = 999.0;
490  edm::Ptr<reco::BasicJet> hadJet; // highest pt jet with dphi(lep,jet) > pi/2
491  edm::Ptr<reco::BasicJet> lepJet; // closest jet to lepton with pt > ptMin
492 
493  for (auto ijet = jetCollection->begin(), ijetBegin = ijet, ijetEnd = jetCollection->end(); ijet != ijetEnd; ++ijet) {
494  // Hadronic jets
495  if (std::abs(reco::deltaPhi(electron, *ijet)) > M_PI * 0.5) {
496  if (ijet->pt() > pt0 && ijet->p() > semiE_HadJetPtCut_) {
497  hadJet = jetCollection->ptrAt(ijet - ijetBegin);
498  pt0 = hadJet->pt();
499  }
500  }
501  // Leptonic jets
502  else if (ijet->pt() > semiE_LepJetPtCut_) {
503  auto idRMin = reco::deltaR(electron, *ijet);
504  if (idRMin < dRMin) {
505  lepJet = jetCollection->ptrAt(ijet - ijetBegin);
506  dRMin = idRMin;
507  }
508  }
509  }
510  if (hadJet.isAvailable() == false || lepJet.isAvailable() == false)
511  return;
512 
513  auto lepJetP4 = lepJet->p4();
514  const auto& electronP4 = electron.p4();
515 
516  double tot = lepJetP4.mag2();
517  double ss = electronP4.Dot(lepJet->p4());
518  double per = electronP4.mag2();
519  if (tot > 0.0)
520  per -= ss * ss / tot;
521  if (per < 0)
522  per = 0;
523  double ptRel = per;
524  bool pass2D = dRMin > semiE_dRMin_ || ptRel > semiE_ptRel_;
525 
526  if (!pass2D)
527  return;
528 
529  CATopJetHelper helper(173., 80.4);
530 
531  semiE_ePt->Fill(electron.pt());
532  semiE_eEta->Fill(electron.eta());
533  semiE_ePhi->Fill(electron.phi());
534  semiE_eDRMin->Fill(dRMin);
535  semiE_ePtRel->Fill(ptRel);
536 
537  semiE_hadJetDR->Fill(reco::deltaR(electron, *hadJet));
538  semiE_mttbar->Fill(0.0);
539 
540  semiE_hadJetPt->Fill(hadJet->pt());
541  semiE_hadJetY->Fill(hadJet->rapidity());
542  semiE_hadJetPhi->Fill(hadJet->phi());
543  semiE_hadJetMass->Fill(hadJet->mass());
544  reco::CATopJetProperties properties0 = helper(*hadJet);
545  if (hadJet->numberOfDaughters() > 2) {
546  semiE_hadJetMinMass->Fill(properties0.minMass);
547  } else {
548  semiE_hadJetMinMass->Fill(-1.0);
549  }
550 }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
MonitorElement * semiE_hadJetPhi
Definition: B2GDQM.h:188
double eta() const final
momentum pseudorapidity
Definition: helper.py:1
double semiE_HadJetPtCut_
Definition: B2GDQM.h:136
MonitorElement * semiE_eEta
Definition: B2GDQM.h:181
const LorentzVector & p4(P4Kind kind) const
Definition: GsfElectron.cc:211
MonitorElement * semiE_ePtRel
Definition: B2GDQM.h:184
MonitorElement * semiE_hadJetMinMass
Definition: B2GDQM.h:190
MonitorElement * semiE_ePt
Definition: B2GDQM.h:180
double rapidity() const final
rapidity
bool isAvailable() const
Definition: Ptr.h:229
double semiE_ptRel_
Definition: B2GDQM.h:142
double pt() const final
transverse momentum
size_t numberOfDaughters() const override
number of daughters
void Fill(long long x)
MonitorElement * semiE_eDRMin
Definition: B2GDQM.h:183
int iEvent
Definition: GenABIO.cc:224
MonitorElement * semiE_hadJetPt
Definition: B2GDQM.h:186
edm::EDGetTokenT< edm::View< reco::BasicJet > > cmsTagToken_
Definition: B2GDQM.h:111
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const LorentzVector & p4() const final
four-momentum Lorentz vector
double semiE_dRMin_
Definition: B2GDQM.h:140
MonitorElement * semiE_hadJetMass
Definition: B2GDQM.h:189
MonitorElement * semiE_mttbar
Definition: B2GDQM.h:191
#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:185
double semiE_LepJetPtCut_
Definition: B2GDQM.h:137
MonitorElement * semiE_hadJetY
Definition: B2GDQM.h:187
std::shared_ptr< StringCutObjectSelector< reco::GsfElectron > > elecSelect_
Definition: B2GDQM.h:143
MonitorElement * semiE_ePhi
Definition: B2GDQM.h:182
double phi() const final
momentum azimuthal angle
double mass() const final
mass
edm::EDGetTokenT< edm::View< reco::GsfElectron > > electronToken_
Definition: B2GDQM.h:117
void B2GDQM::analyzeSemiMu ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
protectedvirtual

Definition at line 386 of file B2GDQM.cc.

References funct::abs(), reco::deltaPhi(), reco::deltaR(), HLT_2018_cff::dRMin, reco::LeafCandidate::eta(), edm::Event::getByToken(), edm::Ptr< T >::isAvailable(), jetfilter_cfi::jetCollection, M_PI, reco::LeafCandidate::mass(), reco::CATopJetProperties::minMass, pdwgLeptonRecoSkim_cfi::muonCollection, reco::CompositePtrCandidate::numberOfDaughters(), reco::LeafCandidate::p4(), reco::LeafCandidate::phi(), reco::LeafCandidate::pt(), electrons_cff::ptRel, reco::LeafCandidate::rapidity(), and contentValuesCheck::ss.

386  {
388  bool validMuons = iEvent.getByToken(muonToken_, muonCollection);
389 
390  if (!validMuons)
391  return;
392  if (muonCollection->empty())
393  return;
394  reco::Muon const& muon = muonCollection->at(0);
395  if (!(*muonSelect_)(muon))
396  return;
397 
399  bool validJets = iEvent.getByToken(cmsTagToken_, jetCollection);
400  if (!validJets)
401  return;
402  if (jetCollection->size() < 2)
403  return;
404 
405  double pt0 = -1.0;
406  double dRMin = 999.0;
407  edm::Ptr<reco::BasicJet> hadJet; // highest pt jet with dphi(lep,jet) > pi/2
408  edm::Ptr<reco::BasicJet> lepJet; // closest jet to lepton with pt > ptMin
409 
410  for (auto ijet = jetCollection->begin(), ijetBegin = ijet, ijetEnd = jetCollection->end(); ijet != ijetEnd; ++ijet) {
411  // Hadronic jets
412  if (std::abs(reco::deltaPhi(muon, *ijet)) > M_PI * 0.5) {
413  if (ijet->pt() > pt0 && ijet->p() > semiMu_HadJetPtCut_) {
414  hadJet = jetCollection->ptrAt(ijet - ijetBegin);
415  pt0 = hadJet->pt();
416  }
417  }
418  // Leptonic jets
419  else if (ijet->pt() > semiMu_LepJetPtCut_) {
420  auto idRMin = reco::deltaR(muon, *ijet);
421  if (idRMin < dRMin) {
422  lepJet = jetCollection->ptrAt(ijet - ijetBegin);
423  dRMin = idRMin;
424  }
425  }
426  }
427  if (hadJet.isAvailable() == false || lepJet.isAvailable() == false)
428  return;
429 
430  auto lepJetP4 = lepJet->p4();
431  const auto& muonP4 = muon.p4();
432 
433  double tot = lepJetP4.mag2();
434  double ss = muonP4.Dot(lepJet->p4());
435  double per = muonP4.mag2();
436  if (tot > 0.0)
437  per -= ss * ss / tot;
438  if (per < 0)
439  per = 0;
440  double ptRel = per;
441  bool pass2D = dRMin > semiMu_dRMin_ || ptRel > semiMu_ptRel_;
442 
443  if (!pass2D)
444  return;
445 
446  CATopJetHelper helper(173., 80.4);
447 
448  semiMu_muPt->Fill(muon.pt());
449  semiMu_muEta->Fill(muon.eta());
450  semiMu_muPhi->Fill(muon.phi());
451  semiMu_muDRMin->Fill(dRMin);
452  semiMu_muPtRel->Fill(ptRel);
453 
454  semiMu_hadJetDR->Fill(reco::deltaR(muon, *hadJet));
455  semiMu_mttbar->Fill(0.0);
456 
457  semiMu_hadJetPt->Fill(hadJet->pt());
458  semiMu_hadJetY->Fill(hadJet->rapidity());
459  semiMu_hadJetPhi->Fill(hadJet->phi());
460  semiMu_hadJetMass->Fill(hadJet->mass());
461  reco::CATopJetProperties properties0 = helper(*hadJet);
462  if (hadJet->numberOfDaughters() > 2) {
463  semiMu_hadJetMinMass->Fill(properties0.minMass);
464  } else {
465  semiMu_hadJetMinMass->Fill(-1.0);
466  }
467 }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
MonitorElement * semiMu_muPtRel
Definition: B2GDQM.h:171
double eta() const final
momentum pseudorapidity
Definition: helper.py:1
double semiMu_HadJetPtCut_
Definition: B2GDQM.h:129
MonitorElement * semiMu_muPt
Definition: B2GDQM.h:167
double rapidity() const final
rapidity
bool isAvailable() const
Definition: Ptr.h:229
MonitorElement * semiMu_mttbar
Definition: B2GDQM.h:178
double pt() const final
transverse momentum
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
Definition: B2GDQM.h:114
MonitorElement * semiMu_muPhi
Definition: B2GDQM.h:169
size_t numberOfDaughters() const override
number of daughters
void Fill(long long x)
int iEvent
Definition: GenABIO.cc:224
MonitorElement * semiMu_hadJetY
Definition: B2GDQM.h:174
MonitorElement * semiMu_muDRMin
Definition: B2GDQM.h:170
MonitorElement * semiMu_hadJetDR
Definition: B2GDQM.h:172
edm::EDGetTokenT< edm::View< reco::BasicJet > > cmsTagToken_
Definition: B2GDQM.h:111
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const LorentzVector & p4() const final
four-momentum Lorentz vector
std::shared_ptr< StringCutObjectSelector< reco::Muon > > muonSelect_
Definition: B2GDQM.h:134
#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:168
double semiMu_ptRel_
Definition: B2GDQM.h:133
MonitorElement * semiMu_hadJetMinMass
Definition: B2GDQM.h:177
MonitorElement * semiMu_hadJetPt
Definition: B2GDQM.h:173
double semiMu_dRMin_
Definition: B2GDQM.h:132
MonitorElement * semiMu_hadJetPhi
Definition: B2GDQM.h:175
double phi() const final
momentum azimuthal angle
double semiMu_LepJetPtCut_
Definition: B2GDQM.h:130
MonitorElement * semiMu_hadJetMass
Definition: B2GDQM.h:176
double mass() const final
mass
void B2GDQM::bookHistograms ( DQMStore::IBooker bei,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprivatevirtual

Implements DQMEDAnalyzer.

Definition at line 146 of file B2GDQM.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), icoll, dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and contentValuesCheck::ss.

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

Member Data Documentation

MonitorElement* B2GDQM::allHad_mass0
private

Definition at line 196 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_mass1
private

Definition at line 201 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_minMass0
private

Definition at line 197 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_minMass1
private

Definition at line 202 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_mttbar
private

Definition at line 203 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_phi0
private

Definition at line 195 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_phi1
private

Definition at line 200 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_pt0
private

Definition at line 193 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_pt1
private

Definition at line 198 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_y0
private

Definition at line 194 of file B2GDQM.h.

MonitorElement* B2GDQM::allHad_y1
private

Definition at line 199 of file B2GDQM.h.

double B2GDQM::allHadDeltaPhiCut_
private

Definition at line 127 of file B2GDQM.h.

double B2GDQM::allHadPtCut_
private

Definition at line 125 of file B2GDQM.h.

double B2GDQM::allHadRapidityCut_
private

Definition at line 126 of file B2GDQM.h.

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

Definition at line 162 of file B2GDQM.h.

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

Definition at line 163 of file B2GDQM.h.

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

Definition at line 160 of file B2GDQM.h.

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

Definition at line 161 of file B2GDQM.h.

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

Definition at line 159 of file B2GDQM.h.

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

Definition at line 157 of file B2GDQM.h.

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

Definition at line 158 of file B2GDQM.h.

edm::InputTag B2GDQM::cmsTagLabel_
private

Definition at line 110 of file B2GDQM.h.

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

Definition at line 111 of file B2GDQM.h.

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

Definition at line 143 of file B2GDQM.h.

edm::InputTag B2GDQM::electronLabel_
private

Definition at line 116 of file B2GDQM.h.

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

Definition at line 117 of file B2GDQM.h.

HLTConfigProvider B2GDQM::hltConfigProvider_
private

Definition at line 96 of file B2GDQM.h.

int B2GDQM::ievt
private

Definition at line 94 of file B2GDQM.h.

int B2GDQM::irun
private

Definition at line 94 of file B2GDQM.h.

bool B2GDQM::isValidHltConfig_
private

Definition at line 97 of file B2GDQM.h.

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

Definition at line 105 of file B2GDQM.h.

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

Definition at line 123 of file B2GDQM.h.

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

Definition at line 106 of file B2GDQM.h.

edm::InputTag B2GDQM::muonLabel_
private

Definition at line 113 of file B2GDQM.h.

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

Definition at line 134 of file B2GDQM.h.

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

Definition at line 114 of file B2GDQM.h.

int B2GDQM::nEvents_
private

Definition at line 94 of file B2GDQM.h.

int B2GDQM::nLumiSecs_
private

Definition at line 93 of file B2GDQM.h.

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

Definition at line 155 of file B2GDQM.h.

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

Definition at line 153 of file B2GDQM.h.

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

Definition at line 152 of file B2GDQM.h.

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

Definition at line 156 of file B2GDQM.h.

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

Definition at line 154 of file B2GDQM.h.

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

Definition at line 151 of file B2GDQM.h.

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

Definition at line 149 of file B2GDQM.h.

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

Definition at line 150 of file B2GDQM.h.

std::string B2GDQM::PFJetCorService_
private

Definition at line 145 of file B2GDQM.h.

MonitorElement* B2GDQM::pfMet_phi
private

Definition at line 165 of file B2GDQM.h.

MonitorElement* B2GDQM::pfMet_pt
private

Definition at line 164 of file B2GDQM.h.

edm::InputTag B2GDQM::PFMETLabel_
private

Definition at line 107 of file B2GDQM.h.

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

Definition at line 108 of file B2GDQM.h.

double B2GDQM::semiE_dphiHadCut_
private

Definition at line 138 of file B2GDQM.h.

double B2GDQM::semiE_dRMin_
private

Definition at line 140 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_eDRMin
private

Definition at line 183 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_eEta
private

Definition at line 181 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_ePhi
private

Definition at line 182 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_ePt
private

Definition at line 180 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_ePtRel
private

Definition at line 184 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_hadJetDR
private

Definition at line 185 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_hadJetMass
private

Definition at line 189 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_hadJetMinMass
private

Definition at line 190 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_hadJetPhi
private

Definition at line 188 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_hadJetPt
private

Definition at line 186 of file B2GDQM.h.

double B2GDQM::semiE_HadJetPtCut_
private

Definition at line 136 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_hadJetY
private

Definition at line 187 of file B2GDQM.h.

double B2GDQM::semiE_LepJetPtCut_
private

Definition at line 137 of file B2GDQM.h.

MonitorElement* B2GDQM::semiE_mttbar
private

Definition at line 191 of file B2GDQM.h.

double B2GDQM::semiE_ptRel_
private

Definition at line 142 of file B2GDQM.h.

double B2GDQM::semiMu_dphiHadCut_
private

Definition at line 131 of file B2GDQM.h.

double B2GDQM::semiMu_dRMin_
private

Definition at line 132 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_hadJetDR
private

Definition at line 172 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_hadJetMass
private

Definition at line 176 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_hadJetMinMass
private

Definition at line 177 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_hadJetPhi
private

Definition at line 175 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_hadJetPt
private

Definition at line 173 of file B2GDQM.h.

double B2GDQM::semiMu_HadJetPtCut_
private

Definition at line 129 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_hadJetY
private

Definition at line 174 of file B2GDQM.h.

double B2GDQM::semiMu_LepJetPtCut_
private

Definition at line 130 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_mttbar
private

Definition at line 178 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_muDRMin
private

Definition at line 170 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_muEta
private

Definition at line 168 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_muPhi
private

Definition at line 169 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_muPt
private

Definition at line 167 of file B2GDQM.h.

MonitorElement* B2GDQM::semiMu_muPtRel
private

Definition at line 171 of file B2GDQM.h.

double B2GDQM::semiMu_ptRel_
private

Definition at line 133 of file B2GDQM.h.

edm::InputTag B2GDQM::theTriggerResultsCollection
private

Definition at line 100 of file B2GDQM.h.

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

Definition at line 103 of file B2GDQM.h.

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

Definition at line 101 of file B2GDQM.h.