CMS 3D CMS Logo

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

#include <MuonIsolationDQM.h>

Inheritance diagram for MuonIsolationDQM:
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
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 MuonIsolationDQM (const edm::ParameterSet &)
 
 ~MuonIsolationDQM () 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
 
 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 Types

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

Private Member Functions

void FillHistos (int)
 
void FillNVtxHistos (int)
 
int GetNVtxBin (int)
 
TH1 * GetTH1FromMonitorElement (MonitorElement *me)
 
void InitHistos ()
 
void InitStatics ()
 
void NormalizeHistos ()
 
void RecordData (const reco::Muon &muon)
 

Private Attributes

std::vector< std::string > axis_titles
 
std::vector< std::string > axis_titles_NVtxs
 
std::string dirName
 
std::vector< MonitorElement * > h_1D
 
std::vector< MonitorElement * > h_1D_NVTX
 
std::vector< MonitorElement * > h_2D
 
MonitorElementh_nMuons
 
std::vector< int > isContinuous
 
double L_BIN_WIDTH
 
int LOG_BINNING_ENABLED
 
double LOG_BINNING_RATIO
 
std::vector< std::string > main_titles
 
std::vector< std::string > main_titles_NVtxs
 
std::vector< std::string > names
 
std::vector< std::string > names_2D
 
std::vector< std::string > names_NVtxs
 
int nEvents
 
int nGLBMuons
 
int nSTAMuons
 
int nTRKMuons
 
int NUM_LOG_BINS
 
std::vector< std::vector< double > > param
 
bool requireGLBMuon
 
bool requireSTAMuon
 
bool requireTRKMuon
 
std::string rootfilename
 
double S_BIN_WIDTH
 
double theData [NUM_VARS]
 
double theData2D [NUM_VARS_2D]
 
double theDataNVtx [NUM_VARS_NVTX]
 
edm::EDGetTokenT< edm::View< reco::Muon > > theMuonCollectionLabel_
 
edm::EDGetTokenT< reco::VertexCollectiontheVertexCollectionLabel_
 
std::string title_cone
 
std::string title_sam
 
std::vector< std::string > titles_2D
 
int vtxBin_
 
double vtxMax_
 
double vtxMin_
 

Static Private Attributes

static const int NUM_VARS = 48
 
static const int NUM_VARS_2D = 10
 
static const int NUM_VARS_NVTX = 6
 

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

Definition at line 59 of file MuonIsolationDQM.h.

Member Typedef Documentation

◆ MuIsoDepHandle

Definition at line 63 of file MuonIsolationDQM.h.

◆ MuIsoDepRef

Definition at line 64 of file MuonIsolationDQM.h.

◆ MuonBaseRef

Definition at line 62 of file MuonIsolationDQM.h.

◆ MuonIterator

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

Definition at line 61 of file MuonIsolationDQM.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private

Constructor & Destructor Documentation

◆ MuonIsolationDQM()

MuonIsolationDQM::MuonIsolationDQM ( const edm::ParameterSet iConfig)
explicit

Definition at line 55 of file MuonIsolationDQM.cc.

References gather_cfg::cout, TrackerOfflineValidation_Dqm_cff::dirName, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), submitPVValidationJobs::nEvents, muonIsolationDQM_cff::requireGLBMuon, muonIsolationDQM_cff::requireSTAMuon, muonIsolationDQM_cff::requireTRKMuon, and AlCaHLTBitMon_QueryRunRegistry::string.

55  {
56 #ifdef DEBUG
57  cout << " Initialise Constructor " << endl;
58 #endif
59  requireSTAMuon = iConfig.getUntrackedParameter<bool>("requireSTAMuon");
60  requireTRKMuon = iConfig.getUntrackedParameter<bool>("requireTRKMuon");
61  requireGLBMuon = iConfig.getUntrackedParameter<bool>("requireGLBMuon");
62  dirName = iConfig.getParameter<std::string>("directory");
63 
64  vtxBin_ = iConfig.getParameter<int>("vtxBin");
65  vtxMin_ = iConfig.getParameter<double>("vtxMin");
66  vtxMax_ = iConfig.getParameter<double>("vtxMax");
67 
68  //--------Initialize tags-------
70  consumes<edm::View<reco::Muon> >(iConfig.getUntrackedParameter<edm::InputTag>("Global_Muon_Label"));
72  consumes<reco::VertexCollection>(iConfig.getUntrackedParameter<edm::InputTag>("vertexLabel"));
73 
74  //-------Initialize Counterse----------------
75  nEvents = 0;
76  nSTAMuons = 0;
77  nTRKMuons = 0;
78  nGLBMuons = 0;
79 
80  InitStatics();
81 
82  //------"allocate" space for the data vectors-------
83  h_1D.resize(NUM_VARS);
84  h_2D.resize(NUM_VARS_2D);
85  h_1D_NVTX.resize(NUM_VARS_NVTX);
86 }
std::vector< MonitorElement * > h_2D
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
static const int NUM_VARS_NVTX
std::vector< MonitorElement * > h_1D
T getUntrackedParameter(std::string const &, T const &) const
std::vector< MonitorElement * > h_1D_NVTX
static const int NUM_VARS_2D
static const int NUM_VARS
edm::EDGetTokenT< reco::VertexCollection > theVertexCollectionLabel_
edm::EDGetTokenT< edm::View< reco::Muon > > theMuonCollectionLabel_

◆ ~MuonIsolationDQM()

MuonIsolationDQM::~MuonIsolationDQM ( )
override

Definition at line 91 of file MuonIsolationDQM.cc.

References gather_cfg::cout.

91  {
92 #ifdef DEBUG
93  cout << "Calling destructor" << endl;
94 #endif
95  //Deallocate memory
96 }

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMEDAnalyzer.

Definition at line 599 of file MuonIsolationDQM.cc.

References gather_cfg::cout, iEvent, edm::HandleBase::isValid(), HLT_2022v11_cff::muon, PDWG_BPHSkim_cff::muons, submitPVValidationJobs::nEvents, edm::Handle< T >::product(), muonIsolationDQM_cff::requireGLBMuon, muonIsolationDQM_cff::requireSTAMuon, muonIsolationDQM_cff::requireTRKMuon, findQualityFiles::v, and bphysicsOniaDQM_cfi::vertex.

599  {
600  ++nEvents;
601  edm::LogInfo("Tutorial") << "\nInvestigating event #" << nEvents << "\n";
602 #ifdef DEBUG
603  cout << "[MuonIsolationDQM]: analyze()" << endl;
604 #endif
605 
606  // Get Muon Collection
608  iEvent.getByToken(theMuonCollectionLabel_, muons);
609 
610 #ifdef DEBUG
611  cout << "[MuonIsolationDQM]: Number of muons -> " << muons->size() << endl;
612 #endif
613 
614  int theMuonData = muons->size();
615  h_nMuons->Fill(theMuonData);
616 #ifdef DEBUG
617  cout << "[MuonIsolationDQM]: Vertex is Valid" << endl;
618 #endif
619 
620  //Get Vertex Information
621  int _numPV = 0;
623  iEvent.getByToken(theVertexCollectionLabel_, vertexHandle);
624 
625  if (vertexHandle.isValid()) {
626  reco::VertexCollection vertex = *(vertexHandle.product());
627  for (reco::VertexCollection::const_iterator v = vertex.begin(); v != vertex.end(); ++v) {
628  if (v->isFake())
629  continue;
630  if (v->ndof() < 4)
631  continue;
632  if (fabs(v->z()) > 24.0)
633  continue;
634  ++_numPV;
635  }
636  }
637 
638 #ifdef DEBUG
639  cout << "[MuonIsolationDQM]: Vertex is Valid" << endl;
640 #endif
641  // Get Muon Collection
642 
643  //Fill historgams concerning muon isolation
644  for (edm::View<reco::Muon>::const_iterator muon = muons->begin(); muon != muons->end(); ++muon) {
645  if (requireSTAMuon && muon->isStandAloneMuon()) {
646  ++nSTAMuons;
647  RecordData(*muon);
648  FillHistos(_numPV);
649  } else if (requireTRKMuon && muon->isTrackerMuon()) {
650  ++nTRKMuons;
651  RecordData(*muon);
652  FillHistos(_numPV);
653  } else if (requireGLBMuon && muon->isGlobalMuon()) {
654  ++nGLBMuons;
655  RecordData(*muon);
656  FillHistos(_numPV);
657  FillNVtxHistos(_numPV);
658  }
659  }
660 }
MonitorElement * h_nMuons
T const * product() const
Definition: Handle.h:70
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
void Fill(long long x)
int iEvent
Definition: GenABIO.cc:224
void RecordData(const reco::Muon &muon)
Log< level::Info, false > LogInfo
bool isValid() const
Definition: HandleBase.h:70
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
edm::EDGetTokenT< reco::VertexCollection > theVertexCollectionLabel_
edm::EDGetTokenT< edm::View< reco::Muon > > theMuonCollectionLabel_

◆ bookHistograms()

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

GetTH1FromMonitorElement(h_1D_NVTX[var])->Sumw2();

Implements DQMEDAnalyzer.

Definition at line 762 of file MuonIsolationDQM.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookProfile(), dqm::implementation::NavigatorBase::cd(), TrackerOfflineValidation_Dqm_cff::dirName, names, dqm::impl::MonitorElement::setAxisTitle(), dqm::implementation::NavigatorBase::setCurrentFolder(), and trigObjTnPSource_cfi::var.

764  {
765  ibooker.cd();
766  ibooker.setCurrentFolder(dirName);
767 
768  ibooker.cd();
769  ibooker.setCurrentFolder(dirName);
770 
771  //---initialize number of muons histogram---
772  h_nMuons = ibooker.book1D("nMuons", title_sam + "Number of Muons", 20, 0., 20.);
773  h_nMuons->setAxisTitle("Number of Muons", XAXIS);
774  h_nMuons->setAxisTitle("Fraction of Events", YAXIS);
775 
776  //---Initialize 1D Histograms---
777  for (int var = 0; var < NUM_VARS; var++) {
778  h_1D[var] = ibooker.book1D(
779  names[var], title_sam + main_titles[var] + title_cone, (int)param[var][0], param[var][1], param[var][2]);
780  h_1D[var]->setAxisTitle(axis_titles[var], XAXIS);
781  // GetTH1FromMonitorElement(h_1D[var])->Sumw2();
782  } //Finish 1D
783 
784  //----Initialize 2D Histograms
785  for (int var = 0; var < NUM_VARS_2D; var++) {
786  h_2D[var] = ibooker.bookProfile(
787  names_2D[var] + "_VsPV", titles_2D[var] + " Vs PV", vtxBin_, vtxMin_, vtxMax_, 20, 0.0, 20.0);
788  h_2D[var]->setAxisTitle("Number of PV", XAXIS);
789  h_2D[var]->setAxisTitle(titles_2D[var] + " (GeV)", YAXIS);
790  // h_2D[var]->getTH1()->Sumw2();
791  }
792 
793  //-----Initialise PU-Binned histograms
794  for (int var = 0; var < NUM_VARS_NVTX; var++) {
795  h_1D_NVTX[var] = ibooker.book1D(names_NVtxs[var], main_titles_NVtxs[var], 50, 0.0, 10.0);
796  h_1D_NVTX[var]->setAxisTitle(axis_titles_NVtxs[var], XAXIS);
798  }
799 }
std::vector< MonitorElement * > h_2D
static const int NUM_VARS_NVTX
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MonitorElement * h_nMuons
std::vector< MonitorElement * > h_1D
std::vector< std::string > main_titles
std::vector< std::string > names
std::vector< std::string > names_2D
std::vector< MonitorElement * > h_1D_NVTX
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:399
static const int NUM_VARS_2D
std::string title_sam
std::vector< std::string > names_NVtxs
std::string title_cone
std::vector< std::string > titles_2D
std::vector< std::string > axis_titles
std::vector< std::string > axis_titles_NVtxs
std::vector< std::vector< double > > param
static const int NUM_VARS
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
std::vector< std::string > main_titles_NVtxs
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ FillHistos()

void MuonIsolationDQM::FillHistos ( int  numPV)
private

Definition at line 808 of file MuonIsolationDQM.cc.

References gather_cfg::cout, and trigObjTnPSource_cfi::var.

808  {
809 #ifdef DEBUG
810  cout << "FillHistos( " << numPV << " )" << endl;
811 #endif
812 
813  //----------Fill 1D histograms---------------
814  for (int var = 0; var < NUM_VARS; var++) {
815  h_1D[var]->Fill(theData[var]);
816  // cd_plots[var]->Fill(theData[var]);//right now, this is a regular PDF (just like h_1D)
817  //OFBin if (theData[var] > param[var][2]) {
818  //OFBin // fill the overflow bin
819  //OFBin overFlowBin = (int) param[var][0] + 1;
820  //OFBin overFlow = GetTH1FromMonitorElement(h_1D[var])->GetBinContent(overFlowBin);
821  //OFBin GetTH1FromMonitorElement(h_1D[var])->SetBinContent(overFlowBin, overFlow + 1);
822  //OFBin }
823  } //Finish 1D
824 
825  for (int var = 0; var < NUM_VARS_2D; var++) {
826  h_2D[var]->Fill(numPV, theData2D[var]);
827  }
828 
829 #ifdef DEBUG
830  cout << "FillHistos( " << numPV << " ): DONE" << endl;
831 #endif
832 }
std::vector< MonitorElement * > h_2D
std::vector< MonitorElement * > h_1D
static const int NUM_VARS_2D
static const int NUM_VARS
double theData[NUM_VARS]
double theData2D[NUM_VARS_2D]

◆ FillNVtxHistos()

void MuonIsolationDQM::FillNVtxHistos ( int  PV)
private

Definition at line 833 of file MuonIsolationDQM.cc.

References nanoDQM_cfi::PV.

833  {
834  if (PV >= 20 && PV < 50) {
835  h_1D_NVTX[0]->Fill(theDataNVtx[0]);
836  h_1D_NVTX[3]->Fill(theDataNVtx[3]);
837  }
838  if (PV >= 50 && PV < 80) {
839  h_1D_NVTX[1]->Fill(theDataNVtx[1]);
840  h_1D_NVTX[4]->Fill(theDataNVtx[4]);
841  }
842  if (PV >= 80) {
843  h_1D_NVTX[2]->Fill(theDataNVtx[2]);
844  h_1D_NVTX[5]->Fill(theDataNVtx[5]);
845  }
846 }
std::vector< MonitorElement * > h_1D_NVTX
double theDataNVtx[NUM_VARS_NVTX]

◆ GetNVtxBin()

int MuonIsolationDQM::GetNVtxBin ( int  )
private

◆ GetTH1FromMonitorElement()

TH1 * MuonIsolationDQM::GetTH1FromMonitorElement ( MonitorElement me)
private

Definition at line 848 of file MuonIsolationDQM.cc.

References hlt_dqm_clientPB-live_cfg::me.

848 { return me->getTH1(); }

◆ InitHistos()

void MuonIsolationDQM::InitHistos ( )
private

◆ InitStatics()

void MuonIsolationDQM::InitStatics ( )
private

Definition at line 101 of file MuonIsolationDQM.cc.

References gather_cfg::cout, createfilelist::int, and names.

101  {
102 #ifdef DEBUG
103  cout << " InitStatistics() " << endl;
104 #endif
105  //-----------Initialize primitives-----------
106  S_BIN_WIDTH = 1.0; //in GeV
107  L_BIN_WIDTH = 2.0; //in GeV
109  NUM_LOG_BINS = 15;
110  LOG_BINNING_RATIO = 1.1;
111  //ratio by which each bin is wider than the last for log binning
112  //i.e. bin widths are (x), (r*x), (r^2*x), ..., (r^(nbins)*x)
113 
114  //-------Initialize Titles---------
115  title_sam = ""; //"[Sample b-jet events] ";
116  title_cone = ""; //" [in R=0.3 IsoDeposit Cone]";
117  //The above two pieces of info will be printed on the title of the whole page,
118  //not for each individual histogram
119  // title_cd = "C.D. of ";
120 
121  //-------"Allocate" memory for vectors
122  main_titles.resize(NUM_VARS);
123  axis_titles.resize(NUM_VARS);
124  names.resize(NUM_VARS);
125  param.resize(NUM_VARS, vector<double>(3));
126  isContinuous.resize(NUM_VARS);
127 
128  titles_2D.resize(NUM_VARS_2D);
129  names_2D.resize(NUM_VARS_2D);
130 
133  names_NVtxs.resize(NUM_VARS_NVTX);
134 
135 #ifdef DEBUG
136  cout << "InitStatistics(): vectors resized " << endl;
137 #endif
138  //-----Titles of the plots-----------
139  main_titles[0] = "Total Tracker Momentum, #Delta R = 0.3";
140  main_titles[1] = "Total EM Cal Energy, #Delta R = 0.3";
141  main_titles[2] = "Total Had Cal Energy, #Delta R = 0.3";
142  main_titles[3] = "Total HO Cal Energy, #Delta R = 0.3";
143  main_titles[4] = "Number of Tracker Tracks, #Delta R = 0.3";
144  main_titles[5] = "Number of Jets around Muon, #Delta R = 0.3";
145  main_titles[6] = "Tracker p_{T} within veto cone, #Delta R = 0.3";
146  main_titles[7] = "EM E_{T} within veto cone, #Delta R = 0.3";
147  main_titles[8] = "Had E_{T} within veto cone, #Delta R = 0.3";
148  main_titles[9] = "HO E_{T} within veto cone, #Delta R = 0.3";
149  main_titles[10] = "Average Momentum per Track, #Delta R = 0.3";
150  main_titles[11] = "Weighted Energy, #Delta R = 0.3";
151 
152  main_titles[12] = "Total Tracker Momentum, #Delta R = 0.5";
153  main_titles[13] = "Total EM Cal Energy, #Delta R = 0.5";
154  main_titles[14] = "Total Had Cal Energy, #Delta R = 0.5";
155  main_titles[15] = "Total HO Cal Energy, #Delta R = 0.5";
156  main_titles[16] = "Number of Tracker Tracks, #Delta R = 0.5";
157  main_titles[17] = "Number of Jets around Muon, #Delta R = 0.5";
158  main_titles[18] = "Tracker p_{T} within veto cone, #Delta R = 0.5";
159  main_titles[19] = "EM E_{T} within veto cone, #Delta R = 0.5";
160  main_titles[20] = "Had E_{T} within veto cone, #Delta R = 0.5";
161  main_titles[21] = "HO E_{T} within veto cone, #Delta R = 0.5";
162  main_titles[22] = "Average Momentum per Track, #Delta R = 0.5";
163  main_titles[23] = "Weighted Energy, #Delta R = 0.5";
164 
165  main_titles[24] = "Relative Detector-Based Isolation, #Delta R = 0.3";
166  main_titles[25] = "Relative Detector-Based Isolation, #Delta R = 0.5";
167 
168  //-----Titles of the plots-----------
169  main_titles[26] = "Sum PF Charged Hadron Pt, #Delta R = 0.3";
170  main_titles[27] = "Sum PF Neutral Hadron Pt, #Delta R = 0.3";
171  main_titles[28] = "Sum PF Photon Et, #Delta R = 0.3";
172  main_titles[29] = "Sum PF Neutral Hadron Pt (Higher Pt threshold), #Delta R = 0.3";
173  main_titles[30] = "Sum PF Photon Et (Higher Pt threshold), #Delta R = 0.3";
174  main_titles[31] = "Sum PF Charged Particles Pt not from PV (for Pu corrections), #Delta R = 0.3";
175 
176  //-----Titles of the plots-----------
177  main_titles[32] = "Sum PF Charged Hadron Pt, #Delta R = 0.4";
178  main_titles[33] = "Sum PF Neutral Hadron Pt, #Delta R = 0.4";
179  main_titles[34] = "Sum PF Photon Et, #Delta R = 0.4";
180  main_titles[35] = "Sum PF Neutral Hadron Pt (Higher Pt threshold), #Delta R = 0.4";
181  main_titles[36] = "Sum PF Photon Et (Higher Pt threshold), #Delta R = 0.4";
182  main_titles[37] = "Sum PF Charged Particles Pt not from PV (for Pu corrections), #Delta R = 0.4";
183 
184  main_titles[38] = "Relative PF Isolation, #Delta R = 0.3";
185  main_titles[39] = "Relative PF Isolation, #Delta R = 0.4";
186 
187  main_titles[40] = "Relative PF Isolation (Higher Pt threshold), #Delta R = 0.3";
188  main_titles[41] = "Relative PF Isolation (Higher Pt threshold), #Delta R = 0.4";
189 
190  main_titles[42] = "Sum DR Isolation Profile for Charged Hadron, #Delta R = 0.4";
191 
192  main_titles[43] = "Sum DR Isolation Profile for Neutral Hadron, #Delta R = 0.4";
193 
194  main_titles[44] = "Sum DR Isolation Profile for Photon, #Delta R = 0.4";
195 
196  main_titles[45] = "Mean DR Isolation Profile for Charged Hadron, #Delta R = 0.4";
197 
198  main_titles[46] = "Mean DR Isolation Profile for Neutral Hadron, #Delta R = 0.4";
199 
200  main_titles[47] = "Mean DR Isolation Profile for Photon, #Delta R = 0.4";
201 
202 #ifdef DEBUG
203  cout << "InitStatistics(): main titles 1D DONE " << endl;
204 #endif
205  titles_2D[0] = "Total Tracker Momentum, #Delta R = 0.3";
206  titles_2D[1] = "Total EM Cal Energy, #Delta R = 0.3";
207  titles_2D[2] = "Total Had Cal Energy, #Delta R = 0.3";
208  titles_2D[3] = "Total HO Cal Energy, #Delta R = 0.3";
209  titles_2D[4] = "Sum PF Charged Hadron Pt, #Delta R = 0.4";
210  titles_2D[5] = "Sum PF Neutral Hadron Pt, #Delta R = 0.4";
211  titles_2D[6] = "Sum PF Photon Et, #Delta R = 0.4";
212  titles_2D[7] = "Sum PF Charged Pt Not from PV, #Delta R = 0.4";
213  titles_2D[8] = "Relative Detector-Based Isolation, #Delta R = 0.4";
214  titles_2D[9] = "Relative PF Isolation, #Delta R = 0.4";
215 
216  main_titles_NVtxs[0] = "Sum PF Neutral Hadron Pt, #DeltaR = 0.4 ( 20 < N_{Vtx} < 50)";
217  main_titles_NVtxs[1] = "Sum PF Neutral Hadron Pt, #DeltaR = 0.4 (50 < N_{Vtx} < 80)";
218  main_titles_NVtxs[2] = "Sum PF Neutral Hadron Pt, #DeltaR = 0.4 (80 < N_{Vtx})";
219  main_titles_NVtxs[3] = "Sum PF Photon Et, #DeltaR = 0.4 ( 20 < N_{Vtx} < 50)";
220  main_titles_NVtxs[4] = "Sum PF Photon Et, #DeltaR = 0.4 (50 < N_{Vtx} < 80)";
221  main_titles_NVtxs[5] = "Sum PF Photon Et, #DeltaR = 0.4 (80 < N_{Vtx})";
222 
223 #ifdef DEBUG
224  cout << "InitStatistics(): main titles 2D DONE " << endl;
225 #endif
226 
227  //------Titles on the X or Y axis------------
228  axis_titles[0] = "#Sigma p_{T} (GeV)";
229  axis_titles[1] = "#Sigma E_{T}^{EM} (GeV)";
230  axis_titles[2] = "#Sigma E_{T}^{Had} (GeV)";
231  axis_titles[3] = "#Sigma E_{T}^{HO} (GeV)";
232  axis_titles[4] = "N_{Tracks}";
233  axis_titles[5] = "N_{Jets}";
234  axis_titles[6] = "#Sigma p_{T,veto} (GeV)";
235  axis_titles[7] = "#Sigma E_{T,veto}^{EM} (GeV)";
236  axis_titles[8] = "#Sigma E_{T,veto}^{Had} (GeV)";
237  axis_titles[9] = "#Sigma E_{T,veto}^{HO} (GeV)";
238  axis_titles[10] = "#Sigma p_{T} / N_{Tracks} (GeV)";
239  axis_titles[11] = "(1.5) X #Sigma E_{T}^{EM} + #Sigma E_{T}^{Had}";
240 
241  axis_titles[12] = "#Sigma p_{T} (GeV)";
242  axis_titles[13] = "#Sigma E_{T}^{EM} (GeV)";
243  axis_titles[14] = "#Sigma E_{T}^{Had} (GeV)";
244  axis_titles[15] = "#Sigma E_{T}^{HO} (GeV)";
245  axis_titles[16] = "N_{Tracks}";
246  axis_titles[17] = "N_{Jets}";
247  axis_titles[18] = "#Sigma p_{T,veto} (GeV)";
248  axis_titles[19] = "#Sigma E_{T,veto}^{EM} (GeV)";
249  axis_titles[20] = "#Sigma E_{T,veto}^{Had} (GeV)";
250  axis_titles[21] = "#Sigma E_{T,veto}^{HO} (GeV)";
251  axis_titles[22] = "#Sigma p_{T} / N_{Tracks} (GeV)";
252  axis_titles[23] = "(1.5) X #Sigma E_{T}^{EM} + #Sigma E_{T}^{Had}";
253 
254  axis_titles[24] = "(#Sigma Tk p_{T} + #Sigma ECAL p_{T} + #Sigma HCAL p_{T})/ Mu p_{T} (GeV)";
255  axis_titles[25] = "(#Sigma Tk p_{T} + #Sigma ECAL p_{T} + #Sigma HCAL p_{T})/ Mu p_{T} (GeV)";
256 
257  axis_titles[26] = "#Sigma PFCharged p_{T}";
258  axis_titles[27] = "#Sigma PFNeutral p_{T}";
259  axis_titles[28] = "#Sigma PFPhoton p_{T}";
260  axis_titles[29] = "#Sigma PFNeutral p_{T}";
261  axis_titles[30] = "#Sigma PFPhoton p_{T}";
262  axis_titles[31] = "#Sigma PFCharged p_{T}";
263 
264  axis_titles[32] = "#Sigma PFCharged p_{T}";
265  axis_titles[33] = "#Sigma PFNeutral p_{T}";
266  axis_titles[34] = "#Sigma PFPhoton p_{T}";
267  axis_titles[35] = "#Sigma PFNeutral p_{T}";
268  axis_titles[36] = "#Sigma PFPhoton p_{T}";
269  axis_titles[37] = "#Sigma PFCharged p_{T}";
270 
271  axis_titles[38] = "(#Sigma PFCharged p_{T} + #Sigma PFNeutral p_{T} + #Sigma PFPhoton p_{T}) Mu p_{T} (GeV)";
272  axis_titles[39] = "(#Sigma PFCharged p_{T} + #Sigma PFNeutral p_{T} + #Sigma PFPhoton p_{T}) Mu p_{T} (GeV)";
273  axis_titles[40] = "(#Sigma PFCharged p_{T} + #Sigma PFNeutral p_{T} + #Sigma PFPhoton p_{T}) Mu p_{T} (GeV)";
274  axis_titles[41] = "(#Sigma PFCharged p_{T} + #Sigma PFNeutral p_{T} + #Sigma PFPhoton p_{T}) Mu p_{T} (GeV)";
275 
276  axis_titles[42] = "#Sigma DR PFCharged";
277  axis_titles[43] = "#Sigma DR PFNeutral";
278  axis_titles[44] = "#Sigma DR PFPhoton";
279 
280  axis_titles[45] = "Mean DR PFCharged";
281  axis_titles[46] = "Mean DR PFNeutral";
282  axis_titles[47] = "Mean DR PFPhoton";
283 
284  axis_titles_NVtxs[0] = "#Sigma PFNeutral p_{T}";
285  axis_titles_NVtxs[1] = "#Sigma PFNeutral p_{T}";
286  axis_titles_NVtxs[2] = "#Sigma PFNeutral p_{T}";
287  axis_titles_NVtxs[3] = "#Sigma PFPhoton p_{T}";
288  axis_titles_NVtxs[4] = "#Sigma PFPhoton p_{T}";
289  axis_titles_NVtxs[5] = "#Sigma PFPhoton p_{T}";
290 
291 #ifdef DEBUG
292  cout << "InitStatistics(): main titles 1D DONE " << endl;
293 #endif
294 
295  //-----------Names given for the root file----------
296  names[0] = "sumPt_R03";
297  names[1] = "emEt_R03";
298  names[2] = "hadEt_R03";
299  names[3] = "hoEt_R03";
300  names[4] = "nTracks_R03";
301  names[5] = "nJets_R03";
302  names[6] = "trackerVetoPt_R03";
303  names[7] = "emVetoEt_R03";
304  names[8] = "hadVetoEt_R03";
305  names[9] = "hoVetoEt_R03";
306  names[10] = "avgPt_R03";
307  names[11] = "weightedEt_R03";
308 
309  names[12] = "sumPt_R05";
310  names[13] = "emEt_R05";
311  names[14] = "hadEt_R05";
312  names[15] = "hoEt_R05";
313  names[16] = "nTracks_R05";
314  names[17] = "nJets_R05";
315  names[18] = "trackerVetoPt_R05";
316  names[19] = "emVetoEt_R05";
317  names[20] = "hadVetoEt_R05";
318  names[21] = "hoVetoEt_R05";
319  names[22] = "avgPt_R05";
320  names[23] = "weightedEt_R05";
321 
322  names[24] = "relDetIso_R03";
323  names[25] = "relDetIso_R05";
324 
325  names[26] = "pfChargedPt_R03";
326  names[27] = "pfNeutralPt_R03";
327  names[28] = "pfPhotonPt_R03";
328  names[29] = "pfNeutralPt_HT_R03";
329  names[30] = "pfPhotonPt_HT_R03";
330  names[31] = "pfChargedPt_PU_R03";
331 
332  names[32] = "pfChargedPt_R04";
333  names[33] = "pfNeutralPt_R04";
334  names[34] = "pfPhotonPt_R04";
335  names[35] = "pfNeutralPt_HT_R04";
336  names[36] = "pfPhotonPt_HT_R04";
337  names[37] = "pfChargedPt_PU_R04";
338 
339  names[38] = "relPFIso_R03";
340  names[39] = "relPFIso_R04";
341 
342  names[40] = "relPFIso_HT_R03";
343  names[41] = "relPFIso_HT_R04";
344 
345  names[42] = "SumDR_PFCharged_R04";
346  names[43] = "SumDR_PFNeutral_R04";
347  names[44] = "SumDR_PFPhoton_R04";
348 
349  names[45] = "MeanDR_PFCharged_R04";
350  names[46] = "MeanDR_PFNeutral_R04";
351  names[47] = "MeanDR_PFPhoton_R04";
352 
353 #ifdef DEBUG
354  cout << "InitStatistics(): names 1D DONE " << endl;
355 #endif
356 
357  names_2D[0] = "SumPt_R03";
358  names_2D[1] = "emEt_R03";
359  names_2D[2] = "hadEt_R03";
360  names_2D[3] = "hoEt_R03";
361  names_2D[4] = "pfChargedPt_R04";
362  names_2D[5] = "pfNeutralPt_R04";
363  names_2D[6] = "pfPhotonPt_R04";
364  names_2D[7] = "pfChargedPUPt_R04";
365  names_2D[8] = "relDetIso_R03";
366  names_2D[9] = "relPFIso_R04";
367 
368 #ifdef DEBUG
369  cout << "InitStatistics(): names 2D DONE " << endl;
370 #endif
371 
372  names_NVtxs[0] = "pfNeutralPt_R04_PV20to50";
373  names_NVtxs[1] = "pfNeutralPt_R04_PV50to80";
374  names_NVtxs[2] = "pfNeutralPt_R04_PV80toInf";
375  names_NVtxs[3] = "pfPhotonPt_R04_PV20to50";
376  names_NVtxs[4] = "pfPhotonPt_R04_PV50to80";
377  names_NVtxs[5] = "pfPhotonPt_R04_PV80toInf";
378 
379  //----------Parameters for binning of histograms---------
380  //param[var][0] is the number of bins
381  //param[var][1] is the low edge of the low bin
382  //param[var][2] is the high edge of the high bin
383  //
384  // maximum value------,
385  // |
386  // V
387  param[0][0] = (int)(20.0 / S_BIN_WIDTH);
388  param[0][1] = 0.0;
389  param[0][2] = param[0][0] * S_BIN_WIDTH;
390  param[1][0] = (int)(20.0 / S_BIN_WIDTH);
391  param[1][1] = 0.0;
392  param[1][2] = param[1][0] * S_BIN_WIDTH;
393  param[2][0] = (int)(20.0 / S_BIN_WIDTH);
394  param[2][1] = 0.0;
395  param[2][2] = param[2][0] * S_BIN_WIDTH;
396  param[3][0] = 20;
397  param[3][1] = 0.0;
398  param[3][2] = 2.0;
399  param[4][0] = 16;
400  param[4][1] = -0.5;
401  param[4][2] = param[4][0] - 0.5;
402  param[5][0] = 4;
403  param[5][1] = -0.5;
404  param[5][2] = param[5][0] - 0.5;
405  param[6][0] = (int)(40.0 / S_BIN_WIDTH);
406  param[6][1] = 0.0;
407  param[6][2] = param[6][0] * S_BIN_WIDTH;
408  param[7][0] = 20;
409  param[7][1] = 0.0;
410  param[7][2] = 10.0;
411  param[8][0] = (int)(20.0 / S_BIN_WIDTH);
412  param[8][1] = 0.0;
413  param[8][2] = param[8][0] * S_BIN_WIDTH;
414  param[9][0] = 20;
415  param[9][1] = 0.0;
416  param[9][2] = 5.0;
417  param[10][0] = (int)(15.0 / S_BIN_WIDTH);
418  param[10][1] = 0.0;
419  param[10][2] = param[10][0] * S_BIN_WIDTH;
420  param[11][0] = (int)(20.0 / S_BIN_WIDTH);
421  param[11][1] = 0.0;
422  param[11][2] = param[11][0] * S_BIN_WIDTH;
423 
424  param[12][0] = (int)(20.0 / S_BIN_WIDTH);
425  param[12][1] = 0.0;
426  param[12][2] = param[12][0] * S_BIN_WIDTH;
427  param[13][0] = (int)(20.0 / S_BIN_WIDTH);
428  param[13][1] = 0.0;
429  param[13][2] = param[13][0] * S_BIN_WIDTH;
430  param[14][0] = (int)(20.0 / S_BIN_WIDTH);
431  param[14][1] = 0.0;
432  param[14][2] = param[14][0] * S_BIN_WIDTH;
433  param[15][0] = 20;
434  param[15][1] = 0.0;
435  param[15][2] = 2.0;
436  param[16][0] = 16;
437  param[16][1] = -0.5;
438  param[16][2] = param[16][0] - 0.5;
439  param[17][0] = 4;
440  param[17][1] = -0.5;
441  param[17][2] = param[17][0] - 0.5;
442  param[18][0] = (int)(40.0 / S_BIN_WIDTH);
443  param[18][1] = 0.0;
444  param[18][2] = param[18][0] * S_BIN_WIDTH;
445  param[19][0] = 20;
446  param[19][1] = 0.0;
447  param[19][2] = 10.0;
448  param[20][0] = (int)(20.0 / S_BIN_WIDTH);
449  param[20][1] = 0.0;
450  param[20][2] = param[20][0] * S_BIN_WIDTH;
451  param[21][0] = 20;
452  param[21][1] = 0.0;
453  param[21][2] = 5.0;
454  param[22][0] = (int)(15.0 / S_BIN_WIDTH);
455  param[22][1] = 0.0;
456  param[22][2] = param[22][0] * S_BIN_WIDTH;
457  param[23][0] = (int)(20.0 / S_BIN_WIDTH);
458  param[23][1] = 0.0;
459  param[23][2] = param[23][0] * S_BIN_WIDTH;
460 
461  param[24][0] = 50;
462  param[24][1] = 0.0;
463  param[24][2] = 1.0;
464  param[25][0] = 50;
465  param[25][1] = 0.0;
466  param[25][2] = 1.0;
467 
468  param[26][0] = (int)(20.0 / S_BIN_WIDTH);
469  param[26][1] = 0.0;
470  param[26][2] = param[26][0] * S_BIN_WIDTH;
471  param[27][0] = (int)(20.0 / S_BIN_WIDTH);
472  param[27][1] = 0.0;
473  param[27][2] = param[27][0] * S_BIN_WIDTH;
474  param[28][0] = (int)(20.0 / S_BIN_WIDTH);
475  param[28][1] = 0.0;
476  param[28][2] = param[28][0] * S_BIN_WIDTH;
477  param[29][0] = (int)(20.0 / S_BIN_WIDTH);
478  param[29][1] = 0.0;
479  param[29][2] = param[29][0] * S_BIN_WIDTH;
480  param[30][0] = (int)(20.0 / S_BIN_WIDTH);
481  param[30][1] = 0.0;
482  param[30][2] = param[30][0] * S_BIN_WIDTH;
483  param[31][0] = (int)(20.0 / S_BIN_WIDTH);
484  param[31][1] = 0.0;
485  param[31][2] = param[31][0] * S_BIN_WIDTH;
486 
487  param[32][0] = (int)(20.0 / S_BIN_WIDTH);
488  param[32][1] = 0.0;
489  param[32][2] = param[32][0] * S_BIN_WIDTH;
490  param[33][0] = (int)(20.0 / S_BIN_WIDTH);
491  param[33][1] = 0.0;
492  param[33][2] = param[33][0] * S_BIN_WIDTH;
493  param[34][0] = (int)(20.0 / S_BIN_WIDTH);
494  param[34][1] = 0.0;
495  param[34][2] = param[34][0] * S_BIN_WIDTH;
496  param[35][0] = (int)(20.0 / S_BIN_WIDTH);
497  param[35][1] = 0.0;
498  param[35][2] = param[35][0] * S_BIN_WIDTH;
499  param[36][0] = (int)(20.0 / S_BIN_WIDTH);
500  param[36][1] = 0.0;
501  param[36][2] = param[36][0] * S_BIN_WIDTH;
502  param[37][0] = (int)(20.0 / S_BIN_WIDTH);
503  param[37][1] = 0.0;
504  param[37][2] = param[37][0] * S_BIN_WIDTH;
505 
506  param[38][0] = 50;
507  param[38][1] = 0.0;
508  param[38][2] = 1.0;
509  param[39][0] = 50;
510  param[39][1] = 0.0;
511  param[39][2] = 1.0;
512 
513  param[40][0] = 50;
514  param[40][1] = 0.0;
515  param[40][2] = 1.0;
516  param[41][0] = 50;
517  param[41][1] = 0.0;
518  param[41][2] = 1.0;
519 
520  param[42][0] = 50;
521  param[42][1] = 0.0;
522  param[42][2] = 5;
523  param[43][0] = 50;
524  param[43][1] = 0.0;
525  param[43][2] = 5;
526  param[44][0] = 50;
527  param[44][1] = 0.0;
528  param[44][2] = 5;
529 
530  param[45][0] = 50;
531  param[45][1] = 0.0;
532  param[45][2] = 0.4;
533  param[46][0] = 50;
534  param[46][1] = 0.0;
535  param[46][2] = 0.4;
536  param[47][0] = 50;
537  param[47][1] = 0.0;
538  param[47][2] = 0.4;
539 
540  //--------------Is the variable continuous (i.e. non-integer)?-------------
541  //---------(Log binning will only be used for continuous variables)--------
542  isContinuous[0] = 1;
543  isContinuous[1] = 1;
544  isContinuous[2] = 1;
545  isContinuous[3] = 1;
546  isContinuous[4] = 0;
547  isContinuous[5] = 0;
548  isContinuous[6] = 1;
549  isContinuous[7] = 1;
550  isContinuous[8] = 1;
551  isContinuous[9] = 1;
552  isContinuous[10] = 1;
553  isContinuous[11] = 1;
554 
555  isContinuous[12] = 1;
556  isContinuous[13] = 1;
557  isContinuous[14] = 1;
558  isContinuous[15] = 1;
559  isContinuous[16] = 0;
560  isContinuous[17] = 0;
561  isContinuous[18] = 1;
562  isContinuous[19] = 1;
563  isContinuous[20] = 1;
564  isContinuous[21] = 1;
565  isContinuous[22] = 1;
566  isContinuous[23] = 1;
567 
568  isContinuous[24] = 1;
569  isContinuous[25] = 1;
570  isContinuous[26] = 1;
571  isContinuous[27] = 1;
572  isContinuous[28] = 1;
573  isContinuous[29] = 1;
574  isContinuous[30] = 1;
575  isContinuous[31] = 1;
576  isContinuous[32] = 1;
577  isContinuous[33] = 1;
578  isContinuous[34] = 1;
579  isContinuous[35] = 1;
580  isContinuous[36] = 1;
581  isContinuous[37] = 1;
582  isContinuous[38] = 1;
583  isContinuous[39] = 1;
584  isContinuous[40] = 1;
585  isContinuous[41] = 1;
586  isContinuous[42] = 1;
587  isContinuous[43] = 1;
588  isContinuous[44] = 1;
589  isContinuous[45] = 1;
590  isContinuous[46] = 1;
591  isContinuous[47] = 1;
592 
593 #ifdef DEBUG
594  cout << "InitStatistics(): DONE " << endl;
595 #endif
596 }
static const int NUM_VARS_NVTX
std::vector< std::string > main_titles
std::vector< std::string > names
std::vector< std::string > names_2D
static const int NUM_VARS_2D
std::string title_sam
std::vector< std::string > names_NVtxs
std::string title_cone
std::vector< int > isContinuous
std::vector< std::string > titles_2D
std::vector< std::string > axis_titles
std::vector< std::string > axis_titles_NVtxs
std::vector< std::vector< double > > param
static const int NUM_VARS
std::vector< std::string > main_titles_NVtxs

◆ NormalizeHistos()

void MuonIsolationDQM::NormalizeHistos ( )
private

Definition at line 801 of file MuonIsolationDQM.cc.

References trigObjTnPSource_cfi::var.

801  {
802  for (int var = 0; var < NUM_VARS; var++) {
803  double entries = GetTH1FromMonitorElement(h_1D[var])->GetEntries();
804  GetTH1FromMonitorElement(h_1D[var])->Scale(1. / entries);
805  }
806 }
std::vector< MonitorElement * > h_1D
static const int NUM_VARS
TH1 * GetTH1FromMonitorElement(MonitorElement *me)

◆ RecordData()

void MuonIsolationDQM::RecordData ( const reco::Muon muon)
private

Definition at line 663 of file MuonIsolationDQM.cc.

References gather_cfg::cout.

663  {
664 #ifdef DEBUG
665  std::cout << "RecordData()" << endl;
666 #endif
667  float MuPt = muon.pt();
668 
669  theData[0] = muon.isolationR03().sumPt;
670  theData[1] = muon.isolationR03().emEt;
671  theData[2] = muon.isolationR03().hadEt;
672  theData[3] = muon.isolationR03().hoEt;
673 
674  theData[4] = muon.isolationR03().nTracks;
675  theData[5] = muon.isolationR03().nJets;
676  theData[6] = muon.isolationR03().trackerVetoPt;
677  theData[7] = muon.isolationR03().emVetoEt;
678  theData[8] = muon.isolationR03().hadVetoEt;
679  theData[9] = muon.isolationR03().hoVetoEt;
680 
681  // make sure nTracks != 0 before filling this one
682  if (theData[4] != 0)
683  theData[10] = (double)theData[0] / (double)theData[4];
684  else
685  theData[10] = -99;
686 
687  theData[11] = 1.5 * theData[1] + theData[2];
688 
689  theData[12] = muon.isolationR05().sumPt;
690  theData[13] = muon.isolationR05().emEt;
691  theData[14] = muon.isolationR05().hadEt;
692  theData[15] = muon.isolationR05().hoEt;
693 
694  theData[16] = muon.isolationR05().nTracks;
695  theData[17] = muon.isolationR05().nJets;
696  theData[18] = muon.isolationR05().trackerVetoPt;
697  theData[19] = muon.isolationR05().emVetoEt;
698  theData[20] = muon.isolationR05().hadVetoEt;
699  theData[21] = muon.isolationR05().hoVetoEt;
700 
701  // make sure nTracks != 0 before filling this one
702  if (theData[16] != 0)
703  theData[22] = (double)theData[12] / (double)theData[16];
704  else
705  theData[22] = -99;
706 
707  theData[23] = 1.5 * theData[13] + theData[14];
708 
709  theData[24] = (theData[0] + theData[1] + theData[2]) / MuPt;
710  theData[25] = (theData[12] + theData[13] + theData[14]) / MuPt;
711 
712  theData[26] = muon.pfIsolationR03().sumChargedHadronPt;
713  theData[27] = muon.pfIsolationR03().sumNeutralHadronEt;
714  theData[28] = muon.pfIsolationR03().sumPhotonEt;
715  theData[29] = muon.pfIsolationR03().sumNeutralHadronEtHighThreshold;
716  theData[30] = muon.pfIsolationR03().sumPhotonEtHighThreshold;
717  theData[31] = muon.pfIsolationR03().sumPUPt;
718 
719  theData[32] = muon.pfIsolationR04().sumChargedHadronPt;
720  theData[33] = muon.pfIsolationR04().sumNeutralHadronEt;
721  theData[34] = muon.pfIsolationR04().sumPhotonEt;
722  theData[35] = muon.pfIsolationR04().sumNeutralHadronEtHighThreshold;
723  theData[36] = muon.pfIsolationR04().sumPhotonEtHighThreshold;
724  theData[37] = muon.pfIsolationR04().sumPUPt;
725 
726  theData[38] = (theData[26] + theData[27] + theData[28]) / MuPt;
727  theData[39] = (theData[32] + theData[33] + theData[34]) / MuPt;
728 
729  theData[40] = (theData[26] + theData[29] + theData[30]) / MuPt;
730  theData[41] = (theData[32] + theData[35] + theData[36]) / MuPt;
731 
732  theData[42] = muon.pfSumDRIsoProfileR04().sumChargedHadronPt;
733  theData[43] = muon.pfSumDRIsoProfileR04().sumNeutralHadronEt;
734  theData[44] = muon.pfSumDRIsoProfileR04().sumPhotonEt;
735  theData[45] = muon.pfMeanDRIsoProfileR04().sumChargedHadronPt;
736  theData[46] = muon.pfMeanDRIsoProfileR04().sumNeutralHadronEt;
737  theData[47] = muon.pfMeanDRIsoProfileR04().sumPhotonEt;
738 
739  //--------------Filling the 2D Histos Data -------- //
740  theData2D[0] = muon.isolationR03().sumPt;
741  theData2D[1] = muon.isolationR03().emEt;
742  theData2D[2] = muon.isolationR03().hadEt;
743  theData2D[3] = muon.isolationR03().hoEt;
744 
745  theData2D[4] = muon.pfIsolationR04().sumChargedHadronPt;
746  theData2D[5] = muon.pfIsolationR04().sumNeutralHadronEt;
747  theData2D[6] = muon.pfIsolationR04().sumPhotonEt;
748  theData2D[7] = muon.pfIsolationR04().sumPUPt;
749 
750  theData2D[8] = theData2D[0] + theData2D[1] + theData2D[2] + theData2D[3] / MuPt; //Det RelIso;
751  theData2D[9] = theData2D[4] + theData2D[5] + theData2D[6] / MuPt; //PF RelIso;
752 
753  //-----------Filling the NVTX 1D HISTOS DATA ------------- //
754  theDataNVtx[0] = muon.pfIsolationR04().sumNeutralHadronEt;
755  theDataNVtx[1] = theDataNVtx[0];
756  theDataNVtx[2] = theDataNVtx[0];
757 
758  theDataNVtx[3] = muon.pfIsolationR04().sumPhotonEt;
759  theDataNVtx[4] = theDataNVtx[3];
760  theDataNVtx[5] = theDataNVtx[3];
761 }
double theDataNVtx[NUM_VARS_NVTX]
double theData[NUM_VARS]
double theData2D[NUM_VARS_2D]

Member Data Documentation

◆ axis_titles

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

Definition at line 122 of file MuonIsolationDQM.h.

◆ axis_titles_NVtxs

std::vector<std::string> MuonIsolationDQM::axis_titles_NVtxs
private

Definition at line 132 of file MuonIsolationDQM.h.

◆ dirName

std::string MuonIsolationDQM::dirName
private

◆ h_1D

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

Definition at line 142 of file MuonIsolationDQM.h.

◆ h_1D_NVTX

std::vector<MonitorElement*> MuonIsolationDQM::h_1D_NVTX
private

Definition at line 144 of file MuonIsolationDQM.h.

◆ h_2D

std::vector<MonitorElement*> MuonIsolationDQM::h_2D
private

Definition at line 143 of file MuonIsolationDQM.h.

◆ h_nMuons

MonitorElement* MuonIsolationDQM::h_nMuons
private

Definition at line 141 of file MuonIsolationDQM.h.

◆ isContinuous

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

Definition at line 125 of file MuonIsolationDQM.h.

◆ L_BIN_WIDTH

double MuonIsolationDQM::L_BIN_WIDTH
private

Definition at line 108 of file MuonIsolationDQM.h.

◆ LOG_BINNING_ENABLED

int MuonIsolationDQM::LOG_BINNING_ENABLED
private

Definition at line 110 of file MuonIsolationDQM.h.

◆ LOG_BINNING_RATIO

double MuonIsolationDQM::LOG_BINNING_RATIO
private

Definition at line 112 of file MuonIsolationDQM.h.

◆ main_titles

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

Definition at line 121 of file MuonIsolationDQM.h.

◆ main_titles_NVtxs

std::vector<std::string> MuonIsolationDQM::main_titles_NVtxs
private

Definition at line 130 of file MuonIsolationDQM.h.

◆ names

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

Definition at line 123 of file MuonIsolationDQM.h.

◆ names_2D

std::vector<std::string> MuonIsolationDQM::names_2D
private

Definition at line 128 of file MuonIsolationDQM.h.

◆ names_NVtxs

std::vector<std::string> MuonIsolationDQM::names_NVtxs
private

Definition at line 131 of file MuonIsolationDQM.h.

◆ nEvents

int MuonIsolationDQM::nEvents
private

Definition at line 149 of file MuonIsolationDQM.h.

Referenced by looper.Looper::loop().

◆ nGLBMuons

int MuonIsolationDQM::nGLBMuons
private

Definition at line 151 of file MuonIsolationDQM.h.

◆ nSTAMuons

int MuonIsolationDQM::nSTAMuons
private

Definition at line 150 of file MuonIsolationDQM.h.

◆ nTRKMuons

int MuonIsolationDQM::nTRKMuons
private

Definition at line 152 of file MuonIsolationDQM.h.

◆ NUM_LOG_BINS

int MuonIsolationDQM::NUM_LOG_BINS
private

Definition at line 111 of file MuonIsolationDQM.h.

◆ NUM_VARS

const int MuonIsolationDQM::NUM_VARS = 48
staticprivate

Definition at line 104 of file MuonIsolationDQM.h.

◆ NUM_VARS_2D

const int MuonIsolationDQM::NUM_VARS_2D = 10
staticprivate

Definition at line 105 of file MuonIsolationDQM.h.

◆ NUM_VARS_NVTX

const int MuonIsolationDQM::NUM_VARS_NVTX = 6
staticprivate

Definition at line 106 of file MuonIsolationDQM.h.

◆ param

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

Definition at line 124 of file MuonIsolationDQM.h.

◆ requireGLBMuon

bool MuonIsolationDQM::requireGLBMuon
private

Definition at line 113 of file MuonIsolationDQM.h.

◆ requireSTAMuon

bool MuonIsolationDQM::requireSTAMuon
private

Definition at line 114 of file MuonIsolationDQM.h.

◆ requireTRKMuon

bool MuonIsolationDQM::requireTRKMuon
private

Definition at line 115 of file MuonIsolationDQM.h.

◆ rootfilename

std::string MuonIsolationDQM::rootfilename
private

Definition at line 99 of file MuonIsolationDQM.h.

◆ S_BIN_WIDTH

double MuonIsolationDQM::S_BIN_WIDTH
private

Definition at line 109 of file MuonIsolationDQM.h.

◆ theData

double MuonIsolationDQM::theData[NUM_VARS]
private

Definition at line 136 of file MuonIsolationDQM.h.

◆ theData2D

double MuonIsolationDQM::theData2D[NUM_VARS_2D]
private

Definition at line 137 of file MuonIsolationDQM.h.

◆ theDataNVtx

double MuonIsolationDQM::theDataNVtx[NUM_VARS_NVTX]
private

Definition at line 138 of file MuonIsolationDQM.h.

◆ theMuonCollectionLabel_

edm::EDGetTokenT<edm::View<reco::Muon> > MuonIsolationDQM::theMuonCollectionLabel_
private

Definition at line 96 of file MuonIsolationDQM.h.

◆ theVertexCollectionLabel_

edm::EDGetTokenT<reco::VertexCollection> MuonIsolationDQM::theVertexCollectionLabel_
private

Definition at line 95 of file MuonIsolationDQM.h.

◆ title_cone

std::string MuonIsolationDQM::title_cone
private

Definition at line 118 of file MuonIsolationDQM.h.

◆ title_sam

std::string MuonIsolationDQM::title_sam
private

Definition at line 117 of file MuonIsolationDQM.h.

◆ titles_2D

std::vector<std::string> MuonIsolationDQM::titles_2D
private

Definition at line 127 of file MuonIsolationDQM.h.

◆ vtxBin_

int MuonIsolationDQM::vtxBin_
private

Definition at line 90 of file MuonIsolationDQM.h.

◆ vtxMax_

double MuonIsolationDQM::vtxMax_
private

Definition at line 92 of file MuonIsolationDQM.h.

◆ vtxMin_

double MuonIsolationDQM::vtxMin_
private

Definition at line 91 of file MuonIsolationDQM.h.