CMS 3D CMS Logo

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

#include <QcdPhotonsDQM.h>

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

Public Member Functions

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

Private Attributes

EcalClusterLazyTools::ESGetTokens ecalClusterToolsESGetTokens_
 
MonitorElementh_deltaEt_photon_jet
 
MonitorElementh_deltaPhi_jet_jet2
 
MonitorElementh_deltaPhi_photon_jet
 
MonitorElementh_deltaPhi_photon_jet2
 
MonitorElementh_deltaR_jet_jet2
 
MonitorElementh_deltaR_photon_jet2
 
MonitorElementh_jet2_eta
 
MonitorElementh_jet2_pt
 
MonitorElementh_jet2_ptOverPhotonEt
 
MonitorElementh_jet_count
 
MonitorElementh_jet_eta
 
MonitorElementh_jet_pt
 
MonitorElementh_photon_count_bar
 
MonitorElementh_photon_count_end
 
MonitorElementh_photon_et
 
MonitorElementh_photon_et_beforeCuts
 
MonitorElementh_photon_et_jetco
 
MonitorElementh_photon_et_jetcs
 
MonitorElementh_photon_et_jetfo
 
MonitorElementh_photon_et_jetfs
 
MonitorElementh_photon_eta
 
MonitorElementh_triggers_passed
 
std::string logTraceName
 
edm::InputTag theBarrelRecHitTag_
 
edm::EDGetTokenT< EcalRecHitCollectiontheBarrelRecHitToken_
 
edm::InputTag theEndcapRecHitTag_
 
edm::EDGetTokenT< EcalRecHitCollectiontheEndcapRecHitToken_
 
edm::InputTag theJetCollectionLabel_
 
edm::EDGetTokenT< edm::View< reco::Jet > > theJetCollectionToken_
 
double theMinJetPt_
 
double theMinPhotonEt_
 
edm::EDGetTokenT< reco::PhotonCollectionthePhotonCollectionToken_
 
double thePlotJetMaxEta_
 
double thePlotPhotonMaxEt_
 
double thePlotPhotonMaxEta_
 
std::vector< std::string > thePlotTheseTriggersToo_
 
bool theRequirePhotonFound_
 
std::string theTriggerPathToPass_
 
edm::EDGetTokenT< reco::VertexCollectiontheVertexCollectionToken_
 
edm::EDGetTokenT< edm::TriggerResultstrigTagToken_
 

Additional Inherited Members

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

Detailed Description

DQM offline for QCD-Photons

Author
Michael B. Anderson, University of Wisconsin Madison

Definition at line 28 of file QcdPhotonsDQM.h.

Constructor & Destructor Documentation

◆ QcdPhotonsDQM()

QcdPhotonsDQM::QcdPhotonsDQM ( const edm::ParameterSet parameters)

Constructor.

Definition at line 48 of file QcdPhotonsDQM.cc.

48  : ecalClusterToolsESGetTokens_{consumesCollector()} {
49  // Get parameters from configuration file
50  theTriggerPathToPass_ = parameters.getParameter<string>("triggerPathToPass");
51  thePlotTheseTriggersToo_ = parameters.getParameter<vector<string> >("plotTheseTriggersToo");
52  theJetCollectionLabel_ = parameters.getParameter<InputTag>("jetCollection");
53  trigTagToken_ = consumes<edm::TriggerResults>(parameters.getUntrackedParameter<edm::InputTag>("trigTag"));
54  thePhotonCollectionToken_ = consumes<reco::PhotonCollection>(parameters.getParameter<InputTag>("photonCollection"));
55  theJetCollectionToken_ = consumes<edm::View<reco::Jet> >(parameters.getParameter<InputTag>("jetCollection"));
56  theVertexCollectionToken_ = consumes<reco::VertexCollection>(parameters.getParameter<InputTag>("vertexCollection"));
57  theMinJetPt_ = parameters.getParameter<double>("minJetPt");
58  theMinPhotonEt_ = parameters.getParameter<double>("minPhotonEt");
59  theRequirePhotonFound_ = parameters.getParameter<bool>("requirePhotonFound");
60  thePlotPhotonMaxEt_ = parameters.getParameter<double>("plotPhotonMaxEt");
61  thePlotPhotonMaxEta_ = parameters.getParameter<double>("plotPhotonMaxEta");
62  thePlotJetMaxEta_ = parameters.getParameter<double>("plotJetMaxEta");
63  theBarrelRecHitTag_ = parameters.getParameter<InputTag>("barrelRecHitTag");
64  theEndcapRecHitTag_ = parameters.getParameter<InputTag>("endcapRecHitTag");
65  theBarrelRecHitToken_ = consumes<EcalRecHitCollection>(parameters.getParameter<InputTag>("barrelRecHitTag"));
66  theEndcapRecHitToken_ = consumes<EcalRecHitCollection>(parameters.getParameter<InputTag>("endcapRecHitTag"));
67 
68  // coverity says...
69  h_deltaEt_photon_jet = nullptr;
70  h_deltaPhi_jet_jet2 = nullptr;
71  h_deltaPhi_photon_jet = nullptr;
72  h_deltaPhi_photon_jet2 = nullptr;
73  h_deltaR_jet_jet2 = nullptr;
74  h_deltaR_photon_jet2 = nullptr;
75  h_jet2_eta = nullptr;
76  h_jet2_pt = nullptr;
77  h_jet2_ptOverPhotonEt = nullptr;
78  h_jet_count = nullptr;
79  h_jet_eta = nullptr;
80  h_jet_pt = nullptr;
81  h_photon_count_bar = nullptr;
82  h_photon_count_end = nullptr;
83  h_photon_et = nullptr;
84  h_photon_et_beforeCuts = nullptr;
85  h_photon_et_jetco = nullptr;
86  h_photon_et_jetcs = nullptr;
87  h_photon_et_jetfo = nullptr;
88  h_photon_et_jetfs = nullptr;
89  h_photon_eta = nullptr;
90  h_triggers_passed = nullptr;
91 }

◆ ~QcdPhotonsDQM()

QcdPhotonsDQM::~QcdPhotonsDQM ( )
override

Destructor.

Definition at line 93 of file QcdPhotonsDQM.cc.

93 {}

Member Function Documentation

◆ analyze()

void QcdPhotonsDQM::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Get the analysis.

Reimplemented from DQMEDAnalyzer.

Definition at line 226 of file QcdPhotonsDQM.cc.

226  {
227  LogTrace(logTraceName) << "Analysis of event # ";
228 
230  // Did event pass HLT paths?
231  Handle<TriggerResults> HLTresults;
232  iEvent.getByToken(trigTagToken_, HLTresults);
233  if (!HLTresults.isValid()) {
234  // LogWarning("") << ">>> TRIGGER collection does not exist !!!";
235  return;
236  }
237  const edm::TriggerNames& trigNames = iEvent.triggerNames(*HLTresults);
238 
239  bool passed_HLT = false;
240 
241  // See if event passed trigger paths
242  // increment that bin in the trigger plot
243  for (unsigned int i = 0; i < thePlotTheseTriggersToo_.size(); i++) {
244  passed_HLT = false;
245  for (unsigned int ti = 0; (ti < trigNames.size()) && !passed_HLT; ++ti) {
246  size_t pos = trigNames.triggerName(ti).find(thePlotTheseTriggersToo_[i]);
247  if (pos == 0)
248  passed_HLT = HLTresults->accept(ti);
249  }
250  if (passed_HLT)
252  }
253 
254  // grab photons
257 
258  // If photon collection is empty, exit
259  if (!photonCollection.isValid())
260  return;
261 
262  // Quit if the event did not pass the HLT path we care about
263  passed_HLT = false;
264  {
265  // bool found=false;
266  for (unsigned int ti = 0; ti < trigNames.size(); ++ti) {
267  size_t pos = trigNames.triggerName(ti).find(theTriggerPathToPass_);
268  if (pos == 0) {
269  passed_HLT = HLTresults->accept(ti);
270  // found=true;
271  break;
272  }
273  }
274 
275  // Assumption: reco photons are ordered by Et
276  for (PhotonCollection::const_iterator recoPhoton = photonCollection->begin(); recoPhoton != photonCollection->end();
277  recoPhoton++) {
278  // stop looping over photons once we get to too low Et
279  if (recoPhoton->et() < theMinPhotonEt_)
280  break;
281 
282  h_photon_et_beforeCuts->Fill(recoPhoton->et());
283  break; // leading photon only
284  }
285 
286  if (!passed_HLT) {
287  return;
288  }
289  }
290 
292 
293  // std::cout << "\tpassed main trigger (" << theTriggerPathToPass_ << ")" <<
294  // std::endl;
295 
297  // Does event have valid vertex?
298  // Get the primary event vertex
299  Handle<VertexCollection> vertexHandle;
300  iEvent.getByToken(theVertexCollectionToken_, vertexHandle);
301  VertexCollection vertexCollection = *(vertexHandle.product());
302  // double vtx_ndof = -1.0;
303  // double vtx_z = 0.0;
304  // bool vtx_isFake = true;
305  // if (vertexCollection.size()>0) {
306  // vtx_ndof = vertexCollection.begin()->ndof();
307  // vtx_z = vertexCollection.begin()->z();
308  // vtx_isFake = false;
309  //}
310  // if (vtx_isFake || fabs(vtx_z)>15 || vtx_ndof<4) return;
311 
312  int nvvertex = 0;
313  for (unsigned int i = 0; i < vertexCollection.size(); ++i) {
314  if (vertexCollection[i].isValid())
315  nvvertex++;
316  }
317  if (nvvertex == 0)
318  return;
319 
321 
322  // std::cout << "\tpassed vertex selection" << std::endl;
323 
325  // Did the event pass certain L1 Technical Trigger bits?
326  // It's probably beam halo
327  // TODO: ADD code
329 
330  // For finding spikes
331  Handle<EcalRecHitCollection> EBReducedRecHits;
332  iEvent.getByToken(theBarrelRecHitToken_, EBReducedRecHits);
333  Handle<EcalRecHitCollection> EEReducedRecHits;
334  iEvent.getByToken(theEndcapRecHitToken_, EEReducedRecHits);
335  EcalClusterLazyTools lazyTool(
337 
338  // Find the highest et "decent" photon
339  float photon_et = -9.0;
340  float photon_eta = -9.0;
341  float photon_phi = -9.0;
342  bool photon_passPhotonID = false;
343  bool found_lead_pho = false;
344  int photon_count_bar = 0;
345  int photon_count_end = 0;
346  // False Assumption: reco photons are ordered by Et
347  // find the photon with highest et
348  auto pho_maxet = std::max_element(
349  photonCollection->begin(),
350  photonCollection->end(),
351  [](const PhotonCollection::value_type& a, const PhotonCollection::value_type& b) { return a.et() < b.et(); });
352  if (pho_maxet != photonCollection->end() && pho_maxet->et() >= theMinPhotonEt_) {
353  /*
354  // Ignore ECAL Spikes
355  const reco::CaloClusterPtr seed = pho_maxet->superCluster()->seed();
356  DetId id = lazyTool.getMaximum(*seed).first; // Cluster shape variables
357  // float time = -999., outOfTimeChi2 = -999., chi2 = -999.; // UNUSED
358  int flags=-1, severity = -1;
359  const EcalRecHitCollection & rechits = ( pho_maxet->isEB() ?
360  *EBReducedRecHits : *EEReducedRecHits);
361  EcalRecHitCollection::const_iterator it = rechits.find( id );
362  if( it != rechits.end() ) {
363  // time = it->time(); // UNUSED
364  // outOfTimeChi2 = it->outOfTimeChi2(); // UNUSED
365  // chi2 = it->chi2(); // UNUSED
366  flags = it->recoFlag();
367 
368  edm::ESHandle<EcalSeverityLevelAlgo> sevlv;
369  iSetup.get<EcalSeverityLevelAlgoRcd>().get(sevlv);
370  severity = sevlv->severityLevel( id, rechits);
371  }
372  bool isNotSpike = ((pho_maxet->isEB() && (severity!=3 && severity!=4 ) &&
373  (flags != 2) ) || pho_maxet->isEE());
374  if (!isNotSpike) continue; // move on to next photon
375  // END of determining ECAL Spikes
376  */
377 
378  bool pho_current_passPhotonID = false;
379  bool pho_current_isEB = pho_maxet->isEB();
380  bool pho_current_isEE = pho_maxet->isEE();
381 
382  if (pho_current_isEB && (pho_maxet->sigmaIetaIeta() < 0.01 || pho_maxet->hadronicOverEm() < 0.05)) {
383  // Photon object in barrel passes photon ID
384  pho_current_passPhotonID = true;
385  photon_count_bar++;
386  } else if (pho_current_isEE && (pho_maxet->hadronicOverEm() < 0.05)) {
387  // Photon object in endcap passes photon ID
388  pho_current_passPhotonID = true;
389  photon_count_end++;
390  }
391 
392  if (!found_lead_pho) {
393  found_lead_pho = true;
394  photon_passPhotonID = pho_current_passPhotonID;
395  photon_et = pho_maxet->et();
396  photon_eta = pho_maxet->eta();
397  photon_phi = pho_maxet->phi();
398  }
399  }
400 
401  // If user requires a photon to be found, but none is, return.
402  // theRequirePhotonFound should pretty much always be set to 'True'
403  // except when running on qcd monte carlo just to see the jets.
404  if (theRequirePhotonFound_ && (!photon_passPhotonID || photon_et < theMinPhotonEt_))
405  return;
406 
408  // Find the highest et jet
411  if (!jetCollection.isValid())
412  return;
413 
414  float jet_pt = -8.0;
415  float jet_eta = -8.0;
416  float jet_phi = -8.0;
417  int jet_count = 0;
418  float jet2_pt = -9.0;
419  float jet2_eta = -9.0;
420  float jet2_phi = -9.0;
421  // Assumption: jets are ordered by Et
422  for (unsigned int i_jet = 0; i_jet < jetCollection->size(); i_jet++) {
423  const Jet* jet = &jetCollection->at(i_jet);
424 
425  float jet_current_pt = jet->pt();
426 
427  // don't care about jets that overlap with the lead photon
428  if (deltaR(jet->eta(), jet->phi(), photon_eta, photon_phi) < 0.5)
429  continue;
430  // stop looping over jets once we get to too low Et
431  if (jet_current_pt < theMinJetPt_)
432  break;
433 
434  jet_count++;
435  if (jet_current_pt > jet_pt) {
436  jet2_pt = jet_pt; // 2nd highest jet get's et from current highest
437  jet2_eta = jet_eta;
438  jet2_phi = jet_phi;
439  jet_pt = jet_current_pt; // current highest jet gets et from the new highest
440  jet_eta = jet->eta();
441  jet_phi = jet->phi();
442  } else if (jet_current_pt > jet2_pt) {
443  jet2_pt = jet_current_pt;
444  jet2_eta = jet->eta();
445  jet2_phi = jet->phi();
446  }
447  }
449 
451  // Fill histograms if a jet found
452  // NOTE: if a photon was required to be found, but wasn't
453  // we wouldn't have made it to this point in the code
454  if (jet_pt > 0.0) {
455  // Photon Plots
456  h_photon_et->Fill(photon_et);
457  h_photon_eta->Fill(photon_eta);
458  h_photon_count_bar->Fill(photon_count_bar);
459  h_photon_count_end->Fill(photon_count_end);
460 
461  // Photon Et hists for different orientations to the jet
462  if (fabs(photon_eta) < 1.45 && photon_passPhotonID) { // Lead photon is in barrel
463  if (fabs(jet_eta) < 1.45) { // jet is in barrel
464  if (photon_eta * jet_eta > 0) {
465  h_photon_et_jetcs->Fill(photon_et);
466  } else {
467  h_photon_et_jetco->Fill(photon_et);
468  }
469  } else if (jet_eta > 1.55 && jet_eta < 2.5) { // jet is in endcap
470  if (photon_eta * jet_eta > 0) {
471  h_photon_et_jetfs->Fill(photon_et);
472  } else {
473  h_photon_et_jetfo->Fill(photon_et);
474  }
475  }
476  } // END of Lead Photon is in Barrel
477 
478  // Jet Plots
479  h_jet_pt->Fill(jet_pt);
480  h_jet_eta->Fill(jet_eta);
481  h_jet_count->Fill(jet_count);
482  h_deltaPhi_photon_jet->Fill(abs(deltaPhi(photon_phi, jet_phi)));
483  if (abs(deltaPhi(photon_phi, jet_phi)) > 2.8)
484  h_deltaEt_photon_jet->Fill((photon_et - jet_pt) / photon_et);
485 
486  // 2nd Highest Jet Plots
487  if (jet2_pt > 0.0) {
488  h_jet2_pt->Fill(jet2_pt);
489  h_jet2_eta->Fill(jet2_eta);
490  h_jet2_ptOverPhotonEt->Fill(jet2_pt / photon_et);
491  h_deltaPhi_photon_jet2->Fill(abs(deltaPhi(photon_phi, jet2_phi)));
492  h_deltaPhi_jet_jet2->Fill(abs(deltaPhi(jet_phi, jet2_phi)));
493  h_deltaR_jet_jet2->Fill(deltaR(jet_eta, jet_phi, jet2_eta, jet2_phi));
494  h_deltaR_photon_jet2->Fill(deltaR(photon_eta, photon_phi, jet2_eta, jet2_phi));
495  }
496  }
497  // End of Filling histograms
499 }

References a, funct::abs(), edm::HLTGlobalStatus::accept(), b, SiPixelRawToDigiRegional_cfi::deltaPhi, PbPb_ZMuSkimMuonDPG_cff::deltaR, ecalClusterToolsESGetTokens_, dqm::impl::MonitorElement::Fill(), EcalClusterLazyToolsBase::ESGetTokens::get(), h_deltaEt_photon_jet, h_deltaPhi_jet_jet2, h_deltaPhi_photon_jet, h_deltaPhi_photon_jet2, h_deltaR_jet_jet2, h_deltaR_photon_jet2, h_jet2_eta, h_jet2_pt, h_jet2_ptOverPhotonEt, h_jet_count, h_jet_eta, h_jet_pt, h_photon_count_bar, h_photon_count_end, h_photon_et, h_photon_et_beforeCuts, h_photon_et_jetco, h_photon_et_jetcs, h_photon_et_jetfo, h_photon_et_jetfs, h_photon_eta, h_triggers_passed, mps_fire::i, iEvent, sistrip::SpyUtilities::isValid(), edm::HandleBase::isValid(), metsig::jet, jetfilter_cfi::jetCollection, LogTrace, logTraceName, ExoticaDQM_cfi::photonCollection, edm::Handle< T >::product(), theBarrelRecHitToken_, theEndcapRecHitToken_, theJetCollectionToken_, theMinJetPt_, theMinPhotonEt_, thePhotonCollectionToken_, thePlotTheseTriggersToo_, theRequirePhotonFound_, theTriggerPathToPass_, theVertexCollectionToken_, trigNames, trigTagToken_, and spclusmultinvestigator_cfi::vertexCollection.

◆ bookHistograms()

void QcdPhotonsDQM::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 95 of file QcdPhotonsDQM.cc.

95  {
96  logTraceName = "QcdPhotonAnalyzer";
97 
98  LogTrace(logTraceName) << "Parameters initialization";
99 
100  ibooker.setCurrentFolder("Physics/QcdPhotons"); // Use folder with name of PAG
101 
102  std::stringstream aStringStream;
103  std::string aString;
104  aStringStream << theMinJetPt_;
105  aString = aStringStream.str();
106 
107  // Monitor of triggers passed
108  int numOfTriggersToMonitor = thePlotTheseTriggersToo_.size();
109  h_triggers_passed = ibooker.book1D(
110  "triggers_passed", "Events passing these trigger paths", numOfTriggersToMonitor, 0, numOfTriggersToMonitor);
111  for (int i = 0; i < numOfTriggersToMonitor; i++) {
113  }
114 
115  // Keep the number of plots and number of bins to a minimum!
116  h_photon_et_beforeCuts = ibooker.book1D(
117  "photon_et_beforeCuts", "#gamma with highest E_{T};E_{T}(#gamma) (GeV)", 20, 0., thePlotPhotonMaxEt_);
118  h_photon_et =
119  ibooker.book1D("photon_et", "#gamma with highest E_{T};E_{T}(#gamma) (GeV)", 20, 0., thePlotPhotonMaxEt_);
120  h_photon_eta = ibooker.book1D(
121  "photon_eta", "#gamma with highest E_{T};#eta(#gamma)", 40, -thePlotPhotonMaxEta_, thePlotPhotonMaxEta_);
122  h_photon_count_bar = ibooker.book1D(
123  "photon_count_bar", "Number of #gamma's passing selection (Barrel);Number of #gamma's", 8, -0.5, 7.5);
124  h_photon_count_end = ibooker.book1D(
125  "photon_count_end", "Number of #gamma's passing selection (Endcap);Number of #gamma's", 8, -0.5, 7.5);
126  h_jet_pt =
127  ibooker.book1D("jet_pt",
128  "Jet with highest p_{T} (from " + theJetCollectionLabel_.label() + ");p_{T}(1^{st} jet) (GeV)",
129  20,
130  0.,
132  h_jet_eta = ibooker.book1D("jet_eta",
133  "Jet with highest p_{T} (from " + theJetCollectionLabel_.label() + ");#eta(1^{st} jet)",
134  20,
138  ibooker.book1D("deltaPhi_photon_jet",
139  "#Delta#phi between Highest E_{T} #gamma and jet;#Delta#phi(#gamma,1^{st} jet)",
140  20,
141  0,
142  3.1415926);
143  h_deltaPhi_jet_jet2 = ibooker.book1D("deltaPhi_jet_jet2",
144  "#Delta#phi between Highest E_{T} jet and 2^{nd} "
145  "jet;#Delta#phi(1^{st} jet,2^{nd} jet)",
146  20,
147  0,
148  3.1415926);
149  h_deltaEt_photon_jet = ibooker.book1D("deltaEt_photon_jet",
150  "(E_{T}(#gamma)-p_{T}(jet))/E_{T}(#gamma) when #Delta#phi(#gamma,1^{st} "
151  "jet) > 2.8;#DeltaE_{T}(#gamma,1^{st} jet)/E_{T}(#gamma)",
152  20,
153  -1.0,
154  1.0);
155  h_jet_count =
156  ibooker.book1D("jet_count",
157  "Number of " + theJetCollectionLabel_.label() + " (p_{T} > " + aString + " GeV);Number of Jets",
158  8,
159  -0.5,
160  7.5);
161  h_jet2_pt = ibooker.book1D(
162  "jet2_pt",
163  "Jet with 2^{nd} highest p_{T} (from " + theJetCollectionLabel_.label() + ");p_{T}(2^{nd} jet) (GeV)",
164  20,
165  0.,
167  h_jet2_eta =
168  ibooker.book1D("jet2_eta",
169  "Jet with 2^{nd} highest p_{T} (from " + theJetCollectionLabel_.label() + ");#eta(2^{nd} jet)",
170  20,
173  h_jet2_ptOverPhotonEt = ibooker.book1D(
174  "jet2_ptOverPhotonEt", "p_{T}(2^{nd} highest jet) / E_{T}(#gamma);p_{T}(2^{nd} Jet)/E_{T}(#gamma)", 20, 0.0, 4.0);
175  h_deltaPhi_photon_jet2 = ibooker.book1D("deltaPhi_photon_jet2",
176  "#Delta#phi between Highest E_{T} #gamma and 2^{nd} "
177  "highest jet;#Delta#phi(#gamma,2^{nd} jet)",
178  20,
179  0,
180  3.1415926);
181  h_deltaR_jet_jet2 = ibooker.book1D(
182  "deltaR_jet_jet2", "#DeltaR between Highest Jet and 2^{nd} Highest;#DeltaR(1^{st} jet,2^{nd} jet)", 30, 0, 6.0);
183  h_deltaR_photon_jet2 = ibooker.book1D("deltaR_photon_jet2",
184  "#DeltaR between Highest E_{T} #gamma and 2^{nd} "
185  "jet;#DeltaR(#gamma, 2^{nd} jet)",
186  30,
187  0,
188  6.0);
189 
190  // Photon Et for different jet configurations
191  Float_t bins_et[] = {15, 20, 30, 50, 80};
192  int num_bins_et = 4;
193  h_photon_et_jetcs = ibooker.book1D("photon_et_jetcs",
194  "#gamma with highest E_{T} (#eta(jet)<1.45, "
195  "#eta(#gamma)#eta(jet)>0);E_{T}(#gamma) (GeV)",
196  num_bins_et,
197  bins_et);
198  h_photon_et_jetco = ibooker.book1D("photon_et_jetco",
199  "#gamma with highest E_{T} (#eta(jet)<1.45, "
200  "#eta(#gamma)#eta(jet)<0);E_{T}(#gamma) (GeV)",
201  num_bins_et,
202  bins_et);
203  h_photon_et_jetfs = ibooker.book1D("photon_et_jetfs",
204  "#gamma with highest E_{T} (1.55<#eta(jet)<2.5, "
205  "#eta(#gamma)#eta(jet)>0);E_{T}(#gamma) (GeV)",
206  num_bins_et,
207  bins_et);
208  h_photon_et_jetfo = ibooker.book1D("photon_et_jetfo",
209  "#gamma with highest E_{T} (1.55<#eta(jet)<2.5, "
210  "#eta(#gamma)#eta(jet)<0);E_{T}(#gamma) (GeV)",
211  num_bins_et,
212  bins_et);
213 
214  auto setSumw2 = [](MonitorElement* me) {
215  if (me->getTH1F()->GetSumw2N() == 0) {
216  me->enableSumw2();
217  }
218  };
219 
220  setSumw2(h_photon_et_jetcs);
221  setSumw2(h_photon_et_jetco);
222  setSumw2(h_photon_et_jetfs);
223  setSumw2(h_photon_et_jetfo);
224 }

References dqm::implementation::IBooker::book1D(), h_deltaEt_photon_jet, h_deltaPhi_jet_jet2, h_deltaPhi_photon_jet, h_deltaPhi_photon_jet2, h_deltaR_jet_jet2, h_deltaR_photon_jet2, h_jet2_eta, h_jet2_pt, h_jet2_ptOverPhotonEt, h_jet_count, h_jet_eta, h_jet_pt, h_photon_count_bar, h_photon_count_end, h_photon_et, h_photon_et_beforeCuts, h_photon_et_jetco, h_photon_et_jetcs, h_photon_et_jetfo, h_photon_et_jetfs, h_photon_eta, h_triggers_passed, mps_fire::i, edm::InputTag::label(), LogTrace, logTraceName, hlt_dqm_clientPB-live_cfg::me, dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, theJetCollectionLabel_, theMinJetPt_, thePlotJetMaxEta_, thePlotPhotonMaxEt_, thePlotPhotonMaxEta_, and thePlotTheseTriggersToo_.

Member Data Documentation

◆ ecalClusterToolsESGetTokens_

EcalClusterLazyTools::ESGetTokens QcdPhotonsDQM::ecalClusterToolsESGetTokens_
private

Definition at line 67 of file QcdPhotonsDQM.h.

Referenced by analyze().

◆ h_deltaEt_photon_jet

MonitorElement* QcdPhotonsDQM::h_deltaEt_photon_jet
private

Definition at line 81 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_deltaPhi_jet_jet2

MonitorElement* QcdPhotonsDQM::h_deltaPhi_jet_jet2
private

Definition at line 80 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_deltaPhi_photon_jet

MonitorElement* QcdPhotonsDQM::h_deltaPhi_photon_jet
private

Definition at line 79 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_deltaPhi_photon_jet2

MonitorElement* QcdPhotonsDQM::h_deltaPhi_photon_jet2
private

Definition at line 85 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_deltaR_jet_jet2

MonitorElement* QcdPhotonsDQM::h_deltaR_jet_jet2
private

Definition at line 86 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_deltaR_photon_jet2

MonitorElement* QcdPhotonsDQM::h_deltaR_photon_jet2
private

Definition at line 87 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_jet2_eta

MonitorElement* QcdPhotonsDQM::h_jet2_eta
private

Definition at line 84 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_jet2_pt

MonitorElement* QcdPhotonsDQM::h_jet2_pt
private

Definition at line 83 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_jet2_ptOverPhotonEt

MonitorElement* QcdPhotonsDQM::h_jet2_ptOverPhotonEt
private

Definition at line 82 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_jet_count

MonitorElement* QcdPhotonsDQM::h_jet_count
private

Definition at line 78 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_jet_eta

MonitorElement* QcdPhotonsDQM::h_jet_eta
private

Definition at line 77 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_jet_pt

MonitorElement* QcdPhotonsDQM::h_jet_pt
private

Definition at line 76 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_photon_count_bar

MonitorElement* QcdPhotonsDQM::h_photon_count_bar
private

Definition at line 74 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_photon_count_end

MonitorElement* QcdPhotonsDQM::h_photon_count_end
private

Definition at line 75 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_photon_et

MonitorElement* QcdPhotonsDQM::h_photon_et
private

Definition at line 72 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_photon_et_beforeCuts

MonitorElement* QcdPhotonsDQM::h_photon_et_beforeCuts
private

Definition at line 71 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_photon_et_jetco

MonitorElement* QcdPhotonsDQM::h_photon_et_jetco
private

Definition at line 90 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_photon_et_jetcs

MonitorElement* QcdPhotonsDQM::h_photon_et_jetcs
private

Definition at line 89 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_photon_et_jetfo

MonitorElement* QcdPhotonsDQM::h_photon_et_jetfo
private

Definition at line 92 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_photon_et_jetfs

MonitorElement* QcdPhotonsDQM::h_photon_et_jetfs
private

Definition at line 91 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_photon_eta

MonitorElement* QcdPhotonsDQM::h_photon_eta
private

Definition at line 73 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ h_triggers_passed

MonitorElement* QcdPhotonsDQM::h_triggers_passed
private

Definition at line 70 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ logTraceName

std::string QcdPhotonsDQM::logTraceName
private

Definition at line 46 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ theBarrelRecHitTag_

edm::InputTag QcdPhotonsDQM::theBarrelRecHitTag_
private

Definition at line 63 of file QcdPhotonsDQM.h.

◆ theBarrelRecHitToken_

edm::EDGetTokenT<EcalRecHitCollection> QcdPhotonsDQM::theBarrelRecHitToken_
private

Definition at line 65 of file QcdPhotonsDQM.h.

Referenced by analyze().

◆ theEndcapRecHitTag_

edm::InputTag QcdPhotonsDQM::theEndcapRecHitTag_
private

Definition at line 64 of file QcdPhotonsDQM.h.

◆ theEndcapRecHitToken_

edm::EDGetTokenT<EcalRecHitCollection> QcdPhotonsDQM::theEndcapRecHitToken_
private

Definition at line 66 of file QcdPhotonsDQM.h.

Referenced by analyze().

◆ theJetCollectionLabel_

edm::InputTag QcdPhotonsDQM::theJetCollectionLabel_
private

Definition at line 51 of file QcdPhotonsDQM.h.

Referenced by bookHistograms().

◆ theJetCollectionToken_

edm::EDGetTokenT<edm::View<reco::Jet> > QcdPhotonsDQM::theJetCollectionToken_
private

Definition at line 54 of file QcdPhotonsDQM.h.

Referenced by analyze().

◆ theMinJetPt_

double QcdPhotonsDQM::theMinJetPt_
private

Definition at line 56 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ theMinPhotonEt_

double QcdPhotonsDQM::theMinPhotonEt_
private

Definition at line 57 of file QcdPhotonsDQM.h.

Referenced by analyze().

◆ thePhotonCollectionToken_

edm::EDGetTokenT<reco::PhotonCollection> QcdPhotonsDQM::thePhotonCollectionToken_
private

Definition at line 53 of file QcdPhotonsDQM.h.

Referenced by analyze().

◆ thePlotJetMaxEta_

double QcdPhotonsDQM::thePlotJetMaxEta_
private

Definition at line 61 of file QcdPhotonsDQM.h.

Referenced by bookHistograms().

◆ thePlotPhotonMaxEt_

double QcdPhotonsDQM::thePlotPhotonMaxEt_
private

Definition at line 59 of file QcdPhotonsDQM.h.

Referenced by bookHistograms().

◆ thePlotPhotonMaxEta_

double QcdPhotonsDQM::thePlotPhotonMaxEta_
private

Definition at line 60 of file QcdPhotonsDQM.h.

Referenced by bookHistograms().

◆ thePlotTheseTriggersToo_

std::vector<std::string> QcdPhotonsDQM::thePlotTheseTriggersToo_
private

Definition at line 50 of file QcdPhotonsDQM.h.

Referenced by analyze(), and bookHistograms().

◆ theRequirePhotonFound_

bool QcdPhotonsDQM::theRequirePhotonFound_
private

Definition at line 58 of file QcdPhotonsDQM.h.

Referenced by analyze().

◆ theTriggerPathToPass_

std::string QcdPhotonsDQM::theTriggerPathToPass_
private

Definition at line 49 of file QcdPhotonsDQM.h.

Referenced by analyze().

◆ theVertexCollectionToken_

edm::EDGetTokenT<reco::VertexCollection> QcdPhotonsDQM::theVertexCollectionToken_
private

Definition at line 55 of file QcdPhotonsDQM.h.

Referenced by analyze().

◆ trigTagToken_

edm::EDGetTokenT<edm::TriggerResults> QcdPhotonsDQM::trigTagToken_
private

Definition at line 52 of file QcdPhotonsDQM.h.

Referenced by analyze().

QcdPhotonsDQM::theBarrelRecHitToken_
edm::EDGetTokenT< EcalRecHitCollection > theBarrelRecHitToken_
Definition: QcdPhotonsDQM.h:65
QcdPhotonsDQM::theEndcapRecHitTag_
edm::InputTag theEndcapRecHitTag_
Definition: QcdPhotonsDQM.h:64
BeamSpotPI::parameters
parameters
Definition: BeamSpotPayloadInspectorHelper.h:30
QcdPhotonsDQM::ecalClusterToolsESGetTokens_
EcalClusterLazyTools::ESGetTokens ecalClusterToolsESGetTokens_
Definition: QcdPhotonsDQM.h:67
QcdPhotonsDQM::h_photon_et_jetfo
MonitorElement * h_photon_et_jetfo
Definition: QcdPhotonsDQM.h:92
mps_fire.i
i
Definition: mps_fire.py:428
edm::Handle::product
T const * product() const
Definition: Handle.h:70
trigNames
static const char *const trigNames[]
Definition: EcalDumpRaw.cc:57
QcdPhotonsDQM::theVertexCollectionToken_
edm::EDGetTokenT< reco::VertexCollection > theVertexCollectionToken_
Definition: QcdPhotonsDQM.h:55
QcdPhotonsDQM::h_deltaR_photon_jet2
MonitorElement * h_deltaR_photon_jet2
Definition: QcdPhotonsDQM.h:87
QcdPhotonsDQM::h_photon_et
MonitorElement * h_photon_et
Definition: QcdPhotonsDQM.h:72
QcdPhotonsDQM::h_photon_count_bar
MonitorElement * h_photon_count_bar
Definition: QcdPhotonsDQM.h:74
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
pos
Definition: PixelAliasList.h:18
QcdPhotonsDQM::theJetCollectionToken_
edm::EDGetTokenT< edm::View< reco::Jet > > theJetCollectionToken_
Definition: QcdPhotonsDQM.h:54
QcdPhotonsDQM::h_jet2_eta
MonitorElement * h_jet2_eta
Definition: QcdPhotonsDQM.h:84
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
QcdPhotonsDQM::h_photon_et_jetco
MonitorElement * h_photon_et_jetco
Definition: QcdPhotonsDQM.h:90
QcdPhotonsDQM::h_photon_eta
MonitorElement * h_photon_eta
Definition: QcdPhotonsDQM.h:73
dqm::legacy::MonitorElement
Definition: MonitorElement.h:462
edm::Handle
Definition: AssociativeIterator.h:50
QcdPhotonsDQM::h_deltaR_jet_jet2
MonitorElement * h_deltaR_jet_jet2
Definition: QcdPhotonsDQM.h:86
QcdPhotonsDQM::h_jet2_ptOverPhotonEt
MonitorElement * h_jet2_ptOverPhotonEt
Definition: QcdPhotonsDQM.h:82
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
QcdPhotonsDQM::h_photon_et_jetfs
MonitorElement * h_photon_et_jetfs
Definition: QcdPhotonsDQM.h:91
QcdPhotonsDQM::theTriggerPathToPass_
std::string theTriggerPathToPass_
Definition: QcdPhotonsDQM.h:49
Jet
Definition: Jet.py:1
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
QcdPhotonsDQM::h_deltaPhi_photon_jet2
MonitorElement * h_deltaPhi_photon_jet2
Definition: QcdPhotonsDQM.h:85
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
QcdPhotonsDQM::theMinPhotonEt_
double theMinPhotonEt_
Definition: QcdPhotonsDQM.h:57
QcdPhotonsDQM::h_deltaEt_photon_jet
MonitorElement * h_deltaEt_photon_jet
Definition: QcdPhotonsDQM.h:81
QcdPhotonsDQM::theMinJetPt_
double theMinJetPt_
Definition: QcdPhotonsDQM.h:56
jetfilter_cfi.jetCollection
jetCollection
Definition: jetfilter_cfi.py:4
sistrip::SpyUtilities::isValid
const bool isValid(const Frame &aFrame, const FrameQuality &aQuality, const uint16_t aExpectedPos)
Definition: SiStripSpyUtilities.cc:124
b
double b
Definition: hdecay.h:118
EcalClusterLazyTools
QcdPhotonsDQM::h_photon_et_jetcs
MonitorElement * h_photon_et_jetcs
Definition: QcdPhotonsDQM.h:89
PbPb_ZMuSkimMuonDPG_cff.deltaR
deltaR
Definition: PbPb_ZMuSkimMuonDPG_cff.py:63
QcdPhotonsDQM::h_photon_count_end
MonitorElement * h_photon_count_end
Definition: QcdPhotonsDQM.h:75
a
double a
Definition: hdecay.h:119
QcdPhotonsDQM::theJetCollectionLabel_
edm::InputTag theJetCollectionLabel_
Definition: QcdPhotonsDQM.h:51
QcdPhotonsDQM::h_jet_pt
MonitorElement * h_jet_pt
Definition: QcdPhotonsDQM.h:76
QcdPhotonsDQM::thePlotPhotonMaxEt_
double thePlotPhotonMaxEt_
Definition: QcdPhotonsDQM.h:59
QcdPhotonsDQM::h_triggers_passed
MonitorElement * h_triggers_passed
Definition: QcdPhotonsDQM.h:70
iEvent
int iEvent
Definition: GenABIO.cc:224
QcdPhotonsDQM::h_jet_count
MonitorElement * h_jet_count
Definition: QcdPhotonsDQM.h:78
dqm::impl::MonitorElement::setBinLabel
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:762
reco::JetExtendedAssociation::value_type
Container::value_type value_type
Definition: JetExtendedAssociation.h:30
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
EcalClusterLazyToolsBase::ESGetTokens::get
ESData get(edm::EventSetup const &eventSetup) const
Definition: EcalClusterLazyTools.h:64
QcdPhotonsDQM::logTraceName
std::string logTraceName
Definition: QcdPhotonsDQM.h:46
QcdPhotonsDQM::thePlotJetMaxEta_
double thePlotJetMaxEta_
Definition: QcdPhotonsDQM.h:61
QcdPhotonsDQM::thePlotPhotonMaxEta_
double thePlotPhotonMaxEta_
Definition: QcdPhotonsDQM.h:60
spclusmultinvestigator_cfi.vertexCollection
vertexCollection
Definition: spclusmultinvestigator_cfi.py:4
metsig::jet
Definition: SignAlgoResolutions.h:47
edm::TriggerNames
Definition: TriggerNames.h:55
QcdPhotonsDQM::theEndcapRecHitToken_
edm::EDGetTokenT< EcalRecHitCollection > theEndcapRecHitToken_
Definition: QcdPhotonsDQM.h:66
edm::HLTGlobalStatus::accept
bool accept() const
Has at least one path accepted the event?
Definition: HLTGlobalStatus.h:49
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
QcdPhotonsDQM::theBarrelRecHitTag_
edm::InputTag theBarrelRecHitTag_
Definition: QcdPhotonsDQM.h:63
ExoticaDQM_cfi.photonCollection
photonCollection
Definition: ExoticaDQM_cfi.py:17
QcdPhotonsDQM::thePlotTheseTriggersToo_
std::vector< std::string > thePlotTheseTriggersToo_
Definition: QcdPhotonsDQM.h:50
hlt_dqm_clientPB-live_cfg.me
me
Definition: hlt_dqm_clientPB-live_cfg.py:61
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
QcdPhotonsDQM::h_deltaPhi_jet_jet2
MonitorElement * h_deltaPhi_jet_jet2
Definition: QcdPhotonsDQM.h:80
QcdPhotonsDQM::h_photon_et_beforeCuts
MonitorElement * h_photon_et_beforeCuts
Definition: QcdPhotonsDQM.h:71
QcdPhotonsDQM::theRequirePhotonFound_
bool theRequirePhotonFound_
Definition: QcdPhotonsDQM.h:58
edm::InputTag
Definition: InputTag.h:15
QcdPhotonsDQM::h_deltaPhi_photon_jet
MonitorElement * h_deltaPhi_photon_jet
Definition: QcdPhotonsDQM.h:79
QcdPhotonsDQM::h_jet2_pt
MonitorElement * h_jet2_pt
Definition: QcdPhotonsDQM.h:83
QcdPhotonsDQM::trigTagToken_
edm::EDGetTokenT< edm::TriggerResults > trigTagToken_
Definition: QcdPhotonsDQM.h:52
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
QcdPhotonsDQM::thePhotonCollectionToken_
edm::EDGetTokenT< reco::PhotonCollection > thePhotonCollectionToken_
Definition: QcdPhotonsDQM.h:53
QcdPhotonsDQM::h_jet_eta
MonitorElement * h_jet_eta
Definition: QcdPhotonsDQM.h:77