348 std::map<EcalLogicID, MonLaserBlueDat> l1Amp;
349 std::map<EcalLogicID, MonTimingLaserBlueCrystalDat> l1Time;
350 std::map<EcalLogicID, MonPNBlueDat> l1PN;
351 std::map<EcalLogicID, MonLaserGreenDat> l2Amp;
352 std::map<EcalLogicID, MonTimingLaserGreenCrystalDat> l2Time;
353 std::map<EcalLogicID, MonPNGreenDat> l2PN;
354 std::map<EcalLogicID, MonLaserIRedDat> l3Amp;
355 std::map<EcalLogicID, MonTimingLaserIRedCrystalDat> l3Time;
356 std::map<EcalLogicID, MonPNIRedDat> l3PN;
357 std::map<EcalLogicID, MonLaserRedDat> l4Amp;
358 std::map<EcalLogicID, MonTimingLaserRedCrystalDat> l4Time;
359 std::map<EcalLogicID, MonPNRedDat> l4PN;
361 MESet
const& ampME(
source_.at(
"Amplitude"));
362 MESet
const& aopME(
source_.at(
"AOverP"));
363 MESet
const& timeME(
source_.at(
"Timing"));
364 MESet
const& qualityME(
source_.at(
"Quality"));
366 MESet
const& pnME(
source_.at(
"PNAmplitude"));
367 MESet
const& pnQualityME(
source_.at(
"PNQuality"));
368 MESet
const& pnPedestalME(
source_.at(
"PNPedestal"));
370 for(std::map<int, unsigned>::iterator wlItr(
wlToME_.begin()); wlItr !=
wlToME_.end(); ++wlItr){
371 int wl(wlItr->first);
372 unsigned iM(wlItr->second);
374 static_cast<MESetMulti const&
>(ampME).use(iM);
375 static_cast<MESetMulti const&
>(aopME).use(iM);
376 static_cast<MESetMulti const&
>(timeME).use(iM);
377 static_cast<MESetMulti const&
>(qualityME).use(iM);
378 static_cast<MESetMulti const&
>(pnME).use(iM);
379 static_cast<MESetMulti const&
>(pnQualityME).use(iM);
381 MESet::const_iterator aEnd(ampME.end());
382 MESet::const_iterator qItr(qualityME);
383 MESet::const_iterator oItr(aopME);
384 MESet::const_iterator tItr(timeME);
385 for(MESet::const_iterator aItr(ampME.beginChannel()); aItr != aEnd; aItr.toNextChannel()){
386 float aEntries(aItr->getBinEntries());
387 if(aEntries < 1.)
continue;
395 float ampMean(aItr->getBinContent());
396 float ampRms(aItr->getBinError() *
std::sqrt(aEntries));
398 float aopEntries(oItr->getBinEntries());
399 float aopMean(oItr->getBinContent());
400 float aopRms(oItr->getBinError() *
std::sqrt(aopEntries));
402 float timeEntries(tItr->getBinEntries());
403 float timeMean(tItr->getBinContent());
404 float timeRms(tItr->getBinError() *
std::sqrt(timeEntries));
406 int channelStatus(qItr->getBinContent());
407 bool channelBad(channelStatus ==
kBad || channelStatus ==
kMBad);
415 aData.setAPDMean(ampMean);
416 aData.setAPDRMS(ampRms);
417 aData.setAPDOverPNMean(aopMean);
418 aData.setAPDOverPNRMS(aopRms);
419 aData.setTaskStatus(channelBad);
422 tData.setTimingMean(timeMean);
423 tData.setTimingRMS(timeRms);
424 tData.setTaskStatus(channelBad);
430 aData.setAPDMean(ampMean);
431 aData.setAPDRMS(ampRms);
432 aData.setAPDOverPNMean(aopMean);
433 aData.setAPDOverPNRMS(aopRms);
434 aData.setTaskStatus(channelBad);
437 tData.setTimingMean(timeMean);
438 tData.setTimingRMS(timeRms);
439 tData.setTaskStatus(channelBad);
445 aData.setAPDMean(ampMean);
446 aData.setAPDRMS(ampRms);
447 aData.setAPDOverPNMean(aopMean);
448 aData.setAPDOverPNRMS(aopRms);
449 aData.setTaskStatus(channelBad);
452 tData.setTimingMean(timeMean);
453 tData.setTimingRMS(timeRms);
454 tData.setTaskStatus(channelBad);
460 aData.setAPDMean(ampMean);
461 aData.setAPDRMS(ampRms);
462 aData.setAPDOverPNMean(aopMean);
463 aData.setAPDOverPNRMS(aopRms);
464 aData.setTaskStatus(channelBad);
467 tData.setTimingMean(timeMean);
468 tData.setTimingRMS(timeRms);
469 tData.setTaskStatus(channelBad);
476 for(
unsigned iMD(0); iMD <
memDCC.size(); ++iMD){
477 unsigned iDCC(
memDCC[iMD]);
481 for(
unsigned iPN(1); iPN <= 10; ++iPN){
484 float entries(pnME.getBinEntries(pnid));
485 if(entries < 1.)
continue;
487 float mean(pnME.getBinContent(pnid));
490 float pedestalEntries(pnPedestalME.getBinEntries(pnid));
491 float pedestalMean(pnPedestalME.getBinContent(pnid));
492 float pedestalRms(pnPedestalME.getBinError(pnid) *
std::sqrt(pedestalEntries));
494 int channelStatus(pnQualityME.getBinContent(pnid));
495 bool channelBad(channelStatus ==
kBad || channelStatus ==
kMBad);
501 data.setADCMeanG1(-1.);
502 data.setADCRMSG1(-1.);
503 data.setPedMeanG1(-1.);
504 data.setPedRMSG1(-1.);
507 data.setPedMeanG16(pedestalMean);
508 data.setPedRMSG16(pedestalRms);
509 data.setTaskStatus(channelBad);
515 data.setADCMeanG1(-1.);
516 data.setADCRMSG1(-1.);
517 data.setPedMeanG1(-1.);
518 data.setPedRMSG1(-1.);
521 data.setPedMeanG16(pedestalMean);
522 data.setPedRMSG16(pedestalRms);
523 data.setTaskStatus(channelBad);
529 data.setADCMeanG1(-1.);
530 data.setADCRMSG1(-1.);
531 data.setPedMeanG1(-1.);
532 data.setPedRMSG1(-1.);
535 data.setPedMeanG16(pedestalMean);
536 data.setPedRMSG16(pedestalRms);
537 data.setTaskStatus(channelBad);
543 data.setADCMeanG1(-1.);
544 data.setADCRMSG1(-1.);
545 data.setPedMeanG1(-1.);
546 data.setPedRMSG1(-1.);
549 data.setPedMeanG16(pedestalMean);
550 data.setPedRMSG16(pedestalRms);
551 data.setTaskStatus(channelBad);
588 catch(std::runtime_error&
e){
589 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 &)