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