CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
SiStripPopConFEDErrorsHandlerFromDQM Class Reference
Inheritance diagram for SiStripPopConFEDErrorsHandlerFromDQM:
SiStripDQMPopConSourceHandler< SiStripBadStrip > popcon::PopConSourceHandler< SiStripBadStrip >

Public Types

typedef dqm::legacy::DQMStore DQMStore
 
typedef dqm::legacy::MonitorElement MonitorElement
 
- Public Types inherited from SiStripDQMPopConSourceHandler< SiStripBadStrip >
typedef dqm::legacy::DQMStore DQMStore
 
- Public Types inherited from popcon::PopConSourceHandler< SiStripBadStrip >
typedef std::vector< Triplet > Container
 
typedef std::vector< std::pair< SiStripBadStrip *, cond::Time_t > > OldContainer
 
typedef PopConSourceHandler< SiStripBadStripself
 
typedef cond::Summary Summary
 
typedef cond::Time_t Time_t
 
typedef SiStripBadStrip value_type
 

Public Member Functions

void dqmEndJob (DQMStore::IBooker &booker, DQMStore::IGetter &getter) override
 
SiStripBadStripgetObj () const override
 
void initES (const edm::EventSetup &iSetup) override
 
 SiStripPopConFEDErrorsHandlerFromDQM (const edm::ParameterSet &iConfig, edm::ConsumesCollector &&iC)
 
 ~SiStripPopConFEDErrorsHandlerFromDQM () override
 
- Public Member Functions inherited from SiStripDQMPopConSourceHandler< SiStripBadStrip >
virtual bool checkForCompatibility (const std::string &otherMetaData) const
 
virtual std::string getMetaDataString () const
 
void getNewObjects () override
 
std::string id () const override
 
 SiStripDQMPopConSourceHandler (const edm::ParameterSet &pset)
 
 ~SiStripDQMPopConSourceHandler () override
 
- Public Member Functions inherited from popcon::PopConSourceHandler< SiStripBadStrip >
void convertFromOld ()
 
SummarydummySummary (typename OldContainer::value_type const &) const
 
void initialize (const cond::persistency::Session &dbSession, cond::TagInfo_t const &tagInfo, cond::LogDBEntry_t const &logDBEntry)
 
Ref lastPayload () const
 
cond::LogDBEntry_t const & logDBEntry () const
 
std::pair< Container const *, std::string const > operator() (const cond::persistency::Session &session, cond::TagInfo_t const &tagInfo, cond::LogDBEntry_t const &logDBEntry) const
 
 PopConSourceHandler ()
 
Container const & returnData ()
 
void sort ()
 
cond::TagInfo_t const & tagInfo () const
 
std::string const & userTextLog () const
 
virtual ~PopConSourceHandler ()
 

Private Member Functions

void addBadAPV (const FedChannelConnection &aConnection, const unsigned short aAPVNumber, const unsigned short aFlag, unsigned int &aCounter)
 
void addBadStrips (const FedChannelConnection &aConnection, const unsigned int aDetId, const unsigned short aApvNum, const unsigned short aFlag, unsigned int &aCounter)
 
void addErrors ()
 Writes the errors to the db. More...
 
void readHistogram (MonitorElement *aMe, unsigned int &aCounter, const float aNorm, const unsigned int aFedId)
 

Private Attributes

const SiStripFedCablingcabling_
 
unsigned int debug_
 
std::map< uint32_t, std::vector< unsigned int > > detIdErrors_
 
edm::ESGetToken< SiStripFedCabling, SiStripFedCablingRcdfedCablingToken_
 
edm::ESWatcher< SiStripFedCablingRcdfedCablingWatcher_
 
edm::FileInPath fp_
 
SiStripBadStrip obj_
 
double threshold_
 

Additional Inherited Members

- Protected Member Functions inherited from SiStripDQMPopConSourceHandler< SiStripBadStrip >
uint32_t getRunNumber () const
 
- Protected Member Functions inherited from popcon::PopConSourceHandler< SiStripBadStrip >
int add (value_type *payload, Summary *summary, Time_t time)
 
cond::persistency::SessiondbSession () const
 
- Protected Attributes inherited from popcon::PopConSourceHandler< SiStripBadStrip >
OldContainer m_to_transfer
 
std::string m_userTextLog
 

Detailed Description

Author
A.-M. Magnan, M. De Mattia
P. David update to PopConSourceHandler and DQMEDHarvester @EDAnalyzer to read modules flagged by the DQM due to FED errors as bad and write in the database with the proper error flag.

Definition at line 14 of file SiStripPopConFEDErrorsDQM.cc.

Member Typedef Documentation

◆ DQMStore

Definition at line 17 of file SiStripPopConFEDErrorsDQM.cc.

◆ MonitorElement

Definition at line 16 of file SiStripPopConFEDErrorsDQM.cc.

Constructor & Destructor Documentation

◆ SiStripPopConFEDErrorsHandlerFromDQM()

SiStripPopConFEDErrorsHandlerFromDQM::SiStripPopConFEDErrorsHandlerFromDQM ( const edm::ParameterSet iConfig,
edm::ConsumesCollector &&  iC 
)
explicit

Definition at line 60 of file SiStripPopConFEDErrorsDQM.cc.

64  "file", edm::FileInPath("CalibTracker/SiStripCommon/data/SiStripDetInfo.dat"))),
65  threshold_(iConfig.getUntrackedParameter<double>("Threshold", 0)),
66  debug_(iConfig.getUntrackedParameter<unsigned int>("Debug", 0)),
68  edm::LogInfo("SiStripFEDErrorsDQM") << "[SiStripFEDErrorsDQM::SiStripFEDErrorsDQM()]";
69 }

◆ ~SiStripPopConFEDErrorsHandlerFromDQM()

SiStripPopConFEDErrorsHandlerFromDQM::~SiStripPopConFEDErrorsHandlerFromDQM ( )
override

Definition at line 71 of file SiStripPopConFEDErrorsDQM.cc.

71  {
72  edm::LogInfo("SiStripFEDErrorsDQM") << "[SiStripFEDErrorsDQM::~SiStripFEDErrorsDQM]";
73 }

Member Function Documentation

◆ addBadAPV()

void SiStripPopConFEDErrorsHandlerFromDQM::addBadAPV ( const FedChannelConnection aConnection,
const unsigned short  aAPVNumber,
const unsigned short  aFlag,
unsigned int &  aCounter 
)
private

Definition at line 327 of file SiStripPopConFEDErrorsDQM.cc.

330  {
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 }

References addBadStrips(), FedChannelConnection::apvPairNumber(), FedChannelConnection::detId(), sistrip::invalid32_, and FedChannelConnection::isConnected().

Referenced by readHistogram().

◆ addBadStrips()

void SiStripPopConFEDErrorsHandlerFromDQM::addBadStrips ( const FedChannelConnection aConnection,
const unsigned int  aDetId,
const unsigned short  aApvNum,
const unsigned short  aFlag,
unsigned int &  aCounter 
)
private

Definition at line 355 of file SiStripPopConFEDErrorsDQM.cc.

359  {
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 }

References detIdErrors_, SiStripBadStrip::encode(), FedChannelConnection::fedCh(), FedChannelConnection::fedId(), LogTrace, and obj_.

Referenced by addBadAPV().

◆ addErrors()

void SiStripPopConFEDErrorsHandlerFromDQM::addErrors ( )
private

Writes the errors to the db.

Definition at line 386 of file SiStripPopConFEDErrorsDQM.cc.

386  {
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 }

References SiStripBadStrip::decode(), detIdErrors_, SiStripBadStrip::encode(), SiStripBadStrip::data::firstStrip, SiStripBadStrip::data::flag, obj_, and SiStripBadStrip::put().

Referenced by dqmEndJob().

◆ dqmEndJob()

void SiStripPopConFEDErrorsHandlerFromDQM::dqmEndJob ( DQMStore::IBooker booker,
DQMStore::IGetter getter 
)
overridevirtual

Reimplemented from SiStripDQMPopConSourceHandler< SiStripBadStrip >.

Definition at line 81 of file SiStripPopConFEDErrorsDQM.cc.

81  {
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 }

References addErrors(), cabling_, dqm::implementation::NavigatorBase::cd(), debug_, FedChannelConnection::detId(), dqm::implementation::IGetter::dirExists(), sistrip::FED_ID_MAX, sistrip::FED_ID_MIN, SiStripFedCabling::fedConnections(), SiStripFedCabling::fedIds(), fp_, edm::FileInPath::fullPath(), dqm::implementation::IGetter::getContents(), SiStripDQMPopConSourceHandler< SiStripBadStrip >::getRunNumber(), sistrip::invalid32_, FedChannelConnection::isConnected(), LogTrace, FEDNumbering::MAXSiStripFEDID, FEDNumbering::MINSiStripFEDID, obj_, readHistogram(), dqm::implementation::NavigatorBase::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

◆ getObj()

SiStripBadStrip * SiStripPopConFEDErrorsHandlerFromDQM::getObj ( ) const
overridevirtual

Implements SiStripDQMPopConSourceHandler< SiStripBadStrip >.

Definition at line 211 of file SiStripPopConFEDErrorsDQM.cc.

211 { return new SiStripBadStrip(obj_); }

References obj_.

◆ initES()

void SiStripPopConFEDErrorsHandlerFromDQM::initES ( const edm::EventSetup iSetup)
overridevirtual

◆ readHistogram()

void SiStripPopConFEDErrorsHandlerFromDQM::readHistogram ( MonitorElement aMe,
unsigned int &  aCounter,
const float  aNorm,
const unsigned int  aFedId 
)
private

Definition at line 213 of file SiStripPopConFEDErrorsDQM.cc.

216  {
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

References addBadAPV(), cabling_, debug_, sistrip::FEDCH_PER_FED, sistrip::FEDCH_PER_FEUNIT, SiStripFedCabling::fedConnection(), dqm::impl::MonitorElement::getBinContent(), dqm::impl::MonitorElement::getName(), dqm::impl::MonitorElement::getNbinsX(), FedChannelConnection::isConnected(), LogTrace, FEDNumbering::MINSiStripFEDID, AlCaHLTBitMon_QueryRunRegistry::string, and threshold_.

Referenced by dqmEndJob().

Member Data Documentation

◆ cabling_

const SiStripFedCabling* SiStripPopConFEDErrorsHandlerFromDQM::cabling_
private

Definition at line 49 of file SiStripPopConFEDErrorsDQM.cc.

Referenced by dqmEndJob(), initES(), and readHistogram().

◆ debug_

unsigned int SiStripPopConFEDErrorsHandlerFromDQM::debug_
private

Definition at line 46 of file SiStripPopConFEDErrorsDQM.cc.

Referenced by dqmEndJob(), and readHistogram().

◆ detIdErrors_

std::map<uint32_t, std::vector<unsigned int> > SiStripPopConFEDErrorsHandlerFromDQM::detIdErrors_
private

Definition at line 51 of file SiStripPopConFEDErrorsDQM.cc.

Referenced by addBadStrips(), and addErrors().

◆ fedCablingToken_

edm::ESGetToken<SiStripFedCabling, SiStripFedCablingRcd> SiStripPopConFEDErrorsHandlerFromDQM::fedCablingToken_
private

Definition at line 47 of file SiStripPopConFEDErrorsDQM.cc.

Referenced by initES().

◆ fedCablingWatcher_

edm::ESWatcher<SiStripFedCablingRcd> SiStripPopConFEDErrorsHandlerFromDQM::fedCablingWatcher_
private

Definition at line 48 of file SiStripPopConFEDErrorsDQM.cc.

Referenced by initES().

◆ fp_

edm::FileInPath SiStripPopConFEDErrorsHandlerFromDQM::fp_
private

Definition at line 44 of file SiStripPopConFEDErrorsDQM.cc.

Referenced by dqmEndJob().

◆ obj_

SiStripBadStrip SiStripPopConFEDErrorsHandlerFromDQM::obj_
private

Definition at line 50 of file SiStripPopConFEDErrorsDQM.cc.

Referenced by addBadStrips(), addErrors(), dqmEndJob(), and getObj().

◆ threshold_

double SiStripPopConFEDErrorsHandlerFromDQM::threshold_
private

Definition at line 45 of file SiStripPopConFEDErrorsDQM.cc.

Referenced by readHistogram().

edm::ESWatcher::check
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
dqm::implementation::IGetter::getContents
virtual std::vector< dqm::harvesting::MonitorElement * > getContents(std::string const &path) const
Definition: DQMStore.cc:593
sistrip::invalid32_
static const uint32_t invalid32_
Definition: Constants.h:15
FedChannelConnection::fedCh
const uint16_t & fedCh() const
Definition: FedChannelConnection.h:221
SiStripDQMPopConSourceHandler< SiStripBadStrip >
SiStripPopConFEDErrorsHandlerFromDQM::fedCablingWatcher_
edm::ESWatcher< SiStripFedCablingRcd > fedCablingWatcher_
Definition: SiStripPopConFEDErrorsDQM.cc:48
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
SiStripFedCabling::fedConnection
FedChannelConnection fedConnection(uint16_t fed_id, uint16_t fed_ch) const
Definition: SiStripFedCabling.cc:171
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
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
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::ConsumesCollector::esConsumes
auto esConsumes()
Definition: ConsumesCollector.h:97
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
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
SiStripPopConFEDErrorsHandlerFromDQM::debug_
unsigned int debug_
Definition: SiStripPopConFEDErrorsDQM.cc:46
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
SiStripDQMPopConSourceHandler< SiStripBadStrip >::getRunNumber
uint32_t getRunNumber() const
Definition: SiStripDQMPopConSourceHandler.h:49
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
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
SiStripBadStrip::data::firstStrip
unsigned short firstStrip
Definition: SiStripBadStrip.h:33
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
sistrip::FED_ID_MAX
static const uint16_t FED_ID_MAX
Definition: ConstantsForHardwareSystems.h:22
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
edm::Transition::BeginRun
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
dqm::impl::MonitorElement::getName
const std::string & getName() const
get name of ME
Definition: MonitorElement.h:250
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
SiStripFedCabling::fedConnections
ConnsConstIterRange fedConnections(uint16_t fed_id) const
Definition: SiStripFedCabling.cc:160
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
dqm::impl::MonitorElement::getBinContent
virtual double getBinContent(int binx) const
get content of bin (1-D)
Definition: MonitorElement.cc:592
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