CMS 3D CMS Logo

SiStripPopConFEDErrorsDQM.cc
Go to the documentation of this file.
7 
15 public:
18 
21  // interface methods: implemented in template
22  void initES(const edm::EventSetup& iSetup) override;
23  void dqmEndJob(DQMStore::IBooker& booker, DQMStore::IGetter& getter) override;
24  SiStripBadStrip* getObj() const override;
25 
26 private:
27  void readHistogram(MonitorElement* aMe, unsigned int& aCounter, const float aNorm, const unsigned int aFedId);
28 
29  void addBadAPV(const FedChannelConnection& aConnection,
30  const unsigned short aAPVNumber,
31  const unsigned short aFlag,
32  unsigned int& aCounter);
33 
34  void addBadStrips(const FedChannelConnection& aConnection,
35  const unsigned int aDetId,
36  const unsigned short aApvNum,
37  const unsigned short aFlag,
38  unsigned int& aCounter);
39 
41  void addErrors();
42 
43 private:
45  double threshold_;
46  unsigned int debug_;
51  std::map<uint32_t, std::vector<unsigned int> > detIdErrors_;
52 };
53 
59 
63  fp_(iConfig.getUntrackedParameter<edm::FileInPath>(
64  "file", edm::FileInPath("CalibTracker/SiStripCommon/data/SiStripDetInfo.dat"))),
65  threshold_(iConfig.getUntrackedParameter<double>("Threshold", 0)),
66  debug_(iConfig.getUntrackedParameter<unsigned int>("Debug", 0)),
67  fedCablingToken_(iC.esConsumes<SiStripFedCabling, SiStripFedCablingRcd, edm::Transition::BeginRun>()) {
68  edm::LogInfo("SiStripFEDErrorsDQM") << "[SiStripFEDErrorsDQM::SiStripFEDErrorsDQM()]";
69 }
70 
72  edm::LogInfo("SiStripFEDErrorsDQM") << "[SiStripFEDErrorsDQM::~SiStripFEDErrorsDQM]";
73 }
74 
76  if (fedCablingWatcher_.check(iSetup)) {
78  }
79 }
80 
83 
85 
86  std::ostringstream lPath;
87  lPath << "Run " << getRunNumber() << "/SiStrip/Run summary/ReadoutView/";
88  const std::string lBaseDir = lPath.str();
89 
90  getter.setCurrentFolder(lBaseDir);
91  LogTrace("SiStripFEDErrorsDQM") << "[SiStripFEDErrorsDQM::readBadAPVs] Now in " << lBaseDir << std::endl;
92 
93  std::vector<std::pair<std::string, unsigned int> > lFedsFolder;
94  //for FED errors, use summary folder and fedId=0
95  //do not put a slash or "goToDir" won't work...
96  lFedsFolder.push_back(std::pair<std::string, unsigned int>("FedMonitoringSummary", 0));
97 
98  //for FE/channel/APV errors, they are written in a folder per FED,
99  //if there was at least one error.
100  //So just loop on folders and see which ones exist.
101  for (unsigned int ifed(FEDNumbering::MINSiStripFEDID); ifed <= FEDNumbering::MAXSiStripFEDID;
102  ifed++) { //loop on FEDs
103 
104  std::ostringstream lFedDir;
105  lFedDir << "FrontEndDriver" << ifed;
106  if (!getter.dirExists(lFedDir.str()))
107  continue;
108  else {
109  if (debug_)
110  LogTrace("SiStripFEDErrorsDQM") << "[SiStripFEDErrorsDQM::readBadAPVs] - Errors detected for FED " << ifed
111  << std::endl;
112  lFedsFolder.push_back(std::pair<std::string, unsigned int>(lFedDir.str(), ifed));
113  }
114  }
115  getter.cd();
116 
117  unsigned int nAPVsTotal = 0;
118  //retrieve total number of APVs valid and connected from cabling:
119  if (!cabling_) {
120  edm::LogError("SiStripFEDErrorsDQM") << "[SiStripFEDErrorsDQM::readBadAPVs] cabling not filled, return false "
121  << std::endl;
122  return;
123  }
124  auto lFedVec = cabling_->fedIds();
125  for (unsigned int iFed(0); iFed < lFedVec.size(); iFed++) {
126  if (*(lFedVec.begin() + iFed) < sistrip::FED_ID_MIN || *(lFedVec.begin() + iFed) > sistrip::FED_ID_MAX) {
127  edm::LogError("SiStripFEDErrorsDQM")
128  << "[SiStripFEDErrorsDQM::readBadAPVs] Invalid fedid : " << *(lFedVec.begin() + iFed) << std::endl;
129  continue;
130  }
131  auto lConnVec = cabling_->fedConnections(*(lFedVec.begin() + iFed));
132  for (unsigned int iConn(0); iConn < lConnVec.size(); iConn++) {
133  const FedChannelConnection& lConnection = *(lConnVec.begin() + iConn);
134  if (!lConnection.isConnected())
135  continue;
136  unsigned int lDetid = lConnection.detId();
137  if (!lDetid || lDetid == sistrip::invalid32_)
138  continue;
139  //2 APVs per channel....
140  nAPVsTotal += 2;
141  }
142  }
143 
144  edm::LogInfo("SiStripFEDErrorsDQM") << "[SiStripFEDErrorsDQM::readBadAPVs] Total number of APVs found : "
145  << nAPVsTotal << std::endl;
146 
147  unsigned int nAPVsWithErrorTotal = 0;
148  unsigned int nFolders = 0;
149  float lNorm = 0;
150  for (const auto& iFolder : lFedsFolder) {
151  const std::string lDirName = lBaseDir + "/" + iFolder.first;
152  const unsigned int lFedId = iFolder.second;
153 
154  if (!getter.dirExists(lDirName))
155  continue;
156 
157  std::vector<MonitorElement*> lMeVec = getter.getContents(lDirName);
158 
159  if (nFolders == 0) {
160  for (auto iMe : lMeVec) { //loop on ME found in directory
161  std::string lMeName = iMe->getName();
162  if (lMeName.find("nFEDErrors") != lMeName.npos) {
163  lNorm = iMe->getEntries();
164  }
165  }
166  //if norm histo has not been found, no point in continuing....
167  if (lNorm < 1) {
168  edm::LogError("SiStripFEDErrorsDQM")
169  << "[SiStripFEDErrorsDQM::readBadAPVs] nFEDErrors not found, norm is " << lNorm << std::endl;
170  return;
171  }
172  }
173 
174  unsigned int nAPVsWithError = 0;
175  for (auto iMe : lMeVec) { //loop on ME found in directory
176  if (iMe->getEntries() == 0)
177  continue;
178  const std::string lMeName = iMe->getName();
179 
180  bool lookForErrors = false;
181  if (nFolders == 0) {
182  //for the first element of lFedsFolder: this is FED errors
183  lookForErrors = lMeName.find("DataMissing") != lMeName.npos || lMeName.find("AnyFEDErrors") != lMeName.npos ||
184  (lMeName.find("CorruptBuffer") != lMeName.npos && lMeName.find("nFED") == lMeName.npos);
185  } else {
186  //for the others, it is channel or FE errors.
187  lookForErrors = lMeName.find("APVAddressError") != lMeName.npos || lMeName.find("APVError") != lMeName.npos ||
188  lMeName.find("BadMajorityAddresses") != lMeName.npos ||
189  lMeName.find("FEMissing") != lMeName.npos || lMeName.find("OOSBits") != lMeName.npos ||
190  lMeName.find("UnlockedBits") != lMeName.npos;
191  }
192 
193  if (lookForErrors)
194  readHistogram(iMe, nAPVsWithError, lNorm, lFedId);
195 
196  } //loop on ME found in directory
197 
198  nAPVsWithErrorTotal += nAPVsWithError;
199  ++nFolders;
200  } //loop on lFedsFolders
201 
202  edm::LogInfo("SiStripFEDErrorsDQM")
203  << "[SiStripFEDErrorsDQM::readBadAPVs] Total APVs with error found above threshold = " << nAPVsWithErrorTotal
204  << std::endl;
205 
206  getter.cd();
207 
208  addErrors();
209 }
210 
212 
214  unsigned int& aCounter,
215  const float aNorm,
216  const unsigned int aFedId) {
217  unsigned short lFlag = 0;
218  std::string lMeName = aMe->getName();
219  if (lMeName.find("DataMissing") != lMeName.npos) {
220  lFlag = 0;
221  } else if (lMeName.find("AnyFEDErrors") != lMeName.npos) {
222  lFlag = 1;
223  } else if (lMeName.find("CorruptBuffer") != lMeName.npos && lMeName.find("nFED") == lMeName.npos) {
224  lFlag = 2;
225  } else if (lMeName.find("FEMissing") != lMeName.npos) {
226  lFlag = 3;
227  } else if (lMeName.find("BadMajorityAddresses") != lMeName.npos) {
228  lFlag = 4;
229  } else if (lMeName.find("UnlockedBits") != lMeName.npos) {
230  lFlag = 5;
231  } else if (lMeName.find("OOSBits") != lMeName.npos) {
232  lFlag = 6;
233  } else if (lMeName.find("APVAddressError") != lMeName.npos) {
234  lFlag = 7;
235  } else if (lMeName.find("APVError") != lMeName.npos) {
236  lFlag = 8;
237  } else {
238  edm::LogError("SiStripFEDErrorsDQM") << "[SiStripFEDErrorsDQM::readHistogramError] Shouldn't be here ..."
239  << std::endl;
240  return;
241  }
242 
243  if (debug_) {
244  LogTrace("SiStripFEDErrorsDQM") << "[SiStripFEDErrorsDQM::readHistogramError] Reading histo : " << lMeName
245  << ", flag = " << lFlag << std::endl;
246  }
247 
248  unsigned int lNBins = aMe->getNbinsX();
249  int lBinShift = 0;
250  bool lIsFedHist = false;
251  bool lIsAPVHist = false;
252  bool lIsFeHist = false;
253  bool lIsChHist = false;
254 
255  if (lNBins > 200) {
256  lBinShift = FEDNumbering::MINSiStripFEDID - 1; //shift for FED ID from bin number
257  lIsFedHist = true;
258  } else {
259  lBinShift = -1; //shift for channel/APV/FE id from bin number
260  if (lNBins > 100)
261  lIsAPVHist = true;
262  else if (lNBins < 10)
263  lIsFeHist = true;
264  else
265  lIsChHist = true;
266  }
267 
268  if (debug_) {
269  LogTrace("SiStripFEDErrorsDQM") << "[SiStripFEDErrorsDQM::readHistogramError] lIsFedHist: " << lIsFedHist
270  << std::endl
271  << "[SiStripFEDErrorsDQM::readHistogramError] lIsAPVHist: " << lIsAPVHist
272  << std::endl
273  << "[SiStripFEDErrorsDQM::readHistogramError] lIsFeHist : " << lIsFeHist
274  << std::endl
275  << "[SiStripFEDErrorsDQM::readHistogramError] lIsChHist : " << lIsChHist
276  << std::endl;
277  }
278 
279  for (unsigned int ibin(1); ibin < lNBins + 1; ibin++) {
280  if (aMe->getBinContent(ibin) > 0) {
281  float lStat = aMe->getBinContent(ibin) * 1. / aNorm;
282  if (lStat <= threshold_) {
283  if (debug_)
284  LogTrace("SiStripFEDErrorsDQM")
285  << "[SiStripFEDErrorsDQM::readHistogramError] ---- Below threshold : " << lStat << std::endl;
286  continue;
287  }
288  if (lIsFedHist) {
289  unsigned int lFedId = ibin + lBinShift;
290  //loop on all enabled channels of this FED....
291  for (unsigned int iChId = 0; iChId < sistrip::FEDCH_PER_FED; iChId++) { //loop on channels
292  const FedChannelConnection& lConnection = cabling_->fedConnection(lFedId, iChId);
293  if (!lConnection.isConnected())
294  continue;
295  addBadAPV(lConnection, 0, lFlag, aCounter);
296  }
297  } else {
298  if (lIsFeHist) {
299  unsigned int iFeId = ibin + lBinShift;
300  //loop on all enabled channels of this FE....
301  for (unsigned int iFeCh = 0; iFeCh < sistrip::FEDCH_PER_FEUNIT; iFeCh++) { //loop on channels
302  unsigned int iChId = sistrip::FEDCH_PER_FEUNIT * iFeId + iFeCh;
303  const FedChannelConnection& lConnection = cabling_->fedConnection(aFedId, iChId);
304  if (!lConnection.isConnected())
305  continue;
306  addBadAPV(lConnection, 0, lFlag, aCounter);
307  }
308  } else {
309  unsigned int iChId = ibin + lBinShift;
310  if (lIsAPVHist) {
311  unsigned int iAPVid = iChId % 2 + 1;
312  iChId = static_cast<unsigned int>(iChId / 2.);
313  const FedChannelConnection& lConnection = cabling_->fedConnection(aFedId, iChId);
314  addBadAPV(lConnection, iAPVid, lFlag, aCounter);
315 
316  } //ifAPVhists
317  else {
318  const FedChannelConnection& lConnection = cabling_->fedConnection(aFedId, iChId);
319  addBadAPV(lConnection, 0, lFlag, aCounter);
320  }
321  } //if not FE hist
322  } //if not FED hist
323  } //if entries in histo
324  } //loop on bins
325 } //method readHistogram
326 
328  const unsigned short aAPVNumber,
329  const unsigned short aFlag,
330  unsigned int& aCounter) {
331  if (!aConnection.isConnected()) {
332  edm::LogWarning("SiStripFEDErrorsDQM") << "[SiStripFEDErrorsDQM::addBadAPV] Warning, incompatible cabling ! "
333  "Channel is not connected, but entry found in histo ... "
334  << std::endl;
335  return;
336  }
337  unsigned int lDetid = aConnection.detId();
338  if (!lDetid || lDetid == sistrip::invalid32_) {
339  edm::LogWarning("SiStripFEDErrorsDQM")
340  << "[SiStripFEDErrorsDQM::addBadAPV] Warning, DetId is invalid: " << lDetid << std::endl;
341  return;
342  }
343  //unsigned short nChInModule = aConnection.nApvPairs();
344  unsigned short lApvNum = 0;
345  if (aAPVNumber < 2) {
346  lApvNum = 2 * aConnection.apvPairNumber();
347  addBadStrips(aConnection, lDetid, lApvNum, aFlag, aCounter);
348  }
349  if (aAPVNumber == 0 || aAPVNumber == 2) {
350  lApvNum = 2 * aConnection.apvPairNumber() + 1;
351  addBadStrips(aConnection, lDetid, lApvNum, aFlag, aCounter);
352  }
353 }
354 
356  const unsigned int aDetId,
357  const unsigned short aApvNum,
358  const unsigned short aFlag,
359  unsigned int& aCounter) {
360  // std::vector<unsigned int> lStripVector;
361  const unsigned short lFirstBadStrip = aApvNum * 128;
362  const unsigned short lConsecutiveBadStrips = 128;
363 
364  unsigned int lBadStripRange = obj_.encode(lFirstBadStrip, lConsecutiveBadStrips, aFlag);
365 
366  LogTrace("SiStripFEDErrorsDQM") << "[SiStripFEDErrorsDQM::addBadStrips] ---- Adding : detid " << aDetId << " (FED "
367  << aConnection.fedId() << ", Ch " << aConnection.fedCh() << ")"
368  << ", APV " << aApvNum << ", flag " << aFlag << std::endl;
369 
370  detIdErrors_[aDetId].push_back(lBadStripRange);
371 
372  // lStripVector.push_back(lBadStripRange);
373  // SiStripBadStrip::Range lRange(lStripVector.begin(),lStripVector.end());
374  // if ( !obj.put(aDetId,lRange) ) {
375  // edm::LogError("SiStripFEDErrorsDQM")<<"[SiStripFEDErrorsDQM::addBadStrips] detid already exists." << std::endl;
376  // }
377 
378  aCounter++;
379 }
380 
381 namespace {
382  // set corresponding bit to 1 in flag
383  inline void setFlagBit(unsigned short& aFlag, const unsigned short aBit) { aFlag = aFlag | (0x1 << aBit); }
384 } // namespace
385 
387  for (const auto& it : detIdErrors_) {
388  const std::vector<uint32_t>& lList = it.second;
389 
390  //map of first strip number and flag
391  //purpose is to encode all existing flags into a unique one...
392  std::map<unsigned short, unsigned short> lAPVMap;
393  for (auto cCont : lList) {
394  SiStripBadStrip::data lData = obj_.decode(cCont);
395  unsigned short lFlag = 0;
396  setFlagBit(lFlag, lData.flag);
397 
398  //std::cout << " -- Detid " << it.first << ", strip " << lData.firstStrip << ", flag " << lData.flag << std::endl;
399 
400  auto lInsert = lAPVMap.emplace(lData.firstStrip, lFlag);
401  if (!lInsert.second) {
402  //std::cout << " ---- Adding bit : " << lData.flag << " to " << lInsert.first->second << ": ";
403  setFlagBit(lInsert.first->second, lData.flag);
404  //std::cout << lInsert.first->second << std::endl;
405  }
406  }
407 
408  //encode the new flag
409  std::vector<unsigned int> lStripVector;
410  const unsigned short lConsecutiveBadStrips = 128;
411  lStripVector.reserve(lAPVMap.size());
412  for (const auto& lIter : lAPVMap) {
413  lStripVector.push_back(obj_.encode(lIter.first, lConsecutiveBadStrips, lIter.second));
414  }
415 
416  SiStripBadStrip::Range lRange(lStripVector.begin(), lStripVector.end());
417  if (!obj_.put(it.first, lRange)) {
418  edm::LogError("SiStripFEDErrorsDQM") << "[SiStripFEDErrorsDQM::addBadStrips] detid already exists." << std::endl;
419  }
420  }
421 }
422 
edm::ESWatcher::check
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
FEDNumbering.h
dqm::implementation::IGetter::getContents
virtual std::vector< dqm::harvesting::MonitorElement * > getContents(std::string const &path) const
Definition: DQMStore.cc:593
edm::ESWatcher< SiStripFedCablingRcd >
sistrip::invalid32_
static const uint32_t invalid32_
Definition: Constants.h:15
FedChannelConnection::fedCh
const uint16_t & fedCh() const
Definition: FedChannelConnection.h:221
SiStripDQMPopConSourceHandler
Definition: SiStripDQMPopConSourceHandler.h:19
SiStripPopConDQMEDHarvester.h
edm
HLT enums.
Definition: AlignableModifier.h:19
SiStripPopConFEDErrorsHandlerFromDQM::fedCablingWatcher_
edm::ESWatcher< SiStripFedCablingRcd > fedCablingWatcher_
Definition: SiStripPopConFEDErrorsDQM.cc:48
SiStripFedCabling.h
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
SiStripBadStrip::decode
data decode(const unsigned int &value) const
Definition: SiStripBadStrip.h:78
DQMStore.h
SiStripFedCabling::fedConnection
FedChannelConnection fedConnection(uint16_t fed_id, uint16_t fed_ch) const
Definition: SiStripFedCabling.cc:171
dqm::legacy::MonitorElement
Definition: MonitorElement.h:462
sistrip::FED_ID_MIN
static const uint16_t FED_ID_MIN
Definition: ConstantsForHardwareSystems.h:21
SiStripPopConFEDErrorsHandlerFromDQM::threshold_
double threshold_
Definition: SiStripPopConFEDErrorsDQM.cc:45
SiStripBadStrip::put
bool put(const uint32_t &detID, const InputVector &vect)
Definition: SiStripBadStrip.h:65
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
SiStripBadStrip.h
SiStripFedCabling
Contains cabling info at the device level, including DetId, APV pair numbers, hardware addresses,...
Definition: SiStripFedCabling.h:25
SiStripDetInfoFileReader
Definition: SiStripDetInfoFileReader.h:30
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
SiStripPopConFEDErrorsHandlerFromDQM::detIdErrors_
std::map< uint32_t, std::vector< unsigned int > > detIdErrors_
Definition: SiStripPopConFEDErrorsDQM.cc:51
SiStripBadStrip
Definition: SiStripBadStrip.h:30
edm::FileInPath
Definition: FileInPath.h:64
SiStripPopConFEDErrorsHandlerFromDQM::fedCablingToken_
edm::ESGetToken< SiStripFedCabling, SiStripFedCablingRcd > fedCablingToken_
Definition: SiStripPopConFEDErrorsDQM.cc:47
MakerMacros.h
SiStripFedCablingRcd
Definition: SiStripCondDataRecords.h:22
SiStripBadStrip::Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripBadStrip.h:53
SiStripBadStrip::data::flag
unsigned short flag
Definition: SiStripBadStrip.h:35
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
dqm::legacy::DQMStore
Definition: DQMStore.h:727
SiStripPopConFEDErrorsHandlerFromDQM::debug_
unsigned int debug_
Definition: SiStripPopConFEDErrorsDQM.cc:46
SiStripPopConFEDErrorsHandlerFromDQM::dqmEndJob
void dqmEndJob(DQMStore::IBooker &booker, DQMStore::IGetter &getter) override
Definition: SiStripPopConFEDErrorsDQM.cc:81
SiStripPopConFEDErrorsHandlerFromDQM::addBadAPV
void addBadAPV(const FedChannelConnection &aConnection, const unsigned short aAPVNumber, const unsigned short aFlag, unsigned int &aCounter)
Definition: SiStripPopConFEDErrorsDQM.cc:327
dqm::implementation::NavigatorBase::cd
virtual void cd()
Definition: DQMStore.cc:29
SiStripPopConFEDErrorsHandlerFromDQM
Definition: SiStripPopConFEDErrorsDQM.cc:14
SiStripDQMPopConSourceHandler< SiStripBadStrip >::getRunNumber
uint32_t getRunNumber() const
Definition: SiStripDQMPopConSourceHandler.h:49
SiStripDetInfoFileReader.h
SiStripPopConFEDErrorsHandlerFromDQM::obj_
SiStripBadStrip obj_
Definition: SiStripPopConFEDErrorsDQM.cc:50
SiStripPopConFEDErrorsHandlerFromDQM::cabling_
const SiStripFedCabling * cabling_
Definition: SiStripPopConFEDErrorsDQM.cc:49
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiStripPopConFEDErrorsHandlerFromDQM::initES
void initES(const edm::EventSetup &iSetup) override
Definition: SiStripPopConFEDErrorsDQM.cc:75
FedChannelConnection
Class containning control, module, detector and connection information, at the level of a FED channel...
Definition: FedChannelConnection.h:26
FedChannelConnection::isConnected
bool isConnected() const
Definition: FedChannelConnection.h:197
FEDNumbering::MAXSiStripFEDID
Definition: FEDNumbering.h:30
FedChannelConnection::detId
const uint32_t & detId() const
Definition: FedChannelConnection.h:213
edm::ParameterSet
Definition: ParameterSet.h:47
edm::Transition
Transition
Definition: Transition.h:12
createfilelist.int
int
Definition: createfilelist.py:10
SiStripBadStrip::data::firstStrip
unsigned short firstStrip
Definition: SiStripBadStrip.h:33
edm::EventSetup
Definition: EventSetup.h:58
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
edm::ESGetToken< SiStripFedCabling, SiStripFedCablingRcd >
sistrip::FED_ID_MAX
static const uint16_t FED_ID_MAX
Definition: ConstantsForHardwareSystems.h:22
SiStripPopConFEDErrorsHandlerFromDQM::SiStripPopConFEDErrorsHandlerFromDQM
SiStripPopConFEDErrorsHandlerFromDQM(const edm::ParameterSet &iConfig, edm::ConsumesCollector &&iC)
Definition: SiStripPopConFEDErrorsDQM.cc:60
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
FedChannelConnection::fedId
const uint16_t & fedId() const
Definition: FedChannelConnection.h:220
SiStripPopConFEDErrorsHandlerFromDQM::addErrors
void addErrors()
Writes the errors to the db.
Definition: SiStripPopConFEDErrorsDQM.cc:386
FedChannelConnection.h
ESWatcher.h
dqm::implementation::IGetter
Definition: DQMStore.h:484
dqm::impl::MonitorElement::getNbinsX
virtual int getNbinsX() const
get # of bins in X-axis
Definition: MonitorElement.cc:574
SiStripPopConFEDErrorsHandlerFromDQM::addBadStrips
void addBadStrips(const FedChannelConnection &aConnection, const unsigned int aDetId, const unsigned short aApvNum, const unsigned short aFlag, unsigned int &aCounter)
Definition: SiStripPopConFEDErrorsDQM.cc:355
SiStripPopConFEDErrorsHandlerFromDQM::~SiStripPopConFEDErrorsHandlerFromDQM
~SiStripPopConFEDErrorsHandlerFromDQM() override
Definition: SiStripPopConFEDErrorsDQM.cc:71
SiStripPopConDQMEDHarvester
Definition: SiStripPopConDQMEDHarvester.h:15
dqm::impl::MonitorElement::getName
const std::string & getName() const
get name of ME
Definition: MonitorElement.h:250
SiStripPopConFEDErrorsHandlerFromDQM::MonitorElement
dqm::legacy::MonitorElement MonitorElement
Definition: SiStripPopConFEDErrorsDQM.cc:16
SiStripPopConFEDErrorsHandlerFromDQM::DQMStore
dqm::legacy::DQMStore DQMStore
Definition: SiStripPopConFEDErrorsDQM.cc:17
SiStripFedCablingRcd.h
dqm::implementation::IBooker
Definition: DQMStore.h:43
sistrip::FEDCH_PER_FED
static const uint16_t FEDCH_PER_FED
Definition: ConstantsForHardwareSystems.h:30
SiStripFedCabling::fedIds
FedsConstIterRange fedIds() const
Definition: SiStripFedCabling.h:154
sistrip::FEDCH_PER_FEUNIT
static const uint16_t FEDCH_PER_FEUNIT
Definition: ConstantsForHardwareSystems.h:28
FedChannelConnection::apvPairNumber
uint16_t apvPairNumber() const
Definition: FedChannelConnection.h:230
SiStripPopConFEDErrorsHandlerFromDQM::readHistogram
void readHistogram(MonitorElement *aMe, unsigned int &aCounter, const float aNorm, const unsigned int aFedId)
Definition: SiStripPopConFEDErrorsDQM.cc:213
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
SiStripPopConFEDErrorsHandlerFromDQM::getObj
SiStripBadStrip * getObj() const override
Definition: SiStripPopConFEDErrorsDQM.cc:211
SiStripFedCabling::fedConnections
ConnsConstIterRange fedConnections(uint16_t fed_id) const
Definition: SiStripFedCabling.cc:160
DeDxTools::esConsumes
ESGetTokenH3DDVariant esConsumes(std::string const &Reccord, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
SiStripPopConFEDErrorsHandlerFromDQM::fp_
edm::FileInPath fp_
Definition: SiStripPopConFEDErrorsDQM.cc:44
SiStripBadStrip::encode
unsigned int encode(const unsigned short &first, const unsigned short &NconsecutiveBadStrips, const unsigned short &flag=0)
Definition: SiStripBadStrip.h:86
SiStripDQMPopConSourceHandler.h
dqm::impl::MonitorElement::getBinContent
virtual double getBinContent(int binx) const
get content of bin (1-D)
Definition: MonitorElement.cc:592
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
dqm::implementation::IGetter::dirExists
virtual bool dirExists(std::string const &path) const
Definition: DQMStore.cc:708
edm::FileInPath::fullPath
std::string fullPath() const
Definition: FileInPath.cc:161
SiStripBadStrip::data
Definition: SiStripBadStrip.h:32
FEDNumbering::MINSiStripFEDID
Definition: FEDNumbering.h:29