CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &)
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 MuonIsolationDQM (const edm::ParameterSet &)
 
 ~MuonIsolationDQM ()
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Types

enum  { NOAXIS, XAXIS, YAXIS, ZAXIS }
 
typedef edm::Handle
< reco::IsoDepositMap
MuIsoDepHandle
 
typedef const reco::IsoDeposit MuIsoDepRef
 
typedef edm::RefToBase
< reco::Muon
MuonBaseRef
 
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
< reco::MuonCollection
theMuonCollectionLabel_
 
edm::EDGetTokenT
< reco::VertexCollection
theVertexCollectionLabel_
 
std::string title_cone
 
std::string title_sam
 
std::vector< std::string > titles_2D
 

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 edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr
< dqmDetails::NoCache
globalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr
< dqmDetails::NoCache
globalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 60 of file MuonIsolationDQM.h.

Member Typedef Documentation

Definition at line 64 of file MuonIsolationDQM.h.

Definition at line 65 of file MuonIsolationDQM.h.

Definition at line 63 of file MuonIsolationDQM.h.

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

Definition at line 62 of file MuonIsolationDQM.h.

Member Enumeration Documentation

anonymous enum
private

Constructor & Destructor Documentation

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(), nEvents, 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  //--------Initialize tags-------
65  theMuonCollectionLabel_ = consumes<reco::MuonCollection>(iConfig.getUntrackedParameter<edm::InputTag>("Global_Muon_Label"));
66  theVertexCollectionLabel_ = consumes<reco::VertexCollection>(iConfig.getUntrackedParameter<edm::InputTag>("vertexLabel"));
67 
68  //-------Initialize Counterse----------------
69  nEvents = 0;
70  nSTAMuons = 0;
71  nTRKMuons = 0;
72  nGLBMuons = 0;
73 
74  InitStatics();
75 
76 
77 
78  //------"allocate" space for the data vectors-------
79  h_1D.resize(NUM_VARS);
80  h_2D.resize(NUM_VARS_2D);
81  h_1D_NVTX.resize(NUM_VARS_NVTX);
82 
83 }
std::vector< MonitorElement * > h_2D
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
static const int NUM_VARS_NVTX
std::string dirName
std::vector< MonitorElement * > h_1D
std::vector< MonitorElement * > h_1D_NVTX
static const int NUM_VARS_2D
static const int NUM_VARS
tuple cout
Definition: gather_cfg.py:145
edm::EDGetTokenT< reco::MuonCollection > theMuonCollectionLabel_
edm::EDGetTokenT< reco::VertexCollection > theVertexCollectionLabel_
MuonIsolationDQM::~MuonIsolationDQM ( )

Definition at line 88 of file MuonIsolationDQM.cc.

References gather_cfg::cout.

88  {
89 #ifdef DEBUG
90  cout << "Calling destructor" << endl;
91 #endif
92  //Deallocate memory
93 
94 }
tuple cout
Definition: gather_cfg.py:145

Member Function Documentation

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

Implements edm::stream::EDAnalyzerBase.

Definition at line 516 of file MuonIsolationDQM.cc.

References gather_cfg::cout, edm::Event::getByToken(), edm::HandleBase::isValid(), metsig::muon, patZpeak::muons, nEvents, edm::Handle< T >::product(), and findQualityFiles::v.

516  {
517 
518  ++nEvents;
519  edm::LogInfo("Tutorial") << "\nInvestigating event #" << nEvents<<"\n";
520 #ifdef DEBUG
521  cout << "[MuonIsolationDQM]: analyze()"<<endl;
522 #endif
523 
524  // Get Muon Collection
526  iEvent.getByToken(theMuonCollectionLabel_,muons);
527 
528 #ifdef DEBUG
529  cout << "[MuonIsolationDQM]: Number of muons -> " << muons->size() << endl;
530 #endif
531 
532  int theMuonData = muons->size();
533  h_nMuons->Fill(theMuonData);
534 #ifdef DEBUG
535  cout << "[MuonIsolationDQM]: Vertex is Valid" << endl;
536 #endif
537 
538  //Get Vertex Information
539  int _numPV = 0;
541  iEvent.getByToken(theVertexCollectionLabel_, vertexHandle);
542 
543  if (vertexHandle.isValid()){
544  reco::VertexCollection vertex = *(vertexHandle.product());
545  for (reco::VertexCollection::const_iterator v = vertex.begin(); v!=vertex.end(); ++v){
546  if (v->isFake()) continue;
547  if (v->ndof() < 4) continue;
548  if (fabs(v->z()) > 24.0) continue;
549  ++_numPV;
550  }
551  }
552 
553 #ifdef DEBUG
554  cout << "[MuonIsolationDQM]: Vertex is Valid" << endl;
555 #endif
556  // Get Muon Collection
557 
558  //Fill historgams concerning muon isolation
559  for (reco::MuonCollection::const_iterator muon = muons->begin(); muon!=muons->end(); ++muon){
560  if (requireSTAMuon && muon->isStandAloneMuon()) {
561  ++nSTAMuons;
562  RecordData(*muon);
563  FillHistos(_numPV);
564  }
565  else if (requireTRKMuon && muon->isTrackerMuon()) {
566  ++nTRKMuons;
567  RecordData(*muon);
568  FillHistos(_numPV);
569  }
570  else if (requireGLBMuon && muon->isGlobalMuon()) {
571  ++nGLBMuons;
572  RecordData(*muon);
573  FillHistos(_numPV);
574  FillNVtxHistos(_numPV);
575  }
576  }
577 
578 }
MonitorElement * h_nMuons
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
void Fill(long long x)
void RecordData(const reco::Muon &muon)
bool isValid() const
Definition: HandleBase.h:75
T const * product() const
Definition: Handle.h:81
tuple muons
Definition: patZpeak.py:38
tuple cout
Definition: gather_cfg.py:145
edm::EDGetTokenT< reco::MuonCollection > theMuonCollectionLabel_
edm::EDGetTokenT< reco::VertexCollection > theVertexCollectionLabel_
void MuonIsolationDQM::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

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

Implements DQMEDAnalyzer.

Definition at line 676 of file MuonIsolationDQM.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::bookProfile(), DQMStore::IBooker::cd(), TrackerOfflineValidation_Dqm_cff::dirName, cscdqm::h::names, MonitorElement::setAxisTitle(), DQMStore::IBooker::setCurrentFolder(), and MetTreeProducer::var().

678  {
679 
680  ibooker.cd();
681  ibooker.setCurrentFolder(dirName.c_str());
682 
683  ibooker.cd();
684  ibooker.setCurrentFolder(dirName.c_str());
685 
686  //---initialize number of muons histogram---
687  h_nMuons = ibooker.book1D("nMuons", title_sam + "Number of Muons", 20, 0., 20.);
688  h_nMuons->setAxisTitle("Number of Muons",XAXIS);
689  h_nMuons->setAxisTitle("Fraction of Events",YAXIS);
690 
691  //---Initialize 1D Histograms---
692  for(int var = 0; var < NUM_VARS; var++){
693  h_1D[var] = ibooker.book1D(names[var],
694  title_sam + main_titles[var] + title_cone,
695  (int)param[var][0],
696  param[var][1],
697  param[var][2]
698  );
699  h_1D[var]->setAxisTitle(axis_titles[var],XAXIS);
700  // GetTH1FromMonitorElement(h_1D[var])->Sumw2();
701  }//Finish 1D
702 
703  //----Initialize 2D Histograms
704  for (int var = 0; var<NUM_VARS_2D; var++){
705  h_2D[var] = ibooker.bookProfile(names_2D[var] + "_VsPV", titles_2D[var] + " Vs PV", 50, 0.5, 50.5, 20, 0.0, 20.0);
706 
707  h_2D[var]->setAxisTitle("Number of PV", XAXIS);
708  h_2D[var]->setAxisTitle(titles_2D[var] + " (GeV)" ,YAXIS);
709  // h_2D[var]->getTH1()->Sumw2();
710  }
711 
712  //-----Initialise PU-Binned histograms
713  for (int var=0; var<NUM_VARS_NVTX; var++){
714  h_1D_NVTX[var] = ibooker.book1D(names_NVtxs[var], main_titles_NVtxs[var], 50, 0.0, 10.0);
715  h_1D_NVTX[var]->setAxisTitle(axis_titles_NVtxs[var],XAXIS);
717  }
718 }
std::vector< MonitorElement * > h_2D
static const int NUM_VARS_NVTX
std::string dirName
MonitorElement * h_nMuons
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
void cd(void)
Definition: DQMStore.cc:268
std::vector< MonitorElement * > h_1D
std::vector< std::string > main_titles
std::vector< std::string > names
std::vector< std::string > names_2D
std::vector< std::vector< double > > param
std::vector< MonitorElement * > h_1D_NVTX
static const int NUM_VARS_2D
std::string title_sam
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
std::vector< std::string > names_NVtxs
std::string title_cone
std::vector< std::string > titles_2D
std::vector< std::string > axis_titles
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:276
std::vector< std::string > axis_titles_NVtxs
static const int NUM_VARS
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
std::vector< std::string > main_titles_NVtxs
void MuonIsolationDQM::FillHistos ( int  numPV)
private

Definition at line 727 of file MuonIsolationDQM.cc.

References gather_cfg::cout, and MetTreeProducer::var().

727  {
728 #ifdef DEBUG
729  cout << "FillHistos( "<< numPV <<" )"<< endl;
730 #endif
731 
732  //----------Fill 1D histograms---------------
733  for(int var=0; var<NUM_VARS; var++){
734  h_1D[var]->Fill(theData[var]);
735  // cd_plots[var]->Fill(theData[var]);//right now, this is a regular PDF (just like h_1D)
736 //OFBin if (theData[var] > param[var][2]) {
737 //OFBin // fill the overflow bin
738 //OFBin overFlowBin = (int) param[var][0] + 1;
739 //OFBin overFlow = GetTH1FromMonitorElement(h_1D[var])->GetBinContent(overFlowBin);
740 //OFBin GetTH1FromMonitorElement(h_1D[var])->SetBinContent(overFlowBin, overFlow + 1);
741 //OFBin }
742  }//Finish 1D
743 
744  for (int var=0; var<NUM_VARS_2D; var++){
745  h_2D[var]->Fill(numPV,theData2D[var]);
746  }
747 
748 #ifdef DEBUG
749  cout << "FillHistos( "<< numPV <<" ): DONE"<< endl;
750 #endif
751 
752 }
std::vector< MonitorElement * > h_2D
std::vector< MonitorElement * > h_1D
static const int NUM_VARS_2D
static const int NUM_VARS
tuple cout
Definition: gather_cfg.py:145
double theData[NUM_VARS]
double theData2D[NUM_VARS_2D]
void MuonIsolationDQM::FillNVtxHistos ( int  PV)
private

Definition at line 753 of file MuonIsolationDQM.cc.

753  {
754  if (PV < 15) { h_1D_NVTX[0]->Fill(theDataNVtx[0]); h_1D_NVTX[3]->Fill(theDataNVtx[3]); }
755  if (PV >= 15 && PV < 30) { h_1D_NVTX[1]->Fill(theDataNVtx[1]); h_1D_NVTX[4]->Fill(theDataNVtx[4]); }
756  if (PV >= 30) { h_1D_NVTX[2]->Fill(theDataNVtx[2]); h_1D_NVTX[5]->Fill(theDataNVtx[5]); }
757 }
std::vector< MonitorElement * > h_1D_NVTX
double theDataNVtx[NUM_VARS_NVTX]
int MuonIsolationDQM::GetNVtxBin ( int  )
private
TH1 * MuonIsolationDQM::GetTH1FromMonitorElement ( MonitorElement me)
private

Definition at line 759 of file MuonIsolationDQM.cc.

References MonitorElement::getTH1().

759  {
760  return me->getTH1();
761 }
TH1 * getTH1(void) const
void MuonIsolationDQM::InitHistos ( )
private
void MuonIsolationDQM::InitStatics ( )
private

Definition at line 99 of file MuonIsolationDQM.cc.

References gather_cfg::cout, and cscdqm::h::names.

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

Definition at line 720 of file MuonIsolationDQM.cc.

References MetTreeProducer::var().

720  {
721  for(int var=0; var<NUM_VARS; var++){
722  double entries = GetTH1FromMonitorElement(h_1D[var])->GetEntries();
723  GetTH1FromMonitorElement(h_1D[var])->Scale(1./entries);
724  }
725 }
std::vector< MonitorElement * > h_1D
static const int NUM_VARS
TH1 * GetTH1FromMonitorElement(MonitorElement *me)
void MuonIsolationDQM::RecordData ( const reco::Muon muon)
private

Definition at line 581 of file MuonIsolationDQM.cc.

References gather_cfg::cout, reco::MuonIsolation::emEt, reco::MuonIsolation::emVetoEt, reco::MuonIsolation::hadEt, reco::MuonIsolation::hadVetoEt, reco::MuonIsolation::hoEt, reco::MuonIsolation::hoVetoEt, reco::Muon::isolationR03(), reco::Muon::isolationR05(), reco::MuonIsolation::nJets, reco::MuonIsolation::nTracks, reco::Muon::pfIsolationR03(), reco::Muon::pfIsolationR04(), reco::Muon::pfMeanDRIsoProfileR04(), reco::Muon::pfSumDRIsoProfileR04(), reco::LeafCandidate::pt(), reco::MuonPFIsolation::sumChargedHadronPt, reco::MuonPFIsolation::sumNeutralHadronEt, reco::MuonPFIsolation::sumNeutralHadronEtHighThreshold, reco::MuonPFIsolation::sumPhotonEt, reco::MuonPFIsolation::sumPhotonEtHighThreshold, reco::MuonIsolation::sumPt, reco::MuonPFIsolation::sumPUPt, and reco::MuonIsolation::trackerVetoPt.

581  {
582 #ifdef DEBUG
583  std::cout << "RecordData()" << endl;
584 #endif
585  float MuPt = muon.pt();
586 
587  theData[0] = muon.isolationR03().sumPt;
588  theData[1] = muon.isolationR03().emEt;
589  theData[2] = muon.isolationR03().hadEt;
590  theData[3] = muon.isolationR03().hoEt;
591 
592  theData[4] = muon.isolationR03().nTracks;
593  theData[5] = muon.isolationR03().nJets;
594  theData[6] = muon.isolationR03().trackerVetoPt;
595  theData[7] = muon.isolationR03().emVetoEt;
596  theData[8] = muon.isolationR03().hadVetoEt;
597  theData[9] = muon.isolationR03().hoVetoEt;
598 
599  // make sure nTracks != 0 before filling this one
600  if (theData[4] != 0) theData[10] = (double)theData[0] / (double)theData[4];
601  else theData[10] = -99;
602 
603  theData[11] = 1.5 * theData[1] + theData[2];
604 
605  theData[12] = muon.isolationR05().sumPt;
606  theData[13] = muon.isolationR05().emEt;
607  theData[14] = muon.isolationR05().hadEt;
608  theData[15] = muon.isolationR05().hoEt;
609 
610  theData[16] = muon.isolationR05().nTracks;
611  theData[17] = muon.isolationR05().nJets;
612  theData[18] = muon.isolationR05().trackerVetoPt;
613  theData[19] = muon.isolationR05().emVetoEt;
614  theData[20] = muon.isolationR05().hadVetoEt;
615  theData[21] = muon.isolationR05().hoVetoEt;
616 
617  // make sure nTracks != 0 before filling this one
618  if (theData[16] != 0) theData[22] = (double)theData[12] / (double)theData[16];
619  else theData[22] = -99;
620 
621  theData[23] = 1.5 * theData[13] + theData[14];
622 
623  theData[24] = (theData[0]+theData[1]+theData[2]) / MuPt;
624  theData[25] = (theData[12]+theData[13]+theData[14]) / MuPt;
625 
626  theData[26] = muon.pfIsolationR03().sumChargedHadronPt;
627  theData[27] = muon.pfIsolationR03().sumNeutralHadronEt;
628  theData[28] = muon.pfIsolationR03().sumPhotonEt;
629  theData[29] = muon.pfIsolationR03().sumNeutralHadronEtHighThreshold;
630  theData[30] = muon.pfIsolationR03().sumPhotonEtHighThreshold;
631  theData[31] = muon.pfIsolationR03().sumPUPt;
632 
633  theData[32] = muon.pfIsolationR04().sumChargedHadronPt;
634  theData[33] = muon.pfIsolationR04().sumNeutralHadronEt;
635  theData[34] = muon.pfIsolationR04().sumPhotonEt;
636  theData[35] = muon.pfIsolationR04().sumNeutralHadronEtHighThreshold;
637  theData[36] = muon.pfIsolationR04().sumPhotonEtHighThreshold;
638  theData[37] = muon.pfIsolationR04().sumPUPt;
639 
640  theData[38] = (theData[26] + theData[27] + theData[28]) / MuPt;
641  theData[39] = (theData[32] + theData[33] + theData[34]) / MuPt;
642 
643  theData[40] = (theData[26] + theData[29] + theData[30]) / MuPt;
644  theData[41] = (theData[32] + theData[35] + theData[36]) / MuPt;
645 
646  theData[42] = muon.pfSumDRIsoProfileR04().sumChargedHadronPt;
647  theData[43] = muon.pfSumDRIsoProfileR04().sumNeutralHadronEt;
648  theData[44] = muon.pfSumDRIsoProfileR04().sumPhotonEt;
649  theData[45] = muon.pfMeanDRIsoProfileR04().sumChargedHadronPt;
650  theData[46] = muon.pfMeanDRIsoProfileR04().sumNeutralHadronEt;
651  theData[47] = muon.pfMeanDRIsoProfileR04().sumPhotonEt;
652 
653  //--------------Filling the 2D Histos Data -------- //
654  theData2D[0] = muon.isolationR03().sumPt;
655  theData2D[1] = muon.isolationR03().emEt;
656  theData2D[2] = muon.isolationR03().hadEt;
657  theData2D[3] = muon.isolationR03().hoEt;
658 
662  theData2D[7] = muon.pfIsolationR04().sumPUPt;
663 
664  theData2D[8] = theData2D[0] + theData2D[1] + theData2D[2] + theData2D[3] / MuPt; //Det RelIso;
665  theData2D[9] = theData2D[4] + theData2D[5] + theData2D[6] / MuPt; //PF RelIso;
666 
667  //-----------Filling the NVTX 1D HISTOS DATA ------------- //
669  theDataNVtx[1] = theDataNVtx[0];
670  theDataNVtx[2] = theDataNVtx[0];
671 
673  theDataNVtx[4] = theDataNVtx[3];
674  theDataNVtx[5] = theDataNVtx[3];
675 }
float hadEt
hcal sum-Et
Definition: MuonIsolation.h:9
float sumPt
sum-pt of tracks
Definition: MuonIsolation.h:7
float sumNeutralHadronEtHighThreshold
sum pt of neutral hadrons with a higher threshold
const MuonPFIsolation & pfSumDRIsoProfileR04() const
Definition: Muon.h:170
const MuonPFIsolation & pfMeanDRIsoProfileR04() const
Definition: Muon.h:169
float hadVetoEt
hcal sum-et in the veto region in r-phi
Definition: MuonIsolation.h:15
float sumPhotonEt
sum pt of PF photons
const MuonIsolation & isolationR05() const
Definition: Muon.h:163
float sumNeutralHadronEt
sum pt of neutral hadrons
float sumPUPt
sum pt of charged Particles not from PV (for Pu corrections)
const MuonPFIsolation & pfIsolationR03() const
Definition: Muon.h:165
float emEt
ecal sum-Et
Definition: MuonIsolation.h:8
int nJets
number of jets in the cone
Definition: MuonIsolation.h:12
float hoEt
ho sum-Et
Definition: MuonIsolation.h:10
float hoVetoEt
ho sum-et in the veto region in r-phi
Definition: MuonIsolation.h:16
int nTracks
number of tracks in the cone (excluding veto region)
Definition: MuonIsolation.h:11
float emVetoEt
ecal sum-et in the veto region in r-phi
Definition: MuonIsolation.h:14
const MuonPFIsolation & pfIsolationR04() const
Definition: Muon.h:168
double theDataNVtx[NUM_VARS_NVTX]
tuple cout
Definition: gather_cfg.py:145
float sumPhotonEtHighThreshold
sum pt of PF photons with a higher threshold
double theData[NUM_VARS]
double theData2D[NUM_VARS_2D]
float trackerVetoPt
(sum-)pt inside the veto region in r-phi
Definition: MuonIsolation.h:13
const MuonIsolation & isolationR03() const
Definition: Muon.h:162
virtual double pt() const final
transverse momentum
float sumChargedHadronPt
sum-pt of charged Hadron

Member Data Documentation

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

Definition at line 119 of file MuonIsolationDQM.h.

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

Definition at line 129 of file MuonIsolationDQM.h.

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

Definition at line 139 of file MuonIsolationDQM.h.

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

Definition at line 141 of file MuonIsolationDQM.h.

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

Definition at line 140 of file MuonIsolationDQM.h.

MonitorElement* MuonIsolationDQM::h_nMuons
private

Definition at line 138 of file MuonIsolationDQM.h.

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

Definition at line 122 of file MuonIsolationDQM.h.

double MuonIsolationDQM::L_BIN_WIDTH
private

Definition at line 105 of file MuonIsolationDQM.h.

int MuonIsolationDQM::LOG_BINNING_ENABLED
private

Definition at line 107 of file MuonIsolationDQM.h.

double MuonIsolationDQM::LOG_BINNING_RATIO
private

Definition at line 109 of file MuonIsolationDQM.h.

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

Definition at line 118 of file MuonIsolationDQM.h.

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

Definition at line 127 of file MuonIsolationDQM.h.

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

Definition at line 120 of file MuonIsolationDQM.h.

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

Definition at line 125 of file MuonIsolationDQM.h.

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

Definition at line 128 of file MuonIsolationDQM.h.

int MuonIsolationDQM::nEvents
private

Definition at line 146 of file MuonIsolationDQM.h.

Referenced by looper.Looper::loop().

int MuonIsolationDQM::nGLBMuons
private

Definition at line 148 of file MuonIsolationDQM.h.

int MuonIsolationDQM::nSTAMuons
private

Definition at line 147 of file MuonIsolationDQM.h.

int MuonIsolationDQM::nTRKMuons
private

Definition at line 149 of file MuonIsolationDQM.h.

int MuonIsolationDQM::NUM_LOG_BINS
private

Definition at line 108 of file MuonIsolationDQM.h.

const int MuonIsolationDQM::NUM_VARS = 48
staticprivate

Definition at line 101 of file MuonIsolationDQM.h.

const int MuonIsolationDQM::NUM_VARS_2D = 10
staticprivate

Definition at line 102 of file MuonIsolationDQM.h.

const int MuonIsolationDQM::NUM_VARS_NVTX = 6
staticprivate

Definition at line 103 of file MuonIsolationDQM.h.

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

Definition at line 121 of file MuonIsolationDQM.h.

bool MuonIsolationDQM::requireGLBMuon
private

Definition at line 110 of file MuonIsolationDQM.h.

bool MuonIsolationDQM::requireSTAMuon
private

Definition at line 111 of file MuonIsolationDQM.h.

bool MuonIsolationDQM::requireTRKMuon
private

Definition at line 112 of file MuonIsolationDQM.h.

std::string MuonIsolationDQM::rootfilename
private

Definition at line 96 of file MuonIsolationDQM.h.

double MuonIsolationDQM::S_BIN_WIDTH
private

Definition at line 106 of file MuonIsolationDQM.h.

double MuonIsolationDQM::theData[NUM_VARS]
private

Definition at line 133 of file MuonIsolationDQM.h.

double MuonIsolationDQM::theData2D[NUM_VARS_2D]
private

Definition at line 134 of file MuonIsolationDQM.h.

double MuonIsolationDQM::theDataNVtx[NUM_VARS_NVTX]
private

Definition at line 135 of file MuonIsolationDQM.h.

edm::EDGetTokenT<reco::MuonCollection> MuonIsolationDQM::theMuonCollectionLabel_
private

Definition at line 93 of file MuonIsolationDQM.h.

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

Definition at line 92 of file MuonIsolationDQM.h.

std::string MuonIsolationDQM::title_cone
private

Definition at line 115 of file MuonIsolationDQM.h.

std::string MuonIsolationDQM::title_sam
private

Definition at line 114 of file MuonIsolationDQM.h.

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

Definition at line 124 of file MuonIsolationDQM.h.