CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DQMHistPlotter.h
Go to the documentation of this file.
1 #ifndef ElectroWeakAnalysis_EWKTau_DQMHistPlotter_h
2 #define ElectroWeakAnalysis_EWKTau_DQMHistPlotter_h
3 
13 // framework & common header files
18 
20 
21 #include <TH1.h>
22 #include <TLegend.h>
23 #include <TPaveText.h>
24 
25 #include <string>
26 #include <vector>
27 #include <map>
28 
30 {
31  typedef std::vector<std::string> vstring;
32 
34  {
35  cfgEntryProcess(const std::string&, const edm::ParameterSet&);
36  void print() const;
37  std::string name_;
38  std::string dqmDirectory_;
39  std::string legendEntry_;
40  std::string legendEntryErrorBand_;
41  std::string type_;
42  };
43 
45  {
46  explicit cfgEntryAxisX(const std::string&, const edm::ParameterSet&);
47  void print() const;
48  void applyTo(TH1*) const;
49  std::string name_;
50  double minX_;
51  double maxX_;
52  std::string xAxisTitle_;
55  };
56 
58  {
59  explicit cfgEntryAxisY(const std::string&, const edm::ParameterSet&);
60  void print() const;
61  static void setNorm(double yAxisNorm) { yAxisNorm_ = yAxisNorm; }
62  void applyTo(TH1*) const;
63  std::string name_;
64  double minY_linear_;
65  double minY_log_;
66  double maxY_linear_;
67  double maxY_log_;
68  std::string yScale_;
69  std::string yAxisTitle_;
72  static double yAxisNorm_;
73  };
74 
76  {
77  cfgEntryLegend(const std::string&, const edm::ParameterSet&);
78  void print() const;
79  void applyTo(TLegend*) const;
80  std::string name_;
81  double posX_;
82  double posY_;
83  double sizeX_;
84  double sizeY_;
85  std::string header_;
86  std::string option_;
89  };
90 
92  {
93  cfgEntryLabel(const std::string&, const edm::ParameterSet&);
94  void print() const;
95  void applyTo(TPaveText*) const;
96  std::string name_;
97  double posX_;
98  double posY_;
99  double sizeX_;
100  double sizeY_;
101  std::string option_;
105  double textSize_;
107  double textAngle_;
109  };
110 
112  {
113  cfgEntryDrawOption(const std::string&, const edm::ParameterSet&);
114  cfgEntryDrawOption(const std::string&, const cfgEntryDrawOption&);
115  void print() const;
116  void applyTo(TH1*) const;
117  std::string name_;
119  double markerSize_;
126  std::string drawOption_;
127  std::string drawOptionLegend_;
128  };
129 
131  {
132  plotDefEntry(const std::string&, const std::string&, const std::string&, const std::string&, const std::string&, bool);
133  plotDefEntry(const plotDefEntry&);
134  void print() const;
135  std::string dqmMonitorElement_;
136  std::string drawOptionEntry_;
137  std::string legendEntry_;
139  std::string process_;
140  bool doStack_;
142  };
143 
144  typedef std::list<plotDefEntry> plotDefList;
145 
147  {
148  cfgEntryDrawJob(const std::string&, const plotDefList&, const std::string&, const std::string&, const std::string&, const std::string&, const vstring&);
149  void print() const;
150  std::string name_;
152  std::string title_;
153  std::string xAxis_;
154  std::string yAxis_;
155  std::string legend_;
157  };
158 
159  public:
160  explicit DQMHistPlotter(const edm::ParameterSet&);
161  virtual ~DQMHistPlotter();
162  virtual void analyze(const edm::Event&, const edm::EventSetup&);
163  virtual void endJob();
164 
165 private:
166  std::map<std::string, cfgEntryProcess> processes_;
167  std::map<std::string, cfgEntryAxisX> xAxes_;
168  std::map<std::string, cfgEntryAxisY> yAxes_;
169  std::map<std::string, cfgEntryLegend> legends_;
170  std::map<std::string, cfgEntryLabel> labels_;
171  std::map<std::string, cfgEntryDrawOption> drawOptionEntries_;
172  std::list<cfgEntryDrawJob> drawJobs_;
175  std::string outputFilePath_;
176  std::string outputFileName_;
177  std::string indOutputFileName_;
179 };
180 
181 #endif
182 
183 
cfgEntryProcess(const std::string &, const edm::ParameterSet &)
cfgEntryDrawJob(const std::string &, const plotDefList &, const std::string &, const std::string &, const std::string &, const std::string &, const vstring &)
std::map< std::string, cfgEntryAxisY > yAxes_
std::map< std::string, cfgEntryLegend > legends_
std::map< std::string, cfgEntryLabel > labels_
std::map< std::string, cfgEntryProcess > processes_
std::string outputFileName_
cfgEntryLabel(const std::string &, const edm::ParameterSet &)
void applyTo(TPaveText *) const
cfgEntryAxisY(const std::string &, const edm::ParameterSet &)
std::string indOutputFileName_
std::list< cfgEntryDrawJob > drawJobs_
void applyTo(TLegend *) const
virtual ~DQMHistPlotter()
cfgEntryAxisX(const std::string &, const edm::ParameterSet &)
std::list< plotDefEntry > plotDefList
std::map< std::string, cfgEntryDrawOption > drawOptionEntries_
plotDefEntry(const std::string &, const std::string &, const std::string &, const std::string &, const std::string &, bool)
cfgEntryDrawOption(const std::string &, const edm::ParameterSet &)
std::string outputFilePath_
DQMHistPlotter(const edm::ParameterSet &)
std::vector< std::string > vstring
virtual void analyze(const edm::Event &, const edm::EventSetup &)
virtual void endJob()
cfgEntryLegend(const std::string &, const edm::ParameterSet &)
std::map< std::string, cfgEntryAxisX > xAxes_
static void setNorm(double yAxisNorm)