File indexing completed on 2023-03-17 10:54:48
0001 #include "DQM/HcalCommon/interface/Container2D.h"
0002 #include "DQM/HcalCommon/interface/Utilities.h"
0003
0004 namespace hcaldqm {
0005 using namespace constants;
0006 using namespace quantity;
0007 using namespace mapper;
0008
0009 Container2D::Container2D() : _qz(nullptr) {}
0010
0011 Container2D::Container2D(
0012 std::string const &folder, hashfunctions::HashType hashtype, Quantity *qx, Quantity *qy, Quantity *qz)
0013 : Container1D(folder, hashtype, qx, qy), _qz(qz) {
0014 _qx->setAxisType(quantity::fXAxis);
0015 _qy->setAxisType(quantity::fYAxis);
0016 _qz->setAxisType(quantity::fZAxis);
0017 }
0018
0019 Container2D::~Container2D() {
0020 if (_qz != nullptr)
0021 delete _qz;
0022 _qz = nullptr;
0023 }
0024
0025 void Container2D::initialize(std::string const &folder,
0026 hashfunctions::HashType hashtype,
0027 Quantity *qx,
0028 Quantity *qy,
0029 Quantity *qz,
0030 int debug ) {
0031 Container1D::initialize(folder, qz->name() + "vs" + qy->name() + "vs" + qx->name(), hashtype, qx, qy, debug);
0032 _qz = qz;
0033 _qx->setAxisType(quantity::fXAxis);
0034 _qy->setAxisType(quantity::fYAxis);
0035 _qz->setAxisType(quantity::fZAxis);
0036 }
0037
0038 void Container2D::initialize(std::string const &folder,
0039 std::string const &qname,
0040 hashfunctions::HashType hashtype,
0041 Quantity *qx,
0042 Quantity *qy,
0043 Quantity *qz,
0044 int debug ) {
0045 Container1D::initialize(folder, qname, hashtype, qx, qy, debug);
0046 _qz = qz;
0047 _qx->setAxisType(quantity::fXAxis);
0048 _qy->setAxisType(quantity::fYAxis);
0049 _qz->setAxisType(quantity::fZAxis);
0050 }
0051
0052 void Container2D::fill(HcalDetId const &did) {
0053 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(did));
0054 }
0055
0056
0057 void Container2D::fill(HcalDetId const &did, int x) {
0058 if (_qx->isCoordinate() && _qy->isCoordinate())
0059 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(did), x);
0060 else if (_qx->isCoordinate())
0061 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x));
0062 else if (_qy->isCoordinate())
0063 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did));
0064 }
0065
0066 void Container2D::fill(HcalDetId const &did, double x) {
0067 if (_qx->isCoordinate() && _qy->isCoordinate())
0068 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(did), x);
0069 else if (_qx->isCoordinate())
0070 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x));
0071 else if (_qy->isCoordinate())
0072 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did));
0073 }
0074
0075 void Container2D::fill(HcalDetId const &did, int x, double y) {
0076 if (_qx->isCoordinate() && !_qy->isCoordinate())
0077 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x), y);
0078 else if (!_qx->isCoordinate() && _qy->isCoordinate())
0079 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did), y);
0080 else if (!_qx->isCoordinate() && !_qy->isCoordinate())
0081 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(y));
0082 }
0083
0084 void Container2D::fill(HcalDetId const &did, int x, int y) {
0085 if (_qx->isCoordinate() && !_qy->isCoordinate())
0086 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x), y);
0087 else if (!_qx->isCoordinate() && _qy->isCoordinate())
0088 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did), y);
0089 else if (!_qx->isCoordinate() && !_qy->isCoordinate())
0090 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(y));
0091 }
0092
0093 void Container2D::fill(HcalDetId const &did, double x, double y) {
0094 if (_qx->isCoordinate() && !_qy->isCoordinate())
0095 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x), y);
0096 else if (!_qx->isCoordinate() && _qy->isCoordinate())
0097 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did), y);
0098 else if (!_qx->isCoordinate() && !_qy->isCoordinate())
0099 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(y));
0100 }
0101
0102 double Container2D::getBinEntries(HcalDetId const &id) {
0103 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(id) + _qy->getBin(id) * _qx->wofnbins());
0104 }
0105
0106 double Container2D::getBinEntries(HcalDetId const &id, int x) {
0107 if (_qx->isCoordinate())
0108 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(id) + _qy->getBin(x) * _qx->wofnbins());
0109 else
0110 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(id) * _qx->wofnbins());
0111 }
0112
0113 double Container2D::getBinEntries(HcalDetId const &id, double x) {
0114 if (_qx->isCoordinate())
0115 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(id) + _qy->getBin(x) * _qx->wofnbins());
0116 else
0117 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(id) * _qx->wofnbins());
0118 }
0119
0120 double Container2D::getBinEntries(HcalDetId const &id, int x, int y) {
0121 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(y) * _qx->wofnbins());
0122 }
0123
0124 double Container2D::getBinEntries(HcalDetId const &id, int x, double y) {
0125 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(y) * _qx->wofnbins());
0126 }
0127
0128 double Container2D::getBinEntries(HcalDetId const &id, double x, double y) {
0129 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(y) * _qx->wofnbins());
0130 }
0131
0132 double Container2D::getBinContent(HcalDetId const &id) {
0133 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(id), _qy->getBin(id));
0134 }
0135
0136 double Container2D::getBinContent(HcalDetId const &id, int x) {
0137 if (_qx->isCoordinate())
0138 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(id), _qy->getBin(x));
0139 else
0140 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(id));
0141 }
0142
0143 double Container2D::getBinContent(HcalDetId const &id, double x) {
0144 if (_qx->isCoordinate())
0145 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(id), _qy->getBin(x));
0146 else
0147 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(id));
0148 }
0149
0150 double Container2D::getBinContent(HcalDetId const &id, int x, int y) {
0151 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(y));
0152 }
0153
0154 double Container2D::getBinContent(HcalDetId const &id, int x, double y) {
0155 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(y));
0156 }
0157
0158 double Container2D::getBinContent(HcalDetId const &id, double x, double y) {
0159 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(y));
0160 }
0161
0162
0163 void Container2D::setBinContent(HcalDetId const &id, int x) {
0164 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(id), x);
0165 }
0166 void Container2D::setBinContent(HcalDetId const &id, double x) {
0167 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(id), x);
0168 }
0169 void Container2D::setBinContent(HcalDetId const &id, int x, int y) {
0170 if (_qx->isCoordinate())
0171 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(x), y);
0172 else
0173 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(id), y);
0174 }
0175
0176 void Container2D::setBinContent(HcalDetId const &id, int x, double y) {
0177 if (_qx->isCoordinate())
0178 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(x), y);
0179 else
0180 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(id), y);
0181 }
0182 void Container2D::setBinContent(HcalDetId const &id, double x, int y) {
0183 if (_qx->isCoordinate())
0184 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(x), y);
0185 else
0186 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(id), y);
0187 }
0188 void Container2D::setBinContent(HcalDetId const &id, double x, double y) {
0189 if (_qx->isCoordinate())
0190 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(x), y);
0191 else
0192 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(id), y);
0193 }
0194
0195 void Container2D::setBinContent(HcalDetId const &id, int x, int y, int z) {
0196 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0197 }
0198 void Container2D::setBinContent(HcalDetId const &id, int x, double y, int z) {
0199 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0200 }
0201 void Container2D::setBinContent(HcalDetId const &id, double x, int y, int z) {
0202 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0203 }
0204 void Container2D::setBinContent(HcalDetId const &id, double x, double y, int z) {
0205 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0206 }
0207 void Container2D::setBinContent(HcalDetId const &id, int x, int y, double z) {
0208 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0209 }
0210 void Container2D::setBinContent(HcalDetId const &id, int x, double y, double z) {
0211 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0212 }
0213 void Container2D::setBinContent(HcalDetId const &id, double x, int y, double z) {
0214 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0215 }
0216 void Container2D::setBinContent(HcalDetId const &id, double x, double y, double z) {
0217 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0218 }
0219
0220
0221 void Container2D::fill(HcalElectronicsId const &did) {
0222 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(did));
0223 }
0224
0225 void Container2D::fill(HcalElectronicsId const &did, int x) {
0226 if (_qx->isCoordinate() && _qy->isCoordinate())
0227 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(did), x);
0228 else if (_qx->isCoordinate())
0229 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x));
0230 else if (_qy->isCoordinate())
0231 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did));
0232 }
0233
0234 void Container2D::fill(HcalElectronicsId const &did, double x) {
0235 if (_qx->isCoordinate() && _qy->isCoordinate())
0236 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(did), x);
0237 else if (_qx->isCoordinate())
0238 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x));
0239 else if (_qy->isCoordinate())
0240 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did));
0241 }
0242
0243 void Container2D::fill(HcalElectronicsId const &did, int x, double y) {
0244 if (_qx->isCoordinate() && !_qy->isCoordinate())
0245 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x), y);
0246 else if (!_qx->isCoordinate() && _qy->isCoordinate())
0247 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did), y);
0248 else if (!_qx->isCoordinate() && !_qy->isCoordinate())
0249 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(y));
0250 }
0251
0252 void Container2D::fill(HcalElectronicsId const &did, int x, int y) {
0253 if (_qx->isCoordinate() && !_qy->isCoordinate())
0254 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x), y);
0255 else if (!_qx->isCoordinate() && _qy->isCoordinate())
0256 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did), y);
0257 else if (!_qx->isCoordinate() && !_qy->isCoordinate())
0258 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(y));
0259 }
0260
0261 void Container2D::fill(HcalElectronicsId const &did, double x, double y) {
0262 if (_qx->isCoordinate() && !_qy->isCoordinate())
0263 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x), y);
0264 else if (!_qx->isCoordinate() && _qy->isCoordinate())
0265 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did), y);
0266 else if (!_qx->isCoordinate() && !_qy->isCoordinate())
0267 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(y));
0268 }
0269
0270 double Container2D::getBinEntries(HcalElectronicsId const &id) {
0271 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(id) + _qy->getBin(id) * _qx->wofnbins());
0272 }
0273
0274 double Container2D::getBinEntries(HcalElectronicsId const &id, int x) {
0275 if (_qx->isCoordinate())
0276 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(id) + _qy->getBin(x) * _qx->wofnbins());
0277 else
0278 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(id) * _qx->wofnbins());
0279 }
0280
0281 double Container2D::getBinEntries(HcalElectronicsId const &id, double x) {
0282 if (_qx->isCoordinate())
0283 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(id) + _qy->getBin(x) * _qx->wofnbins());
0284 else
0285 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(id) * _qx->wofnbins());
0286 }
0287
0288 double Container2D::getBinEntries(HcalElectronicsId const &id, int x, int y) {
0289 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(y) * _qx->wofnbins());
0290 }
0291
0292 double Container2D::getBinEntries(HcalElectronicsId const &id, int x, double y) {
0293 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(y) * _qx->wofnbins());
0294 }
0295
0296 double Container2D::getBinEntries(HcalElectronicsId const &id, double x, double y) {
0297 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(y) * _qx->wofnbins());
0298 }
0299
0300 double Container2D::getBinContent(HcalElectronicsId const &id) {
0301 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(id), _qy->getBin(id));
0302 }
0303
0304 double Container2D::getBinContent(HcalElectronicsId const &id, int x) {
0305 if (_qx->isCoordinate())
0306 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(id), _qy->getBin(x));
0307 else
0308 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(id));
0309 }
0310
0311 double Container2D::getBinContent(HcalElectronicsId const &id, double x) {
0312 if (_qx->isCoordinate())
0313 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(id), _qy->getBin(x));
0314 else
0315 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(id));
0316 }
0317
0318 double Container2D::getBinContent(HcalElectronicsId const &id, int x, int y) {
0319 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(y));
0320 }
0321
0322 double Container2D::getBinContent(HcalElectronicsId const &id, int x, double y) {
0323 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(y));
0324 }
0325
0326 double Container2D::getBinContent(HcalElectronicsId const &id, double x, double y) {
0327 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(y));
0328 }
0329
0330
0331 void Container2D::setBinContent(HcalElectronicsId const &id, int x) {
0332 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(id), x);
0333 }
0334 void Container2D::setBinContent(HcalElectronicsId const &id, double x) {
0335 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(id), x);
0336 }
0337 void Container2D::setBinContent(HcalElectronicsId const &id, int x, int y) {
0338 if (_qx->isCoordinate())
0339 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(x), y);
0340 else
0341 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(id), y);
0342 }
0343
0344 void Container2D::setBinContent(HcalElectronicsId const &id, int x, double y) {
0345 if (_qx->isCoordinate())
0346 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(x), y);
0347 else
0348 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(id), y);
0349 }
0350 void Container2D::setBinContent(HcalElectronicsId const &id, double x, int y) {
0351 if (_qx->isCoordinate())
0352 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(x), y);
0353 else
0354 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(id), y);
0355 }
0356 void Container2D::setBinContent(HcalElectronicsId const &id, double x, double y) {
0357 if (_qx->isCoordinate())
0358 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(x), y);
0359 else
0360 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(id), y);
0361 }
0362
0363 void Container2D::setBinContent(HcalElectronicsId const &id, int x, int y, int z) {
0364 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0365 }
0366 void Container2D::setBinContent(HcalElectronicsId const &id, int x, double y, int z) {
0367 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0368 }
0369 void Container2D::setBinContent(HcalElectronicsId const &id, double x, int y, int z) {
0370 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0371 }
0372 void Container2D::setBinContent(HcalElectronicsId const &id, double x, double y, int z) {
0373 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0374 }
0375 void Container2D::setBinContent(HcalElectronicsId const &id, int x, int y, double z) {
0376 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0377 }
0378 void Container2D::setBinContent(HcalElectronicsId const &id, int x, double y, double z) {
0379 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0380 }
0381 void Container2D::setBinContent(HcalElectronicsId const &id, double x, int y, double z) {
0382 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0383 }
0384 void Container2D::setBinContent(HcalElectronicsId const &id, double x, double y, double z) {
0385 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0386 }
0387
0388
0389 void Container2D::fill(HcalTrigTowerDetId const &did) {
0390 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(did));
0391 }
0392
0393
0394 void Container2D::fill(HcalTrigTowerDetId const &did, int x) {
0395 if (_qx->isCoordinate() && _qy->isCoordinate())
0396 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(did), x);
0397 else if (_qx->isCoordinate())
0398 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x));
0399 else if (_qy->isCoordinate())
0400 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did));
0401 }
0402
0403 void Container2D::fill(HcalTrigTowerDetId const &did, double x) {
0404 if (_qx->isCoordinate() && _qy->isCoordinate())
0405 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(did), x);
0406 else if (_qx->isCoordinate())
0407 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x));
0408 else if (_qy->isCoordinate())
0409 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did));
0410 }
0411
0412 void Container2D::fill(HcalTrigTowerDetId const &did, int x, double y) {
0413 if (_qx->isCoordinate() && !_qy->isCoordinate())
0414 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x), y);
0415 else if (!_qx->isCoordinate() && _qy->isCoordinate())
0416 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did), y);
0417 else if (!_qx->isCoordinate() && !_qy->isCoordinate())
0418 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(y));
0419 }
0420
0421 void Container2D::fill(HcalTrigTowerDetId const &did, int x, int y) {
0422 if (_qx->isCoordinate() && !_qy->isCoordinate())
0423 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x), y);
0424 else if (!_qx->isCoordinate() && _qy->isCoordinate())
0425 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did), y);
0426 else if (!_qx->isCoordinate() && !_qy->isCoordinate())
0427 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(y));
0428 }
0429
0430 void Container2D::fill(HcalTrigTowerDetId const &did, double x, double y) {
0431 if (_qx->isCoordinate() && !_qy->isCoordinate())
0432 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(did), _qy->getValue(x), y);
0433 else if (!_qx->isCoordinate() && _qy->isCoordinate())
0434 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(did), y);
0435 else if (!_qx->isCoordinate() && !_qy->isCoordinate())
0436 _mes[_hashmap.getHash(did)]->Fill(_qx->getValue(x), _qy->getValue(y));
0437 }
0438
0439 void Container2D::fill(HcalTrigTowerDetId const &did, HcalElectronicsId const &eid, int x, int y) {
0440 if (_qx->isCoordinate() && !_qy->isCoordinate())
0441 _mes[_hashmap.getHash(did, eid)]->Fill(_qx->getValue(did), _qy->getValue(x), y);
0442 else if (!_qx->isCoordinate() && _qy->isCoordinate())
0443 _mes[_hashmap.getHash(did, eid)]->Fill(_qx->getValue(x), _qy->getValue(did), y);
0444 else if (!_qx->isCoordinate() && !_qy->isCoordinate())
0445 _mes[_hashmap.getHash(did, eid)]->Fill(_qx->getValue(x), _qy->getValue(y));
0446 }
0447
0448 double Container2D::getBinEntries(HcalTrigTowerDetId const &id) {
0449 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(id) + _qy->getBin(id) * _qx->wofnbins());
0450 }
0451
0452 double Container2D::getBinEntries(HcalTrigTowerDetId const &id, int x) {
0453 if (_qx->isCoordinate())
0454 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(id) + _qy->getBin(x) * _qx->wofnbins());
0455 else
0456 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(id) * _qx->wofnbins());
0457 }
0458
0459 double Container2D::getBinEntries(HcalTrigTowerDetId const &id, double x) {
0460 if (_qx->isCoordinate())
0461 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(id) + _qy->getBin(x) * _qx->wofnbins());
0462 else
0463 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(id) * _qx->wofnbins());
0464 }
0465
0466 double Container2D::getBinEntries(HcalTrigTowerDetId const &id, int x, int y) {
0467 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(y) * _qx->wofnbins());
0468 }
0469
0470 double Container2D::getBinEntries(HcalTrigTowerDetId const &id, int x, double y) {
0471 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(y) * _qx->wofnbins());
0472 }
0473
0474 double Container2D::getBinEntries(HcalTrigTowerDetId const &id, double x, double y) {
0475 return _mes[_hashmap.getHash(id)]->getBinEntries(_qx->getBin(x) + _qy->getBin(y) * _qx->wofnbins());
0476 }
0477
0478 double Container2D::getBinContent(HcalTrigTowerDetId const &id) {
0479 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(id), _qy->getBin(id));
0480 }
0481
0482 double Container2D::getBinContent(HcalTrigTowerDetId const &id, int x) {
0483 if (_qx->isCoordinate())
0484 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(id), _qy->getBin(x));
0485 else
0486 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(id));
0487 }
0488
0489 double Container2D::getBinContent(HcalTrigTowerDetId const &id, double x) {
0490 if (_qx->isCoordinate())
0491 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(id), _qy->getBin(x));
0492 else
0493 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(id));
0494 }
0495
0496 double Container2D::getBinContent(HcalTrigTowerDetId const &id, int x, int y) {
0497 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(y));
0498 }
0499
0500 double Container2D::getBinContent(HcalTrigTowerDetId const &id, int x, double y) {
0501 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(y));
0502 }
0503
0504 double Container2D::getBinContent(HcalTrigTowerDetId const &id, double x, double y) {
0505 return _mes[_hashmap.getHash(id)]->getBinContent(_qx->getBin(x), _qy->getBin(y));
0506 }
0507
0508
0509 void Container2D::setBinContent(HcalTrigTowerDetId const &id, int x) {
0510 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(id), x);
0511 }
0512 void Container2D::setBinContent(HcalTrigTowerDetId const &id, double x) {
0513 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(id), x);
0514 }
0515 void Container2D::setBinContent(HcalTrigTowerDetId const &id, int x, int y) {
0516 if (_qx->isCoordinate())
0517 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(x), y);
0518 else
0519 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(id), y);
0520 }
0521
0522 void Container2D::setBinContent(HcalTrigTowerDetId const &id, int x, double y) {
0523 if (_qx->isCoordinate())
0524 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(x), y);
0525 else
0526 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(id), y);
0527 }
0528 void Container2D::setBinContent(HcalTrigTowerDetId const &id, double x, int y) {
0529 if (_qx->isCoordinate())
0530 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(x), y);
0531 else
0532 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(id), y);
0533 }
0534 void Container2D::setBinContent(HcalTrigTowerDetId const &id, double x, double y) {
0535 if (_qx->isCoordinate())
0536 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(id), _qy->getBin(x), y);
0537 else
0538 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(id), y);
0539 }
0540
0541 void Container2D::setBinContent(HcalTrigTowerDetId const &id, int x, int y, int z) {
0542 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0543 }
0544 void Container2D::setBinContent(HcalTrigTowerDetId const &id, int x, double y, int z) {
0545 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0546 }
0547 void Container2D::setBinContent(HcalTrigTowerDetId const &id, double x, int y, int z) {
0548 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0549 }
0550 void Container2D::setBinContent(HcalTrigTowerDetId const &id, double x, double y, int z) {
0551 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0552 }
0553 void Container2D::setBinContent(HcalTrigTowerDetId const &id, int x, int y, double z) {
0554 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0555 }
0556 void Container2D::setBinContent(HcalTrigTowerDetId const &id, int x, double y, double z) {
0557 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0558 }
0559 void Container2D::setBinContent(HcalTrigTowerDetId const &id, double x, int y, double z) {
0560 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0561 }
0562 void Container2D::setBinContent(HcalTrigTowerDetId const &id, double x, double y, double z) {
0563 _mes[_hashmap.getHash(id)]->setBinContent(_qx->getBin(x), _qy->getBin(y), z);
0564 }
0565
0566
0567 void Container2D::book(DQMStore::IBooker &ib,
0568 HcalElectronicsMap const *emap,
0569 std::string subsystem,
0570 std::string aux) {
0571
0572
0573 ib.setCurrentFolder(subsystem + "/" + _folder + "/" + _qname + (aux.empty() ? aux : "_" + aux) + "/" +
0574 _hashmap.getHashTypeName());
0575 if (_hashmap.isDHash()) {
0576
0577 std::vector<HcalGenericDetId> dids = emap->allPrecisionId();
0578 for (std::vector<HcalGenericDetId>::const_iterator it = dids.begin(); it != dids.end(); ++it) {
0579
0580 if (!it->isHcalDetId())
0581 continue;
0582
0583 HcalDetId did = HcalDetId(it->rawId());
0584 uint32_t hash = _hashmap.getHash(did);
0585 MEMap::iterator mit = _mes.find(hash);
0586 if (mit != _mes.end())
0587 continue;
0588
0589 _logger.debug(_hashmap.getName(did));
0590 _mes.insert(std::make_pair(hash,
0591 ib.book2D(_hashmap.getName(did),
0592 _hashmap.getName(did),
0593 _qx->nbins(),
0594 _qx->min(),
0595 _qx->max(),
0596 _qy->nbins(),
0597 _qy->min(),
0598 _qy->max())));
0599 customize(_mes[hash]);
0600 }
0601 } else if (_hashmap.isEHash()) {
0602
0603 std::vector<HcalElectronicsId> eids = emap->allElectronicsIdPrecision();
0604 for (std::vector<HcalElectronicsId>::const_iterator it = eids.begin(); it != eids.end(); ++it) {
0605 HcalElectronicsId eid = HcalElectronicsId(it->rawId());
0606 uint32_t hash = _hashmap.getHash(eid);
0607 MEMap::iterator mit = _mes.find(hash);
0608 if (mit != _mes.end())
0609 continue;
0610
0611 _logger.debug(_hashmap.getName(eid));
0612 _mes.insert(std::make_pair(hash,
0613 ib.book2D(_hashmap.getName(eid),
0614 _hashmap.getName(eid),
0615 _qx->nbins(),
0616 _qx->min(),
0617 _qx->max(),
0618 _qy->nbins(),
0619 _qy->min(),
0620 _qy->max())));
0621 customize(_mes[hash]);
0622 }
0623 } else if (_hashmap.isTHash()) {
0624
0625 std::vector<HcalTrigTowerDetId> tids = emap->allTriggerId();
0626 for (std::vector<HcalTrigTowerDetId>::const_iterator it = tids.begin(); it != tids.end(); ++it) {
0627 HcalTrigTowerDetId tid = HcalTrigTowerDetId(it->rawId());
0628 _logger.debug(_hashmap.getName(tid));
0629 uint32_t hash = _hashmap.getHash(tid);
0630 MEMap::iterator mit = _mes.find(hash);
0631 if (mit != _mes.end())
0632 continue;
0633
0634 _logger.debug(_hashmap.getName(tid));
0635 _mes.insert(std::make_pair(hash,
0636 ib.book2D(_hashmap.getName(tid),
0637 _hashmap.getName(tid),
0638 _qx->nbins(),
0639 _qx->min(),
0640 _qx->max(),
0641 _qy->nbins(),
0642 _qy->min(),
0643 _qy->max())));
0644
0645 customize(_mes[hash]);
0646 }
0647 } else if (_hashmap.isMixHash()) {
0648
0649 std::vector<HcalTrigTowerDetId> tids = emap->allTriggerId();
0650 for (std::vector<HcalTrigTowerDetId>::const_iterator it = tids.begin(); it != tids.end(); ++it) {
0651 HcalTrigTowerDetId tid = HcalTrigTowerDetId(it->rawId());
0652 HcalElectronicsId eid = HcalElectronicsId(emap->lookupTrigger(*it).rawId());
0653 _logger.debug(_hashmap.getName(tid, eid));
0654 uint32_t hash = _hashmap.getHash(tid, eid);
0655 MEMap::iterator mit = _mes.find(hash);
0656 if (mit != _mes.end())
0657 continue;
0658
0659 _logger.debug(_hashmap.getName(tid, eid));
0660 _mes.insert(std::make_pair(hash,
0661 ib.book2D(_hashmap.getName(tid, eid),
0662 _hashmap.getName(tid, eid),
0663 _qx->nbins(),
0664 _qx->min(),
0665 _qx->max(),
0666 _qy->nbins(),
0667 _qy->min(),
0668 _qy->max())));
0669
0670 customize(_mes[hash]);
0671 }
0672 }
0673 }
0674
0675 void Container2D::book(DQMStore::IBooker &ib,
0676 HcalElectronicsMap const *emap,
0677 filter::HashFilter const &filter,
0678 std::string subsystem,
0679 std::string aux) {
0680
0681
0682 ib.setCurrentFolder(subsystem + "/" + _folder + "/" + _qname + (aux.empty() ? aux : "_" + aux) + "/" +
0683 _hashmap.getHashTypeName());
0684 if (_hashmap.isDHash()) {
0685
0686 std::vector<HcalGenericDetId> dids = emap->allPrecisionId();
0687 for (std::vector<HcalGenericDetId>::const_iterator it = dids.begin(); it != dids.end(); ++it) {
0688
0689 if (!it->isHcalDetId())
0690 continue;
0691
0692 HcalDetId did = HcalDetId(it->rawId());
0693 uint32_t hash = _hashmap.getHash(did);
0694 MEMap::iterator mit = _mes.find(hash);
0695 if (mit != _mes.end())
0696 continue;
0697 if (filter.filter(did))
0698 continue;
0699
0700 _logger.debug(_hashmap.getName(did));
0701 _mes.insert(std::make_pair(hash,
0702 ib.book2D(_hashmap.getName(did),
0703 _hashmap.getName(did),
0704 _qx->nbins(),
0705 _qx->min(),
0706 _qx->max(),
0707 _qy->nbins(),
0708 _qy->min(),
0709 _qy->max())));
0710 customize(_mes[hash]);
0711 }
0712 } else if (_hashmap.isEHash()) {
0713
0714 std::vector<HcalElectronicsId> eids = emap->allElectronicsIdPrecision();
0715 for (std::vector<HcalElectronicsId>::const_iterator it = eids.begin(); it != eids.end(); ++it) {
0716 HcalElectronicsId eid = HcalElectronicsId(it->rawId());
0717 uint32_t hash = _hashmap.getHash(eid);
0718 MEMap::iterator mit = _mes.find(hash);
0719 if (mit != _mes.end())
0720 continue;
0721 if (filter.filter(eid))
0722 continue;
0723
0724 _logger.debug(_hashmap.getName(eid));
0725 _mes.insert(std::make_pair(hash,
0726 ib.book2D(_hashmap.getName(eid),
0727 _hashmap.getName(eid),
0728 _qx->nbins(),
0729 _qx->min(),
0730 _qx->max(),
0731 _qy->nbins(),
0732 _qy->min(),
0733 _qy->max())));
0734 customize(_mes[hash]);
0735 }
0736 } else if (_hashmap.isTHash()) {
0737
0738 std::vector<HcalTrigTowerDetId> tids = emap->allTriggerId();
0739 for (std::vector<HcalTrigTowerDetId>::const_iterator it = tids.begin(); it != tids.end(); ++it) {
0740 HcalTrigTowerDetId tid = HcalTrigTowerDetId(it->rawId());
0741 _logger.debug(_hashmap.getName(tid));
0742 uint32_t hash = _hashmap.getHash(tid);
0743 MEMap::iterator mit = _mes.find(hash);
0744 if (mit != _mes.end())
0745 continue;
0746 if (filter.filter(tid))
0747 continue;
0748
0749 _logger.debug(_hashmap.getName(tid));
0750 _mes.insert(std::make_pair(hash,
0751 ib.book2D(_hashmap.getName(tid),
0752 _hashmap.getName(tid),
0753 _qx->nbins(),
0754 _qx->min(),
0755 _qx->max(),
0756 _qy->nbins(),
0757 _qy->min(),
0758 _qy->max())));
0759
0760 customize(_mes[hash]);
0761 }
0762 } else if (_hashmap.isMixHash()) {
0763
0764 std::vector<HcalTrigTowerDetId> tids = emap->allTriggerId();
0765 for (std::vector<HcalTrigTowerDetId>::const_iterator it = tids.begin(); it != tids.end(); ++it) {
0766 HcalTrigTowerDetId tid = HcalTrigTowerDetId(it->rawId());
0767 HcalElectronicsId eid = HcalElectronicsId(emap->lookupTrigger(*it).rawId());
0768 _logger.debug(_hashmap.getName(tid, eid));
0769 uint32_t hash = _hashmap.getHash(tid, eid);
0770 MEMap::iterator mit = _mes.find(hash);
0771 if (mit != _mes.end())
0772 continue;
0773 if (filter.filter(tid))
0774 continue;
0775
0776 _logger.debug(_hashmap.getName(tid, eid));
0777 _mes.insert(std::make_pair(hash,
0778 ib.book2D(_hashmap.getName(tid, eid),
0779 _hashmap.getName(tid, eid),
0780 _qx->nbins(),
0781 _qx->min(),
0782 _qx->max(),
0783 _qy->nbins(),
0784 _qy->min(),
0785 _qy->max())));
0786
0787 customize(_mes[hash]);
0788 }
0789 }
0790 }
0791
0792 void Container2D::customize(MonitorElement *me) {
0793 me->setAxisTitle(_qx->name(), 1);
0794 me->setAxisTitle(_qy->name(), 2);
0795 me->setAxisTitle(_qz->name(), 3);
0796
0797 TH1 *h = me->getTH1();
0798 _qx->setBits(h);
0799 _qy->setBits(h);
0800 _qz->setBits(h);
0801
0802 std::vector<std::string> xlabels = _qx->getLabels();
0803 std::vector<std::string> ylabels = _qy->getLabels();
0804 for (unsigned int i = 0; i < xlabels.size(); i++) {
0805 me->setBinLabel(i + 1, xlabels[i], 1);
0806 }
0807 for (unsigned int i = 0; i < ylabels.size(); i++) {
0808 me->setBinLabel(i + 1, ylabels[i], 2);
0809 }
0810 }
0811
0812 void Container2D::showOverflowZ(bool showOverflow) { _qz->showOverflow(showOverflow); }
0813 }