CMS 3D CMS Logo

MuonMonitor.cc
Go to the documentation of this file.
5 
6 //Author Bhawna Gomber
7 
8 // -----------------------------
9 // constructors and destructor
10 // -----------------------------
11 
13  : folderName_(iConfig.getParameter<std::string>("FolderName")),
14  metToken_(consumes<reco::PFMETCollection>(iConfig.getParameter<edm::InputTag>("met"))),
15  muonToken_(mayConsume<reco::MuonCollection>(iConfig.getParameter<edm::InputTag>("muons"))),
16  vtxToken_(mayConsume<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("vertices"))),
17  eleToken_(mayConsume<edm::View<reco::GsfElectron> >(iConfig.getParameter<edm::InputTag>("electrons"))),
18  muon_variable_binning_(
19  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("muonBinning")),
20  muoneta_variable_binning_(
21  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("muonetaBinning")),
22  muon_binning_(getHistoPSet(
23  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("muonPSet"))),
24  ls_binning_(
25  getHistoPSet(iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("lsPSet"))),
26  muPt_variable_binning_2D_(
27  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("muPtBinning2D")),
28  elePt_variable_binning_2D_(
29  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("elePtBinning2D")),
30  muEta_variable_binning_2D_(
31  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("muEtaBinning2D")),
32  eleEta_variable_binning_2D_(
33  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("eleEtaBinning2D")),
34  num_genTriggerEventFlag_(new GenericTriggerEventFlag(
35  iConfig.getParameter<edm::ParameterSet>("numGenericTriggerEventPSet"), consumesCollector(), *this)),
36  den_genTriggerEventFlag_(new GenericTriggerEventFlag(
37  iConfig.getParameter<edm::ParameterSet>("denGenericTriggerEventPSet"), consumesCollector(), *this)),
38  metSelection_(iConfig.getParameter<std::string>("metSelection")),
39  muonSelection_(iConfig.getParameter<std::string>("muonSelection")),
40  eleSelection_(iConfig.getParameter<std::string>("eleSelection")),
41  nmuons_(iConfig.getParameter<unsigned int>("nmuons")),
42  nelectrons_(iConfig.getParameter<unsigned int>("nelectrons")) {
43  muonME_.numerator = nullptr;
44  muonME_.denominator = nullptr;
47  muonVsLS_.numerator = nullptr;
48  muonVsLS_.denominator = nullptr;
49  muonEtaME_.numerator = nullptr;
50  muonEtaME_.denominator = nullptr;
53  muonPhiME_.numerator = nullptr;
54  muonPhiME_.denominator = nullptr;
55  muonEtaPhiME_.numerator = nullptr;
56  muonEtaPhiME_.denominator = nullptr;
57  muondxy_.denominator = nullptr;
58  muondxy_.numerator = nullptr;
59  muondz_.denominator = nullptr;
60  muondz_.numerator = nullptr;
63  eleEtaME_.numerator = nullptr;
64  eleEtaME_.denominator = nullptr;
65  elePt_muPt_.numerator = nullptr;
66  elePt_muPt_.denominator = nullptr;
67  eleEta_muEta_.numerator = nullptr;
68  eleEta_muEta_.denominator = nullptr;
69 }
70 
71 MuonMonitor::~MuonMonitor() = default;
72 
74  return MEbinning{
75  pset.getParameter<unsigned>("nbins"),
76  pset.getParameter<double>("xmin"),
77  pset.getParameter<double>("xmax"),
78  };
79 }
80 
82  return MEbinning{pset.getParameter<unsigned>("nbins"), 0., double(pset.getParameter<int32_t>("nbins"))};
83 }
84 
85 void MuonMonitor::setTitle(MuonME& me, const std::string& titleX, const std::string& titleY) {
86  me.numerator->setAxisTitle(titleX, 1);
87  me.numerator->setAxisTitle(titleY, 2);
88  me.denominator->setAxisTitle(titleX, 1);
89  me.denominator->setAxisTitle(titleY, 2);
90 }
91 
93  MuonME& me,
94  const std::string& histname,
95  const std::string& histtitle,
96  int nbins,
97  double min,
98  double max) {
99  me.numerator = ibooker.book1D(histname + "_numerator", histtitle + " (numerator)", nbins, min, max);
100  me.denominator = ibooker.book1D(histname + "_denominator", histtitle + " (denominator)", nbins, min, max);
101 }
102 
104  MuonME& me,
105  const std::string& histname,
106  const std::string& histtitle,
107  const std::vector<double>& binning) {
108  int nbins = binning.size() - 1;
109  std::vector<float> fbinning(binning.begin(), binning.end());
110  float* arr = &fbinning[0];
111  me.numerator = ibooker.book1D(histname + "_numerator", histtitle + " (numerator)", nbins, arr);
112  me.denominator = ibooker.book1D(histname + "_denominator", histtitle + " (denominator)", nbins, arr);
113 }
114 
116  MuonME& me,
117  const std::string& histname,
118  const std::string& histtitle,
119  int nbinsX,
120  double xmin,
121  double xmax,
122  double ymin,
123  double ymax) {
124  me.numerator =
125  ibooker.bookProfile(histname + "_numerator", histtitle + " (numerator)", nbinsX, xmin, xmax, ymin, ymax);
126  me.denominator =
127  ibooker.bookProfile(histname + "_denominator", histtitle + " (denominator)", nbinsX, xmin, xmax, ymin, ymax);
128 }
129 
131  MuonME& me,
132  const std::string& histname,
133  const std::string& histtitle,
134  int nbinsX,
135  double xmin,
136  double xmax,
137  int nbinsY,
138  double ymin,
139  double ymax) {
140  me.numerator =
141  ibooker.book2D(histname + "_numerator", histtitle + " (numerator)", nbinsX, xmin, xmax, nbinsY, ymin, ymax);
142  me.denominator =
143  ibooker.book2D(histname + "_denominator", histtitle + " (denominator)", nbinsX, xmin, xmax, nbinsY, ymin, ymax);
144 }
145 
147  MuonME& me,
148  const std::string& histname,
149  const std::string& histtitle,
150  const std::vector<double>& binningX,
151  const std::vector<double>& binningY) {
152  int nbinsX = binningX.size() - 1;
153  std::vector<float> fbinningX(binningX.begin(), binningX.end());
154  float* arrX = &fbinningX[0];
155  int nbinsY = binningY.size() - 1;
156  std::vector<float> fbinningY(binningY.begin(), binningY.end());
157  float* arrY = &fbinningY[0];
158 
159  me.numerator = ibooker.book2D(histname + "_numerator", histtitle + " (numerator)", nbinsX, arrX, nbinsY, arrY);
160  me.denominator = ibooker.book2D(histname + "_denominator", histtitle + " (denominator)", nbinsX, arrX, nbinsY, arrY);
161 }
162 
163 void MuonMonitor::bookHistograms(DQMStore::IBooker& ibooker, edm::Run const& iRun, edm::EventSetup const& iSetup) {
164  std::string histname, histtitle;
165 
166  ibooker.setCurrentFolder(folderName_);
167 
168  histname = "muon_pt";
169  histtitle = "muon PT";
170  bookME(ibooker, muonME_, histname, histtitle, muon_binning_.nbins, muon_binning_.xmin, muon_binning_.xmax);
171  setTitle(muonME_, "Muon pT [GeV]", "events / [GeV]");
172 
173  histname = "muon_pt_variable";
174  histtitle = "muon PT";
175  bookME(ibooker, muonME_variableBinning_, histname, histtitle, muon_variable_binning_);
176  setTitle(muonME_variableBinning_, "Muon pT [GeV]", "events / [GeV]");
177 
178  histname = "muonVsLS";
179  histtitle = "muon pt vs LS";
180  bookME(ibooker,
181  muonVsLS_,
182  histname,
183  histtitle,
184  ls_binning_.nbins,
185  ls_binning_.xmin,
186  ls_binning_.xmax,
187  muon_binning_.xmin,
188  muon_binning_.xmax);
189  setTitle(muonVsLS_, "LS", "Muon pT [GeV]");
190 
191  histname = "muon_phi";
192  histtitle = "Muon phi";
193  bookME(ibooker, muonPhiME_, histname, histtitle, phi_binning_.nbins, phi_binning_.xmin, phi_binning_.xmax);
194  setTitle(muonPhiME_, "Muon #phi", "events / 0.1 rad");
195 
196  histname = "muon_eta";
197  histtitle = "Muon eta";
198  bookME(ibooker, muonEtaME_, histname, histtitle, eta_binning_.nbins, eta_binning_.xmin, eta_binning_.xmax);
199  setTitle(muonEtaME_, "Muon #eta", "events");
200 
201  histname = "muon_eta_variablebinning";
202  histtitle = "Muon eta";
203  bookME(ibooker, muonEtaME_variableBinning_, histname, histtitle, muoneta_variable_binning_);
204  setTitle(muonEtaME_variableBinning_, "Muon #eta", "events");
205 
206  histname = "muon_dxy";
207  histtitle = "Muon dxy";
208  bookME(ibooker, muondxy_, histname, histtitle, dxy_binning_.nbins, dxy_binning_.xmin, dxy_binning_.xmax);
209  setTitle(muondxy_, "Muon #dxy", "events");
210 
211  histname = "muon_dz";
212  histtitle = "Muon dz";
213  bookME(ibooker, muondz_, histname, histtitle, dxy_binning_.nbins, dxy_binning_.xmin, dxy_binning_.xmax);
214  setTitle(muondz_, "Muon #dz", "events");
215 
216  histname = "muon_etaphi";
217  histtitle = "Muon eta-phi";
218  bookME(ibooker,
220  histname,
221  histtitle,
222  eta_binning_.nbins,
223  eta_binning_.xmin,
224  eta_binning_.xmax,
225  phi_binning_.nbins,
226  phi_binning_.xmin,
227  phi_binning_.xmax);
228  setTitle(muonEtaPhiME_, "#eta", "#phi");
229 
230  histname = "electron_pt_variable";
231  histtitle = "electron PT";
232  bookME(ibooker, eleME_variableBinning_, histname, histtitle, muon_variable_binning_);
233  setTitle(eleME_variableBinning_, "Electron pT [GeV]", "events / [GeV]");
234 
235  histname = "electron_eta";
236  histtitle = "electron eta";
237  bookME(ibooker, eleEtaME_, histname, histtitle, eta_binning_.nbins, eta_binning_.xmin, eta_binning_.xmax);
238  setTitle(eleEtaME_, "Electron #eta", "events");
239 
240  histname = "elePt_muPt";
241  histtitle = "electron pt vs muon pt";
243  setTitle(elePt_muPt_, "electron pt [GeV]", "muon pt [GeV]");
244 
245  histname = "eleEta_muEta";
246  histtitle = "electron #eta vs muon #eta";
248  setTitle(eleEta_muEta_, "electron #eta", "muon #eta");
249 
250  // Initialize the GenericTriggerEventFlag
252  num_genTriggerEventFlag_->initRun(iRun, iSetup);
254  den_genTriggerEventFlag_->initRun(iRun, iSetup);
255 }
256 
262  // Filter out events if Trigger Filtering is requested
263  if (den_genTriggerEventFlag_->on() && !den_genTriggerEventFlag_->accept(iEvent, iSetup))
264  return;
265 
267  iEvent.getByToken(metToken_, metHandle);
268  reco::PFMET pfmet = metHandle->front();
269  if (!metSelection_(pfmet))
270  return;
271 
273  iEvent.getByToken(vtxToken_, vtxHandle);
274 
275  math::XYZPoint pv(0, 0, 0);
276  for (reco::Vertex const& v : *vtxHandle) {
277  if (not v.isFake()) {
278  pv.SetXYZ(v.x(), v.y(), v.z());
279  break;
280  }
281  }
282 
284  iEvent.getByToken(muonToken_, muonHandle);
285  std::vector<reco::Muon> muons;
286  if (muonHandle->size() < nmuons_)
287  return;
288  for (auto const& p : *muonHandle) {
289  if (muonSelection_(p))
290  muons.push_back(p);
291  }
292  if (muons.size() < nmuons_)
293  return;
294 
296  iEvent.getByToken(eleToken_, eleHandle);
297  std::vector<reco::GsfElectron> electrons;
298  if (eleHandle->size() < nelectrons_)
299  return;
300  for (auto const& e : *eleHandle) {
301  if (eleSelection_(e))
302  electrons.push_back(e);
303  }
304  if (electrons.size() < nelectrons_)
305  return;
306 
307  // filling histograms (denominator)
308  int ls = iEvent.id().luminosityBlock();
309  if (!muons.empty())
310 
311  {
312  muonME_.denominator->Fill(muons[0].pt());
314  muonPhiME_.denominator->Fill(muons[0].phi());
315  muonEtaME_.denominator->Fill(muons[0].eta());
316  muonVsLS_.denominator->Fill(ls, muons[0].pt());
317  muonEtaPhiME_.denominator->Fill(muons[0].eta(), muons[0].phi());
318  muondxy_.denominator->Fill(muons[0].muonBestTrack()->dxy(pv));
319  muondz_.denominator->Fill(muons[0].muonBestTrack()->dz(pv));
320  if (!electrons.empty()) {
321  eleME_variableBinning_.denominator->Fill(electrons[0].pt());
322  eleEtaME_.denominator->Fill(electrons[0].eta());
323  eleEta_muEta_.denominator->Fill(electrons[0].eta(), muons[0].eta());
324  elePt_muPt_.denominator->Fill(electrons[0].pt(), muons[0].pt());
325  }
326  }
327 
328  // applying selection for numerator
329  if (num_genTriggerEventFlag_->on() && !num_genTriggerEventFlag_->accept(iEvent, iSetup))
330  return;
331 
332  // filling histograms (num_genTriggerEventFlag_)
333  if (!muons.empty()) {
334  muonME_.numerator->Fill(muons[0].pt());
336  muonPhiME_.numerator->Fill(muons[0].phi());
337  muonEtaME_.numerator->Fill(muons[0].eta());
338  muonVsLS_.numerator->Fill(ls, muons[0].pt());
339  muonEtaPhiME_.numerator->Fill(muons[0].eta(), muons[0].phi());
340  muondxy_.numerator->Fill(muons[0].muonBestTrack()->dxy(pv));
341  muondz_.numerator->Fill(muons[0].muonBestTrack()->dz(pv));
342  if (!electrons.empty()) {
343  eleME_variableBinning_.numerator->Fill(electrons[0].pt());
344  eleEtaME_.numerator->Fill(electrons[0].eta());
345  eleEta_muEta_.numerator->Fill(electrons[0].eta(), muons[0].eta());
346  elePt_muPt_.numerator->Fill(electrons[0].pt(), muons[0].pt());
347  }
348  }
349 }
350 
352  pset.add<unsigned int>("nbins");
353  pset.add<double>("xmin");
354  pset.add<double>("xmax");
355 }
356 
358  pset.add<unsigned int>("nbins", 2500);
359  pset.add<double>("xmin", 0.);
360  pset.add<double>("xmax", 2500.);
361 }
362 
365  desc.add<std::string>("FolderName", "HLT/Muon");
366  desc.add<edm::InputTag>("met", edm::InputTag("pfMet"));
367  desc.add<edm::InputTag>("muons", edm::InputTag("muons"));
368  desc.add<edm::InputTag>("vertices", edm::InputTag("offlinePrimaryVertices"));
369  desc.add<edm::InputTag>("electrons", edm::InputTag("gedGsfElectrons"));
370  desc.add<std::string>("metSelection", "pt > 0");
371  desc.add<std::string>("muonSelection", "pt > 6 && eta<2.4 ");
372  desc.add<std::string>("eleSelection", "pt > 0");
373  //desc.add<std::string>("muonSelection", "pt > 145");
374  desc.add<unsigned int>("nmuons", 0);
375  desc.add<unsigned int>("nelectrons", 0);
376 
378  genericTriggerEventPSet.add<bool>("andOr");
379  genericTriggerEventPSet.add<edm::InputTag>("dcsInputTag", edm::InputTag("scalersRawToDigi"));
380  genericTriggerEventPSet.add<std::vector<int> >("dcsPartitions", {});
381  genericTriggerEventPSet.add<bool>("andOrDcs", false);
382  genericTriggerEventPSet.add<bool>("errorReplyDcs", true);
383  genericTriggerEventPSet.add<std::string>("dbLabel", "");
384  genericTriggerEventPSet.add<bool>("andOrHlt", true);
385  genericTriggerEventPSet.add<edm::InputTag>("hltInputTag", edm::InputTag("TriggerResults::HLT"));
386  genericTriggerEventPSet.add<std::vector<std::string> >("hltPaths", {});
387  genericTriggerEventPSet.add<std::string>("hltDBKey", "");
388  genericTriggerEventPSet.add<bool>("errorReplyHlt", false);
389  genericTriggerEventPSet.add<bool>("errorReplyL1", false);
390  genericTriggerEventPSet.add<unsigned int>("verbosityLevel", 1);
391  genericTriggerEventPSet.add<bool>("andOrL1", false);
392  genericTriggerEventPSet.add<bool>("l1BeforeMask", false);
393  genericTriggerEventPSet.add<std::vector<std::string> >("l1Algorithms", {});
394 
395  desc.add<edm::ParameterSetDescription>("numGenericTriggerEventPSet", genericTriggerEventPSet);
396  desc.add<edm::ParameterSetDescription>("denGenericTriggerEventPSet", genericTriggerEventPSet);
397 
400  fillHistoPSetDescription(metPSet);
401  histoPSet.add<edm::ParameterSetDescription>("muonPSet", metPSet);
402  std::vector<double> bins = {0., 20., 40., 60., 80., 90., 100., 110., 120., 130., 140., 150., 160.,
403  170., 180., 190., 200., 220., 240., 260., 280., 300., 350., 400., 450., 1000.};
404  histoPSet.add<std::vector<double> >("muonBinning", bins);
405 
406  std::vector<double> etabins = {-3., -2.5, -2., -1.5, -1., -.5, 0., .5, 1., 1.5, 2., 2.5, 3.};
407  histoPSet.add<std::vector<double> >("muonetaBinning", etabins);
408 
409  std::vector<double> bins_2D = {0., 40., 80., 100., 120., 140., 160., 180., 200., 240., 280., 350., 450., 1000.};
410  std::vector<double> eta_bins_2D = {-3., -2., -1., 0., 1., 2., 3.};
411  std::vector<double> phi_bins_2D = {
412  -3.1415, -2.5132, -1.8849, -1.2566, -0.6283, 0, 0.6283, 1.2566, 1.8849, 2.5132, 3.1415};
413  histoPSet.add<std::vector<double> >("elePtBinning2D", bins_2D);
414  histoPSet.add<std::vector<double> >("muPtBinning2D", bins_2D);
415  histoPSet.add<std::vector<double> >("eleEtaBinning2D", eta_bins_2D);
416  histoPSet.add<std::vector<double> >("muEtaBinning2D", eta_bins_2D);
417 
420  histoPSet.add<edm::ParameterSetDescription>("lsPSet", lsPSet);
421 
422  desc.add<edm::ParameterSetDescription>("histoPSet", histoPSet);
423 
424  descriptions.add("muonMonitoring", desc);
425 }
426 
427 // Define this as a plug-in
std::vector< double > muPt_variable_binning_2D_
Definition: MuonMonitor.h:137
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX)
Definition: DQMStore.cc:239
T getParameter(std::string const &) const
StringCutObjectSelector< reco::MET, true > metSelection_
Definition: MuonMonitor.h:159
edm::EDGetTokenT< reco::PFMETCollection > metToken_
Definition: MuonMonitor.h:116
MuonME elePt_muPt_
Definition: MuonMonitor.h:154
void setTitle(MuonME &me, const std::string &titleX, const std::string &titleY)
Definition: MuonMonitor.cc:85
MuonME muonEtaPhiME_
Definition: MuonMonitor.h:147
unsigned int nelectrons_
Definition: MuonMonitor.h:164
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
MuonME muonEtaME_variableBinning_
Definition: MuonMonitor.h:150
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:418
MuonME muonPhiME_
Definition: MuonMonitor.h:144
MuonMonitor(const edm::ParameterSet &)
Definition: MuonMonitor.cc:12
MuonME muonME_
Definition: MuonMonitor.h:142
std::vector< double > muoneta_variable_binning_
Definition: MuonMonitor.h:134
dqm::reco::MonitorElement * numerator
Definition: MuonMonitor.h:51
const MEbinning dxy_binning_
Definition: MuonMonitor.h:127
std::unique_ptr< GenericTriggerEventFlag > num_genTriggerEventFlag_
Definition: MuonMonitor.h:156
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
edm::EDGetTokenT< reco::VertexCollection > vtxToken_
Definition: MuonMonitor.h:118
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:39
MuonME muondz_
Definition: MuonMonitor.h:149
const MEbinning phi_binning_
Definition: MuonMonitor.h:123
std::vector< double > muEta_variable_binning_2D_
Definition: MuonMonitor.h:139
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
dqm::reco::MonitorElement * denominator
Definition: MuonMonitor.h:52
StringCutObjectSelector< reco::GsfElectron, true > eleSelection_
Definition: MuonMonitor.h:161
MEbinning ls_binning_
Definition: MuonMonitor.h:136
void Fill(long long x)
void analyze(edm::Event const &iEvent, edm::EventSetup const &iSetup) override
Definition: MuonMonitor.cc:261
MuonME muonVsLS_
Definition: MuonMonitor.h:146
MuonME eleEta_muEta_
Definition: MuonMonitor.h:153
MEbinning muon_binning_
Definition: MuonMonitor.h:135
edm::EDGetTokenT< edm::View< reco::GsfElectron > > eleToken_
Definition: MuonMonitor.h:119
int iEvent
Definition: GenABIO.cc:224
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
std::unique_ptr< GenericTriggerEventFlag > den_genTriggerEventFlag_
Definition: MuonMonitor.h:157
MuonME muondxy_
Definition: MuonMonitor.h:148
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, char const *option="s")
Definition: DQMStore.cc:333
static void fillHistoPSetDescription(edm::ParameterSetDescription &pset)
Definition: MuonMonitor.cc:351
def pv(vc)
Definition: MetAnalyzer.py:7
static MEbinning getHistoPSet(edm::ParameterSet const &pset)
Definition: MuonMonitor.cc:73
T min(T a, T b)
Definition: MathUtil.h:58
edm::EDGetTokenT< reco::MuonCollection > muonToken_
Definition: MuonMonitor.h:117
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::vector< double > elePt_variable_binning_2D_
Definition: MuonMonitor.h:138
std::vector< double > muon_variable_binning_
Definition: MuonMonitor.h:133
static MEbinning getHistoLSPSet(edm::ParameterSet const &pset)
Definition: MuonMonitor.cc:81
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: MuonMonitor.cc:163
def ls(path, rec=False)
Definition: eostools.py:349
unsigned int nmuons_
Definition: MuonMonitor.h:163
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
MuonME muonME_variableBinning_
Definition: MuonMonitor.h:145
void add(std::string const &label, ParameterSetDescription const &psetDescription)
MuonME muonEtaME_
Definition: MuonMonitor.h:143
void bookME(DQMStore::IBooker &, MuonME &me, const std::string &histname, const std::string &histtitle, int nbins, double xmin, double xmax)
Definition: MuonMonitor.cc:92
edm::EventID id() const
Definition: EventBase.h:59
fixed size matrix
HLT enums.
MuonME eleME_variableBinning_
Definition: MuonMonitor.h:151
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Definition: DQMStore.cc:266
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: MuonMonitor.cc:363
std::string folderName_
Definition: MuonMonitor.h:113
~MuonMonitor() override
const MEbinning eta_binning_
Definition: MuonMonitor.h:131
std::vector< double > eleEta_variable_binning_2D_
Definition: MuonMonitor.h:140
Definition: Run.h:45
MuonME eleEtaME_
Definition: MuonMonitor.h:152
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Collection of PF MET.
static void fillHistoLSPSetDescription(edm::ParameterSetDescription &pset)
Definition: MuonMonitor.cc:357
StringCutObjectSelector< reco::Muon, true > muonSelection_
Definition: MuonMonitor.h:160