CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
SiStripSpyMonitorModule Class Reference
Inheritance diagram for SiStripSpyMonitorModule:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

 SiStripSpyMonitorModule (const edm::ParameterSet &)
 
 ~SiStripSpyMonitorModule () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
edm::DetSetVector< SiStripRawDigi >::detset::const_iterator findTwoConsecutive (const edm::DetSetVector< SiStripRawDigi >::detset &channelDigis, const uint16_t threshold, uint16_t &aCounter)
 
bool hasNegativePedSubtr (const edm::DetSetVector< SiStripRawDigi >::detset &channelDigis, uint16_t aPair)
 
bool identifyTickmarks (const edm::DetSetVector< SiStripRawDigi >::detset &channelDigis, const uint16_t threshold)
 

Private Attributes

edm::EventNumber_t evt_
 
bool fillAllDetailedHistograms_
 
bool fillWithEvtNum_
 
bool fillWithLocalEvtNum_
 
uint16_t firstHeaderBit_
 
uint16_t firstTrailerBit_
 
std::string folderName_
 
sistrip::SpyUtilities::FrameQuality frameQuality_
 
SPYHistograms histManager_
 
uint32_t maxDigiRange_
 
uint32_t maxDigitalHigh_
 
uint32_t maxDigitalLow_
 
uint32_t minDigiRange_
 
uint32_t minDigitalHigh_
 
uint32_t minDigitalLow_
 
std::ofstream outfile_ [20]
 
std::map< std::string, unsigned int > outfileMap_
 
std::vector< std::string > outfileNames_
 
edm::InputTag spyAPVeTag_
 
edm::EDGetTokenT< std::vector< uint32_t > > spyAPVeToken_
 
edm::InputTag spyL1Tag_
 
edm::EDGetTokenT< std::vector< uint32_t > > spyL1Token_
 
edm::InputTag spyPedSubtrDigisTag_
 
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > spyPedSubtrDigisToken_
 
edm::InputTag spyScopeRawDigisTag_
 
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > spyScopeRawDigisToken_
 
edm::InputTag spyTotCountTag_
 
edm::EDGetTokenT< std::vector< uint32_t > > spyTotCountToken_
 
sistrip::SpyUtilities utility_
 
bool writeCabling_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 50 of file SiStripSpyMonitorModule.cc.

Constructor & Destructor Documentation

◆ SiStripSpyMonitorModule()

SiStripSpyMonitorModule::SiStripSpyMonitorModule ( const edm::ParameterSet iConfig)
explicit

Definition at line 122 of file SiStripSpyMonitorModule.cc.

124  "SpyScopeRawDigisTag", edm::InputTag("SiStripSpyUnpacker", "ScopeRawDigis"))),
126  iConfig.getUntrackedParameter<edm::InputTag>("SpyPedSubtrDigisTag", edm::InputTag("SiStripFEDEmulator", ""))),
127  spyL1Tag_(iConfig.getUntrackedParameter<edm::InputTag>("SpyL1Tag",
128  edm::InputTag("SiStripSpyDigiConverter", "L1ACount"))),
130  "SpyTotalEventCountTag", edm::InputTag("SiStripSpyDigiConverter", "TotalEventCount"))),
131  spyAPVeTag_(iConfig.getUntrackedParameter<edm::InputTag>("SpyAPVeTag",
132  edm::InputTag("SiStripSpyDigiConverter", "APVAddress"))),
133  folderName_(iConfig.getUntrackedParameter<std::string>("HistogramFolderName",
134  "SiStrip/ReadoutView/SpyMonitoringSummary")),
135  fillAllDetailedHistograms_(iConfig.getUntrackedParameter<bool>("FillAllDetailedHistograms", false)),
136  fillWithEvtNum_(iConfig.getUntrackedParameter<bool>("FillWithEventNumber", false)),
137  fillWithLocalEvtNum_(iConfig.getUntrackedParameter<bool>("FillWithLocalEventNumber", false)),
138  firstHeaderBit_(0),
139  firstTrailerBit_(0),
140  outfileNames_(iConfig.getUntrackedParameter<std::vector<std::string> >("OutputErrors")),
141  writeCabling_(iConfig.getUntrackedParameter<bool>("WriteCabling", false)) {
142  spyScopeRawDigisToken_ = consumes<edm::DetSetVector<SiStripRawDigi> >(spyScopeRawDigisTag_);
143  spyPedSubtrDigisToken_ = consumes<edm::DetSetVector<SiStripRawDigi> >(spyPedSubtrDigisTag_);
144 
145  spyL1Token_ = consumes<std::vector<uint32_t> >(spyL1Tag_);
146  spyTotCountToken_ = consumes<std::vector<uint32_t> >(spyTotCountTag_);
147  spyAPVeToken_ = consumes<std::vector<uint32_t> >(spyAPVeTag_);
148 
149  evt_ = 0;
150  std::ostringstream pDebugStream;
151  histManager_.initialise(iConfig, &pDebugStream);
152  const unsigned int nFiles = outfileNames_.size();
153 
154  for (unsigned int i(0); i < nFiles; i++) {
155  std::ostringstream lName;
156  lName << outfileNames_.at(i) << ".out";
157  if (i < 20)
158  outfile_[i].open(lName.str().c_str(), std::ios::out);
159  outfileMap_[outfileNames_.at(i)] = i;
160  }
161 
162  frameQuality_.minDigiRange = static_cast<uint16_t>(iConfig.getUntrackedParameter<uint32_t>("MinDigiRange", 100));
163  frameQuality_.maxDigiRange = static_cast<uint16_t>(iConfig.getUntrackedParameter<uint32_t>("MaxDigiRange", 1024));
164  frameQuality_.minZeroLight = static_cast<uint16_t>(iConfig.getUntrackedParameter<uint32_t>("MinZeroLight", 0));
165  frameQuality_.maxZeroLight = static_cast<uint16_t>(iConfig.getUntrackedParameter<uint32_t>("MaxZeroLight", 1024));
166  frameQuality_.minTickHeight = static_cast<uint16_t>(iConfig.getUntrackedParameter<uint32_t>("MinTickHeight", 0));
167  frameQuality_.maxTickHeight = static_cast<uint16_t>(iConfig.getUntrackedParameter<uint32_t>("MaxTickHeight", 1024));
168 }

References evt_, frameQuality_, edm::ParameterSet::getUntrackedParameter(), histManager_, mps_fire::i, SPYHistograms::initialise(), simpleEdmComparison::lName, sistrip::SpyUtilities::FrameQuality::maxDigiRange, sistrip::SpyUtilities::FrameQuality::maxTickHeight, sistrip::SpyUtilities::FrameQuality::maxZeroLight, sistrip::SpyUtilities::FrameQuality::minDigiRange, sistrip::SpyUtilities::FrameQuality::minTickHeight, sistrip::SpyUtilities::FrameQuality::minZeroLight, cmsBatch::nFiles, MillePedeFileConverter_cfg::out, outfile_, outfileMap_, outfileNames_, spyAPVeTag_, spyAPVeToken_, spyL1Tag_, spyL1Token_, spyPedSubtrDigisTag_, spyPedSubtrDigisToken_, spyScopeRawDigisTag_, spyScopeRawDigisToken_, spyTotCountTag_, and spyTotCountToken_.

◆ ~SiStripSpyMonitorModule()

SiStripSpyMonitorModule::~SiStripSpyMonitorModule ( )
override

Definition at line 170 of file SiStripSpyMonitorModule.cc.

170  {
171  const unsigned int nFiles = outfileNames_.size();
172  for (unsigned int i(0); i < nFiles; i++) {
173  outfile_[i].close();
174  }
175 
176  outfileMap_.clear();
177  outfileNames_.clear();
178 }

References mps_fire::i, cmsBatch::nFiles, outfile_, outfileMap_, and outfileNames_.

Member Function Documentation

◆ analyze()

void SiStripSpyMonitorModule::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 211 of file SiStripSpyMonitorModule.cc.

211  {
212  //update cabling and pedestals
213  const SiStripFedCabling* lCabling = utility_.getCabling(iSetup);
214  if (evt_ == 0 && writeCabling_) {
215  std::ofstream lOutCabling;
216  lOutCabling.open("trackerDetId_FEDIdChNum_list.txt", std::ios::out);
217  for (uint16_t lFedId = sistrip::FED_ID_MIN; lFedId <= sistrip::FED_ID_MAX; ++lFedId) { //loop on feds
218  for (uint16_t lFedChannel = 0; lFedChannel < sistrip::FEDCH_PER_FED; lFedChannel++) { //loop on channels
219  const FedChannelConnection& lConnection = lCabling->fedConnection(lFedId, lFedChannel);
220  if (!lConnection.isConnected())
221  continue;
222  uint32_t lDetId = lConnection.detId();
223  lOutCabling << "FED ID = " << lFedId << ", Channel = " << lFedChannel
224  << ",fedkey = " << sistrip::FEDCH_PER_FED * lFedId + lFedChannel << ", detId = " << lDetId
225  << std::endl;
226  }
227  }
228  lOutCabling.close();
229  }
230 
231  //For spy data
232  //get map of TotalEventCount and L1ID, indexed by fedId, and APVaddress indexed by fedIndex.
233  edm::Handle<std::vector<uint32_t> > lSpyL1IDHandle, lSpyTotCountHandle, lSpyAPVeHandle;
234  try {
235  iEvent.getByToken(spyL1Token_, lSpyL1IDHandle);
236  iEvent.getByToken(spyTotCountToken_, lSpyTotCountHandle);
237  iEvent.getByToken(spyAPVeToken_, lSpyAPVeHandle);
238  } catch (const cms::Exception& e) {
239  LogError("SiStripSpyMonitorModule") << e.what();
240  return;
241  }
242  //const std::map<uint32_t,uint32_t> & lSpyMaxCountMap = *lSpyL1IDHandle;
243  //const std::map<uint32_t,uint32_t> & lSpyMinCountMap = *lSpyTotCountHandle;
244  const std::vector<uint32_t>& lSpyAPVeVec = *lSpyAPVeHandle;
245 
246  //retrieve the scope digis
248  try {
249  iEvent.getByToken(spyScopeRawDigisToken_, digisHandle);
250  } catch (const cms::Exception& e) {
251  LogError("SiStripSpyMonitorModule") << e.what();
252  return;
253  }
254  const edm::DetSetVector<SiStripRawDigi>* lInputDigis = digisHandle.product();
255 
256  //retrieve the reordered payload digis
258  try {
259  iEvent.getByToken(spyPedSubtrDigisToken_, payloadHandle);
260  } catch (const cms::Exception& e) {
261  LogError("SiStripSpyMonitorModule") << e.what();
262  return;
263  }
264  const edm::DetSetVector<SiStripRawDigi>* lPayloadDigis = payloadHandle.product();
265 
266  //for first event only
267  //loop first on channels to calculate majority value of when the first header bit is found.
268  //output info message to give the value found
269  //should currently be 6 but may vary in the futur
270  //then we can check firstTrailerBit is +256+24 after
271 
272  if (evt_ == 0) {
275  }
276 
277  //initialise some counters, filled in histos eventually
279  lCounters.nNoData = 0;
280  lCounters.nLowRange = 0;
281  lCounters.nHighRange = 0;
282  lCounters.nMinZero = 0;
283  lCounters.nMaxSat = 0;
284  lCounters.nLowPb = 0;
285  lCounters.nHighPb = 0;
286  lCounters.nOOS = 0;
287  lCounters.nOtherPbs = 0;
288  lCounters.nAPVError = 0;
289  lCounters.nAPVAddressError = 0;
290  lCounters.nNegPeds = 0;
291 
292  //fill event number for output text files
293  const unsigned int nFiles = outfileNames_.size();
294  for (unsigned int i(0); i < nFiles; i++) {
295  outfile_[i] << "**** evt " << iEvent.id().event() << " ****" << std::endl;
296  }
297 
298  //loop over all FEDs and channels
299 
300  for (uint16_t lFedId = sistrip::FED_ID_MIN; lFedId <= sistrip::FED_ID_MAX; ++lFedId) { //loop on feds
301 
302  SPYHistograms::Errors lFEDErrors;
303  lFEDErrors.hasNoData = false;
304  lFEDErrors.hasLowRange = false;
305  lFEDErrors.hasHighRange = false;
306  lFEDErrors.hasMinZero = false;
307  lFEDErrors.hasMaxSat = false;
308  lFEDErrors.hasLowPb = false;
309  lFEDErrors.hasHighPb = false;
310  lFEDErrors.hasOOS = false;
311  lFEDErrors.hasOtherPbs = false;
312  lFEDErrors.hasErrorBit0 = false;
313  lFEDErrors.hasErrorBit1 = false;
314  lFEDErrors.hasAPVAddressError0 = false;
315  lFEDErrors.hasAPVAddressError1 = false;
316  lFEDErrors.hasNegPeds = false;
317 
318  uint32_t lAPVAddrRef = lSpyAPVeVec.at(lFedId);
319 
320  for (uint16_t lFedChannel = 0; lFedChannel < sistrip::FEDCH_PER_FED; lFedChannel++) { //loop on channels
321 
322  uint32_t lFedIndex = sistrip::FEDCH_PER_FED * lFedId + lFedChannel;
323 
324  const FedChannelConnection& lConnection = lCabling->fedConnection(lFedId, lFedChannel);
325 
326  if (!lConnection.isConnected())
327  continue;
328 
329  uint32_t lDetId = lConnection.detId();
330  //uint16_t lNPairs = lConnection.nApvPairs();
331  uint16_t lPair = lConnection.apvPairNumber();
332 
333  edm::DetSetVector<SiStripRawDigi>::const_iterator lDigis = lInputDigis->find(lFedIndex);
334 
335  //pedsubtr digis
336  edm::DetSetVector<SiStripRawDigi>::const_iterator lPayload = lPayloadDigis->find(lDetId);
337 
338  //no digis found, continue.
339  if (lDigis == lInputDigis->end()) {
340  LogDebug("SiStripSpyMonitorModule") << " -- digis not found in ScopeRawDigis map for FEDID " << lFedId
341  << " and FED channel " << lFedChannel << std::endl;
342  continue;
343  }
344 
346 
347  SPYHistograms::Errors lErrors;
348  lErrors.hasNoData = false;
349  lErrors.hasLowRange = false;
350  lErrors.hasHighRange = false;
351  lErrors.hasMinZero = false;
352  lErrors.hasMaxSat = false;
353  lErrors.hasLowPb = false;
354  lErrors.hasHighPb = false;
355  lErrors.hasOOS = false;
356  lErrors.hasOtherPbs = false;
357  lErrors.hasErrorBit0 = false;
358  lErrors.hasErrorBit1 = false;
359  lErrors.hasAPVAddressError0 = false;
360  lErrors.hasAPVAddressError1 = false;
361  lErrors.hasNegPeds = false;
362 
363  uint16_t lRange = sistrip::SpyUtilities::range(lFrame);
364  uint16_t lThreshold = sistrip::SpyUtilities::threshold(lFrame);
365 
366  if (lRange == 0) {
367  lCounters.nNoData++;
368  lErrors.hasNoData = true;
369  lFEDErrors.hasNoData = true;
370  if (outfileMap_.find("NoData") != outfileMap_.end())
371  outfile_[outfileMap_["NoData"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
372  } else if (lFrame.digitalLow == 0 && lRange > 0) {
373  lCounters.nMinZero++;
374  lErrors.hasMinZero = true;
375  lFEDErrors.hasMinZero = true;
376  if (outfileMap_.find("MinZero") != outfileMap_.end())
377  outfile_[outfileMap_["MinZero"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
378  } else if (lFrame.digitalHigh >= 1023) {
379  lCounters.nMaxSat++;
380  lErrors.hasMaxSat = true;
381  lFEDErrors.hasMaxSat = true;
382  if (outfileMap_.find("MaxSat") != outfileMap_.end())
383  outfile_[outfileMap_["MaxSat"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
384  } else if (lRange > 0 && lRange < frameQuality_.minDigiRange) {
385  lCounters.nLowRange++;
386  lErrors.hasLowRange = true;
387  lFEDErrors.hasLowRange = true;
388  if (outfileMap_.find("LowRange") != outfileMap_.end())
389  outfile_[outfileMap_["LowRange"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
390  } else if (lRange > frameQuality_.maxDigiRange) {
391  lCounters.nHighRange++;
392  lErrors.hasHighRange = true;
393  lFEDErrors.hasHighRange = true;
394  if (outfileMap_.find("HighRange") != outfileMap_.end())
395  outfile_[outfileMap_["HighRange"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
396  } else if (lFrame.digitalLow < frameQuality_.minZeroLight || lFrame.digitalLow > frameQuality_.maxZeroLight) {
397  lCounters.nLowPb++;
398  lErrors.hasLowPb = true;
399  lFEDErrors.hasLowPb = true;
400  if (outfileMap_.find("LowPb") != outfileMap_.end())
401  outfile_[outfileMap_["LowPb"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
403  lCounters.nHighPb++;
404  lErrors.hasHighPb = true;
405  lFEDErrors.hasHighPb = true;
406  if (outfileMap_.find("HighPb") != outfileMap_.end())
407  outfile_[outfileMap_["HighPb"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
408  } else if (lFrame.firstHeaderBit != firstHeaderBit_ && //header in wrong position
409  ((lFrame.firstHeaderBit != sistrip::SPY_SAMPLES_PER_CHANNEL && //header and
410  lFrame.firstTrailerBit != sistrip::SPY_SAMPLES_PER_CHANNEL && //trailer found
411  lFrame.firstTrailerBit - lFrame.firstHeaderBit == 280) || //+ right distance between them
412  (lFrame.firstHeaderBit != sistrip::SPY_SAMPLES_PER_CHANNEL && // or header found
413  lFrame.firstTrailerBit == sistrip::SPY_SAMPLES_PER_CHANNEL && // and trailer not found
414  lFrame.firstHeaderBit > 16) || // corresponding to back-to-back frame late enough
415  (lFrame.firstHeaderBit == sistrip::SPY_SAMPLES_PER_CHANNEL && // or header not found
416  identifyTickmarks(*lDigis, lThreshold)) // but such that tickmark compatible with OOS frame
417  )) {
418  lCounters.nOOS++;
419  lErrors.hasOOS = true;
420  lFEDErrors.hasOOS = true;
421  if (outfileMap_.find("OOS") != outfileMap_.end())
422  outfile_[outfileMap_["OOS"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
423  } else if (!(lFrame.firstHeaderBit == firstHeaderBit_ && lFrame.firstTrailerBit == firstTrailerBit_)) {
424  lCounters.nOtherPbs++;
425  lErrors.hasOtherPbs = true;
426  lFEDErrors.hasOtherPbs = true;
427  if (outfileMap_.find("OtherPbs") != outfileMap_.end())
428  outfile_[outfileMap_["OtherPbs"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
429  } else if (lFrame.apvErrorBit.first || lFrame.apvErrorBit.second) {
430  if (lFrame.apvErrorBit.first) {
431  lCounters.nAPVError++;
432  lErrors.hasErrorBit0 = true;
433  lFEDErrors.hasErrorBit0 = true;
434  }
435  if (lFrame.apvErrorBit.second) {
436  lCounters.nAPVError++;
437  lErrors.hasErrorBit1 = true;
438  lFEDErrors.hasErrorBit1 = true;
439  }
440  if (outfileMap_.find("APVError") != outfileMap_.end()) {
441  outfile_[outfileMap_["APVError"]] << lFedId << " " << lFedChannel << " " << lDetId;
442  if (lFrame.apvErrorBit.first)
443  outfile_[outfileMap_["APVError"]] << " APV0" << std::endl;
444  if (lFrame.apvErrorBit.second)
445  outfile_[outfileMap_["APVError"]] << " APV1" << std::endl;
446  }
447  } else if (lFrame.apvAddress.first != lAPVAddrRef || lFrame.apvAddress.second != lAPVAddrRef) {
448  if (lFrame.apvAddress.first != lAPVAddrRef) {
449  lCounters.nAPVAddressError++;
450  lErrors.hasAPVAddressError0 = true;
451  lFEDErrors.hasAPVAddressError0 = true;
452  }
453  if (lFrame.apvAddress.second != lAPVAddrRef) {
454  lCounters.nAPVAddressError++;
455  lErrors.hasAPVAddressError1 = true;
456  lFEDErrors.hasAPVAddressError1 = true;
457  }
458  if (outfileMap_.find("APVAddressError") != outfileMap_.end()) {
459  outfile_[outfileMap_["APVAddressError"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
460  if (lFrame.apvAddress.first != lAPVAddrRef)
461  outfile_[outfileMap_["APVAddressError"]] << " APV0" << std::endl;
462  if (lFrame.apvAddress.second != lAPVAddrRef)
463  outfile_[outfileMap_["APVAddressError"]] << " APV1" << std::endl;
464  }
465  } else if (lPayload != lPayloadDigis->end() && hasNegativePedSubtr(*lPayload, lPair)) {
466  lCounters.nNegPeds++;
467  lErrors.hasNegPeds = true;
468  lFEDErrors.hasNegPeds = true;
469  if (outfileMap_.find("NegPeds") != outfileMap_.end())
470  outfile_[outfileMap_["NegPeds"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
471  }
472 
473  histManager_.fillDetailedHistograms(lErrors, lFrame, lFedId, lFedChannel);
474 
475  } //loop on channels
476 
477  histManager_.fillFEDHistograms(lFEDErrors, lFedId);
478 
479  } //loop on feds
480 
481  double lTime;
482  //if (fillWithEvtNum_)
483  //lTime = iEvent.id().event();
484  //else if (fillWithLocalEvtNum_) lTime = evt_;
485  //no orbit number for spy data !!
486  //else lTime = iEvent.orbitNumber()/11223.;
487  if (fillWithLocalEvtNum_) {
488  // casting from unsigned long long to a double here
489  // doing it explicitely
490  lTime = static_cast<double>(evt_);
491  } else {
492  // casting from unsigned long long to a double here
493  // doing it explicitely
494  lTime = static_cast<double>(iEvent.id().event());
495  }
496 
497  histManager_.fillCountersHistograms(lCounters, lTime);
498 
499  //used to fill histo vs time with local event number....
500  evt_++;
501 
502 } //analyze method

References sistrip::SpyUtilities::Frame::apvAddress, sistrip::SpyUtilities::Frame::apvErrorBit, FedChannelConnection::apvPairNumber(), FedChannelConnection::detId(), sistrip::SpyUtilities::Frame::digitalHigh, sistrip::SpyUtilities::Frame::digitalLow, MillePedeFileConverter_cfg::e, edm::DetSetVector< T >::end(), evt_, sistrip::SpyUtilities::extractFrameInfo(), sistrip::FED_ID_MAX, sistrip::FED_ID_MIN, sistrip::FEDCH_PER_FED, SiStripFedCabling::fedConnection(), SPYHistograms::fillCountersHistograms(), SPYHistograms::fillDetailedHistograms(), SPYHistograms::fillFEDHistograms(), fillWithLocalEvtNum_, edm::DetSetVector< T >::find(), sistrip::SpyUtilities::Frame::firstHeaderBit, firstHeaderBit_, sistrip::SpyUtilities::Frame::firstTrailerBit, firstTrailerBit_, frameQuality_, sistrip::SpyUtilities::getCabling(), sistrip::SpyUtilities::getMajorityHeader(), SPYHistograms::Errors::hasAPVAddressError0, SPYHistograms::Errors::hasAPVAddressError1, SPYHistograms::Errors::hasErrorBit0, SPYHistograms::Errors::hasErrorBit1, SPYHistograms::Errors::hasHighPb, SPYHistograms::Errors::hasHighRange, SPYHistograms::Errors::hasLowPb, SPYHistograms::Errors::hasLowRange, SPYHistograms::Errors::hasMaxSat, SPYHistograms::Errors::hasMinZero, hasNegativePedSubtr(), SPYHistograms::Errors::hasNegPeds, SPYHistograms::Errors::hasNoData, SPYHistograms::Errors::hasOOS, SPYHistograms::Errors::hasOtherPbs, histManager_, mps_fire::i, identifyTickmarks(), iEvent, FedChannelConnection::isConnected(), LogDebug, sistrip::SpyUtilities::FrameQuality::maxDigiRange, sistrip::SpyUtilities::FrameQuality::maxTickHeight, sistrip::SpyUtilities::FrameQuality::maxZeroLight, sistrip::SpyUtilities::FrameQuality::minDigiRange, sistrip::SpyUtilities::FrameQuality::minTickHeight, sistrip::SpyUtilities::FrameQuality::minZeroLight, SPYHistograms::ErrorCounters::nAPVAddressError, SPYHistograms::ErrorCounters::nAPVError, cmsBatch::nFiles, SPYHistograms::ErrorCounters::nHighPb, SPYHistograms::ErrorCounters::nHighRange, SPYHistograms::ErrorCounters::nLowPb, SPYHistograms::ErrorCounters::nLowRange, SPYHistograms::ErrorCounters::nMaxSat, SPYHistograms::ErrorCounters::nMinZero, SPYHistograms::ErrorCounters::nNegPeds, SPYHistograms::ErrorCounters::nNoData, SPYHistograms::ErrorCounters::nOOS, SPYHistograms::ErrorCounters::nOtherPbs, MillePedeFileConverter_cfg::out, outfile_, outfileMap_, outfileNames_, edm::Handle< T >::product(), sistrip::SpyUtilities::range(), sistrip::SPY_SAMPLES_PER_CHANNEL, spyAPVeToken_, spyL1Token_, spyPedSubtrDigisToken_, spyScopeRawDigisToken_, spyTotCountToken_, sistrip::STRIPS_PER_FEDCH, sistrip::SpyUtilities::threshold(), utility_, and writeCabling_.

◆ bookHistograms()

void SiStripSpyMonitorModule::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  run,
edm::EventSetup const &  eSetup 
)
overrideprivatevirtual

Implements DQMEDAnalyzer.

Definition at line 186 of file SiStripSpyMonitorModule.cc.

188  {
189  ibooker.setCurrentFolder(folderName_);
190 
191  LogInfo("SiStripSpyMonitorModule") << " Histograms will be written in " << folderName_
192  << ". Current folder is : " << ibooker.pwd() << std::endl;
193 
194  edm::ESHandle<TkDetMap> tkDetMapHandle;
195  eSetup.get<TrackerTopologyRcd>().get(tkDetMapHandle);
196  const TkDetMap* tkDetMap = tkDetMapHandle.product();
197 
198  //this propagates dqm_ to the histoclass, must be called !
199  histManager_.bookTopLevelHistograms(ibooker, tkDetMap);
200 
203 
204  //dummy error object
205  SPYHistograms::Errors lError;
206  for (uint16_t lFedId = sistrip::FED_ID_MIN; lFedId <= sistrip::FED_ID_MAX; ++lFedId)
207  histManager_.bookFEDHistograms(ibooker, lFedId, lError, true);
208 }

References SPYHistograms::bookAllFEDHistograms(), SPYHistograms::bookFEDHistograms(), SPYHistograms::bookTopLevelHistograms(), sistrip::FED_ID_MAX, sistrip::FED_ID_MIN, fillAllDetailedHistograms_, folderName_, edm::EventSetup::get(), get, histManager_, edm::ESHandle< T >::product(), dqm::implementation::NavigatorBase::pwd(), and dqm::implementation::NavigatorBase::setCurrentFolder().

◆ dqmBeginRun()

void SiStripSpyMonitorModule::dqmBeginRun ( const edm::Run r,
const edm::EventSetup c 
)
overrideprivatevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 180 of file SiStripSpyMonitorModule.cc.

180  {
181  evt_ = 0;
182  firstHeaderBit_ = 0;
183  firstTrailerBit_ = 0;
184 }

References evt_, firstHeaderBit_, and firstTrailerBit_.

◆ findTwoConsecutive()

edm::DetSetVector< SiStripRawDigi >::detset::const_iterator SiStripSpyMonitorModule::findTwoConsecutive ( const edm::DetSetVector< SiStripRawDigi >::detset &  channelDigis,
const uint16_t  threshold,
uint16_t &  aCounter 
)
private

Definition at line 549 of file SiStripSpyMonitorModule.cc.

550  {
551  const edm::DetSetVector<SiStripRawDigi>::detset::const_iterator endChannelDigis = channelDigis.end();
552  edm::DetSetVector<SiStripRawDigi>::detset::const_iterator lStart = channelDigis.begin() + aCounter;
553 
554  bool foundTrailer = false;
555  // Loop over digis looking for last two above threshold
556  uint8_t aboveThreshold = 0;
557 
558  for (; lStart != endChannelDigis; ++lStart) {
559  if (lStart->adc() > threshold) {
560  aboveThreshold++;
561  } else {
562  aboveThreshold = 0;
563  }
564  if (aboveThreshold == 2) {
565  foundTrailer = true;
566  break;
567  }
568  aCounter++;
569  } //end of loop over digis
570 
571  if (foundTrailer)
572  return lStart;
573  else {
575  return endChannelDigis;
576  }
577 }

References edm::DetSet< T >::begin(), edm::DetSet< T >::end(), sistrip::SPY_SAMPLES_PER_CHANNEL, and remoteMonitoring_LED_IterMethod_cfg::threshold.

Referenced by identifyTickmarks().

◆ hasNegativePedSubtr()

bool SiStripSpyMonitorModule::hasNegativePedSubtr ( const edm::DetSetVector< SiStripRawDigi >::detset &  channelDigis,
uint16_t  aPair 
)
private

Definition at line 504 of file SiStripSpyMonitorModule.cc.

505  {
507  const edm::DetSetVector<SiStripRawDigi>::detset::const_iterator endChannelDigis = channelDigis.end();
508 
509  uint32_t count = 0;
510  for (; iDigi != endChannelDigis; ++iDigi) {
511  const uint16_t val = iDigi->adc();
512  uint16_t lPair = static_cast<uint16_t>(count / sistrip::STRIPS_PER_FEDCH);
513  if (val == 0 && lPair == aPair)
514  return true;
515  count++;
516  }
517 
518  return false;
519 }

References edm::DetSet< T >::begin(), submitPVResolutionJobs::count, edm::DetSet< T >::end(), sistrip::STRIPS_PER_FEDCH, and heppy_batch::val.

Referenced by analyze().

◆ identifyTickmarks()

bool SiStripSpyMonitorModule::identifyTickmarks ( const edm::DetSetVector< SiStripRawDigi >::detset &  channelDigis,
const uint16_t  threshold 
)
private

Definition at line 521 of file SiStripSpyMonitorModule.cc.

522  {
523  //start from the end
525  uint16_t lastPos = sistrip::SPY_SAMPLES_PER_CHANNEL;
526  uint16_t nTrailers = 0;
528 
529  for (; count == 0; count--) {
530  iDigi = findTwoConsecutive(channelDigis, threshold, count);
531  //if found, in different position = 70 before than previous value, go and look 70 before
532  if (iDigi != channelDigis.end() && (lastPos == sistrip::SPY_SAMPLES_PER_CHANNEL || count == lastPos + 1 - 70)) {
533  nTrailers++;
534  lastPos = count - 1;
535  count -= 70;
536  }
537  //else keep looking
538  else
539  count--;
540  }
541 
542  if (nTrailers > 1)
543  LogDebug("SiStripSpyMonitorModule") << " -- Found " << nTrailers << " trailers every 70 clock cycles for channel "
544  << channelDigis.detId() << ", evt " << evt_ << std::endl;
545  //if only one found, should be < 280 otherwise header should have been found and this method would not be called
546  return (nTrailers > 1) || (nTrailers == 1 && lastPos < 280);
547 }

References submitPVResolutionJobs::count, edm::DetSet< T >::detId(), edm::DetSet< T >::end(), evt_, findTwoConsecutive(), LogDebug, sistrip::SPY_SAMPLES_PER_CHANNEL, and remoteMonitoring_LED_IterMethod_cfg::threshold.

Referenced by analyze().

Member Data Documentation

◆ evt_

edm::EventNumber_t SiStripSpyMonitorModule::evt_
private

◆ fillAllDetailedHistograms_

bool SiStripSpyMonitorModule::fillAllDetailedHistograms_
private

Definition at line 96 of file SiStripSpyMonitorModule.cc.

Referenced by bookHistograms().

◆ fillWithEvtNum_

bool SiStripSpyMonitorModule::fillWithEvtNum_
private

Definition at line 98 of file SiStripSpyMonitorModule.cc.

◆ fillWithLocalEvtNum_

bool SiStripSpyMonitorModule::fillWithLocalEvtNum_
private

Definition at line 99 of file SiStripSpyMonitorModule.cc.

Referenced by analyze().

◆ firstHeaderBit_

uint16_t SiStripSpyMonitorModule::firstHeaderBit_
private

Definition at line 102 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and dqmBeginRun().

◆ firstTrailerBit_

uint16_t SiStripSpyMonitorModule::firstTrailerBit_
private

Definition at line 103 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and dqmBeginRun().

◆ folderName_

std::string SiStripSpyMonitorModule::folderName_
private

Definition at line 94 of file SiStripSpyMonitorModule.cc.

Referenced by bookHistograms().

◆ frameQuality_

sistrip::SpyUtilities::FrameQuality SiStripSpyMonitorModule::frameQuality_
private

Definition at line 106 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and SiStripSpyMonitorModule().

◆ histManager_

SPYHistograms SiStripSpyMonitorModule::histManager_
private

Definition at line 101 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), bookHistograms(), and SiStripSpyMonitorModule().

◆ maxDigiRange_

uint32_t SiStripSpyMonitorModule::maxDigiRange_
private

Definition at line 85 of file SiStripSpyMonitorModule.cc.

◆ maxDigitalHigh_

uint32_t SiStripSpyMonitorModule::maxDigitalHigh_
private

Definition at line 89 of file SiStripSpyMonitorModule.cc.

◆ maxDigitalLow_

uint32_t SiStripSpyMonitorModule::maxDigitalLow_
private

Definition at line 87 of file SiStripSpyMonitorModule.cc.

◆ minDigiRange_

uint32_t SiStripSpyMonitorModule::minDigiRange_
private

Definition at line 84 of file SiStripSpyMonitorModule.cc.

◆ minDigitalHigh_

uint32_t SiStripSpyMonitorModule::minDigitalHigh_
private

Definition at line 88 of file SiStripSpyMonitorModule.cc.

◆ minDigitalLow_

uint32_t SiStripSpyMonitorModule::minDigitalLow_
private

Definition at line 86 of file SiStripSpyMonitorModule.cc.

◆ outfile_

std::ofstream SiStripSpyMonitorModule::outfile_[20]
private

◆ outfileMap_

std::map<std::string, unsigned int> SiStripSpyMonitorModule::outfileMap_
private

◆ outfileNames_

std::vector<std::string> SiStripSpyMonitorModule::outfileNames_
private

◆ spyAPVeTag_

edm::InputTag SiStripSpyMonitorModule::spyAPVeTag_
private

Definition at line 78 of file SiStripSpyMonitorModule.cc.

Referenced by SiStripSpyMonitorModule().

◆ spyAPVeToken_

edm::EDGetTokenT<std::vector<uint32_t> > SiStripSpyMonitorModule::spyAPVeToken_
private

Definition at line 82 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and SiStripSpyMonitorModule().

◆ spyL1Tag_

edm::InputTag SiStripSpyMonitorModule::spyL1Tag_
private

Definition at line 76 of file SiStripSpyMonitorModule.cc.

Referenced by SiStripSpyMonitorModule().

◆ spyL1Token_

edm::EDGetTokenT<std::vector<uint32_t> > SiStripSpyMonitorModule::spyL1Token_
private

Definition at line 80 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and SiStripSpyMonitorModule().

◆ spyPedSubtrDigisTag_

edm::InputTag SiStripSpyMonitorModule::spyPedSubtrDigisTag_
private

Definition at line 70 of file SiStripSpyMonitorModule.cc.

Referenced by SiStripSpyMonitorModule().

◆ spyPedSubtrDigisToken_

edm::EDGetTokenT<edm::DetSetVector<SiStripRawDigi> > SiStripSpyMonitorModule::spyPedSubtrDigisToken_
private

Definition at line 73 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and SiStripSpyMonitorModule().

◆ spyScopeRawDigisTag_

edm::InputTag SiStripSpyMonitorModule::spyScopeRawDigisTag_
private

Definition at line 69 of file SiStripSpyMonitorModule.cc.

Referenced by SiStripSpyMonitorModule().

◆ spyScopeRawDigisToken_

edm::EDGetTokenT<edm::DetSetVector<SiStripRawDigi> > SiStripSpyMonitorModule::spyScopeRawDigisToken_
private

Definition at line 72 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and SiStripSpyMonitorModule().

◆ spyTotCountTag_

edm::InputTag SiStripSpyMonitorModule::spyTotCountTag_
private

Definition at line 77 of file SiStripSpyMonitorModule.cc.

Referenced by SiStripSpyMonitorModule().

◆ spyTotCountToken_

edm::EDGetTokenT<std::vector<uint32_t> > SiStripSpyMonitorModule::spyTotCountToken_
private

Definition at line 81 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and SiStripSpyMonitorModule().

◆ utility_

sistrip::SpyUtilities SiStripSpyMonitorModule::utility_
private

Definition at line 105 of file SiStripSpyMonitorModule.cc.

Referenced by analyze().

◆ writeCabling_

bool SiStripSpyMonitorModule::writeCabling_
private

Definition at line 112 of file SiStripSpyMonitorModule.cc.

Referenced by analyze().

SiStripSpyMonitorModule::spyL1Tag_
edm::InputTag spyL1Tag_
Definition: SiStripSpyMonitorModule.cc:76
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
edm::DetSetVector< SiStripRawDigi >
SiStripSpyMonitorModule::spyTotCountToken_
edm::EDGetTokenT< std::vector< uint32_t > > spyTotCountToken_
Definition: SiStripSpyMonitorModule.cc:81
SPYHistograms::ErrorCounters::nHighPb
unsigned int nHighPb
Definition: SPYHistograms.h:26
SPYHistograms::ErrorCounters::nOOS
unsigned int nOOS
Definition: SPYHistograms.h:27
mps_fire.i
i
Definition: mps_fire.py:428
SiStripSpyMonitorModule::findTwoConsecutive
edm::DetSetVector< SiStripRawDigi >::detset::const_iterator findTwoConsecutive(const edm::DetSetVector< SiStripRawDigi >::detset &channelDigis, const uint16_t threshold, uint16_t &aCounter)
Definition: SiStripSpyMonitorModule.cc:549
sistrip::SpyUtilities::Frame::firstTrailerBit
uint16_t firstTrailerBit
Definition: SiStripSpyUtilities.h:31
edm::Handle::product
T const * product() const
Definition: Handle.h:70
SPYHistograms::Errors::hasAPVAddressError1
bool hasAPVAddressError1
Definition: SPYHistograms.h:50
edm::DetSetVector::end
iterator end()
Return the off-the-end iterator.
Definition: DetSetVector.h:325
sistrip::SpyUtilities::Frame::digitalLow
uint16_t digitalLow
Definition: SiStripSpyUtilities.h:28
SPYHistograms::ErrorCounters::nOtherPbs
unsigned int nOtherPbs
Definition: SPYHistograms.h:30
SPYHistograms::ErrorCounters::nMaxSat
unsigned int nMaxSat
Definition: SPYHistograms.h:24
SiStripSpyMonitorModule::firstHeaderBit_
uint16_t firstHeaderBit_
Definition: SiStripSpyMonitorModule.cc:102
SiStripSpyMonitorModule::fillAllDetailedHistograms_
bool fillAllDetailedHistograms_
Definition: SiStripSpyMonitorModule.cc:96
SPYHistograms::ErrorCounters
Definition: SPYHistograms.h:19
SPYHistograms::ErrorCounters::nAPVError
unsigned int nAPVError
Definition: SPYHistograms.h:31
edm::DetSet::begin
iterator begin()
Definition: DetSet.h:57
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
SiStripSpyMonitorModule::identifyTickmarks
bool identifyTickmarks(const edm::DetSetVector< SiStripRawDigi >::detset &channelDigis, const uint16_t threshold)
Definition: SiStripSpyMonitorModule.cc:521
sistrip::SpyUtilities::Frame::apvAddress
std::pair< uint8_t, uint8_t > apvAddress
Definition: SiStripSpyUtilities.h:34
SPYHistograms::ErrorCounters::nAPVAddressError
unsigned int nAPVAddressError
Definition: SPYHistograms.h:32
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
SPYHistograms::fillCountersHistograms
void fillCountersHistograms(const ErrorCounters &aCounter, const double aTime)
Definition: SPYHistograms.cc:86
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
edm::Handle
Definition: AssociativeIterator.h:50
SPYHistograms::Errors::hasAPVAddressError0
bool hasAPVAddressError0
Definition: SPYHistograms.h:49
SiStripSpyMonitorModule::fillWithEvtNum_
bool fillWithEvtNum_
Definition: SiStripSpyMonitorModule.cc:98
SPYHistograms::bookTopLevelHistograms
void bookTopLevelHistograms(DQMStore::IBooker &, const TkDetMap *)
Definition: SPYHistograms.cc:227
SiStripSpyMonitorModule::outfileMap_
std::map< std::string, unsigned int > outfileMap_
Definition: SiStripSpyMonitorModule.cc:110
SiStripSpyMonitorModule::spyAPVeToken_
edm::EDGetTokenT< std::vector< uint32_t > > spyAPVeToken_
Definition: SiStripSpyMonitorModule.cc:82
SiStripSpyMonitorModule::hasNegativePedSubtr
bool hasNegativePedSubtr(const edm::DetSetVector< SiStripRawDigi >::detset &channelDigis, uint16_t aPair)
Definition: SiStripSpyMonitorModule.cc:504
SPYHistograms::ErrorCounters::nLowRange
unsigned int nLowRange
Definition: SPYHistograms.h:21
SPYHistograms::Errors::hasNoData
bool hasNoData
Definition: SPYHistograms.h:38
SPYHistograms::Errors::hasNegPeds
bool hasNegPeds
Definition: SPYHistograms.h:51
sistrip::SPY_SAMPLES_PER_CHANNEL
static const uint16_t SPY_SAMPLES_PER_CHANNEL
Definition: SiStripFEDSpyBuffer.h:23
SPYHistograms::bookAllFEDHistograms
void bookAllFEDHistograms(DQMStore::IBooker &)
Definition: SPYHistograms.cc:680
SiStripSpyMonitorModule::histManager_
SPYHistograms histManager_
Definition: SiStripSpyMonitorModule.cc:101
SiStripSpyMonitorModule::spyPedSubtrDigisToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > spyPedSubtrDigisToken_
Definition: SiStripSpyMonitorModule.cc:73
edm::ESHandle
Definition: DTSurvey.h:22
TkDetMap
Definition: TkDetMap.h:175
submitPVResolutionJobs.count
count
Definition: submitPVResolutionJobs.py:352
SPYHistograms::Errors::hasLowPb
bool hasLowPb
Definition: SPYHistograms.h:43
SPYHistograms::Errors::hasOOS
bool hasOOS
Definition: SPYHistograms.h:45
SPYHistograms::Errors::hasHighPb
bool hasHighPb
Definition: SPYHistograms.h:44
dqm::implementation::NavigatorBase::pwd
virtual std::string pwd()
Definition: DQMStore.cc:16
sistrip::SpyUtilities::extractFrameInfo
static const Frame extractFrameInfo(const edm::DetSetVector< SiStripRawDigi >::detset &channelDigis, bool aPrintDebug=false)
Definition: SiStripSpyUtilities.cc:109
simpleEdmComparison.lName
lName
Definition: simpleEdmComparison.py:125
SPYHistograms::Errors
Definition: SPYHistograms.h:37
SPYHistograms::ErrorCounters::nLowPb
unsigned int nLowPb
Definition: SPYHistograms.h:25
SiStripSpyMonitorModule::outfileNames_
std::vector< std::string > outfileNames_
Definition: SiStripSpyMonitorModule.cc:109
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiStripSpyMonitorModule::frameQuality_
sistrip::SpyUtilities::FrameQuality frameQuality_
Definition: SiStripSpyMonitorModule.cc:106
SPYHistograms::Errors::hasMaxSat
bool hasMaxSat
Definition: SPYHistograms.h:42
SPYHistograms::Errors::hasErrorBit1
bool hasErrorBit1
Definition: SPYHistograms.h:48
FedChannelConnection
Class containning control, module, detector and connection information, at the level of a FED channel...
Definition: FedChannelConnection.h:26
SPYHistograms::fillDetailedHistograms
void fillDetailedHistograms(const Errors &aErr, const sistrip::SpyUtilities::Frame &aFrame, const unsigned int aFedId, const unsigned int aFedChannel)
Definition: SPYHistograms.cc:158
FedChannelConnection::isConnected
bool isConnected() const
Definition: FedChannelConnection.h:197
SPYHistograms::ErrorCounters::nMinZero
unsigned int nMinZero
Definition: SPYHistograms.h:23
FedChannelConnection::detId
const uint32_t & detId() const
Definition: FedChannelConnection.h:213
sistrip::SpyUtilities::range
static const uint16_t range(const Frame &aFrame)
Definition: SiStripSpyUtilities.cc:174
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
SiStripSpyMonitorModule::spyScopeRawDigisToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > spyScopeRawDigisToken_
Definition: SiStripSpyMonitorModule.cc:72
edm::DetSetVector::const_iterator
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:102
sistrip::STRIPS_PER_FEDCH
static const uint16_t STRIPS_PER_FEDCH
Definition: ConstantsForHardwareSystems.h:44
SPYHistograms::ErrorCounters::nNegPeds
unsigned int nNegPeds
Definition: SPYHistograms.h:33
SPYHistograms::ErrorCounters::nHighRange
unsigned int nHighRange
Definition: SPYHistograms.h:22
edm::DetSetVector::find
iterator find(det_id_type id)
Definition: DetSetVector.h:264
iEvent
int iEvent
Definition: GenABIO.cc:224
SiStripSpyMonitorModule::spyTotCountTag_
edm::InputTag spyTotCountTag_
Definition: SiStripSpyMonitorModule.cc:77
SPYHistograms::Errors::hasHighRange
bool hasHighRange
Definition: SPYHistograms.h:40
sistrip::SpyUtilities::threshold
static const uint16_t threshold(const Frame &aFrame)
Definition: SiStripSpyUtilities.cc:181
SPYHistograms::ErrorCounters::nNoData
unsigned int nNoData
Definition: SPYHistograms.h:20
SiStripSpyMonitorModule::spyAPVeTag_
edm::InputTag spyAPVeTag_
Definition: SiStripSpyMonitorModule.cc:78
edm::DetSet::detId
det_id_type detId() const
Definition: DetSet.h:74
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
SiStripSpyMonitorModule::spyPedSubtrDigisTag_
edm::InputTag spyPedSubtrDigisTag_
Definition: SiStripSpyMonitorModule.cc:70
get
#define get
sistrip::SpyUtilities::FrameQuality::maxTickHeight
uint16_t maxTickHeight
Definition: SiStripSpyUtilities.h:43
sistrip::FED_ID_MAX
static const uint16_t FED_ID_MAX
Definition: ConstantsForHardwareSystems.h:22
sistrip::SpyUtilities::FrameQuality::minZeroLight
uint16_t minZeroLight
Definition: SiStripSpyUtilities.h:40
sistrip::SpyUtilities::getCabling
const SiStripFedCabling * getCabling(const edm::EventSetup &)
Updates the cabling object from the DB.
Definition: SiStripSpyUtilities.cc:37
SiStripSpyMonitorModule::outfile_
std::ofstream outfile_[20]
Definition: SiStripSpyMonitorModule.cc:108
SiStripSpyMonitorModule::writeCabling_
bool writeCabling_
Definition: SiStripSpyMonitorModule.cc:112
SPYHistograms::Errors::hasLowRange
bool hasLowRange
Definition: SPYHistograms.h:39
sistrip::SpyUtilities::Frame::firstHeaderBit
uint16_t firstHeaderBit
Definition: SiStripSpyUtilities.h:30
heppy_batch.val
val
Definition: heppy_batch.py:351
sistrip::SpyUtilities::FrameQuality::minDigiRange
uint16_t minDigiRange
Definition: SiStripSpyUtilities.h:38
SiStripSpyMonitorModule::folderName_
std::string folderName_
Definition: SiStripSpyMonitorModule.cc:94
SiStripSpyMonitorModule::evt_
edm::EventNumber_t evt_
Definition: SiStripSpyMonitorModule.cc:91
SPYHistograms::Errors::hasErrorBit0
bool hasErrorBit0
Definition: SPYHistograms.h:47
sistrip::SpyUtilities::Frame::digitalHigh
uint16_t digitalHigh
Definition: SiStripSpyUtilities.h:29
sistrip::SpyUtilities::getMajorityHeader
static void getMajorityHeader(const edm::DetSetVector< SiStripRawDigi > *aInputDigis, uint16_t &firstHeaderBit, bool printResult=true)
Definition: SiStripSpyUtilities.cc:195
cmsBatch.nFiles
nFiles
Definition: cmsBatch.py:308
SPYHistograms::fillFEDHistograms
void fillFEDHistograms(const Errors &aErr, const unsigned int aFedId)
Definition: SPYHistograms.cc:114
sistrip::SpyUtilities::Frame::apvErrorBit
std::pair< bool, bool > apvErrorBit
Definition: SiStripSpyUtilities.h:33
SiStripSpyMonitorModule::fillWithLocalEvtNum_
bool fillWithLocalEvtNum_
Definition: SiStripSpyMonitorModule.cc:99
SPYHistograms::bookFEDHistograms
void bookFEDHistograms(DQMStore::IBooker &, const unsigned int fedId, const Errors &aErr, bool doAll=false)
Definition: SPYHistograms.cc:503
sistrip::FEDCH_PER_FED
static const uint16_t FEDCH_PER_FED
Definition: ConstantsForHardwareSystems.h:30
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
FedChannelConnection::apvPairNumber
uint16_t apvPairNumber() const
Definition: FedChannelConnection.h:230
SPYHistograms::initialise
void initialise(const edm::ParameterSet &iConfig, std::ostringstream *pDebugStream) override
Definition: SPYHistograms.cc:17
cms::Exception
Definition: Exception.h:70
SiStripSpyMonitorModule::spyL1Token_
edm::EDGetTokenT< std::vector< uint32_t > > spyL1Token_
Definition: SiStripSpyMonitorModule.cc:80
edm::DetSet::end
iterator end()
Definition: DetSet.h:58
sistrip::SpyUtilities::Frame
Definition: SiStripSpyUtilities.h:26
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
SiStripSpyMonitorModule::spyScopeRawDigisTag_
edm::InputTag spyScopeRawDigisTag_
Definition: SiStripSpyMonitorModule.cc:69
sistrip::SpyUtilities::FrameQuality::maxZeroLight
uint16_t maxZeroLight
Definition: SiStripSpyUtilities.h:41
remoteMonitoring_LED_IterMethod_cfg.threshold
threshold
Definition: remoteMonitoring_LED_IterMethod_cfg.py:426
sistrip::SpyUtilities::FrameQuality::maxDigiRange
uint16_t maxDigiRange
Definition: SiStripSpyUtilities.h:39
SPYHistograms::Errors::hasMinZero
bool hasMinZero
Definition: SPYHistograms.h:41
SiStripSpyMonitorModule::firstTrailerBit_
uint16_t firstTrailerBit_
Definition: SiStripSpyMonitorModule.cc:103
edm::InputTag
Definition: InputTag.h:15
sistrip::SpyUtilities::FrameQuality::minTickHeight
uint16_t minTickHeight
Definition: SiStripSpyUtilities.h:42
SPYHistograms::Errors::hasOtherPbs
bool hasOtherPbs
Definition: SPYHistograms.h:46
SiStripSpyMonitorModule::utility_
sistrip::SpyUtilities utility_
Definition: SiStripSpyMonitorModule.cc:105
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
edm::DetSet::const_iterator
collection_type::const_iterator const_iterator
Definition: DetSet.h:31