CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
81  //----------Static Variables---------------
82 
83  //Collection labels
90 
91  //root file name
93  // Directories within the rootfile
96 
98 
99  //Histogram parameters
100  static const int NUM_VARS = 21;
101  double L_BIN_WIDTH; //large bins
102  double S_BIN_WIDTH; //small bins
103  int LOG_BINNING_ENABLED; //pseudo log binning for profile plots
107 
111 
112  std::vector<std::string> main_titles; //[NUM_VARS]
113  std::vector<std::string> axis_titles; //[NUM_VARS]
114  std::vector<std::string> names; //[NUM_VARS]
115  std::vector<std::vector<double> > param; //[NUM_VARS][3]
116  std::vector<int> isContinuous; //[NUM_VARS]
117  std::vector<int> cdCompNeeded; //[NUM_VARS]
118 
119  //---------------Dynamic Variables---------------------
120 
121  //MonitorElement
122 
124  //The Data
125  int theMuonData; //[number of muons]
126  double theData[NUM_VARS];
127 
128  //Histograms
130  std::vector<MonitorElement*> h_1D; //[NUM_VARS]
131  std::vector<MonitorElement*> cd_plots; //[NUM_VARS]
132  // std::vector< std::vector<MonitorElement*> > h_2D;//[NUM_VARS][NUM_VARS]
133  std::vector<std::vector<MonitorElement*> > p_2D; //[NUM_VARS][NUM_VARS]
134 
135  //Counters
136  int nEvents;
138  // int nCombinedMuons;
139 
140  //enums for monitorElement
141  enum { NOAXIS, XAXIS, YAXIS, ZAXIS };
142 };
void RecordData(MuonIterator muon)
edm::InputTag ecalIsoDeposit_Tag
void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< int > isContinuous
std::vector< std::string > names
std::string title_cd
edm::View< reco::Muon >::const_iterator MuonIterator
std::vector< std::string > main_titles
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
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