1 #include "../interface/OccupancyClient.h"
16 deviationThreshold_(0.)
36 unsigned const nPhiRings(56);
38 MESet& meQualitySummary(
MEs_.at(
"QualitySummary"));
51 double digiPhiRingMean[nPhiRings];
52 std::fill_n(digiPhiRingMean, nPhiRings, 0.);
53 double rechitPhiRingMean[nPhiRings];
54 std::fill_n(rechitPhiRingMean, nPhiRings, 0.);
55 int numCrystals[nPhiRings];
56 std::fill_n(numCrystals, nPhiRings, 0);
63 float entries(dItr->getBinContent());
64 float rhentries(rItr->getBinContent());
66 DetId id(dItr->getId());
72 if(ids.size() == 0)
continue;
76 unsigned index(ieta < 0 ? ieta + 28 : ieta + 27);
79 rechitPhiRingMean[
index] += rhentries;
80 numCrystals[
index] += 1;
83 for(
unsigned ie(0); ie < nPhiRings; ie++){
84 digiPhiRingMean[ie] /= numCrystals[ie];
85 rechitPhiRingMean[ie] /= numCrystals[ie];
90 DetId id(dItr->getId());
92 bool doMask(meQualitySummary.maskMatches(
id, mask,
statusManager_));
96 float entries(dItr->getBinContent());
97 float rhentries(rItr->getBinContent());
104 if(ids.size() == 0)
continue;
108 unsigned index(ieta < 0 ? ieta + 28 : ieta + 27);
116 if(rhentries >
minHits_ && rhentries > rechitPhiRingMean[index] * deviationThreshold_){
121 meQualitySummary.setBinContent(
id,
double(quality));
124 double tpdigiPhiRingMean[nPhiRings];
125 std::fill_n(tpdigiPhiRingMean, nPhiRings, 0.);
129 float entries(sTPDigiThr.getBinContent(ttid));
136 for(
int ie(0); ie < 28; ie++){
138 if(ie < 27) denom = 72.;
140 tpdigiPhiRingMean[ie] /= denom;
141 tpdigiPhiRingMean[55 - ie] /= denom;
147 float entries(sTPDigiThr.getBinContent(ttid));
158 if(quality !=
kBad)
continue;
161 for(
unsigned iD(0); iD < ids.size(); ++iD){
164 int quality(meQualitySummary.getBinContent(
id));
165 if(quality ==
kMBad || quality ==
kBad)
continue;
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
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_
void producePlots(ProcessType) override
const_iterator & toNextChannel()
std::vector< DetId > scConstituents(EcalScDetId const &)