1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
|
#ifndef Container1D_h
#define Container1D_h
/*
* file: Container1D.h
* Author: Viktor Khristenko
*
* Description:
* 1D Container
*/
#include "DQM/HcalCommon/interface/Container.h"
#include "DQM/HcalCommon/interface/DetectorQuantity.h"
#include "DQM/HcalCommon/interface/ElectronicsQuantity.h"
#include "DQM/HcalCommon/interface/HashFilter.h"
#include "DQM/HcalCommon/interface/HashMapper.h"
#include "DQM/HcalCommon/interface/TrigTowerQuantity.h"
#include "DQM/HcalCommon/interface/Utilities.h"
#include "DQM/HcalCommon/interface/ValueQuantity.h"
#include <string>
#include <unordered_map>
#include <vector>
namespace hcaldqm {
class Container1D : public Container {
public:
Container1D();
// Initialize Container
// @folder - folder name where to start saving - root.
// By default it will be the Task's name.
//
Container1D(std::string const &folder,
hashfunctions::HashType,
quantity::Quantity *,
quantity::Quantity *qy = new quantity::ValueQuantity(quantity::fN));
~Container1D() override;
// Initialize Container
// @folder - folder name where to save. Should already include the
// Tasks's name
// @nametitle - namebase of the name and of the title
//
virtual void initialize(std::string const &folder,
hashfunctions::HashType,
quantity::Quantity *,
quantity::Quantity *qy = new quantity::ValueQuantity(quantity::fN),
int debug = 0);
// @qname - to replace the QyvsQx naming
virtual void initialize(std::string const &folder,
std::string const &qname,
hashfunctions::HashType,
quantity::Quantity *,
quantity::Quantity *qy = new quantity::ValueQuantity(quantity::fN),
int debug = 0);
using Container::initialize;
// filling by hash
virtual void fill(uint32_t);
virtual void fill(uint32_t, int);
virtual void fill(uint32_t, double);
virtual void fill(uint32_t, int, double);
virtual void fill(uint32_t, int, int);
virtual void fill(uint32_t, double, double);
// using DetId as mapper
virtual void fill(HcalDetId const &);
virtual void fill(HcalDetId const &, int);
virtual void fill(HcalDetId const &, double);
virtual void fill(HcalDetId const &, int, double);
virtual void fill(HcalDetId const &, int, int);
virtual void fill(HcalDetId const &, double, double);
virtual double getBinEntries(HcalDetId const &);
virtual double getBinEntries(HcalDetId const &, int);
virtual double getBinEntries(HcalDetId const &, double);
virtual double getBinEntries(HcalDetId const &did, int x, int) { return getBinEntries(did, x); }
virtual double getBinEntries(HcalDetId const &did, int x, double) { return getBinEntries(did, x); }
virtual double getBinEntries(HcalDetId const &did, double x, double) { return getBinEntries(did, x); }
virtual double getBinContent(HcalDetId const &);
virtual double getBinContent(HcalDetId const &, int);
virtual double getBinContent(HcalDetId const &, double);
virtual double getBinContent(HcalDetId const &did, int x, int) { return getBinContent(did, x); }
virtual double getBinContent(HcalDetId const &did, int x, double) { return getBinContent(did, x); }
virtual double getBinContent(HcalDetId const &did, double x, double) { return getBinContent(did, x); }
virtual double getMean(HcalDetId const &, int axis = 1);
virtual double getRMS(HcalDetId const &, int axix = 1);
virtual void setBinContent(HcalDetId const &, int);
virtual void setBinContent(HcalDetId const &, double);
virtual void setBinContent(HcalDetId const &, int, int);
virtual void setBinContent(HcalDetId const &, int, double);
virtual void setBinContent(HcalDetId const &, double, double);
virtual void setBinContent(HcalDetId const &, double, int);
virtual void setBinContent(HcalDetId const &id, int x, int y, int) { setBinContent(id, x, y); }
virtual void setBinContent(HcalDetId const &id, int x, double y, int) { setBinContent(id, x, y); }
virtual void setBinContent(HcalDetId const &id, double x, int y, int) { setBinContent(id, x, y); }
virtual void setBinContent(HcalDetId const &id, double x, double y, int) { setBinContent(id, x, y); }
virtual void setBinContent(HcalDetId const &id, int x, int y, double) { setBinContent(id, x, y); }
virtual void setBinContent(HcalDetId const &id, int x, double y, double) { setBinContent(id, x, y); }
virtual void setBinContent(HcalDetId const &id, double x, int y, double) { setBinContent(id, x, y); }
virtual void setBinContent(HcalDetId const &id, double x, double y, double) { setBinContent(id, x, y); }
// using ElectronicsId
virtual void fill(HcalElectronicsId const &);
virtual void fill(HcalElectronicsId const &, int);
virtual void fill(HcalElectronicsId const &, double);
virtual void fill(HcalElectronicsId const &, int, double);
virtual void fill(HcalElectronicsId const &, int, int);
virtual void fill(HcalElectronicsId const &, double, double);
virtual double getBinEntries(HcalElectronicsId const &);
virtual double getBinEntries(HcalElectronicsId const &, int);
virtual double getBinEntries(HcalElectronicsId const &, double);
virtual double getBinEntries(HcalElectronicsId const &eid, int x, int) { return getBinEntries(eid, x); }
virtual double getBinEntries(HcalElectronicsId const &eid, int x, double) { return getBinEntries(eid, x); }
virtual double getBinEntries(HcalElectronicsId const &eid, double x, double) { return getBinEntries(eid, x); }
virtual double getBinContent(HcalElectronicsId const &);
virtual double getBinContent(HcalElectronicsId const &, int);
virtual double getBinContent(HcalElectronicsId const &, double);
virtual double getBinContent(HcalElectronicsId const &eid, int x, int) { return getBinContent(eid, x); }
virtual double getBinContent(HcalElectronicsId const &eid, int x, double) { return getBinContent(eid, x); }
virtual double getBinContent(HcalElectronicsId const &eid, double x, double) { return getBinContent(eid, x); }
virtual double getMean(HcalElectronicsId const &, int axis = 1);
virtual double getRMS(HcalElectronicsId const &, int axis = 1);
virtual void setBinContent(HcalElectronicsId const &, int);
virtual void setBinContent(HcalElectronicsId const &, double);
virtual void setBinContent(HcalElectronicsId const &, int, int);
virtual void setBinContent(HcalElectronicsId const &, int, double);
virtual void setBinContent(HcalElectronicsId const &, double, double);
virtual void setBinContent(HcalElectronicsId const &, double, int);
virtual void setBinContent(HcalElectronicsId const &id, int x, int y, int) { setBinContent(id, x, y); }
virtual void setBinContent(HcalElectronicsId const &id, int x, double y, int) { setBinContent(id, x, y); }
virtual void setBinContent(HcalElectronicsId const &id, double x, int y, int) { setBinContent(id, x, y); }
virtual void setBinContent(HcalElectronicsId const &id, double x, double y, int) { setBinContent(id, x, y); }
virtual void setBinContent(HcalElectronicsId const &id, int x, int y, double) { setBinContent(id, x, y); }
virtual void setBinContent(HcalElectronicsId const &id, int x, double y, double) { setBinContent(id, x, y); }
virtual void setBinContent(HcalElectronicsId const &id, double x, int y, double) { setBinContent(id, x, y); }
virtual void setBinContent(HcalElectronicsId const &id, double x, double y, double) { setBinContent(id, x, y); }
// using DetId as mapper
virtual void fill(HcalTrigTowerDetId const &);
virtual void fill(HcalTrigTowerDetId const &, int);
virtual void fill(HcalTrigTowerDetId const &, double);
virtual void fill(HcalTrigTowerDetId const &, int, double);
virtual void fill(HcalTrigTowerDetId const &, int, int);
virtual void fill(HcalTrigTowerDetId const &, double, double);
virtual double getBinEntries(HcalTrigTowerDetId const &);
virtual double getBinEntries(HcalTrigTowerDetId const &, int);
virtual double getBinEntries(HcalTrigTowerDetId const &, double);
virtual double getBinEntries(HcalTrigTowerDetId const &tid, int x, int) { return getBinEntries(tid, x); }
virtual double getBinEntries(HcalTrigTowerDetId const &tid, int x, double) { return getBinEntries(tid, x); }
virtual double getBinEntries(HcalTrigTowerDetId const &tid, double x, double) { return getBinEntries(tid, x); }
virtual double getBinContent(HcalTrigTowerDetId const &);
virtual double getBinContent(HcalTrigTowerDetId const &, int);
virtual double getBinContent(HcalTrigTowerDetId const &, double);
virtual double getBinContent(HcalTrigTowerDetId const &tid, int x, int) { return getBinContent(tid, x); }
virtual double getBinContent(HcalTrigTowerDetId const &tid, int x, double) { return getBinContent(tid, x); }
virtual double getBinContent(HcalTrigTowerDetId const &tid, double x, double) { return getBinContent(tid, x); }
virtual double getMean(HcalTrigTowerDetId const &, int axis = 1);
virtual double getRMS(HcalTrigTowerDetId const &, int axis = 1);
virtual void setBinContent(HcalTrigTowerDetId const &, int);
virtual void setBinContent(HcalTrigTowerDetId const &, double);
virtual void setBinContent(HcalTrigTowerDetId const &, int, int);
virtual void setBinContent(HcalTrigTowerDetId const &, int, double);
virtual void setBinContent(HcalTrigTowerDetId const &, double, double);
virtual void setBinContent(HcalTrigTowerDetId const &, double, int);
virtual void setBinContent(HcalTrigTowerDetId const &id, int x, int y, int) { setBinContent(id, x, y); }
virtual void setBinContent(HcalTrigTowerDetId const &id, int x, double y, int) { setBinContent(id, x, y); }
virtual void setBinContent(HcalTrigTowerDetId const &id, double x, int y, int) { setBinContent(id, x, y); }
virtual void setBinContent(HcalTrigTowerDetId const &id, double x, double y, int) { setBinContent(id, x, y); }
virtual void setBinContent(HcalTrigTowerDetId const &id, int x, int y, double) { setBinContent(id, x, y); }
virtual void setBinContent(HcalTrigTowerDetId const &id, int x, double y, double) { setBinContent(id, x, y); }
virtual void setBinContent(HcalTrigTowerDetId const &id, double x, int y, double) { setBinContent(id, x, y); }
virtual void setBinContent(HcalTrigTowerDetId const &id, double x, double y, double) { setBinContent(id, x, y); }
// booking using IBooker
// @aux - typically a cut or anything else
// @subsystem - subsystem under which to save
//
virtual void book(DQMStore::IBooker &,
HcalElectronicsMap const *,
std::string subsystem = "Hcal",
std::string aux = "");
virtual void book(DQMStore::IBooker &,
HcalElectronicsMap const *,
filter::HashFilter const &,
std::string subsystem = "Hcal",
std::string aux = "");
// loading using DQMStore
// @DQMStore
// @emap
// @prepend - name to prepend to /<subsystem> - used when load
// a file to DQMStore without stripping and in case a name is
// appended
// @mode - if StripRunDirs - then there will be no Run Summary
// otherwise there is Run Summary folde. Used for retrieving
// MEs which were loaded into the DQM store from a file
virtual void load(DQMStore::IGetter &,
HcalElectronicsMap const *,
std::string const &subsystem = "Hcal",
std::string const &aux = "");
virtual void load(DQMStore::IGetter &,
HcalElectronicsMap const *,
filter::HashFilter const &,
std::string const &subsystem = "Hcal",
std::string const &aux = "");
// reset all the elements
virtual void reset();
// print all the elements
virtual void print();
// TO BE USED IN THE FUTURE!
virtual void extendAxisRange(int);
virtual void showOverflowX(bool showOverflow);
virtual void showOverflowY(bool showOverflow);
protected:
virtual void customize(MonitorElement *);
typedef std::unordered_map<uint32_t, MonitorElement *> MEMap;
MEMap _mes;
mapper::HashMapper _hashmap;
quantity::Quantity *_qx;
quantity::Quantity *_qy;
};
} // namespace hcaldqm
#endif
|