112 std::map<EcalLogicID, MonCrystalConsistencyDat> crystalConsistencies;
113 std::map<EcalLogicID, MonTTConsistencyDat> towerConsistencies;
114 std::map<EcalLogicID, MonMemChConsistencyDat> memChannelConsistencies;
115 std::map<EcalLogicID, MonMemTTConsistencyDat> memTowerConsistencies;
120 MESet
const &gainswitchME(
source_.
at(
"GainSwitch"));
121 MESet
const &qualityME(
source_.
at(
"Quality"));
123 MESet
const &toweridME(
source_.
at(
"TowerId"));
124 MESet
const &blocksizeME(
source_.
at(
"BlockSize"));
128 MESet
const &memdigiME(
source_.
at(
"MEMDigi"));
129 MESet
const &memchidME(
source_.
at(
"MEMChId"));
130 MESet
const &memgainME(
source_.
at(
"MEMGain"));
131 MESet
const &pnqualityME(
source_.
at(
"PNQuality"));
133 MESet
const &memtoweridME(
source_.
at(
"MEMTowerId"));
134 MESet
const &memblocksizeME(
source_.
at(
"MEMBlockSize"));
141 for (MESet::const_iterator dItr(digiME.beginChannel(
GetElectronicsMap())); dItr != dEnd;
145 int nDigis(dItr->getBinContent());
151 if (
gain > 0 || chid > 0 || gainswitch > 0) {
153 data.setProcessedEvents(nDigis);
154 data.setProblematicEvents(
gain + chid + gainswitch);
156 data.setProblemsID(chid);
157 data.setProblemsGainSwitch(gainswitch);
159 int channelStatus(qItr->getBinContent());
160 bool channelBad(channelStatus ==
kBad || channelStatus ==
kMBad);
161 data.setTaskStatus(channelBad);
171 for (
unsigned iTower(1); iTower <= 68; ++iTower) {
178 bool towerBad(
false);
179 for (
unsigned iD(0); iD <
channels.size(); ++iD) {
184 if (channelStatus ==
kBad || channelStatus ==
kMBad)
193 if (towerid > 0 || blocksize > 0 || l1a > 0 ||
bx > 0) {
195 data.setProcessedEvents(nDigis);
196 data.setProblematicEvents(towerid + blocksize + l1a +
bx);
197 data.setProblemsID(towerid);
198 data.setProblemsSize(blocksize);
199 data.setProblemsLV1(l1a);
200 data.setProblemsBunchX(
bx);
201 data.setTaskStatus(towerBad);
209 edm::LogInfo(
"EcalDQM") <<
" Looping over MEM channels and towers";
211 for (
unsigned iMD(0); iMD <
memDCC.size(); ++iMD) {
212 unsigned iDCC(
memDCC[iMD]);
216 for (
unsigned iPN(1); iPN <= 10; ++iPN) {
223 if (memchid > 0 || memgain > 0) {
226 data.setProcessedEvents(nDigis);
227 data.setProblematicEvents(memchid + memgain);
228 data.setProblemsID(memchid);
229 data.setProblemsGainZero(memgain);
232 bool channelBad(channelStatus ==
kBad || channelStatus ==
kMBad);
233 data.setTaskStatus(channelBad);
239 for (
unsigned iTower(69); iTower <= 70; ++iTower) {
243 bool towerBad(
false);
244 for (
unsigned iPN(1); iPN <= 10; ++iPN) {
250 if (channelStatus ==
kBad || channelStatus ==
kMBad)
257 if (towerid > 0 || blocksize > 0) {
260 data.setProcessedEvents(nDigis);
261 data.setProblematicEvents(towerid + blocksize);
262 data.setProblemsID(towerid);
263 data.setProblemsSize(blocksize);
264 data.setTaskStatus(towerBad);
275 if (!crystalConsistencies.empty()) {
280 if (!towerConsistencies.empty()) {
285 if (!memChannelConsistencies.empty()) {
290 if (!memTowerConsistencies.empty()) {
295 }
catch (std::runtime_error &
e) {
std::vector< unsigned > const memDCC
EcalLogicID crystalID(DetId const &, EcalElectronicsMapping const *)
MESet & at(const std::string &key)
Ecal readout channel identification [32:20] Unused (so far) [19:13] DCC id [12:6] tower [5:3] strip [...
bool ccuExists(unsigned, unsigned)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
EcalLogicID memChannelID(EcalPnDiodeDetId const &)
void insertDataArraySet(const std::map< EcalLogicID, DATT > *data, IOVT *iov) noexcept(false)
Log< level::Info, false > LogInfo
EcalElectronicsMapping const * GetElectronicsMap()
EcalDQMSetupObjects const getEcalDQMSetupObjects()
bool qualityOK(int _quality)
char data[epos_bytes_allocation]
EcalLogicID towerID(EcalElectronicsId const &)
EcalLogicID memTowerID(EcalElectronicsId const &)