642 std::map<EcalLogicID, MonPedestalsDat> pedestals;
643 std::map<EcalLogicID, MonPNPedDat> pnPedestals;
645 MESet
const& pedestalME(
source_.at(
"Pedestal"));
646 MESet
const& qualityME(
source_.at(
"Quality"));
648 MESet
const& pnPedestalME(
source_.at(
"PNPedestal"));
649 MESet
const& pnQualityME(
source_.at(
"PNQuality"));
651 for(std::map<int, unsigned>::iterator gainItr(
gainToME_.begin()); gainItr !=
gainToME_.end(); ++gainItr){
652 int gain(gainItr->first);
653 int iM(gainItr->second);
655 static_cast<MESetMulti const&
>(pedestalME).use(iM);
656 static_cast<MESetMulti const&
>(qualityME).use(iM);
658 MESet::const_iterator pEnd(pedestalME.end());
659 MESet::const_iterator qItr(qualityME);
660 for(MESet::const_iterator pItr(pedestalME.beginChannel()); pItr != pEnd; pItr.toNextChannel()){
661 float entries(pItr->getBinEntries());
662 if(entries < 1.)
continue;
666 float mean(pItr->getBinContent());
670 if(pedestals.find(logicID) == pedestals.end()){
672 insertion.setPedMeanG1(-1.);
673 insertion.setPedRMSG1(-1.);
674 insertion.setPedMeanG6(-1.);
675 insertion.setPedRMSG6(-1.);
676 insertion.setPedMeanG12(-1.);
677 insertion.setPedRMSG12(-1.);
678 insertion.setTaskStatus(
false);
697 int channelStatus(qItr->getBinContent());
698 bool channelBad(channelStatus ==
kBad || channelStatus ==
kMBad);
700 data.setTaskStatus(
true);
706 for(std::map<int, unsigned>::iterator gainItr(
pnGainToME_.begin()); gainItr !=
pnGainToME_.end(); ++gainItr){
707 int gain(gainItr->first);
708 int iM(gainItr->second);
710 static_cast<MESetMulti const&
>(pnPedestalME).use(iM);
711 static_cast<MESetMulti const&
>(pnQualityME).use(iM);
713 for(
unsigned iMD(0); iMD <
memDCC.size(); ++iMD){
714 unsigned iDCC(
memDCC[iMD]);
718 for(
unsigned iPN(1); iPN <= 10; ++iPN){
721 float entries(pnPedestalME.getBinEntries(pnid));
722 if(entries < 1.)
continue;
724 float mean(pnPedestalME.getBinContent(pnid));
725 float rms(pnPedestalME.getBinError(pnid) *
std::sqrt(entries));
728 if(pnPedestals.find(logicID) == pnPedestals.end()){
730 insertion.setPedMeanG1(-1.);
731 insertion.setPedRMSG1(-1.);
732 insertion.setPedMeanG16(-1.);
733 insertion.setPedRMSG16(-1.);
734 insertion.setTaskStatus(
false);
749 int channelStatus(pnQualityME.getBinContent(pnid));
750 bool channelBad(channelStatus ==
kBad || channelStatus ==
kMBad);
752 data.setTaskStatus(
true);
760 if(!pedestals.empty())
762 if(!pnPedestals.empty())
765 catch(std::runtime_error&
e){
766 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 &)