CMS 3D CMS Logo

RawDataClient.cc
Go to the documentation of this file.
2 
5 
7 
9 
10 #include <cmath>
11 
12 namespace ecaldqm {
13 
14  RawDataClient::RawDataClient() : DQWorkerClient(), synchErrThresholdFactor_(0.) {
15  qualitySummaries_.insert("QualitySummary");
16  }
17 
19  synchErrThresholdFactor_ = _params.getUntrackedParameter<double>("synchErrThresholdFactor");
20  }
21 
23  MESet& meQualitySummary(MEs_.at("QualitySummary"));
24  MESet& meErrorsSummary(MEs_.at("ErrorsSummary"));
25 
26  MESet const& sEntries(sources_.at("Entries"));
27  MESet const& sL1ADCC(sources_.at("L1ADCC"));
28  MESet const& sFEStatus(sources_.at("FEStatus"));
29 
30  uint32_t mask(1 << EcalDQMStatusHelper::STATUS_FLAG_ERROR);
31 
32  std::vector<int> dccStatus(nDCC, 1);
33 
34  for (unsigned iDCC(0); iDCC < nDCC; ++iDCC) {
35  double entries(sEntries.getBinContent(getEcalDQMSetupObjects(), iDCC + 1));
36  if (entries > 1. && sL1ADCC.getBinContent(getEcalDQMSetupObjects(), iDCC + 1) >
37  synchErrThresholdFactor_ * std::log(entries) / std::log(10.))
38  dccStatus[iDCC] = 0;
39  }
40 
41  MESet::iterator meEnd(meQualitySummary.end(GetElectronicsMap()));
42  for (MESet::iterator meItr(meQualitySummary.beginChannel(GetElectronicsMap())); meItr != meEnd;
44  DetId id(meItr->getId());
45 
46  bool doMask(meQualitySummary.maskMatches(id, mask, statusManager_, GetTrigTowerMap()));
47 
48  int dccid(dccId(id, GetElectronicsMap()));
49 
50  if (dccStatus[dccid - 1] == 0) {
51  meItr->setBinContent(doMask ? kMUnknown : kUnknown);
52  continue;
53  }
54 
55  int towerStatus(doMask ? kMGood : kGood);
56  float towerEntries(0.);
57  for (unsigned iS(0); iS < nFEFlags; iS++) {
58  float entries(sFEStatus.getBinContent(getEcalDQMSetupObjects(), id, iS + 1));
59  towerEntries += entries;
60  if (entries > 0. && iS != Enabled && iS != Suppressed && iS != FIFOFull && iS != FIFOFullL1ADesync &&
61  iS != ForcedZS)
62  towerStatus = doMask ? kMBad : kBad;
63  }
64 
65  if (towerEntries < 1.)
66  towerStatus = doMask ? kMUnknown : kUnknown;
67 
68  meItr->setBinContent(towerStatus);
69  if (towerStatus == kBad)
70  meErrorsSummary.fill(getEcalDQMSetupObjects(), dccid);
71  }
72  }
73 
75 } // namespace ecaldqm
ecaldqm
Definition: DQWorker.h:37
ecaldqm::MESet::iterator::toNextChannel
const_iterator & toNextChannel(EcalElectronicsMapping const *electronicsMap)
Definition: MESet.h:320
ecaldqm::RawDataClient
Definition: RawDataClient.h:8
ecaldqm::Enabled
Definition: FEFlags.h:9
l1extraParticles_cfi._params
_params
Definition: l1extraParticles_cfi.py:29
ecaldqm::DQWorkerClient::statusManager_
StatusManager const * statusManager_
Definition: DQWorkerClient.h:67
EcalDQMStatusHelper::STATUS_FLAG_ERROR
static const int STATUS_FLAG_ERROR
Definition: EcalDQMStatusHelper.h:44
ecaldqm::Suppressed
Definition: FEFlags.h:16
ecaldqm::RawDataClient::RawDataClient
RawDataClient()
Definition: RawDataClient.cc:14
ecaldqm::FIFOFullL1ADesync
Definition: FEFlags.h:21
ecaldqm::DQWorker::GetElectronicsMap
const EcalElectronicsMapping * GetElectronicsMap()
Definition: DQWorker.cc:118
FEFlags.h
EcalDQMStatusHelper.h
DetId
Definition: DetId.h:17
ecaldqm::DQWorkerClient::qualitySummaries_
std::set< std::string > qualitySummaries_
Definition: DQWorkerClient.h:63
ecaldqm::RawDataClient::synchErrThresholdFactor_
float synchErrThresholdFactor_
Definition: RawDataClient.h:18
RawDataClient.h
ecaldqm::DQWorkerClient::ProcessType
ProcessType
Definition: DQWorkerClient.h:19
ecaldqm::DQWorker::GetTrigTowerMap
const EcalTrigTowerConstituentsMap * GetTrigTowerMap()
Definition: DQWorker.cc:124
ecaldqm::DQWorker::MEs_
MESetCollection MEs_
Definition: DQWorker.h:125
ecaldqm::DQWorkerClient::kMBad
Definition: DQWorkerClient.h:44
ecaldqm::DQWorkerClient::kUnknown
Definition: DQWorkerClient.h:44
ecaldqm::DQWorkerClient::kBad
Definition: DQWorkerClient.h:44
ecaldqm::DQWorkerClient::sources_
MESetCollection sources_
Definition: DQWorkerClient.h:62
ecaldqm::DQWorkerClient::kMGood
Definition: DQWorkerClient.h:44
edm::ParameterSet
Definition: ParameterSet.h:47
ecaldqm::RawDataClient::setParams
void setParams(edm::ParameterSet const &) override
Definition: RawDataClient.cc:18
ecaldqm::MESetCollection::at
MESet & at(const std::string &key)
Definition: MESet.h:399
ecaldqm::MESet::iterator
Definition: MESet.h:297
ecaldqm::RawDataClient::producePlots
void producePlots(ProcessType) override
Definition: RawDataClient.cc:22
ecaldqm::DQWorkerClient::kMUnknown
Definition: DQWorkerClient.h:44
ecaldqm::DQWorkerClient
Definition: DQWorkerClient.h:17
ecaldqm::dccId
unsigned dccId(DetId const &, EcalElectronicsMapping const *)
Definition: EcalDQMCommonUtils.cc:16
ecaldqm::DQWorker::getEcalDQMSetupObjects
const EcalDQMSetupObjects getEcalDQMSetupObjects()
Definition: DQWorker.cc:142
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
ecaldqm::DQWorkerClient::kGood
Definition: DQWorkerClient.h:44
ecaldqm::nFEFlags
Definition: FEFlags.h:25
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
ecaldqm::nDCC
Definition: EcalDQMCommonUtils.h:91
ecaldqm::ForcedZS
Definition: FEFlags.h:24
DEFINE_ECALDQM_WORKER
#define DEFINE_ECALDQM_WORKER(TYPE)
Definition: DQWorker.h:162
ParameterSet.h
ecaldqm::FIFOFull
Definition: FEFlags.h:17
EcalDQMCommonUtils.h
ecaldqm::MESet
Definition: MESet.h:42