CMS 3D CMS Logo

MuIsoValidation.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 // MuIsoValidation.h
3 // Package: Muon Isolation Validation
4 // Class: MuIsoValidation
5 //
6 /*
7 
8  Description: Muon Isolation Validation class
9 
10  NOTE: The static member variable declerations *should* include the key word "static", but
11  I haven't found an elegant way to initalize the vectors. Static primatives (e.g. int,
12  float, ...) and simple static objects are easy to initialze. Outside of the class
13  decleration, you would write
14 
15  int MuIsoValidation::CONST_INT = 5;
16  FooType MuIsoValidation::CONST_FOOT = Foo(constructor_argument);
17 
18  but you can't do this if you want to, say, initalize a std::vector with a bunch of
19  different values. So, you can't make them static and you have to initialize them using
20  a member method. To keep it consistent, I've just initialized them all in the same
21  method, even the simple types.
22 
23 */
24 //
25 // Original Author: "C. Jess Riedel", UC Santa Barbara
26 // Created: Tue Jul 17 15:58:24 CDT 2007
27 //
28 
29 //Base class
31 
32 //Member types
36 
37 //Other include files
42 
44 
45 //----------------------------------------
46 
47 //Forward declarations
48 class TH1;
49 class TH1I;
50 class TH1D;
51 class TH2;
52 class TProfile;
53 
54 //------------------------------------------
55 // Class Declaration: MuIsoValidation
56 //--------------------------------------
57 //class MuIsoValidation : public edm::EDAnalyzer {
58 
60  //---------namespace and typedefs--------------
65 
66 public:
67  //---------methods----------------------------
68  explicit MuIsoValidation(const edm::ParameterSet&);
69  ~MuIsoValidation() override;
70 
71 private:
72  //---------methods----------------------------
73  void analyze(const edm::Event&, const edm::EventSetup&) override;
74  void InitStatics();
75  void RecordData(MuonIterator muon); //Fills Histograms with info from single muon
76  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
77 
78  void MakeLogBinsForProfile(Double_t* bin_edges, const double min, const double max);
79  void FillHistos(); //Fills histograms with data
80  void NormalizeHistos(); //Normalize to number of muons
84 
85  //----------Static Variables---------------
86 
87  //Collection labels
94 
95  //root file name
97  // Directories within the rootfile
100 
102 
103  //Histogram parameters
104  static const int NUM_VARS = 21;
105  double L_BIN_WIDTH; //large bins
106  double S_BIN_WIDTH; //small bins
107  int LOG_BINNING_ENABLED; //pseudo log binning for profile plots
111 
115 
116  std::vector<std::string> main_titles; //[NUM_VARS]
117  std::vector<std::string> axis_titles; //[NUM_VARS]
118  std::vector<std::string> names; //[NUM_VARS]
119  std::vector<std::vector<double> > param; //[NUM_VARS][3]
120  std::vector<int> isContinuous; //[NUM_VARS]
121  std::vector<int> cdCompNeeded; //[NUM_VARS]
122 
123  //---------------Dynamic Variables---------------------
124 
125  //MonitorElement
126 
128  //The Data
129  int theMuonData; //[number of muons]
130  double theData[NUM_VARS];
131 
132  //Histograms
134  std::vector<MonitorElement*> h_1D; //[NUM_VARS]
135  std::vector<MonitorElement*> cd_plots; //[NUM_VARS]
136  // std::vector< std::vector<MonitorElement*> > h_2D;//[NUM_VARS][NUM_VARS]
137  std::vector<std::vector<MonitorElement*> > p_2D; //[NUM_VARS][NUM_VARS]
138 
139  //Counters
140  int nEvents;
142  // int nCombinedMuons;
143 
144  //enums for monitorElement
145  enum { NOAXIS, XAXIS, YAXIS, ZAXIS };
146 };
void RecordData(MuonIterator muon)
edm::InputTag ecalIsoDeposit_Tag
void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< int > isContinuous
TH1 * GetTH1FromMonitorElement(MonitorElement *me)
std::vector< std::string > names
std::string title_cd
edm::View< reco::Muon >::const_iterator MuonIterator
std::vector< std::string > main_titles
TH2 * GetTH2FromMonitorElement(MonitorElement *me)
double theData[NUM_VARS]
edm::InputTag hcalIsoDeposit_Tag
edm::InputTag tkIsoDeposit_Tag
MuIsoValidation(const edm::ParameterSet &)
const reco::IsoDeposit MuIsoDepRef
std::vector< std::vector< MonitorElement * > > p_2D
std::vector< MonitorElement * > h_1D
TProfile * GetTProfileFromMonitorElement(MonitorElement *me)
edm::EDGetTokenT< edm::View< reco::Muon > > Muon_Token
edm::InputTag hoIsoDeposit_Tag
MonitorElement * h_nMuons
edm::ParameterSet iConfig
std::string title_sam
edm::RefToBase< reco::Muon > MuonBaseRef
std::vector< MonitorElement * > cd_plots
std::string dirName
std::string title_cone
T min(T a, T b)
Definition: MathUtil.h:58
std::string rootfilename
static const int NUM_VARS
~MuIsoValidation() override
std::vector< std::vector< double > > param
edm::Handle< reco::IsoDepositMap > MuIsoDepHandle
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
void MakeLogBinsForProfile(Double_t *bin_edges, const double min, const double max)
std::vector< std::string > axis_titles
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
edm::InputTag Muon_Tag
Definition: Run.h:45
std::string subsystemname_
std::vector< int > cdCompNeeded
std::string subDirName