338 std::map<EcalLogicID, MonLaserBlueDat> l1Amp;
339 std::map<EcalLogicID, MonTimingLaserBlueCrystalDat> l1Time;
340 std::map<EcalLogicID, MonPNBlueDat> l1PN;
341 std::map<EcalLogicID, MonLaserGreenDat> l2Amp;
342 std::map<EcalLogicID, MonTimingLaserGreenCrystalDat> l2Time;
343 std::map<EcalLogicID, MonPNGreenDat> l2PN;
344 std::map<EcalLogicID, MonLaserIRedDat> l3Amp;
345 std::map<EcalLogicID, MonTimingLaserIRedCrystalDat> l3Time;
346 std::map<EcalLogicID, MonPNIRedDat> l3PN;
347 std::map<EcalLogicID, MonLaserRedDat> l4Amp;
348 std::map<EcalLogicID, MonTimingLaserRedCrystalDat> l4Time;
349 std::map<EcalLogicID, MonPNRedDat> l4PN;
351 MESet
const &ME(
source_.at(
"Amplitude"));
352 MESet
const &aopME(
source_.at(
"AOverP"));
353 MESet
const &timeME(
source_.at(
"Timing"));
354 MESet
const &qualityME(
source_.at(
"Quality"));
356 MESet
const &pnME(
source_.at(
"PNAmplitude"));
357 MESet
const &pnQualityME(
source_.at(
"PNQuality"));
358 MESet
const &pnPedestalME(
source_.at(
"PNPedestal"));
360 for (std::map<int, unsigned>::iterator wlItr(
wlToME_.begin()); wlItr !=
wlToME_.end(); ++wlItr) {
361 int wl(wlItr->first);
362 unsigned iM(wlItr->second);
364 static_cast<MESetMulti
const &
>(ampME).use(iM);
365 static_cast<MESetMulti
const &
>(aopME).use(iM);
366 static_cast<MESetMulti
const &
>(timeME).use(iM);
367 static_cast<MESetMulti
const &
>(qualityME).use(iM);
368 static_cast<MESetMulti
const &
>(pnME).use(iM);
369 static_cast<MESetMulti
const &
>(pnQualityME).use(iM);
371 MESet::const_iterator aEnd(ampME.end());
372 MESet::const_iterator qItr(qualityME);
373 MESet::const_iterator oItr(aopME);
374 MESet::const_iterator tItr(timeME);
375 for (MESet::const_iterator aItr(ampME.beginChannel()); aItr != aEnd; aItr.toNextChannel()) {
376 float aEntries(aItr->getBinEntries());
386 float ampMean(aItr->getBinContent());
387 float ampRms(aItr->getBinError() *
std::sqrt(aEntries));
389 float aopEntries(oItr->getBinEntries());
390 float aopMean(oItr->getBinContent());
391 float aopRms(oItr->getBinError() *
std::sqrt(aopEntries));
393 float timeEntries(tItr->getBinEntries());
394 float timeMean(tItr->getBinContent());
395 float timeRms(tItr->getBinError() *
std::sqrt(timeEntries));
397 int channelStatus(qItr->getBinContent());
398 bool channelBad(channelStatus ==
kBad || channelStatus ==
kMBad);
405 aData.setAPDMean(ampMean);
406 aData.setAPDRMS(ampRms);
407 aData.setAPDOverPNMean(aopMean);
408 aData.setAPDOverPNRMS(aopRms);
409 aData.setTaskStatus(channelBad);
412 tData.setTimingMean(timeMean);
413 tData.setTimingRMS(timeRms);
414 tData.setTaskStatus(channelBad);
418 aData.setAPDMean(ampMean);
419 aData.setAPDRMS(ampRms);
420 aData.setAPDOverPNMean(aopMean);
421 aData.setAPDOverPNRMS(aopRms);
422 aData.setTaskStatus(channelBad);
425 tData.setTimingMean(timeMean);
426 tData.setTimingRMS(timeRms);
427 tData.setTaskStatus(channelBad);
431 aData.setAPDMean(ampMean);
432 aData.setAPDRMS(ampRms);
433 aData.setAPDOverPNMean(aopMean);
434 aData.setAPDOverPNRMS(aopRms);
435 aData.setTaskStatus(channelBad);
438 tData.setTimingMean(timeMean);
439 tData.setTimingRMS(timeRms);
440 tData.setTaskStatus(channelBad);
444 aData.setAPDMean(ampMean);
445 aData.setAPDRMS(ampRms);
446 aData.setAPDOverPNMean(aopMean);
447 aData.setAPDOverPNRMS(aopRms);
448 aData.setTaskStatus(channelBad);
451 tData.setTimingMean(timeMean);
452 tData.setTimingRMS(timeRms);
453 tData.setTaskStatus(channelBad);
459 for (
unsigned iMD(0); iMD <
memDCC.size(); ++iMD) {
460 unsigned iDCC(
memDCC[iMD]);
464 for (
unsigned iPN(1); iPN <= 10; ++iPN) {
467 float entries(pnME.getBinEntries(pnid));
471 float mean(pnME.getBinContent(pnid));
474 float pedestalEntries(pnPedestalME.getBinEntries(pnid));
475 float pedestalMean(pnPedestalME.getBinContent(pnid));
476 float pedestalRms(pnPedestalME.getBinError(pnid) *
std::sqrt(pedestalEntries));
478 int channelStatus(pnQualityME.getBinContent(pnid));
479 bool channelBad(channelStatus ==
kBad || channelStatus ==
kMBad);
484 data.setADCMeanG1(-1.);
485 data.setADCRMSG1(-1.);
486 data.setPedMeanG1(-1.);
487 data.setPedRMSG1(-1.);
490 data.setPedMeanG16(pedestalMean);
491 data.setPedRMSG16(pedestalRms);
492 data.setTaskStatus(channelBad);
496 data.setADCMeanG1(-1.);
497 data.setADCRMSG1(-1.);
498 data.setPedMeanG1(-1.);
499 data.setPedRMSG1(-1.);
502 data.setPedMeanG16(pedestalMean);
503 data.setPedRMSG16(pedestalRms);
504 data.setTaskStatus(channelBad);
508 data.setADCMeanG1(-1.);
509 data.setADCRMSG1(-1.);
510 data.setPedMeanG1(-1.);
511 data.setPedRMSG1(-1.);
514 data.setPedMeanG16(pedestalMean);
515 data.setPedRMSG16(pedestalRms);
516 data.setTaskStatus(channelBad);
520 data.setADCMeanG1(-1.);
521 data.setADCRMSG1(-1.);
522 data.setPedMeanG1(-1.);
523 data.setPedRMSG1(-1.);
526 data.setPedMeanG16(pedestalMean);
527 data.setPedRMSG16(pedestalRms);
528 data.setTaskStatus(channelBad);
562 }
catch (std::runtime_error &
e) {
563 if (
std::string(e.what()).
find(
"unique constraint") != std::string::npos)
std::vector< unsigned > const memDCC
std::map< int, unsigned > wlToME_
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
void insertDataArraySet(const std::map< EcalLogicID, DATT > *data, IOVT *iov) noexcept(false)
bool qualityOK(int _quality)
EcalLogicID lmPNID(EcalPnDiodeDetId const &)
char data[epos_bytes_allocation]
EcalLogicID crystalID(DetId const &)