File indexing completed on 2024-04-06 12:07:29
0001 #include "DQM/HcalCommon/interface/ContainerProf1D.h"
0002
0003 namespace hcaldqm {
0004 using namespace mapper;
0005 using namespace quantity;
0006 using namespace constants;
0007
0008 ContainerProf1D::ContainerProf1D() {
0009 _qx = nullptr;
0010 _qy = nullptr;
0011 }
0012
0013 ContainerProf1D::ContainerProf1D(std::string const &folder,
0014 hashfunctions::HashType hashtype,
0015 Quantity *qx,
0016 Quantity *qy)
0017 : Container1D(folder, hashtype, qx, qy) {
0018 _qx->setAxisType(quantity::fXAxis);
0019 _qy->setAxisType(quantity::fYAxis);
0020 }
0021
0022 void ContainerProf1D::initialize(
0023 std::string const &folder, hashfunctions::HashType hashtype, Quantity *qx, Quantity *qy, int debug ) {
0024 Container1D::initialize(folder, hashtype, qx, qy, debug);
0025 _qx->setAxisType(quantity::fXAxis);
0026 _qy->setAxisType(quantity::fYAxis);
0027 }
0028
0029 void ContainerProf1D::initialize(std::string const &folder,
0030 std::string const &qname,
0031 hashfunctions::HashType hashtype,
0032 Quantity *qx,
0033 Quantity *qy,
0034 int debug ) {
0035 Container1D::initialize(folder, qname, hashtype, qx, qy, debug);
0036 _qx->setAxisType(quantity::fXAxis);
0037 _qy->setAxisType(quantity::fYAxis);
0038 }
0039
0040 void ContainerProf1D::book(DQMStore::IBooker &ib,
0041 HcalElectronicsMap const *emap,
0042 std::string subsystem,
0043 std::string aux) {
0044
0045
0046 ib.setCurrentFolder(subsystem + "/" + _folder + "/" + _qname + (aux.empty() ? aux : "_" + aux) + "/" +
0047 _hashmap.getHashTypeName());
0048 if (_hashmap.isDHash()) {
0049 std::vector<HcalGenericDetId> dids = emap->allPrecisionId();
0050 for (std::vector<HcalGenericDetId>::const_iterator it = dids.begin(); it != dids.end(); ++it) {
0051
0052 if (!it->isHcalDetId())
0053 continue;
0054
0055 HcalDetId did = HcalDetId(it->rawId());
0056 uint32_t hash = _hashmap.getHash(did);
0057 MEMap::iterator mit = _mes.find(hash);
0058 if (mit != _mes.end())
0059 continue;
0060
0061 _logger.debug(_hashmap.getName(did));
0062 _mes.insert(std::make_pair(hash,
0063 ib.bookProfile(_hashmap.getName(did),
0064 _hashmap.getName(did),
0065 _qx->nbins(),
0066 _qx->min(),
0067 _qx->max(),
0068 _qy->min(),
0069 _qy->max())));
0070 customize(_mes[hash]);
0071 }
0072 } else if (_hashmap.isEHash()) {
0073 std::vector<HcalElectronicsId> eids = emap->allElectronicsIdPrecision();
0074 for (std::vector<HcalElectronicsId>::const_iterator it = eids.begin(); it != eids.end(); ++it) {
0075 HcalElectronicsId eid = HcalElectronicsId(it->rawId());
0076 uint32_t hash = _hashmap.getHash(eid);
0077 MEMap::iterator mit = _mes.find(hash);
0078 if (mit != _mes.end())
0079 continue;
0080
0081 _logger.debug(_hashmap.getName(eid));
0082 _mes.insert(std::make_pair(hash,
0083 ib.bookProfile(_hashmap.getName(eid),
0084 _hashmap.getName(eid),
0085 _qx->nbins(),
0086 _qx->min(),
0087 _qx->max(),
0088 _qy->min(),
0089 _qy->max())));
0090 customize(_mes[hash]);
0091 }
0092 } else if (_hashmap.isTHash()) {
0093 std::vector<HcalTrigTowerDetId> tids = emap->allTriggerId();
0094 for (std::vector<HcalTrigTowerDetId>::const_iterator it = tids.begin(); it != tids.end(); ++it) {
0095 HcalTrigTowerDetId tid = HcalTrigTowerDetId(it->rawId());
0096 uint32_t hash = _hashmap.getHash(tid);
0097 MEMap::iterator mit = _mes.find(hash);
0098 if (mit != _mes.end())
0099 continue;
0100
0101 _logger.debug(_hashmap.getName(tid));
0102 _mes.insert(std::make_pair(hash,
0103 ib.bookProfile(_hashmap.getName(tid),
0104 _hashmap.getName(tid),
0105 _qx->nbins(),
0106 _qx->min(),
0107 _qx->max(),
0108 _qy->min(),
0109 _qy->max())));
0110 customize(_mes[hash]);
0111 }
0112 }
0113 }
0114
0115 void ContainerProf1D::book(DQMStore::IBooker &ib,
0116 HcalElectronicsMap const *emap,
0117 filter::HashFilter const &filter,
0118 std::string subsystem,
0119 std::string aux) {
0120
0121
0122 ib.setCurrentFolder(subsystem + "/" + _folder + "/" + _qname + (aux.empty() ? aux : "_" + aux) + "/" +
0123 _hashmap.getHashTypeName());
0124 if (_hashmap.isDHash()) {
0125 std::vector<HcalGenericDetId> dids = emap->allPrecisionId();
0126 for (std::vector<HcalGenericDetId>::const_iterator it = dids.begin(); it != dids.end(); ++it) {
0127
0128 if (!it->isHcalDetId())
0129 continue;
0130
0131 HcalDetId did = HcalDetId(it->rawId());
0132 uint32_t hash = _hashmap.getHash(did);
0133 MEMap::iterator mit = _mes.find(hash);
0134 if (mit != _mes.end())
0135 continue;
0136 if (filter.filter(did))
0137 continue;
0138
0139 _logger.debug(_hashmap.getName(did));
0140 _mes.insert(std::make_pair(hash,
0141 ib.bookProfile(_hashmap.getName(did),
0142 _hashmap.getName(did),
0143 _qx->nbins(),
0144 _qx->min(),
0145 _qx->max(),
0146 _qy->min(),
0147 _qy->max())));
0148 customize(_mes[hash]);
0149 }
0150 } else if (_hashmap.isEHash()) {
0151 std::vector<HcalElectronicsId> eids = emap->allElectronicsIdPrecision();
0152 for (std::vector<HcalElectronicsId>::const_iterator it = eids.begin(); it != eids.end(); ++it) {
0153 HcalElectronicsId eid = HcalElectronicsId(it->rawId());
0154 uint32_t hash = _hashmap.getHash(eid);
0155 MEMap::iterator mit = _mes.find(hash);
0156 if (mit != _mes.end())
0157 continue;
0158 if (filter.filter(eid))
0159 continue;
0160
0161 _logger.debug(_hashmap.getName(eid));
0162 _mes.insert(std::make_pair(hash,
0163 ib.bookProfile(_hashmap.getName(eid),
0164 _hashmap.getName(eid),
0165 _qx->nbins(),
0166 _qx->min(),
0167 _qx->max(),
0168 _qy->min(),
0169 _qy->max())));
0170 customize(_mes[hash]);
0171 }
0172 } else if (_hashmap.isTHash()) {
0173 std::vector<HcalTrigTowerDetId> tids = emap->allTriggerId();
0174 for (std::vector<HcalTrigTowerDetId>::const_iterator it = tids.begin(); it != tids.end(); ++it) {
0175 HcalTrigTowerDetId tid = HcalTrigTowerDetId(it->rawId());
0176 uint32_t hash = _hashmap.getHash(tid);
0177 MEMap::iterator mit = _mes.find(hash);
0178 if (mit != _mes.end())
0179 continue;
0180 if (filter.filter(tid))
0181 continue;
0182
0183 _logger.debug(_hashmap.getName(tid));
0184 _mes.insert(std::make_pair(hash,
0185 ib.bookProfile(_hashmap.getName(tid),
0186 _hashmap.getName(tid),
0187 _qx->nbins(),
0188 _qx->min(),
0189 _qx->max(),
0190 _qy->min(),
0191 _qy->max())));
0192 customize(_mes[hash]);
0193 }
0194 }
0195 }
0196 }