CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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&);
70 
71 
72 private:
73  //---------methods----------------------------
74  virtual void analyze(const edm::Event&, const edm::EventSetup&);
75  void InitStatics();
76  void RecordData(MuonIterator muon);//Fills Histograms with info from single muon
77  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
78 
79  void MakeLogBinsForProfile(Double_t* bin_edges, const double min, const double max);
80  void FillHistos();//Fills histograms with data
81  void NormalizeHistos(); //Normalize to number of muons
85 
86 
87  //----------Static Variables---------------
88 
89  //Collection labels
96 
97  //root file name
99  // Directories within the rootfile
102 
104 
105  //Histogram parameters
106  static const int NUM_VARS = 21;
107  double L_BIN_WIDTH;//large bins
108  double S_BIN_WIDTH;//small bins
109  int LOG_BINNING_ENABLED;//pseudo log binning for profile plots
113 
117 
118  std::vector<std::string> main_titles;//[NUM_VARS]
119  std::vector<std::string> axis_titles;//[NUM_VARS]
120  std::vector<std::string> names;//[NUM_VARS]
121  std::vector< std::vector<double> > param;//[NUM_VARS][3]
122  std::vector<int> isContinuous;//[NUM_VARS]
123  std::vector<int> cdCompNeeded;//[NUM_VARS]
124 
125  //---------------Dynamic Variables---------------------
126 
127  //MonitorElement
129 
131  //The Data
132  int theMuonData;//[number of muons]
133  double theData[NUM_VARS];
134 
135  //Histograms
137  std::vector<MonitorElement*> h_1D;//[NUM_VARS]
138  std::vector<MonitorElement*> cd_plots;//[NUM_VARS]
139  // std::vector< std::vector<MonitorElement*> > h_2D;//[NUM_VARS][NUM_VARS]
140  std::vector< std::vector<MonitorElement*> > p_2D;//[NUM_VARS][NUM_VARS]
141 
142  //Counters
143  int nEvents;
145  // int nCombinedMuons;
146 
147  //enums for monitorElement
149 };
150 
void RecordData(MuonIterator muon)
edm::InputTag ecalIsoDeposit_Tag
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:81
std::vector< int > isContinuous
TH1 * GetTH1FromMonitorElement(MonitorElement *me)
std::vector< std::vector< MonitorElement * > > p_2D
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< 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
virtual void analyze(const edm::Event &, const edm::EventSetup &)
std::string title_sam
const T & max(const T &a, const T &b)
edm::RefToBase< reco::Muon > MuonBaseRef
std::vector< MonitorElement * > cd_plots
std::string dirName
std::string title_cone
std::string rootfilename
static const int NUM_VARS
std::vector< std::vector< double > > param
edm::Handle< reco::IsoDepositMap > MuIsoDepHandle
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:41
std::string subsystemname_
std::vector< int > cdCompNeeded
std::string subDirName