CMS 3D CMS Logo

DQMHistPlotter.h
Go to the documentation of this file.
1 #ifndef TauDQMHistPlotter_h
2 #define TauDQMHistPlotter_h
3 
11 // framework & common header files
16 
18 
19 #include <TH1.h>
20 #include <TLegend.h>
21 #include <TPaveText.h>
22 
23 #include <string>
24 #include <vector>
25 #include <map>
26 
27 class TauDQMHistPlotter : public edm::one::EDAnalyzer<edm::one::SharedResources, edm::one::WatchRuns> {
30 
31  typedef std::vector<std::string> vstring;
32 
33  struct cfgEntryProcess {
35  void print() const;
41  };
42 
43  struct cfgEntryAxisX {
44  explicit cfgEntryAxisX(const std::string&, const edm::ParameterSet&);
45  void print() const;
46  void applyTo(TH1*) const;
48  double minX_;
49  double maxX_;
53  };
54 
55  struct cfgEntryAxisY {
56  explicit cfgEntryAxisY(const std::string&, const edm::ParameterSet&);
57  void print() const;
58  void applyTo(TH1*, double norm) const;
60  double minY_linear_;
61  double minY_log_;
62  double maxY_linear_;
63  double maxY_log_;
68  };
69 
70  struct cfgEntryLegend {
72  void print() const;
73  void applyTo(TLegend*) const;
75  double posX_;
76  double posY_;
77  double sizeX_;
78  double sizeY_;
83  };
84 
85  struct cfgEntryLabel {
87  void print() const;
88  void applyTo(TPaveText*) const;
90  double posX_;
91  double posY_;
92  double sizeX_;
93  double sizeY_;
98  double textSize_;
100  double textAngle_;
102  };
103 
107  void print() const;
108  void applyTo(TH1*) const;
111  double markerSize_;
120  };
121 
122  struct plotDefEntry {
123  plotDefEntry(
124  const std::string&, const std::string&, const std::string&, const std::string&, const std::string&, bool);
125  plotDefEntry(const plotDefEntry&);
126  void print() const;
132  bool doStack_;
134  };
135 
136  typedef std::list<plotDefEntry> plotDefList;
137 
140  const plotDefList&,
141  const std::string&,
142  const std::string&,
143  const std::string&,
144  const std::string&,
145  const vstring&);
146  void print() const;
154  };
155 
156 public:
157  explicit TauDQMHistPlotter(const edm::ParameterSet&);
158  ~TauDQMHistPlotter() override;
159  void analyze(const edm::Event&, const edm::EventSetup&) override;
160  void endRun(const edm::Run& r, const edm::EventSetup& c) override;
161  void beginRun(const edm::Run& r, const edm::EventSetup& c) override {}
162 
163 private:
164  std::map<std::string, cfgEntryProcess> processes_;
165  std::map<std::string, cfgEntryAxisX> xAxes_;
166  std::map<std::string, cfgEntryAxisY> yAxes_;
167  std::map<std::string, cfgEntryLegend> legends_;
168  std::map<std::string, cfgEntryLabel> labels_;
169  std::map<std::string, cfgEntryDrawOption> drawOptionEntries_;
170  std::list<cfgEntryDrawJob> drawJobs_;
177  bool toFile_;
178 };
179 
180 #endif
void applyTo(TPaveText *) const
cfgEntryLabel(const std::string &, const edm::ParameterSet &)
void endRun(const edm::Run &r, const edm::EventSetup &c) override
cfgEntryAxisX(const std::string &, const edm::ParameterSet &)
void beginRun(const edm::Run &r, const edm::EventSetup &c) override
cfgEntryDrawOption(const std::string &, const edm::ParameterSet &)
dqm::legacy::DQMStore DQMStore
std::map< std::string, cfgEntryLegend > legends_
~TauDQMHistPlotter() override
std::vector< std::string > vstring
cfgEntryProcess(const std::string &, const edm::ParameterSet &)
std::string outputFileName_
std::map< std::string, cfgEntryLabel > labels_
std::map< std::string, cfgEntryProcess > processes_
std::map< std::string, cfgEntryAxisX > xAxes_
dqm::legacy::MonitorElement MonitorElement
cfgEntryAxisY(const std::string &, const edm::ParameterSet &)
std::list< plotDefEntry > plotDefList
std::string outputFilePath_
std::map< std::string, cfgEntryDrawOption > drawOptionEntries_
plotDefEntry(const std::string &, const std::string &, const std::string &, const std::string &, const std::string &, bool)
cfgEntryDrawJob(const std::string &, const plotDefList &, const std::string &, const std::string &, const std::string &, const std::string &, const vstring &)
std::list< cfgEntryDrawJob > drawJobs_
TauDQMHistPlotter(const edm::ParameterSet &)
std::map< std::string, cfgEntryAxisY > yAxes_
std::string indOutputFileName_
void applyTo(TH1 *, double norm) const
cfgEntryLegend(const std::string &, const edm::ParameterSet &)
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: Run.h:45