840 std::map<EcalLogicID, MonTestPulseDat>
amplitude;
841 std::map<EcalLogicID, MonPulseShapeDat> shape;
842 std::map<EcalLogicID, MonPNMGPADat> pnAmplitude;
844 MESet
const &litudeME(
source_.at(
"Amplitude"));
845 MESet
const &shapeME(
source_.at(
"Shape"));
846 MESet
const &qualityME(
source_.at(
"Quality"));
848 MESet
const &pnAmplitudeME(
source_.at(
"PNAmplitude"));
849 MESet
const &pnPedestalME(
source_.at(
"PNPedestal"));
850 MESet
const &pnQualityME(
source_.at(
"PNQuality"));
852 for (std::map<int, unsigned>::iterator gainItr(
gainToME_.begin()); gainItr !=
gainToME_.end(); ++gainItr) {
853 int gain(gainItr->first);
854 int iM(gainItr->second);
856 static_cast<MESetMulti
const &
>(amplitudeME).use(iM);
857 static_cast<MESetMulti
const &
>(shapeME).use(iM);
858 static_cast<MESetMulti
const &
>(qualityME).use(iM);
860 MESet::const_iterator aEnd(amplitudeME.end());
861 MESet::const_iterator qItr(qualityME);
862 for (MESet::const_iterator aItr(amplitudeME.beginChannel()); aItr != aEnd; aItr.toNextChannel()) {
863 float entries(aItr->getBinEntries());
869 float mean(aItr->getBinContent());
873 if (amplitude.find(logicID) == amplitude.end()) {
875 insertion.setADCMeanG1(-1.);
876 insertion.setADCRMSG1(-1.);
877 insertion.setADCMeanG6(-1.);
878 insertion.setADCRMSG6(-1.);
879 insertion.setADCMeanG12(-1.);
880 insertion.setADCRMSG12(-1.);
881 insertion.setTaskStatus(
false);
900 int channelStatus(qItr->getBinContent());
901 bool channelBad(channelStatus ==
kBad || channelStatus ==
kMBad);
903 data.setTaskStatus(
true);
908 for (
unsigned iSM(0); iSM < 54; ++iSM) {
909 std::vector<float>
samples(10, 0.);
911 unsigned nId(
ids.size());
914 for (
unsigned iD(0); iD < nId; ++iD) {
920 if (shapeME.getBinEntries(
id, 1) < 1.)
925 for (
int i(0);
i < 10; ++
i)
926 samples[
i] += shapeME.getBinContent(
id,
i + 1);
932 for (
int i(0);
i < 10; ++
i)
935 if (shape.find(logicID) == shape.end()) {
937 std::vector<float> defval(10, -1.);
938 insertion.setSamples(defval, 1);
939 insertion.setSamples(defval, 6);
940 insertion.setSamples(defval, 12);
948 for (std::map<int, unsigned>::iterator gainItr(
pnGainToME_.begin()); gainItr !=
pnGainToME_.end(); ++gainItr) {
949 int gain(gainItr->first);
950 int iM(gainItr->second);
952 static_cast<MESetMulti
const &
>(pnAmplitudeME).use(iM);
953 static_cast<MESetMulti
const &
>(pnQualityME).use(iM);
955 for (
unsigned iMD(0); iMD <
memDCC.size(); ++iMD) {
956 unsigned iDCC(
memDCC[iMD]);
960 for (
unsigned iPN(1); iPN <= 10; ++iPN) {
963 float entries(pnAmplitudeME.getBinEntries(pnid));
967 float mean(pnAmplitudeME.getBinContent(pnid));
968 float rms(pnAmplitudeME.getBinError(pnid) *
std::sqrt(entries));
969 float pedestalEntries(pnPedestalME.getBinEntries(pnid));
970 float pedestalMean(pnPedestalME.getBinContent(pnid));
971 float pedestalRms(pnPedestalME.getBinError(pnid) *
std::sqrt(pedestalEntries));
974 if (pnAmplitude.find(logicID) == pnAmplitude.end()) {
976 insertion.setADCMeanG1(-1.);
977 insertion.setADCRMSG1(-1.);
978 insertion.setPedMeanG1(-1.);
979 insertion.setPedRMSG1(-1.);
980 insertion.setADCMeanG16(-1.);
981 insertion.setADCRMSG16(-1.);
982 insertion.setPedMeanG16(-1.);
983 insertion.setPedRMSG16(-1.);
984 insertion.setTaskStatus(
false);
999 data.setPedMeanG16(pedestalMean);
1000 data.setPedRMSG16(pedestalRms);
1004 int channelStatus(pnQualityME.getBinContent(pnid));
1005 bool channelBad(channelStatus ==
kBad || channelStatus ==
kMBad);
1007 data.setTaskStatus(
true);
1015 if (!amplitude.empty())
1019 if (!pnAmplitude.empty())
1021 }
catch (std::runtime_error &
e) {
1022 if (
std::string(e.what()).
find(
"unique constraint") != std::string::npos)
std::vector< unsigned > const memDCC
EcalElectronicsMapping const * getElectronicsMap()
std::map< int, unsigned > gainToME_
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 &)
char data[epos_bytes_allocation]
void insertDataSet(const std::map< EcalLogicID, DATT > *data, IOVT *iov) noexcept(false)
EcalLogicID crystalID(DetId const &)