27 unsigned const nPhiRings(56);
29 MESet& meQualitySummary(
MEs_.at(
"QualitySummary"));
42 double digiPhiRingMean[nPhiRings];
43 std::fill_n(digiPhiRingMean, nPhiRings, 0.);
44 double rechitPhiRingMean[nPhiRings];
45 std::fill_n(rechitPhiRingMean, nPhiRings, 0.);
46 int numCrystals[nPhiRings];
47 std::fill_n(numCrystals, nPhiRings, 0);
54 float entries(dItr->getBinContent());
55 float rhentries(rItr->getBinContent());
68 unsigned index(ieta < 0 ? ieta + 28 : ieta + 27);
70 digiPhiRingMean[
index] += entries;
71 rechitPhiRingMean[
index] += rhentries;
72 numCrystals[
index] += 1;
75 for (
unsigned ie(0); ie < nPhiRings; ie++) {
76 digiPhiRingMean[ie] /= numCrystals[ie];
77 rechitPhiRingMean[ie] /= numCrystals[ie];
81 std::vector<float> Nentries(
nDCC, 0.);
82 std::vector<float> Nrhentries(
nDCC, 0.);
88 bool doMask(meQualitySummary.maskMatches(
id, mask,
statusManager_));
92 float entries(dItr->getBinContent());
93 float rhentries(rItr->getBinContent());
105 unsigned index(ieta < 0 ? ieta + 28 : ieta + 27);
113 if (rhentries >
minHits_ && rhentries > rechitPhiRingMean[index] * deviationThreshold_) {
118 meQualitySummary.setBinContent(
id,
double(quality));
121 unsigned iDCC(
dccId(
id) - 1);
123 Nentries[iDCC] += entries;
125 Nrhentries[iDCC] += rhentries;
128 double tpdigiPhiRingMean[nPhiRings];
129 std::fill_n(tpdigiPhiRingMean, nPhiRings, 0.);
133 float entries(sTPDigiThr.getBinContent(ttid));
137 tpdigiPhiRingMean[
index] += entries;
140 for (
int ie(0); ie < 28; ie++) {
146 tpdigiPhiRingMean[ie] /=
denom;
147 tpdigiPhiRingMean[55 - ie] /=
denom;
153 float entries(sTPDigiThr.getBinContent(ttid));
168 for (
unsigned iD(0); iD < ids.size(); ++iD) {
171 int quality(meQualitySummary.getBinContent(
id));
181 float meanFEDEB(0), meanFEDEE(0), rmsFEDEB(0), rmsFEDEE(0);
182 unsigned int nFEDEB(0), nFEDEE(0);
183 for (
unsigned iDCC(0); iDCC <
nDCC; iDCC++) {
185 meanFEDEB += Nrhentries[iDCC];
186 rmsFEDEB += Nrhentries[iDCC] * Nrhentries[iDCC];
189 meanFEDEE += Nrhentries[iDCC];
190 rmsFEDEE += Nrhentries[iDCC] * Nrhentries[iDCC];
194 meanFEDEB /=
float(nFEDEB);
195 rmsFEDEB /=
float(nFEDEB);
196 meanFEDEE /=
float(nFEDEE);
197 rmsFEDEE /=
float(nFEDEE);
198 rmsFEDEB =
sqrt(
abs(rmsFEDEB - meanFEDEB * meanFEDEB));
199 rmsFEDEE =
sqrt(
abs(rmsFEDEE - meanFEDEE * meanFEDEE));
201 float meanFED(0.), rmsFED(0.), nRMS(5.);
202 for (
MESet::iterator qsItr(meQualitySummary.beginChannel()); qsItr != meQualitySummary.end();
205 unsigned iDCC(
dccId(
id) - 1);
214 if (meanFED > 1000. && Nrhentries[iDCC] < threshold)
T getUntrackedParameter(std::string const &, T const &) const
static EcalTrigTowerDetId detIdFromDenseIndex(uint32_t di)
#define DEFINE_ECALDQM_WORKER(TYPE)
static const int PHYSICS_BAD_CHANNEL_WARNING
static const int PEDESTAL_ONLINE_HIGH_GAIN_RMS_ERROR
static const int PHYSICS_BAD_CHANNEL_ERROR
void setParams(edm::ParameterSet const &) override
const_iterator & toNextChannel()
EcalTrigTowerDetId towerOf(const DetId &id) const
Get the tower id for this det id (or null if not known)
int ieta() const
get the tower ieta
std::set< std::string > qualitySummaries_
float deviationThreshold_
EcalTrigTowerConstituentsMap const * getTrigTowerMap()
StatusManager const * statusManager_
Abs< T >::type abs(const T &t)
void producePlots(ProcessType) override
const_iterator & toNextChannel()
std::vector< DetId > scConstituents(EcalScDetId const &)
unsigned dccId(DetId const &)