1 #include "../interface/TimingClient.h"
16 toleranceMeanFwd_(0.),
19 minChannelEntries_(0),
20 minChannelEntriesFwd_(0),
22 minTowerEntriesFwd_(0),
23 tailPopulThreshold_(0.)
49 MESet& meFwdBkwdDiff(
MEs_.at(
"FwdBkwdDiff"));
55 MESet& meQualitySummary(
MEs_.at(
"QualitySummary"));
67 float EBentries(0.), EEentries(0.);
68 float EBmean(0.), EEmean(0.);
69 float EBrms(0.), EErms(0.);
75 DetId id(qItr->getId());
91 if(entries < minChannelEntries){
93 rItr->setBinContent(-1.);
100 meMeanSM.fill(
id,
mean);
101 meMeanAll.fill(
id,
mean);
102 meProjEta.fill(
id,
mean);
103 meProjPhi.fill(
id,
mean);
104 meRMSAll.fill(
id,
rms);
105 rItr->setBinContent(
rms);
107 bool negative(
false);
112 if(ebid.
zside() < 0){
115 posTime = sTimeMap.getBinContent(posId);
120 if(eeid.
zside() < 0){
123 posTime = sTimeMap.getBinContent(posId);
127 meFwdBkwdDiff.fill(
id, posTime -
mean);
128 meFwdvBkwd.fill(
id,
mean, posTime);
132 qItr->setBinContent(doMask ?
kMBad :
kBad);
141 EBentries += entries;
145 EEentries += entries;
151 MESet& meTrendMean(
MEs_.at(
"TrendMean"));
153 if ( EBentries > 0. ) {
157 if ( EEentries > 0. ) {
166 DetId tId(qsItr->getId());
168 std::vector<DetId> ids;
186 float summaryEntries(sTimeAllMap.getBinEntries(tId));
188 float towerEntries(0.);
190 float towerMean2(0.);
194 for(std::vector<DetId>::iterator idItr(ids.begin()); idItr != ids.end(); ++idItr){
202 if(entries < 0.)
continue;
203 towerEntries += entries;
205 towerMean +=
mean * entries;
211 if(towerEntries / ids.size() > minTowerEntries / 25.){
215 towerMean /= towerEntries;
216 towerMean2 /= towerEntries;
218 float towerRMS(
sqrt(towerMean2 - towerMean * towerMean));
220 if(
abs(towerMean) > meanThresh || towerRMS > rmsThresh)
226 qsItr->setBinContent(quality);
T getUntrackedParameter(std::string const &, T const &) const
#define DEFINE_ECALDQM_WORKER(TYPE)
edm::LuminosityBlockNumber_t iLumi
static const int PHYSICS_BAD_CHANNEL_WARNING
int minChannelEntriesFwd_
double getBinEntries() const
bool isForward(DetId const &)
EBDetId switchZSide() const
float tailPopulThreshold_
const_iterator & toNextChannel()
std::set< std::string > qualitySummaries_
void setParams(edm::ParameterSet const &) override
EcalTrigTowerConstituentsMap const * getTrigTowerMap()
StatusManager const * statusManager_
double getBinError() const
Abs< T >::type abs(const T &t)
std::vector< DetId > constituentsOf(const EcalTrigTowerDetId &id) const
Get the constituent detids for this tower id.
EEDetId switchZSide() const
virtual void fill(DetId const &, double=1., double=1., double=1.)
double getBinContent() const
std::vector< DetId > scConstituents(EcalScDetId const &)
void producePlots(ProcessType) override
int zside() const
get the z-side of the crystal (1/-1)