CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
MuIsoValidation Class Reference

#include <MuIsoValidation.h>

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

Public Member Functions

 MuIsoValidation (const edm::ParameterSet &)
 
 ~MuIsoValidation () 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
 
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
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Private Types

enum  { NOAXIS, XAXIS, YAXIS, ZAXIS }
 
typedef edm::Handle< reco::IsoDepositMapMuIsoDepHandle
 
typedef edm::RefToBase< reco::MuonMuonBaseRef
 
typedef edm::View< reco::Muon >::const_iterator MuonIterator
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void FillHistos ()
 
void InitStatics ()
 
void MakeLogBinsForProfile (Double_t *bin_edges, const double min, const double max)
 
void RecordData (MuonIterator muon)
 

Private Attributes

std::vector< std::string > axis_titles
 
std::vector< MonitorElement * > cd_plots
 
std::vector< int > cdCompNeeded
 
std::string dirName
 
edm::InputTag ecalIsoDeposit_Tag
 
std::vector< MonitorElement * > h_1D
 
MonitorElementh_nMuons
 
edm::InputTag hcalIsoDeposit_Tag
 
edm::InputTag hoIsoDeposit_Tag
 
edm::ParameterSet iConfig
 
std::vector< int > isContinuous
 
double L_BIN_WIDTH
 
int LOG_BINNING_ENABLED
 
double LOG_BINNING_RATIO
 
std::vector< std::string > main_titles
 
const typedef reco::IsoDeposit MuIsoDepRef
 
edm::InputTag Muon_Tag
 
edm::EDGetTokenT< edm::View< reco::Muon > > Muon_Token
 
std::vector< std::string > names
 
int nEvents
 
int nIncMuons
 
int NUM_LOG_BINS
 
std::vector< std::vector< MonitorElement * > > p_2D
 
std::vector< std::vector< double > > param
 
bool requireCombinedMuon
 
std::string rootfilename
 
double S_BIN_WIDTH
 
std::string subDirName
 
std::string subsystemname_
 
double theData [NUM_VARS]
 
int theMuonData
 
std::string title_cd
 
std::string title_cone
 
std::string title_sam
 
edm::InputTag tkIsoDeposit_Tag
 

Static Private Attributes

static const int NUM_VARS = 21
 

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 >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache 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

Definition at line 59 of file MuIsoValidation.h.

Member Typedef Documentation

◆ MuIsoDepHandle

Definition at line 63 of file MuIsoValidation.h.

◆ MuonBaseRef

Definition at line 62 of file MuIsoValidation.h.

◆ MuonIterator

typedef edm::View<reco::Muon>::const_iterator MuIsoValidation::MuonIterator
private

Definition at line 61 of file MuIsoValidation.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
NOAXIS 
XAXIS 
YAXIS 
ZAXIS 

Definition at line 141 of file MuIsoValidation.h.

141 { NOAXIS, XAXIS, YAXIS, ZAXIS };

Constructor & Destructor Documentation

◆ MuIsoValidation()

MuIsoValidation::MuIsoValidation ( const edm::ParameterSet ps)
explicit

Definition at line 61 of file MuIsoValidation.cc.

61  {
62  iConfig = ps;
63 
64  // rootfilename = iConfig.getUntrackedParameter<string>("rootfilename"); // comment out for inclusion
65  requireCombinedMuon = iConfig.getUntrackedParameter<bool>("requireCombinedMuon");
67  //subDirName = iConfig.getParameter<std::string>("@module_label");
68 
69  //dirName += subDirName;
70 
71  //--------Initialize tags-------
72  Muon_Tag = iConfig.getUntrackedParameter<edm::InputTag>("Global_Muon_Label");
73  Muon_Token = consumes<edm::View<reco::Muon> >(Muon_Tag);
74 
75  //-------Initialize counters----------------
76  nEvents = 0;
77  nIncMuons = 0;
78  // nCombinedMuons = 0;
79 
80  InitStatics();
81 
82  //Set up DAQ
83  subsystemname_ = iConfig.getUntrackedParameter<std::string>("subSystemFolder", "YourSubsystem");
84 
85  //------"allocate" space for the data vectors-------
86  h_1D.resize(NUM_VARS);
87  cd_plots.resize(NUM_VARS);
88  p_2D.resize(NUM_VARS, vector<MonitorElement*>(NUM_VARS));
89 }

References cd_plots, dirName, edm::ParameterSet::getUntrackedParameter(), h_1D, iConfig, InitStatics(), Muon_Tag, Muon_Token, nEvents, nIncMuons, NUM_VARS, p_2D, requireCombinedMuon, AlCaHLTBitMon_QueryRunRegistry::string, and subsystemname_.

◆ ~MuIsoValidation()

MuIsoValidation::~MuIsoValidation ( )
override

Definition at line 94 of file MuIsoValidation.cc.

94  {
95  //Deallocate memory
96 }

Member Function Documentation

◆ analyze()

void MuIsoValidation::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 315 of file MuIsoValidation.cc.

315  {
316  ++nEvents;
317  edm::LogInfo("Tutorial") << "\nInvestigating event #" << nEvents << "\n";
318 
319  // Get Muon Collection
320  edm::Handle<edm::View<reco::Muon> > muonsHandle; //
321  iEvent.getByToken(Muon_Token, muonsHandle);
322 
323  //Fill event entry in histogram of number of muons
324  edm::LogInfo("Tutorial") << "Number of Muons: " << muonsHandle->size();
325  theMuonData = muonsHandle->size();
327 
328  //Fill historgams concerning muon isolation
329  uint iMuon = 0;
330  for (MuonIterator muon = muonsHandle->begin(); muon != muonsHandle->end(); ++muon, ++iMuon) {
331  ++nIncMuons;
332  if (requireCombinedMuon) {
333  if (muon->combinedMuon().isNull())
334  continue;
335  }
336  RecordData(muon);
337  FillHistos();
338  }
339 }

References dqm::impl::MonitorElement::Fill(), FillHistos(), h_nMuons, iEvent, HLT_2018_cff::muon, Muon_Token, nEvents, nIncMuons, RecordData(), requireCombinedMuon, theMuonData, and parallelization::uint.

◆ bookHistograms()

void MuIsoValidation::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &   
)
overrideprivatevirtual

Implements DQMEDAnalyzer.

Definition at line 384 of file MuIsoValidation.cc.

384  {
385  ibooker.setCurrentFolder(dirName);
386  //---initialize number of muons histogram---
387  h_nMuons = ibooker.book1D("nMuons", title_sam + "Number of Muons", 20, 0., 20.);
388  h_nMuons->setAxisTitle("Number of Muons", XAXIS);
389  h_nMuons->setAxisTitle("Fraction of Events", YAXIS);
390 
391  //---Initialize 1D Histograms---
392  for (int var = 0; var < NUM_VARS; var++) {
393  h_1D[var] = ibooker.book1D(names[var],
395  (int)param[var][0],
396  param[var][1],
397  param[var][2],
398  [](TH1* th1) { th1->Sumw2(); });
399  h_1D[var]->setAxisTitle(axis_titles[var], XAXIS);
400  h_1D[var]->setAxisTitle("Fraction of Muons", YAXIS);
401 
402  if (cdCompNeeded[var]) {
403  cd_plots[var] = ibooker.book1D(names[var] + "_cd",
405  (int)param[var][0],
406  param[var][1],
407  param[var][2],
408  [](TH1* th1) { th1->Sumw2(); });
409  cd_plots[var]->setAxisTitle(axis_titles[var], XAXIS);
410  cd_plots[var]->setAxisTitle("Fraction of Muons", YAXIS);
411  }
412  } //Finish 1D
413 
414  //---Initialize 2D Histograms---
415  for (int var1 = 0; var1 < NUM_VARS; var1++) {
416  for (int var2 = 0; var2 < NUM_VARS; var2++) {
417  if (var1 == var2)
418  continue;
419 
420  //Monitor elements is weird and takes y axis parameters as well
421  //as x axis parameters for a 1D profile plot
422  p_2D[var1][var2] = ibooker.bookProfile(names[var1] + "_" + names[var2],
423  title_sam + main_titles[var2] + " <vs> " + main_titles[var1] + title_cone,
424  (int)param[var1][0],
425  param[var1][1],
426  param[var1][2],
427  (int)param[var2][0], //documentation says this is disregarded
428  param[var2][1], //does this do anything?
429  param[var2][2], //does this do anything?
430  " ", //profile errors = spread/sqrt(num_datums)
431  [&](TProfile* tprof) {
432  if (LOG_BINNING_ENABLED && isContinuous[var1]) {
433  Double_t* bin_edges = new Double_t[NUM_LOG_BINS + 1];
434  // nbins+1 because there is one more edge than there are bins
435  MakeLogBinsForProfile(bin_edges, param[var1][1], param[var1][2]);
436  tprof->SetBins(NUM_LOG_BINS, bin_edges);
437  delete[] bin_edges;
438  }
439  });
440 
441  p_2D[var1][var2]->setAxisTitle(axis_titles[var1], XAXIS);
442  p_2D[var1][var2]->setAxisTitle(axis_titles[var2], YAXIS);
443  }
444  } //Finish 2D
445 
446  //avg pT not defined for zero tracks.
447  //MonitorElement is inflxible and won't let me change the
448  //number of bins! I guess all I'm doing here is changing
449  //range of the x axis when it is printed, not the actual
450  //bins that are filled
451  p_2D[4][9]->setAxisRange(0.5, 15.5, XAXIS);
452 }

References axis_titles, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookProfile(), cd_plots, cdCompNeeded, dirName, h_1D, h_nMuons, isContinuous, LOG_BINNING_ENABLED, main_titles, MakeLogBinsForProfile(), names, NUM_LOG_BINS, NUM_VARS, p_2D, param, dqm::impl::MonitorElement::setAxisTitle(), dqm::implementation::NavigatorBase::setCurrentFolder(), title_cd, title_cone, title_sam, trigObjTnPSource_cfi::var, XAXIS, and YAXIS.

◆ FillHistos()

void MuIsoValidation::FillHistos ( )
private

Definition at line 470 of file MuIsoValidation.cc.

470  {
471  //----------Fill 1D histograms---------------
472  for (int var = 0; var < NUM_VARS; var++) {
473  h_1D[var]->Fill(theData[var]);
474  if (cdCompNeeded[var])
475  cd_plots[var]->Fill(theData[var]); //right now, this is a regular PDF (just like h_1D)
476  } //Finish 1D
477 
478  //----------Fill 2D histograms---------------
479  for (int var1 = 0; var1 < NUM_VARS; ++var1) {
480  for (int var2 = 0; var2 < NUM_VARS; ++var2) {
481  if (var1 == var2)
482  continue;
483  //change below to regular int interating!
484  // h_2D[var1][var2]->Fill(theData[var1], theData[var2]);
485  p_2D[var1][var2]->Fill(theData[var1], theData[var2]);
486  }
487  } //Finish 2D
488 }

References cd_plots, cdCompNeeded, h_1D, NUM_VARS, p_2D, theData, and trigObjTnPSource_cfi::var.

Referenced by analyze().

◆ InitStatics()

void MuIsoValidation::InitStatics ( )
private

Definition at line 101 of file MuIsoValidation.cc.

101  {
102  //-----------Initialize primatives-----------
103  S_BIN_WIDTH = 1.0; //in GeV
104  L_BIN_WIDTH = 2.0; //in GeV
106  NUM_LOG_BINS = 15;
107  LOG_BINNING_RATIO = 1.1; //ratio by which each bin is wider than the last for log binning
108  //i.e. bin widths are (x), (r*x), (r^2*x), ..., (r^(nbins)*x)
109 
110  //-------Initialize Titles---------
111  title_sam = ""; //"[Sample b-jet events] ";
112  title_cone = ""; //" [in R=0.3 IsoDeposit Cone]";
113  //The above two pieces of info will be printed on the title of the whole page,
114  //not for each individual histogram
115  title_cd = "C.D. of ";
116 
117  //-------"Allocate" memory for vectors
118  main_titles.resize(NUM_VARS);
119  axis_titles.resize(NUM_VARS);
120  names.resize(NUM_VARS);
121  param.resize(NUM_VARS, vector<double>(3));
122  isContinuous.resize(NUM_VARS);
123  cdCompNeeded.resize(NUM_VARS);
124 
125  //-----Titles of the plots-----------
126  main_titles[0] = "Total Tracker Momentum";
127  main_titles[1] = "Total EM Cal Energy";
128  main_titles[2] = "Total Had Cal Energy";
129  main_titles[3] = "Total HO Cal Energy";
130  main_titles[4] = "Number of Tracker Tracks";
131  main_titles[5] = "Number of Jets around Muon";
132  main_titles[6] = "Tracker p_{T} within veto cone";
133  main_titles[7] = "EM E_{T} within veto cone";
134  main_titles[8] = "Had E_{T} within veto cone";
135  main_titles[9] = "HO E_{T} within veto cone";
136  main_titles[10] = "Muon p_{T}";
137  main_titles[11] = "Muon #eta";
138  main_titles[12] = "Muon #phi";
139  main_titles[13] = "Average Momentum per Track ";
140  main_titles[14] = "Weighted Energy";
141  main_titles[15] = "PF Sum of Charged Hadron Pt";
142  main_titles[16] = "PF Sum of Total Hadron Pt";
143  main_titles[17] = "PF Sum of E,Mu Pt";
144  main_titles[18] = "PF Sum of Neutral Hadron Et";
145  main_titles[19] = "PF Sum of Photon Et";
146  main_titles[20] = "PF Sum of Pt from non-PV";
147 
148  //------Titles on the X or Y axis------------
149  axis_titles[0] = "#Sigma p_{T} (GeV)";
150  axis_titles[1] = "#Sigma E_{T}^{EM} (GeV)";
151  axis_titles[2] = "#Sigma E_{T}^{Had} (GeV)";
152  axis_titles[3] = "#Sigma E_{T}^{HO} (GeV)";
153  axis_titles[4] = "N_{Tracks}";
154  axis_titles[5] = "N_{Jets}";
155  axis_titles[6] = "#Sigma p_{T,veto} (GeV)";
156  axis_titles[7] = "#Sigma E_{T,veto}^{EM} (GeV)";
157  axis_titles[8] = "#Sigma E_{T,veto}^{Had} (GeV)";
158  axis_titles[9] = "#Sigma E_{T,veto}^{HO} (GeV)";
159  axis_titles[10] = "p_{T,#mu} (GeV)";
160  axis_titles[11] = "#eta_{#mu}";
161  axis_titles[12] = "#phi_{#mu}";
162  axis_titles[13] = "#Sigma p_{T} / N_{Tracks} (GeV)";
163  axis_titles[14] = "(1.5) X #Sigma E_{T}^{EM} + #Sigma E_{T}^{Had}";
164  axis_titles[15] = "#Sigma p_{T}^{PFHadCha} (GeV)";
165  axis_titles[16] = "#Sigma p_{T}^{PFTotCha} (GeV)";
166  axis_titles[17] = "#Sigma p_{T}^{PFEMu} (GeV)";
167  axis_titles[18] = "#Sigma E_{T}^{PFHadNeu} (GeV)";
168  axis_titles[19] = "#Sigma E_{T}^{PFPhot} (GeV)";
169  axis_titles[20] = "#Sigma p_{T}^{PFPU} (GeV)";
170 
171  //-----------Names given for the root file----------
172  names[0] = "sumPt";
173  names[1] = "emEt";
174  names[2] = "hadEt";
175  names[3] = "hoEt";
176  names[4] = "nTracks";
177  names[5] = "nJets";
178  names[6] = "trackerVetoPt";
179  names[7] = "emVetoEt";
180  names[8] = "hadVetoEt";
181  names[9] = "hoVetoEt";
182  names[10] = "muonPt";
183  names[11] = "muonEta";
184  names[12] = "muonPhi";
185  names[13] = "avgPt";
186  names[14] = "weightedEt";
187  names[15] = "PFsumChargedHadronPt";
188  names[16] = "PFsumChargedTotalPt";
189  names[17] = "PFsumEMuPt";
190  names[18] = "PFsumNeutralHadronEt";
191  names[19] = "PFsumPhotonEt";
192  names[20] = "PFsumPUPt";
193 
194  //----------Parameters for binning of histograms---------
195  //param[var][0] is the number of bins
196  //param[var][1] is the low edge of the low bin
197  //param[var][2] is the high edge of the high bin
198  //
199  // maximum value------,
200  // |
201  // V
202  param[0][0] = (int)(20.0 / S_BIN_WIDTH);
203  param[0][1] = 0.0;
204  param[0][2] = param[0][0] * S_BIN_WIDTH;
205  param[1][0] = (int)(20.0 / S_BIN_WIDTH);
206  param[1][1] = 0.0;
207  param[1][2] = param[1][0] * S_BIN_WIDTH;
208  param[2][0] = (int)(20.0 / S_BIN_WIDTH);
209  param[2][1] = 0.0;
210  param[2][2] = param[2][0] * S_BIN_WIDTH;
211  param[3][0] = 20;
212  param[3][1] = 0.0;
213  param[3][2] = 2.0;
214  param[4][0] = 16;
215  param[4][1] = -0.5;
216  param[4][2] = param[4][0] - 0.5;
217  param[5][0] = 4;
218  param[5][1] = -0.5;
219  param[5][2] = param[5][0] - 0.5;
220  param[6][0] = (int)(40.0 / S_BIN_WIDTH);
221  param[6][1] = 0.0;
222  param[6][2] = param[6][0] * S_BIN_WIDTH;
223  param[7][0] = 20;
224  param[7][1] = 0.0;
225  param[7][2] = 10.0;
226  param[8][0] = (int)(20.0 / S_BIN_WIDTH);
227  param[8][1] = 0.0;
228  param[8][2] = param[8][0] * S_BIN_WIDTH;
229  param[9][0] = 20;
230  param[9][1] = 0.0;
231  param[9][2] = 5.0;
232  param[10][0] = (int)(40.0 / S_BIN_WIDTH);
233  param[10][1] = 0.0;
234  param[10][2] = param[10][0] * S_BIN_WIDTH;
235  param[11][0] = 24;
236  param[11][1] = -2.4;
237  param[11][2] = 2.4;
238  param[12][0] = 32;
239  param[12][1] = -3.2;
240  param[12][2] = 3.2;
241  param[13][0] = (int)(15.0 / S_BIN_WIDTH);
242  param[13][1] = 0.0;
243  param[13][2] = param[13][0] * S_BIN_WIDTH;
244  param[14][0] = (int)(20.0 / S_BIN_WIDTH);
245  param[14][1] = 0.0;
246  param[14][2] = param[14][0] * S_BIN_WIDTH;
247  param[15][0] = (int)(20.0 / S_BIN_WIDTH);
248  param[15][1] = 0.0;
249  param[15][2] = param[15][0] * S_BIN_WIDTH;
250  param[16][0] = (int)(20.0 / S_BIN_WIDTH);
251  param[15][1] = 0.0;
252  param[16][2] = param[16][0] * S_BIN_WIDTH;
253  param[17][0] = (int)(20.0 / S_BIN_WIDTH) + 1;
254  param[17][1] = -S_BIN_WIDTH;
255  param[17][2] = param[17][0] * S_BIN_WIDTH;
256  param[18][0] = (int)(20.0 / S_BIN_WIDTH);
257  param[18][1] = 0.0;
258  param[18][2] = param[18][0] * S_BIN_WIDTH;
259  param[19][0] = (int)(20.0 / S_BIN_WIDTH);
260  param[19][1] = 0.0;
261  param[19][2] = param[19][0] * S_BIN_WIDTH;
262  param[20][0] = (int)(20.0 / S_BIN_WIDTH);
263  param[20][1] = 0.0;
264  param[20][2] = param[20][0] * S_BIN_WIDTH;
265 
266  //--------------Is the variable continuous (i.e. non-integer)?-------------
267  //---------(Log binning will only be used for continuous variables)--------
268  isContinuous[0] = 1;
269  isContinuous[1] = 1;
270  isContinuous[2] = 1;
271  isContinuous[3] = 1;
272  isContinuous[4] = 0;
273  isContinuous[5] = 0;
274  isContinuous[6] = 1;
275  isContinuous[7] = 1;
276  isContinuous[8] = 1;
277  isContinuous[9] = 1;
278  isContinuous[10] = 1;
279  isContinuous[11] = 1;
280  isContinuous[12] = 1;
281  isContinuous[13] = 1;
282  isContinuous[14] = 1;
283  isContinuous[15] = 1;
284  isContinuous[16] = 1;
285  isContinuous[17] = 1;
286  isContinuous[18] = 1;
287  isContinuous[19] = 1;
288  isContinuous[20] = 1;
289 
290  //----Should the cumulative distribution be calculated for this variable?-----
291  cdCompNeeded[0] = 1;
292  cdCompNeeded[1] = 1;
293  cdCompNeeded[2] = 1;
294  cdCompNeeded[3] = 1;
295  cdCompNeeded[4] = 1;
296  cdCompNeeded[5] = 1;
297  cdCompNeeded[6] = 1;
298  cdCompNeeded[7] = 1;
299  cdCompNeeded[8] = 1;
300  cdCompNeeded[9] = 1;
301  cdCompNeeded[10] = 0;
302  cdCompNeeded[11] = 0;
303  cdCompNeeded[12] = 0;
304  cdCompNeeded[13] = 1;
305  cdCompNeeded[14] = 1;
306  cdCompNeeded[15] = 1;
307  cdCompNeeded[16] = 1;
308  cdCompNeeded[17] = 1;
309  cdCompNeeded[18] = 1;
310  cdCompNeeded[19] = 1;
311  cdCompNeeded[20] = 1;
312 }

References axis_titles, cdCompNeeded, createfilelist::int, isContinuous, L_BIN_WIDTH, LOG_BINNING_ENABLED, LOG_BINNING_RATIO, main_titles, names, NUM_LOG_BINS, NUM_VARS, param, S_BIN_WIDTH, title_cd, title_cone, and title_sam.

Referenced by MuIsoValidation().

◆ MakeLogBinsForProfile()

void MuIsoValidation::MakeLogBinsForProfile ( Double_t *  bin_edges,
const double  min,
const double  max 
)
private

Definition at line 454 of file MuIsoValidation.cc.

454  {
455  const double& r = LOG_BINNING_RATIO;
456  const int& nbins = NUM_LOG_BINS;
457 
458  const double first_bin_width = (r > 1.0) ? //so we don't divide by zero
459  (max - min) * (1 - r) / (1 - pow(r, nbins))
460  : (max - min) / nbins;
461 
462  bin_edges[0] = min;
463  bin_edges[1] = min + first_bin_width;
464  for (int n = 2; n < nbins; ++n) {
465  bin_edges[n] = bin_edges[n - 1] + (bin_edges[n - 1] - bin_edges[n - 2]) * r;
466  }
467  bin_edges[nbins] = max;
468 }

References LOG_BINNING_RATIO, SiStripPI::max, min(), dqmiodumpmetadata::n, LaserClient_cfi::nbins, NUM_LOG_BINS, funct::pow(), and alignCSCRings::r.

Referenced by bookHistograms().

◆ RecordData()

void MuIsoValidation::RecordData ( MuonIterator  muon)
private

Definition at line 342 of file MuIsoValidation.cc.

342  {
343  theData[0] = muon->isolationR03().sumPt;
344  theData[1] = muon->isolationR03().emEt;
345  theData[2] = muon->isolationR03().hadEt;
346  theData[3] = muon->isolationR03().hoEt;
347 
348  theData[4] = muon->isolationR03().nTracks;
349  theData[5] = muon->isolationR03().nJets;
350  theData[6] = muon->isolationR03().trackerVetoPt;
351  theData[7] = muon->isolationR03().emVetoEt;
352  theData[8] = muon->isolationR03().hadVetoEt;
353  theData[9] = muon->isolationR03().hoVetoEt;
354 
355  theData[10] = muon->pt();
356  theData[11] = muon->eta();
357  theData[12] = muon->phi();
358 
359  // make sure nTracks != 0 before filling this one
360  if (theData[4] != 0)
361  theData[13] = (double)theData[0] / (double)theData[4];
362  else
363  theData[13] = -99;
364 
365  theData[14] = 1.5 * theData[1] + theData[2];
366 
367  // Now PF isolation
368  theData[15] = -99.;
369  theData[16] = -99.;
370  theData[17] = -99.;
371  theData[18] = -99.;
372  theData[19] = -99.;
373  theData[20] = -99.;
374  if (muon->isPFMuon() && muon->isPFIsolationValid()) {
375  theData[15] = muon->pfIsolationR03().sumChargedHadronPt;
376  theData[16] = muon->pfIsolationR03().sumChargedParticlePt;
377  theData[17] = muon->pfIsolationR03().sumChargedParticlePt - muon->pfIsolationR03().sumChargedHadronPt;
378  theData[18] = muon->pfIsolationR03().sumNeutralHadronEt;
379  theData[19] = muon->pfIsolationR03().sumPhotonEt;
380  theData[20] = muon->pfIsolationR03().sumPUPt;
381  }
382 }

References theData.

Referenced by analyze().

Member Data Documentation

◆ axis_titles

std::vector<std::string> MuIsoValidation::axis_titles
private

Definition at line 113 of file MuIsoValidation.h.

Referenced by bookHistograms(), and InitStatics().

◆ cd_plots

std::vector<MonitorElement*> MuIsoValidation::cd_plots
private

Definition at line 131 of file MuIsoValidation.h.

Referenced by bookHistograms(), FillHistos(), and MuIsoValidation().

◆ cdCompNeeded

std::vector<int> MuIsoValidation::cdCompNeeded
private

Definition at line 117 of file MuIsoValidation.h.

Referenced by bookHistograms(), FillHistos(), and InitStatics().

◆ dirName

std::string MuIsoValidation::dirName
private

◆ ecalIsoDeposit_Tag

edm::InputTag MuIsoValidation::ecalIsoDeposit_Tag
private

Definition at line 88 of file MuIsoValidation.h.

◆ h_1D

std::vector<MonitorElement*> MuIsoValidation::h_1D
private

Definition at line 130 of file MuIsoValidation.h.

Referenced by bookHistograms(), FillHistos(), and MuIsoValidation().

◆ h_nMuons

MonitorElement* MuIsoValidation::h_nMuons
private

Definition at line 129 of file MuIsoValidation.h.

Referenced by analyze(), and bookHistograms().

◆ hcalIsoDeposit_Tag

edm::InputTag MuIsoValidation::hcalIsoDeposit_Tag
private

Definition at line 87 of file MuIsoValidation.h.

◆ hoIsoDeposit_Tag

edm::InputTag MuIsoValidation::hoIsoDeposit_Tag
private

Definition at line 89 of file MuIsoValidation.h.

◆ iConfig

edm::ParameterSet MuIsoValidation::iConfig
private

Definition at line 123 of file MuIsoValidation.h.

Referenced by MuIsoValidation().

◆ isContinuous

std::vector<int> MuIsoValidation::isContinuous
private

Definition at line 116 of file MuIsoValidation.h.

Referenced by bookHistograms(), and InitStatics().

◆ L_BIN_WIDTH

double MuIsoValidation::L_BIN_WIDTH
private

Definition at line 101 of file MuIsoValidation.h.

Referenced by InitStatics().

◆ LOG_BINNING_ENABLED

int MuIsoValidation::LOG_BINNING_ENABLED
private

Definition at line 103 of file MuIsoValidation.h.

Referenced by bookHistograms(), and InitStatics().

◆ LOG_BINNING_RATIO

double MuIsoValidation::LOG_BINNING_RATIO
private

Definition at line 105 of file MuIsoValidation.h.

Referenced by InitStatics(), and MakeLogBinsForProfile().

◆ main_titles

std::vector<std::string> MuIsoValidation::main_titles
private

Definition at line 112 of file MuIsoValidation.h.

Referenced by bookHistograms(), and InitStatics().

◆ MuIsoDepRef

const typedef reco::IsoDeposit MuIsoValidation::MuIsoDepRef
private

Definition at line 64 of file MuIsoValidation.h.

◆ Muon_Tag

edm::InputTag MuIsoValidation::Muon_Tag
private

Definition at line 84 of file MuIsoValidation.h.

Referenced by MuIsoValidation().

◆ Muon_Token

edm::EDGetTokenT<edm::View<reco::Muon> > MuIsoValidation::Muon_Token
private

Definition at line 85 of file MuIsoValidation.h.

Referenced by analyze(), and MuIsoValidation().

◆ names

std::vector<std::string> MuIsoValidation::names
private

Definition at line 114 of file MuIsoValidation.h.

Referenced by bookHistograms(), and InitStatics().

◆ nEvents

int MuIsoValidation::nEvents
private

Definition at line 136 of file MuIsoValidation.h.

Referenced by analyze(), and MuIsoValidation().

◆ nIncMuons

int MuIsoValidation::nIncMuons
private

Definition at line 137 of file MuIsoValidation.h.

Referenced by analyze(), and MuIsoValidation().

◆ NUM_LOG_BINS

int MuIsoValidation::NUM_LOG_BINS
private

Definition at line 104 of file MuIsoValidation.h.

Referenced by bookHistograms(), InitStatics(), and MakeLogBinsForProfile().

◆ NUM_VARS

const int MuIsoValidation::NUM_VARS = 21
staticprivate

Definition at line 100 of file MuIsoValidation.h.

Referenced by bookHistograms(), FillHistos(), InitStatics(), and MuIsoValidation().

◆ p_2D

std::vector<std::vector<MonitorElement*> > MuIsoValidation::p_2D
private

Definition at line 133 of file MuIsoValidation.h.

Referenced by bookHistograms(), FillHistos(), and MuIsoValidation().

◆ param

std::vector<std::vector<double> > MuIsoValidation::param
private

Definition at line 115 of file MuIsoValidation.h.

Referenced by bookHistograms(), and InitStatics().

◆ requireCombinedMuon

bool MuIsoValidation::requireCombinedMuon
private

Definition at line 106 of file MuIsoValidation.h.

Referenced by analyze(), and MuIsoValidation().

◆ rootfilename

std::string MuIsoValidation::rootfilename
private

Definition at line 92 of file MuIsoValidation.h.

◆ S_BIN_WIDTH

double MuIsoValidation::S_BIN_WIDTH
private

Definition at line 102 of file MuIsoValidation.h.

Referenced by InitStatics().

◆ subDirName

std::string MuIsoValidation::subDirName
private

Definition at line 95 of file MuIsoValidation.h.

◆ subsystemname_

std::string MuIsoValidation::subsystemname_
private

Definition at line 97 of file MuIsoValidation.h.

Referenced by MuIsoValidation().

◆ theData

double MuIsoValidation::theData[NUM_VARS]
private

Definition at line 126 of file MuIsoValidation.h.

Referenced by FillHistos(), and RecordData().

◆ theMuonData

int MuIsoValidation::theMuonData
private

Definition at line 125 of file MuIsoValidation.h.

Referenced by analyze().

◆ title_cd

std::string MuIsoValidation::title_cd
private

Definition at line 110 of file MuIsoValidation.h.

Referenced by bookHistograms(), and InitStatics().

◆ title_cone

std::string MuIsoValidation::title_cone
private

Definition at line 109 of file MuIsoValidation.h.

Referenced by bookHistograms(), and InitStatics().

◆ title_sam

std::string MuIsoValidation::title_sam
private

Definition at line 108 of file MuIsoValidation.h.

Referenced by bookHistograms(), and InitStatics().

◆ tkIsoDeposit_Tag

edm::InputTag MuIsoValidation::tkIsoDeposit_Tag
private

Definition at line 86 of file MuIsoValidation.h.

MuIsoValidation::axis_titles
std::vector< std::string > axis_titles
Definition: MuIsoValidation.h:113
MuIsoValidation::ZAXIS
Definition: MuIsoValidation.h:141
MuIsoValidation::theMuonData
int theMuonData
Definition: MuIsoValidation.h:125
MuIsoValidation::main_titles
std::vector< std::string > main_titles
Definition: MuIsoValidation.h:112
MuIsoValidation::title_cd
std::string title_cd
Definition: MuIsoValidation.h:110
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
MuIsoValidation::h_nMuons
MonitorElement * h_nMuons
Definition: MuIsoValidation.h:129
MuIsoValidation::iConfig
edm::ParameterSet iConfig
Definition: MuIsoValidation.h:123
MuIsoValidation::Muon_Tag
edm::InputTag Muon_Tag
Definition: MuIsoValidation.h:84
muon
Definition: MuonCocktails.h:17
MuIsoValidation::NUM_VARS
static const int NUM_VARS
Definition: MuIsoValidation.h:100
MuIsoValidation::cdCompNeeded
std::vector< int > cdCompNeeded
Definition: MuIsoValidation.h:117
min
T min(T a, T b)
Definition: MathUtil.h:58
MuIsoValidation::nIncMuons
int nIncMuons
Definition: MuIsoValidation.h:137
MuIsoValidation::title_cone
std::string title_cone
Definition: MuIsoValidation.h:109
edm::LogInfo
Definition: MessageLogger.h:254
MuIsoValidation::h_1D
std::vector< MonitorElement * > h_1D
Definition: MuIsoValidation.h:130
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
HLT_2018_cff.muon
muon
Definition: HLT_2018_cff.py:10349
edm::Handle
Definition: AssociativeIterator.h:50
parallelization.uint
uint
Definition: parallelization.py:124
trigObjTnPSource_cfi.var
var
Definition: trigObjTnPSource_cfi.py:21
MuIsoValidation::cd_plots
std::vector< MonitorElement * > cd_plots
Definition: MuIsoValidation.h:131
MuIsoValidation::p_2D
std::vector< std::vector< MonitorElement * > > p_2D
Definition: MuIsoValidation.h:133
MuIsoValidation::YAXIS
Definition: MuIsoValidation.h:141
MuIsoValidation::FillHistos
void FillHistos()
Definition: MuIsoValidation.cc:470
MuIsoValidation::requireCombinedMuon
bool requireCombinedMuon
Definition: MuIsoValidation.h:106
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
MuIsoValidation::Muon_Token
edm::EDGetTokenT< edm::View< reco::Muon > > Muon_Token
Definition: MuIsoValidation.h:85
LaserClient_cfi.nbins
nbins
Definition: LaserClient_cfi.py:51
MuIsoValidation::theData
double theData[NUM_VARS]
Definition: MuIsoValidation.h:126
MuIsoValidation::subsystemname_
std::string subsystemname_
Definition: MuIsoValidation.h:97
MuIsoValidation::NOAXIS
Definition: MuIsoValidation.h:141
MuIsoValidation::InitStatics
void InitStatics()
Definition: MuIsoValidation.cc:101
MuIsoValidation::title_sam
std::string title_sam
Definition: MuIsoValidation.h:108
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MuIsoValidation::RecordData
void RecordData(MuonIterator muon)
Definition: MuIsoValidation.cc:342
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
MuIsoValidation::L_BIN_WIDTH
double L_BIN_WIDTH
Definition: MuIsoValidation.h:101
alignCSCRings.r
r
Definition: alignCSCRings.py:93
MuIsoValidation::XAXIS
Definition: MuIsoValidation.h:141
MuIsoValidation::NUM_LOG_BINS
int NUM_LOG_BINS
Definition: MuIsoValidation.h:104
MuIsoValidation::dirName
std::string dirName
Definition: MuIsoValidation.h:94
MuIsoValidation::S_BIN_WIDTH
double S_BIN_WIDTH
Definition: MuIsoValidation.h:102
MuIsoValidation::LOG_BINNING_RATIO
double LOG_BINNING_RATIO
Definition: MuIsoValidation.h:105
MuIsoValidation::LOG_BINNING_ENABLED
int LOG_BINNING_ENABLED
Definition: MuIsoValidation.h:103
MuIsoValidation::MuonIterator
edm::View< reco::Muon >::const_iterator MuonIterator
Definition: MuIsoValidation.h:61
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
MuIsoValidation::nEvents
int nEvents
Definition: MuIsoValidation.h:136
MuIsoValidation::param
std::vector< std::vector< double > > param
Definition: MuIsoValidation.h:115
MuIsoValidation::isContinuous
std::vector< int > isContinuous
Definition: MuIsoValidation.h:116
dqm::impl::MonitorElement::setAxisTitle
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:800
edm::InputTag
Definition: InputTag.h:15
MuIsoValidation::names
std::vector< std::string > names
Definition: MuIsoValidation.h:114
MuIsoValidation::MakeLogBinsForProfile
void MakeLogBinsForProfile(Double_t *bin_edges, const double min, const double max)
Definition: MuIsoValidation.cc:454