23 std::vector<std::string> sourceList(_params.
getUntrackedParameter<std::vector<std::string> >(
"activeSources"));
24 if (
std::find(sourceList.begin(), sourceList.end(),
"Presample") == sourceList.end())
26 if (
std::find(sourceList.begin(), sourceList.end(),
"Timing") == sourceList.end())
28 if (
std::find(sourceList.begin(), sourceList.end(),
"TriggerPrimitives") == sourceList.end())
30 if (
std::find(sourceList.begin(), sourceList.end(),
"HotCell") == sourceList.end())
37 MESet& meReportSummaryContents(
MEs_.
at(
"ReportSummaryContents"));
39 MESet& meReportSummaryMap(
MEs_.
at(
"ReportSummaryMap"));
41 for (
unsigned iDCC(0); iDCC <
nDCC; ++iDCC) {
52 MESet& meReportSummaryContents(
MEs_.
at(
"ReportSummaryContents"));
55 for (
unsigned iDCC(0); iDCC <
nDCC; ++iDCC) {
64 MESet const& sFEStatusErrMapByLumi(
sources_.
at(
"FEStatusErrMapByLumi"));
66 double integrityByLumi[
nDCC];
67 double rawDataByLumi[
nDCC];
68 for (
unsigned iDCC(0); iDCC <
nDCC; ++iDCC) {
75 MESet& meReportSummaryMap(
MEs_.
at(
"ReportSummaryMap"));
81 MESet const* sTriggerPrimitives(
using_(
"TriggerPrimitives") ? &
sources_.
at(
"TriggerPrimitives") :
nullptr);
84 float totalChannels(0.);
85 float totalGood(0.), totalGoodRaw(0);
87 double dccChannels[
nDCC];
88 std::fill_n(dccChannels, nDCC, 0.);
89 double dccGood[
nDCC], dccGoodRaw[
nDCC];
90 std::fill_n(dccGood, nDCC, 0.);
91 std::fill_n(dccGoodRaw, nDCC, 0.);
93 std::map<uint32_t, int> badChannelsCount;
99 std::vector<bool> hasMismatchDCC(nDCC,
false);
100 for (
unsigned iDCC(0); iDCC <
nDCC; ++iDCC) {
103 hasMismatchDCC[iDCC] =
true;
129 if (integrity ==
kBad && integrityByLumi[iDCC] == 0. && !hasMismatchDCC[iDCC])
132 if (rawdata ==
kBad && rawDataByLumi[iDCC] == 0. && rawdataLS == 0.)
137 if (integrity ==
kBad || presample ==
kBad || timing ==
kBad || rawdata ==
kBad || trigprim ==
kBad ||
147 qItr->setBinContent(integrity);
151 qItr->setBinContent(status);
154 if (status ==
kBad) {
163 dccChannels[iDCC] += 1.;
169 if (rawdataLS == 0. || isMasked) {
170 dccGoodRaw[iDCC] += 1.;
241 for (
unsigned iDCC(0); iDCC <
nDCC; ++iDCC) {
242 if (dccChannels[iDCC] < 1.)
246 float frac(dccGood[iDCC] / dccChannels[iDCC]);
247 float fracRaw(dccGoodRaw[iDCC] / dccChannels[iDCC]);
256 float totalGoodLS(
onlineMode_ ? totalGood : totalGoodRaw);
257 if (totalChannels > 0.)
261 if (totalChannels > 0.)
virtual void setBinContent(EcalDQMSetupObjects const, DetId const &, double)
void setParams(edm::ParameterSet const &) override
T getUntrackedParameter(std::string const &, T const &) const
#define DEFINE_ECALDQM_WORKER(TYPE)
uint16_t *__restrict__ id
virtual double getBinContent(EcalDQMSetupObjects const, DetId const &, int=0) const
MESet & at(const std::string &key)
const_iterator & toNextChannel(EcalElectronicsMapping const *electronicsMap)
constexpr uint32_t rawId() const
get the raw id
bool using_(std::string const &_name, ProcessType _type=kJob) const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
static const int STATUS_FLAG_ERROR
EcalTrigTowerConstituentsMap const * GetTrigTowerMap()
void producePlots(ProcessType) override
std::set< std::string > qualitySummaries_
StatusManager const * statusManager_
unsigned dccId(DetId const &, EcalElectronicsMapping const *)
EcalTrigTowerDetId tower() const
get the HCAL/trigger iphi of this crystal
EcalDQMSetupObjects const getEcalDQMSetupObjects()
EcalElectronicsMapping const * GetElectronicsMap()
void erase(const std::string &key)