613 std::map<EcalLogicID, MonPedestalsDat> pedestals;
614 std::map<EcalLogicID, MonPNPedDat> pnPedestals;
616 MESet
const &pedestalME(
source_.at(
"Pedestal"));
617 MESet
const &qualityME(
source_.at(
"Quality"));
619 MESet
const &pnPedestalME(
source_.at(
"PNPedestal"));
620 MESet
const &pnQualityME(
source_.at(
"PNQuality"));
622 for (std::map<int, unsigned>::iterator gainItr(
gainToME_.begin()); gainItr !=
gainToME_.end(); ++gainItr) {
623 int gain(gainItr->first);
624 int iM(gainItr->second);
626 static_cast<MESetMulti
const &
>(pedestalME).use(iM);
627 static_cast<MESetMulti
const &
>(qualityME).use(iM);
629 MESet::const_iterator pEnd(pedestalME.end());
630 MESet::const_iterator qItr(qualityME);
631 for (MESet::const_iterator pItr(pedestalME.beginChannel()); pItr != pEnd; pItr.toNextChannel()) {
632 float entries(pItr->getBinEntries());
638 float mean(pItr->getBinContent());
642 if (pedestals.find(logicID) == pedestals.end()) {
644 insertion.setPedMeanG1(-1.);
645 insertion.setPedRMSG1(-1.);
646 insertion.setPedMeanG6(-1.);
647 insertion.setPedRMSG6(-1.);
648 insertion.setPedMeanG12(-1.);
649 insertion.setPedRMSG12(-1.);
650 insertion.setTaskStatus(
false);
669 int channelStatus(qItr->getBinContent());
670 bool channelBad(channelStatus ==
kBad || channelStatus ==
kMBad);
672 data.setTaskStatus(
true);
678 for (std::map<int, unsigned>::iterator gainItr(
pnGainToME_.begin()); gainItr !=
pnGainToME_.end(); ++gainItr) {
679 int gain(gainItr->first);
680 int iM(gainItr->second);
682 static_cast<MESetMulti
const &
>(pnPedestalME).use(iM);
683 static_cast<MESetMulti
const &
>(pnQualityME).use(iM);
685 for (
unsigned iMD(0); iMD <
memDCC.size(); ++iMD) {
686 unsigned iDCC(
memDCC[iMD]);
690 for (
unsigned iPN(1); iPN <= 10; ++iPN) {
693 float entries(pnPedestalME.getBinEntries(pnid));
697 float mean(pnPedestalME.getBinContent(pnid));
698 float rms(pnPedestalME.getBinError(pnid) *
std::sqrt(entries));
701 if (pnPedestals.find(logicID) == pnPedestals.end()) {
703 insertion.setPedMeanG1(-1.);
704 insertion.setPedRMSG1(-1.);
705 insertion.setPedMeanG16(-1.);
706 insertion.setPedRMSG16(-1.);
707 insertion.setTaskStatus(
false);
722 int channelStatus(pnQualityME.getBinContent(pnid));
723 bool channelBad(channelStatus ==
kBad || channelStatus ==
kMBad);
725 data.setTaskStatus(
true);
733 if (!pedestals.empty())
735 if (!pnPedestals.empty())
737 }
catch (std::runtime_error &
e) {
738 if (
std::string(e.what()).
find(
"unique constraint") != std::string::npos)
std::vector< unsigned > const memDCC
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)
std::map< int, unsigned > pnGainToME_
bool qualityOK(int _quality)
EcalLogicID lmPNID(EcalPnDiodeDetId const &)
std::map< int, unsigned > gainToME_
char data[epos_bytes_allocation]
EcalLogicID crystalID(DetId const &)