CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
SiStripFEDCheckPlugin Class Reference
Inheritance diagram for SiStripFEDCheckPlugin:
DQMOneEDAnalyzer<> edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 SiStripFEDCheckPlugin (const edm::ParameterSet &)
 
 ~SiStripFEDCheckPlugin () override
 
- Public Member Functions inherited from DQMOneEDAnalyzer<>
void accumulate (edm::Event const &event, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
 DQMOneEDAnalyzer ()
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void doUpdateIfNeeded ()
 
void dqmEndRun (edm::Run const &, edm::EventSetup const &) override
 
void fillFatalError (unsigned int fedId, bool fatalError)
 
void fillNonFatalError (unsigned int fedId, float nonFatalError)
 
void fillPresent (unsigned int fedId, bool present)
 
bool hasFatalError (const FEDRawData &fedData, unsigned int fedId) const
 
bool hasNonFatalError (const FEDRawData &fedData, unsigned int fedId) const
 
void updateCabling (const edm::EventSetup &eventSetup)
 
void updateHistograms ()
 

Private Attributes

const SiStripFedCablingcabling_
 
uint32_t cablingCacheId_
 
bool checkChannelLengths_
 
bool checkChannelStatusBits_
 
bool checkFELengths_
 
bool checkPacketCodes_
 
edm::ParameterSet conf_
 
std::string dirName_
 
bool doPayloadChecks_
 
bool doPLOTfedFatalErrors_
 
bool doPLOTfedNonFatalErrors_
 
bool doPLOTfedsPresent_
 
bool doPLOTnFEDinVsLS_
 
bool doPLOTnFEDinWdataVsLS_
 
unsigned int eventCount_
 
std::vector< unsigned int > fedFatalErrorBinContents_
 
MonitorElementfedFatalErrors_
 
std::vector< unsigned int > fedNonFatalErrorBinContents_
 
MonitorElementfedNonFatalErrors_
 
MonitorElementfedsPresent_
 
std::vector< unsigned int > fedsPresentBinContents_
 
MonitorElementnFEDinVsLS_
 
MonitorElementnFEDinWdataVsLS_
 
bool printDebug_
 
edm::InputTag rawDataTag_
 
edm::EDGetTokenT< FEDRawDataCollectionrawDataToken_
 
unsigned int siStripFedIdMax_
 
unsigned int siStripFedIdMin_
 
unsigned int updateFrequency_
 
bool verbose_
 

Additional Inherited Members

- Public Types inherited from DQMOneEDAnalyzer<>
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from DQMOneEDAnalyzer<>
virtual void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)=0
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMOneEDAnalyzer<>
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Description: DQM source application to produce data integrety histograms for SiStrip data for use in HLT and Prompt reco

Definition at line 53 of file SiStripFEDDataCheck.cc.

Constructor & Destructor Documentation

◆ SiStripFEDCheckPlugin()

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

Definition at line 117 of file SiStripFEDDataCheck.cc.

118  : rawDataTag_(iConfig.getParameter<edm::InputTag>("RawDataTag")),
119  dirName_(iConfig.getUntrackedParameter<std::string>("DirName", "SiStrip/FEDIntegrity/")),
120  printDebug_(iConfig.getUntrackedParameter<bool>("PrintDebugMessages", false)),
121  doPLOTfedsPresent_(iConfig.getParameter<bool>("doPLOTfedsPresent")),
122  doPLOTfedFatalErrors_(iConfig.getParameter<bool>("doPLOTfedFatalErrors")),
123  doPLOTfedNonFatalErrors_(iConfig.getParameter<bool>("doPLOTfedNonFatalErrors")),
124  doPLOTnFEDinVsLS_(iConfig.getParameter<bool>("doPLOTnFEDinVsLS")),
125  doPLOTnFEDinWdataVsLS_(iConfig.getParameter<bool>("doPLOTnFEDinWdataVsLS")),
126  fedsPresent_(nullptr),
127  fedFatalErrors_(nullptr),
128  fedNonFatalErrors_(nullptr),
129  nFEDinVsLS_(nullptr),
130  nFEDinWdataVsLS_(nullptr),
131  updateFrequency_(iConfig.getUntrackedParameter<unsigned int>("HistogramUpdateFrequency", 0)),
135  eventCount_(0),
136  doPayloadChecks_(iConfig.getUntrackedParameter<bool>("DoPayloadChecks", true)),
137  checkChannelLengths_(iConfig.getUntrackedParameter<bool>("CheckChannelLengths", true)),
138  checkPacketCodes_(iConfig.getUntrackedParameter<bool>("CheckChannelPacketCodes", true)),
139  checkFELengths_(iConfig.getUntrackedParameter<bool>("CheckFELengths", true)),
140  checkChannelStatusBits_(iConfig.getUntrackedParameter<bool>("CheckChannelStatus", true)),
141  verbose_(iConfig.getUntrackedParameter<bool>("verbose", false)),
142  cablingCacheId_(0) {
143  rawDataToken_ = consumes<FEDRawDataCollection>(rawDataTag_);
145  std::stringstream ss;
146  ss << "Payload checks are disabled but individual payload checks have been enabled. The following payload checks "
147  "will be skipped: ";
149  ss << "Channel length check, ";
150  if (checkPacketCodes_)
151  ss << "Channel packet code check, ";
153  ss << "Cabled channel status bits checks, ";
154  if (checkFELengths_)
155  ss << "FE Unit legnth check";
156  edm::LogWarning("SiStripFEDCheck") << ss.str();
157  }
158 
161 
162  conf_ = iConfig;
163 }

References checkChannelLengths_, checkChannelStatusBits_, checkFELengths_, checkPacketCodes_, conf_, doPayloadChecks_, FEDNumbering::MAXSiStripFEDID, FEDNumbering::MINSiStripFEDID, printDebug_, rawDataTag_, rawDataToken_, siStripFedIdMax_, siStripFedIdMin_, and contentValuesCheck::ss.

◆ ~SiStripFEDCheckPlugin()

SiStripFEDCheckPlugin::~SiStripFEDCheckPlugin ( )
override

Definition at line 165 of file SiStripFEDDataCheck.cc.

165 {}

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 172 of file SiStripFEDDataCheck.cc.

172  {
173  //Retrieve tracker topology from geometry
174  edm::ESHandle<TrackerTopology> tTopoHandle;
175  iSetup.get<TrackerTopologyRcd>().get(tTopoHandle);
176  const TrackerTopology* const tTopo = tTopoHandle.product();
177 
178  //update cabling
179  updateCabling(iSetup);
180 
181  //get raw data
182  edm::Handle<FEDRawDataCollection> rawDataCollectionHandle;
183  const bool gotData = iEvent.getByToken(rawDataToken_, rawDataCollectionHandle);
184  if (verbose_)
185  std::cout << "[SiStripFEDCheckPlugin::analyze] gotData ? " << (gotData ? "YES" : "NOPE") << std::endl;
186  if (!gotData) {
187  //module is required to silently do nothing when data is not present
188  return;
189  }
190  const FEDRawDataCollection& rawDataCollection = *rawDataCollectionHandle;
191 
192  //FED errors
193  FEDErrors lFedErrors;
194 
195  //loop over siStrip FED IDs
196  size_t nFEDin = 0;
197  size_t nFEDinWdata = 0;
198  for (unsigned int fedId = siStripFedIdMin_; fedId <= siStripFedIdMax_; fedId++) {
199  const FEDRawData& fedData = rawDataCollection.FEDData(fedId);
200 
201  //create an object to fill all errors
202  //third param to false:save time by not initialising anything not used here
203  lFedErrors.initialiseFED(fedId, cabling_, tTopo, false);
204 
205  //check data exists
206  if (!fedData.size() || !fedData.data()) {
207  fillPresent(fedId, false);
208  continue;
209  }
210  if (verbose_)
211  std::cout << "FED " << fedId;
212  if (verbose_)
213  std::cout << " fedData.size(): " << fedData.size();
214  if (verbose_)
215  std::cout << " fedData.data(): " << fedData.data() << std::endl;
216  if (fedData.size())
217  nFEDin++;
218  if (fedData.size() && fedData.data())
219  nFEDinWdata++;
220 
221  //fill buffer present histogram
222  fillPresent(fedId, true);
223 
224  //check for fatal errors
225  //no need for debug output
226  bool hasFatalErrors = false;
227  float rateNonFatal = 0;
228 
229  std::unique_ptr<const sistrip::FEDBuffer> buffer;
230 
231  if (!lFedErrors.fillFatalFEDErrors(fedData, 0)) {
232  hasFatalErrors = true;
233  } else {
234  //need to construct full object to go any further
236  const auto st_buffer = sistrip::preconstructCheckFEDBuffer(fedData, true);
237  if (sistrip::FEDBufferStatusCode::SUCCESS != st_buffer) {
238  throw cms::Exception("FEDBuffer") << st_buffer << " (check debug output for more details)";
239  }
240  auto tmp_buffer = std::make_unique<sistrip::FEDBuffer>(fedData, true);
241  tmp_buffer->findChannels();
242  buffer = std::move(tmp_buffer); // const now
243  if (doPayloadChecks_) {
244  bool channelLengthsOK = checkChannelLengths_ ? buffer->checkChannelLengthsMatchBufferLength() : true;
245  bool channelPacketCodesOK = checkPacketCodes_ ? buffer->checkChannelPacketCodes() : true;
246  bool feLengthsOK = checkFELengths_ ? buffer->checkFEUnitLengths() : true;
247  if (!channelLengthsOK || !channelPacketCodesOK || !feLengthsOK) {
248  hasFatalErrors = true;
249  }
250  }
252  rateNonFatal = lFedErrors.fillNonFatalFEDErrors(buffer.get(), cabling_);
253  }
254  }
255 
256  if (hasFatalErrors) {
257  fillFatalError(fedId, true);
258  if (printDebug_) {
259  if (!buffer.get()) {
260  const auto st_buffer = sistrip::preconstructCheckFEDBuffer(fedData, true);
261  if (sistrip::FEDBufferStatusCode::SUCCESS != st_buffer) {
262  throw cms::Exception("FEDBuffer") << st_buffer << " (check debug output for more details)";
263  }
264  auto tmp_buffer = std::make_unique<sistrip::FEDBuffer>(fedData, true);
265  tmp_buffer->findChannels();
266  buffer = std::move(tmp_buffer); // const now
267  }
268  edm::LogInfo("SiStripFEDCheck") << "Fatal error with FED ID " << fedId << ". Check summary: " << std::endl
269  << buffer->checkSummary() << std::endl;
270  std::stringstream ss;
271  buffer->dump(ss);
272  edm::LogInfo("SiStripFEDCheck") << ss.str();
273  }
274  } else {
275  fillFatalError(fedId, false);
276  //fill non-fatal errors histogram if there were no fatal errors
277  fillNonFatalError(fedId, rateNonFatal);
278  if (printDebug_ && rateNonFatal > 0) {
279  if (!buffer.get()) {
280  const auto st_buffer = sistrip::preconstructCheckFEDBuffer(fedData, true);
281  if (sistrip::FEDBufferStatusCode::SUCCESS != st_buffer) {
282  throw cms::Exception("FEDBuffer") << st_buffer << " (check debug output for more details)";
283  }
284  auto tmp_buffer = std::make_unique<sistrip::FEDBuffer>(fedData, true);
285  tmp_buffer->findChannels();
286  buffer = std::move(tmp_buffer); // const now
287  }
288  edm::LogInfo("SiStripFEDCheck") << "Non-fatal error with FED ID " << fedId << " for " << rateNonFatal
289  << " of the channels. Check summary: " << std::endl
290  << buffer->checkSummary() << std::endl;
291  std::stringstream ss;
292  buffer->dump(ss);
293  edm::LogInfo("SiStripFEDCheck") << ss.str();
294  }
295  }
296  } //loop over FED IDs
297  if (verbose_)
298  std::cout << "nFEDin: " << nFEDin << " nFEDinWdata: " << nFEDinWdata << std::endl;
299  if (doPLOTnFEDinVsLS_)
300  nFEDinVsLS_->Fill(static_cast<double>(iEvent.id().luminosityBlock()), nFEDin);
302  nFEDinWdataVsLS_->Fill(static_cast<double>(iEvent.id().luminosityBlock()), nFEDinWdata);
303 
304  //update histograms if needed
306 }

References edmScanValgrind::buffer, cabling_, checkChannelLengths_, checkChannelStatusBits_, checkFELengths_, checkPacketCodes_, gather_cfg::cout, FEDRawData::data(), doPayloadChecks_, doPLOTnFEDinVsLS_, doPLOTnFEDinWdataVsLS_, doUpdateIfNeeded(), Exception, FEDRawDataCollection::FEDData(), l1tstage2_dqm_sourceclient-live_cfg::fedId, dqm::impl::MonitorElement::Fill(), fillFatalError(), fillNonFatalError(), fillPresent(), edm::EventSetup::get(), get, iEvent, eostools::move(), nFEDinVsLS_, nFEDinWdataVsLS_, sistrip::preconstructCheckFEDBuffer(), printDebug_, edm::ESHandle< T >::product(), rawDataToken_, siStripFedIdMax_, siStripFedIdMin_, FEDRawData::size(), contentValuesCheck::ss, sistrip::SUCCESS, updateCabling(), and verbose_.

◆ bookHistograms()

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

Definition at line 309 of file SiStripFEDDataCheck.cc.

311  {
312  size_t nFED = siStripFedIdMax_ - siStripFedIdMin_ + 1;
313  double xFEDmin = siStripFedIdMin_ - 0.5;
314  double xFEDmax = siStripFedIdMax_ + 0.5;
315 
316  //get DQM store
317  ibooker.setCurrentFolder(dirName_);
318  //book histograms
319  if (doPLOTfedsPresent_) {
320  fedsPresent_ =
321  ibooker.book1D("FEDEntries", "Number of times FED buffer is present in data", nFED, xFEDmin, xFEDmax);
322  fedsPresent_->setAxisTitle("FED-ID", 1);
323  }
324 
325  if (doPLOTfedFatalErrors_) {
326  fedFatalErrors_ = ibooker.book1D("FEDFatal", "Number of fatal errors in FED buffer", nFED, xFEDmin, xFEDmax);
327  fedFatalErrors_->setAxisTitle("FED-ID", 1);
328  }
329 
332  ibooker.book1D("FEDNonFatal", "Number of non fatal errors in FED buffer", nFED, xFEDmin, xFEDmax);
333  fedNonFatalErrors_->setAxisTitle("FED-ID", 1);
334  }
335 
336  int LSBin = conf_.getParameter<int>("LSBin");
337  double LSMin = conf_.getParameter<double>("LSMin");
338  double LSMax = conf_.getParameter<double>("LSMax");
339 
340  if (doPLOTnFEDinVsLS_) {
341  nFEDinVsLS_ =
342  ibooker.bookProfile("nFEDinVsLS", "number of FED in Vs LS", LSBin, LSMin, LSMax, nFED, xFEDmin, xFEDmax);
343  nFEDinVsLS_->setAxisTitle("LS", 1);
344  nFEDinVsLS_->setAxisTitle("FED-ID", 2);
345  }
346 
348  nFEDinWdataVsLS_ = ibooker.bookProfile(
349  "nFEDinWdataVsLS", "number of FED in (with data) Vs LS", LSBin, LSMin, LSMax, nFED, xFEDmin, xFEDmax);
350  nFEDinWdataVsLS_->setAxisTitle("LS", 1);
351  nFEDinWdataVsLS_->setAxisTitle("FED-ID", 2);
352  }
353 }

References conf_, dirName_, doPLOTfedFatalErrors_, doPLOTfedNonFatalErrors_, doPLOTfedsPresent_, doPLOTnFEDinVsLS_, doPLOTnFEDinWdataVsLS_, fedFatalErrors_, fedNonFatalErrors_, fedsPresent_, edm::ParameterSet::getParameter(), siStripFEDCheck_cfi::LSBin, siStripFEDCheck_cfi::LSMax, siStripFEDCheck_cfi::LSMin, nFEDinVsLS_, nFEDinWdataVsLS_, dqm::impl::MonitorElement::setAxisTitle(), siStripFedIdMax_, and siStripFedIdMin_.

◆ doUpdateIfNeeded()

void SiStripFEDCheckPlugin::doUpdateIfNeeded ( )
private

Definition at line 400 of file SiStripFEDDataCheck.cc.

400  {
401  eventCount_++;
404  }
405 }

References eventCount_, updateFrequency_, and updateHistograms().

Referenced by analyze().

◆ dqmEndRun()

void SiStripFEDCheckPlugin::dqmEndRun ( edm::Run const &  ,
edm::EventSetup const &   
)
overrideprivatevirtual

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 356 of file SiStripFEDDataCheck.cc.

356 { updateHistograms(); }

References updateHistograms().

◆ fillDescriptions()

void SiStripFEDCheckPlugin::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 435 of file SiStripFEDDataCheck.cc.

435  {
437 
438  // Directory to book histograms in
439  desc.addUntracked<std::string>("DirName", "SiStrip/FEDIntegrity/");
440  // Raw data collection
441  desc.add<edm::InputTag>("RawDataTag", edm::InputTag("source"));
442  // Number of events to cache info before updating histograms
443  // (set to zero to disable cache)
444  // HistogramUpdateFrequency = cms.untracked.uint32(0),
445  desc.addUntracked<unsigned int>("HistogramUpdateFrequency", 1000);
446  // Print info about errors buffer dumps to LogInfo(SiStripFEDCheck)
447  desc.addUntracked<bool>("PrintDebugMessages", false);
448  desc.add<bool>("doPLOTfedsPresent", true);
449  desc.add<bool>("doPLOTfedFatalErrors", true);
450  desc.add<bool>("doPLOTfedNonFatalErrors", true);
451  desc.add<bool>("doPLOTnFEDinVsLS", false);
452  desc.add<bool>("doPLOTnFEDinWdataVsLS", false);
453  // Write the DQM store to a file (DQMStore.root) at the end of the run
454  desc.addUntracked<bool>("WriteDQMStore", false);
455  // Use to disable all payload (non-fatal) checks
456  desc.addUntracked<bool>("DoPayloadChecks", true);
457  // Use to disable check on channel lengths
458  desc.addUntracked<bool>("CheckChannelLengths", true);
459  // Use to disable check on channel packet codes
460  desc.addUntracked<bool>("CheckChannelPacketCodes", true);
461  // Use to disable check on FE unit lengths in full debug header
462  desc.addUntracked<bool>("CheckFELengths", true);
463  // Use to disable check on channel status bits
464  desc.addUntracked<bool>("CheckChannelStatus", true);
465  desc.add<int>("LSBin", 5000);
466  desc.add<double>("LSMin", 0.5);
467  desc.add<double>("LSMax", 5000.5);
468 
469  descriptions.addDefault(desc);
470 }

References edm::ParameterSetDescription::add(), edm::ConfigurationDescriptions::addDefault(), edm::ParameterSetDescription::addUntracked(), HLT_2018_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ fillFatalError()

void SiStripFEDCheckPlugin::fillFatalError ( unsigned int  fedId,
bool  fatalError 
)
inlineprivate

Definition at line 377 of file SiStripFEDDataCheck.cc.

377  {
378  if (updateFrequency_) {
379  if (fatalError)
381  } else {
382  //fedFatalErrors_->Fill( fatalError ? 1 : 0 );
383  if (fatalError)
386  }
387 }

References doPLOTfedFatalErrors_, fedFatalErrorBinContents_, fedFatalErrors_, l1tstage2_dqm_sourceclient-live_cfg::fedId, dqm::impl::MonitorElement::Fill(), and updateFrequency_.

Referenced by analyze().

◆ fillNonFatalError()

void SiStripFEDCheckPlugin::fillNonFatalError ( unsigned int  fedId,
float  nonFatalError 
)
inlineprivate

Definition at line 389 of file SiStripFEDDataCheck.cc.

389  {
390  if (updateFrequency_) {
391  if (nonFatalError > 0)
392  fedNonFatalErrorBinContents_[fedId]++; //nonFatalError;
393  } else {
394  if (nonFatalError > 0)
397  }
398 }

References doPLOTfedNonFatalErrors_, l1tstage2_dqm_sourceclient-live_cfg::fedId, fedNonFatalErrorBinContents_, fedNonFatalErrors_, dqm::impl::MonitorElement::Fill(), and updateFrequency_.

Referenced by analyze().

◆ fillPresent()

void SiStripFEDCheckPlugin::fillPresent ( unsigned int  fedId,
bool  present 
)
inlineprivate

◆ hasFatalError()

bool SiStripFEDCheckPlugin::hasFatalError ( const FEDRawData fedData,
unsigned int  fedId 
) const
private

◆ hasNonFatalError()

bool SiStripFEDCheckPlugin::hasNonFatalError ( const FEDRawData fedData,
unsigned int  fedId 
) const
private

◆ updateCabling()

void SiStripFEDCheckPlugin::updateCabling ( const edm::EventSetup eventSetup)
private

Definition at line 358 of file SiStripFEDDataCheck.cc.

358  {
359  uint32_t currentCacheId = eventSetup.get<SiStripFedCablingRcd>().cacheIdentifier();
360  if (cablingCacheId_ != currentCacheId) {
361  edm::ESHandle<SiStripFedCabling> cablingHandle;
362  eventSetup.get<SiStripFedCablingRcd>().get(cablingHandle);
363  cabling_ = cablingHandle.product();
364  cablingCacheId_ = currentCacheId;
365  }
366 }

References cabling_, cablingCacheId_, edm::EventSetup::get(), get, and edm::ESHandle< T >::product().

Referenced by analyze().

◆ updateHistograms()

void SiStripFEDCheckPlugin::updateHistograms ( )
private

Definition at line 407 of file SiStripFEDDataCheck.cc.

407  {
408  //if the cache is not being used then do nothing
409  if (!updateFrequency_)
410  return;
411  unsigned int entriesFedsPresent = 0;
412  unsigned int entriesFatalErrors = 0;
413  unsigned int entriesNonFatalErrors = 0;
414  for (unsigned int fedId = siStripFedIdMin_, bin = 1; fedId < siStripFedIdMax_ + 1; fedId++, bin++) {
415  unsigned int fedsPresentBin = fedsPresentBinContents_[fedId];
416  if (doPLOTfedsPresent_)
417  fedsPresent_->getTH1()->SetBinContent(bin, fedsPresentBin);
418  entriesFedsPresent += fedsPresentBin;
419  unsigned int fedFatalErrorsBin = fedFatalErrorBinContents_[fedId];
421  fedFatalErrors_->getTH1()->SetBinContent(bin, fedFatalErrorsBin);
422  entriesFatalErrors += fedFatalErrorsBin;
423  unsigned int fedNonFatalErrorsBin = fedNonFatalErrorBinContents_[fedId];
425  fedNonFatalErrors_->getTH1()->SetBinContent(bin, fedNonFatalErrorsBin);
426  entriesNonFatalErrors += fedNonFatalErrorsBin;
427  }
428  if (doPLOTfedsPresent_)
429  fedsPresent_->getTH1()->SetEntries(entriesFedsPresent);
431  fedFatalErrors_->getTH1()->SetEntries(entriesFatalErrors);
433  fedNonFatalErrors_->getTH1()->SetEntries(entriesNonFatalErrors);
434 }

References newFWLiteAna::bin, doPLOTfedFatalErrors_, doPLOTfedNonFatalErrors_, doPLOTfedsPresent_, fedFatalErrorBinContents_, fedFatalErrors_, l1tstage2_dqm_sourceclient-live_cfg::fedId, fedNonFatalErrorBinContents_, fedNonFatalErrors_, fedsPresent_, fedsPresentBinContents_, dqm::impl::MonitorElement::getTH1(), siStripFedIdMax_, siStripFedIdMin_, and updateFrequency_.

Referenced by doUpdateIfNeeded(), and dqmEndRun().

Member Data Documentation

◆ cabling_

const SiStripFedCabling* SiStripFEDCheckPlugin::cabling_
private

Definition at line 105 of file SiStripFEDDataCheck.cc.

Referenced by analyze(), and updateCabling().

◆ cablingCacheId_

uint32_t SiStripFEDCheckPlugin::cablingCacheId_
private

Definition at line 104 of file SiStripFEDDataCheck.cc.

Referenced by updateCabling().

◆ checkChannelLengths_

bool SiStripFEDCheckPlugin::checkChannelLengths_
private

Definition at line 101 of file SiStripFEDDataCheck.cc.

Referenced by analyze(), and SiStripFEDCheckPlugin().

◆ checkChannelStatusBits_

bool SiStripFEDCheckPlugin::checkChannelStatusBits_
private

Definition at line 101 of file SiStripFEDDataCheck.cc.

Referenced by analyze(), and SiStripFEDCheckPlugin().

◆ checkFELengths_

bool SiStripFEDCheckPlugin::checkFELengths_
private

Definition at line 101 of file SiStripFEDDataCheck.cc.

Referenced by analyze(), and SiStripFEDCheckPlugin().

◆ checkPacketCodes_

bool SiStripFEDCheckPlugin::checkPacketCodes_
private

Definition at line 101 of file SiStripFEDDataCheck.cc.

Referenced by analyze(), and SiStripFEDCheckPlugin().

◆ conf_

edm::ParameterSet SiStripFEDCheckPlugin::conf_
private

Definition at line 110 of file SiStripFEDDataCheck.cc.

Referenced by bookHistograms(), and SiStripFEDCheckPlugin().

◆ dirName_

std::string SiStripFEDCheckPlugin::dirName_
private

Definition at line 78 of file SiStripFEDDataCheck.cc.

Referenced by bookHistograms().

◆ doPayloadChecks_

bool SiStripFEDCheckPlugin::doPayloadChecks_
private

Definition at line 101 of file SiStripFEDDataCheck.cc.

Referenced by analyze(), and SiStripFEDCheckPlugin().

◆ doPLOTfedFatalErrors_

bool SiStripFEDCheckPlugin::doPLOTfedFatalErrors_
private

Definition at line 82 of file SiStripFEDDataCheck.cc.

Referenced by bookHistograms(), fillFatalError(), and updateHistograms().

◆ doPLOTfedNonFatalErrors_

bool SiStripFEDCheckPlugin::doPLOTfedNonFatalErrors_
private

Definition at line 82 of file SiStripFEDDataCheck.cc.

Referenced by bookHistograms(), fillNonFatalError(), and updateHistograms().

◆ doPLOTfedsPresent_

bool SiStripFEDCheckPlugin::doPLOTfedsPresent_
private

Definition at line 82 of file SiStripFEDDataCheck.cc.

Referenced by bookHistograms(), fillPresent(), and updateHistograms().

◆ doPLOTnFEDinVsLS_

bool SiStripFEDCheckPlugin::doPLOTnFEDinVsLS_
private

Definition at line 83 of file SiStripFEDDataCheck.cc.

Referenced by analyze(), and bookHistograms().

◆ doPLOTnFEDinWdataVsLS_

bool SiStripFEDCheckPlugin::doPLOTnFEDinWdataVsLS_
private

Definition at line 83 of file SiStripFEDDataCheck.cc.

Referenced by analyze(), and bookHistograms().

◆ eventCount_

unsigned int SiStripFEDCheckPlugin::eventCount_
private

Definition at line 98 of file SiStripFEDDataCheck.cc.

Referenced by doUpdateIfNeeded().

◆ fedFatalErrorBinContents_

std::vector<unsigned int> SiStripFEDCheckPlugin::fedFatalErrorBinContents_
private

Definition at line 96 of file SiStripFEDDataCheck.cc.

Referenced by fillFatalError(), and updateHistograms().

◆ fedFatalErrors_

MonitorElement* SiStripFEDCheckPlugin::fedFatalErrors_
private

Definition at line 85 of file SiStripFEDDataCheck.cc.

Referenced by bookHistograms(), fillFatalError(), and updateHistograms().

◆ fedNonFatalErrorBinContents_

std::vector<unsigned int> SiStripFEDCheckPlugin::fedNonFatalErrorBinContents_
private

Definition at line 97 of file SiStripFEDDataCheck.cc.

Referenced by fillNonFatalError(), and updateHistograms().

◆ fedNonFatalErrors_

MonitorElement* SiStripFEDCheckPlugin::fedNonFatalErrors_
private

Definition at line 86 of file SiStripFEDDataCheck.cc.

Referenced by bookHistograms(), fillNonFatalError(), and updateHistograms().

◆ fedsPresent_

MonitorElement* SiStripFEDCheckPlugin::fedsPresent_
private

Definition at line 84 of file SiStripFEDDataCheck.cc.

Referenced by bookHistograms(), fillPresent(), and updateHistograms().

◆ fedsPresentBinContents_

std::vector<unsigned int> SiStripFEDCheckPlugin::fedsPresentBinContents_
private

Definition at line 95 of file SiStripFEDDataCheck.cc.

Referenced by fillPresent(), and updateHistograms().

◆ nFEDinVsLS_

MonitorElement* SiStripFEDCheckPlugin::nFEDinVsLS_
private

Definition at line 88 of file SiStripFEDDataCheck.cc.

Referenced by analyze(), and bookHistograms().

◆ nFEDinWdataVsLS_

MonitorElement* SiStripFEDCheckPlugin::nFEDinWdataVsLS_
private

Definition at line 89 of file SiStripFEDDataCheck.cc.

Referenced by analyze(), and bookHistograms().

◆ printDebug_

bool SiStripFEDCheckPlugin::printDebug_
private

Definition at line 79 of file SiStripFEDDataCheck.cc.

Referenced by analyze(), and SiStripFEDCheckPlugin().

◆ rawDataTag_

edm::InputTag SiStripFEDCheckPlugin::rawDataTag_
private

Definition at line 76 of file SiStripFEDDataCheck.cc.

Referenced by SiStripFEDCheckPlugin().

◆ rawDataToken_

edm::EDGetTokenT<FEDRawDataCollection> SiStripFEDCheckPlugin::rawDataToken_
private

Definition at line 77 of file SiStripFEDDataCheck.cc.

Referenced by analyze(), and SiStripFEDCheckPlugin().

◆ siStripFedIdMax_

unsigned int SiStripFEDCheckPlugin::siStripFedIdMax_
private

◆ siStripFedIdMin_

unsigned int SiStripFEDCheckPlugin::siStripFedIdMin_
private

◆ updateFrequency_

unsigned int SiStripFEDCheckPlugin::updateFrequency_
private

◆ verbose_

bool SiStripFEDCheckPlugin::verbose_
private

Definition at line 101 of file SiStripFEDDataCheck.cc.

Referenced by analyze().

edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
SiStripFEDCheckPlugin::fedFatalErrorBinContents_
std::vector< unsigned int > fedFatalErrorBinContents_
Definition: SiStripFEDDataCheck.cc:96
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
SiStripFEDCheckPlugin::fedsPresentBinContents_
std::vector< unsigned int > fedsPresentBinContents_
Definition: SiStripFEDDataCheck.cc:95
SiStripFEDCheckPlugin::updateFrequency_
unsigned int updateFrequency_
Definition: SiStripFEDDataCheck.cc:93
SiStripFEDCheckPlugin::fillNonFatalError
void fillNonFatalError(unsigned int fedId, float nonFatalError)
Definition: SiStripFEDDataCheck.cc:389
FEDRawDataCollection
Definition: FEDRawDataCollection.h:18
TrackerTopology
Definition: TrackerTopology.h:16
SiStripFEDCheckPlugin::siStripFedIdMax_
unsigned int siStripFedIdMax_
Definition: SiStripFEDDataCheck.cc:108
SiStripFEDCheckPlugin::checkFELengths_
bool checkFELengths_
Definition: SiStripFEDDataCheck.cc:101
gather_cfg.cout
cout
Definition: gather_cfg.py:144
edm::LogInfo
Definition: MessageLogger.h:254
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
SiStripFEDCheckPlugin::doPLOTfedFatalErrors_
bool doPLOTfedFatalErrors_
Definition: SiStripFEDDataCheck.cc:82
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
SiStripFEDCheckPlugin::doPLOTnFEDinWdataVsLS_
bool doPLOTnFEDinWdataVsLS_
Definition: SiStripFEDDataCheck.cc:83
edm::Handle
Definition: AssociativeIterator.h:50
SiStripFEDCheckPlugin::checkPacketCodes_
bool checkPacketCodes_
Definition: SiStripFEDDataCheck.cc:101
FEDRawData::data
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:24
SiStripFEDCheckPlugin::doPLOTnFEDinVsLS_
bool doPLOTnFEDinVsLS_
Definition: SiStripFEDDataCheck.cc:83
FEDRawData
Definition: FEDRawData.h:19
SiStripFEDCheckPlugin::cabling_
const SiStripFedCabling * cabling_
Definition: SiStripFEDDataCheck.cc:105
edmScanValgrind.buffer
buffer
Definition: edmScanValgrind.py:171
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
SiStripFedCablingRcd
Definition: SiStripCondDataRecords.h:22
SiStripFEDCheckPlugin::checkChannelStatusBits_
bool checkChannelStatusBits_
Definition: SiStripFEDDataCheck.cc:101
SiStripFEDCheckPlugin::fedFatalErrors_
MonitorElement * fedFatalErrors_
Definition: SiStripFEDDataCheck.cc:85
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
SiStripFEDCheckPlugin::dirName_
std::string dirName_
Definition: SiStripFEDDataCheck.cc:78
edm::ESHandle< TrackerTopology >
SiStripFEDCheckPlugin::fedNonFatalErrorBinContents_
std::vector< unsigned int > fedNonFatalErrorBinContents_
Definition: SiStripFEDDataCheck.cc:97
SiStripFEDCheckPlugin::updateCabling
void updateCabling(const edm::EventSetup &eventSetup)
Definition: SiStripFEDDataCheck.cc:358
SiStripFEDCheckPlugin::fillPresent
void fillPresent(unsigned int fedId, bool present)
Definition: SiStripFEDDataCheck.cc:368
FEDRawDataCollection::FEDData
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
Definition: FEDRawDataCollection.cc:19
dqm::impl::MonitorElement::getTH1
virtual TH1 * getTH1()
Definition: MonitorElement.cc:969
SiStripFEDCheckPlugin::checkChannelLengths_
bool checkChannelLengths_
Definition: SiStripFEDDataCheck.cc:101
SiStripFEDCheckPlugin::doUpdateIfNeeded
void doUpdateIfNeeded()
Definition: SiStripFEDDataCheck.cc:400
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::LogWarning
Definition: MessageLogger.h:141
siStripFEDCheck_cfi.LSBin
LSBin
Definition: siStripFEDCheck_cfi.py:32
edm::ParameterSetDescription::addUntracked
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:100
FEDNumbering::MAXSiStripFEDID
Definition: FEDNumbering.h:30
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
SiStripFEDCheckPlugin::cablingCacheId_
uint32_t cablingCacheId_
Definition: SiStripFEDDataCheck.cc:104
SiStripFEDCheckPlugin::fedsPresent_
MonitorElement * fedsPresent_
Definition: SiStripFEDDataCheck.cc:84
SiStripFEDCheckPlugin::updateHistograms
void updateHistograms()
Definition: SiStripFEDDataCheck.cc:407
iEvent
int iEvent
Definition: GenABIO.cc:224
sistrip::FEDBufferStatusCode::SUCCESS
SiStripFEDCheckPlugin::verbose_
bool verbose_
Definition: SiStripFEDDataCheck.cc:101
l1tstage2_dqm_sourceclient-live_cfg.fedId
fedId
Definition: l1tstage2_dqm_sourceclient-live_cfg.py:82
SiStripFEDCheckPlugin::siStripFedIdMin_
unsigned int siStripFedIdMin_
Definition: SiStripFEDDataCheck.cc:107
get
#define get
SiStripFEDCheckPlugin::rawDataToken_
edm::EDGetTokenT< FEDRawDataCollection > rawDataToken_
Definition: SiStripFEDDataCheck.cc:77
FEDRawData::size
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:45
SiStripFEDCheckPlugin::doPLOTfedsPresent_
bool doPLOTfedsPresent_
Definition: SiStripFEDDataCheck.cc:82
SiStripFEDCheckPlugin::doPayloadChecks_
bool doPayloadChecks_
Definition: SiStripFEDDataCheck.cc:101
newFWLiteAna.bin
bin
Definition: newFWLiteAna.py:161
sistrip::preconstructCheckFEDBuffer
FEDBufferStatusCode preconstructCheckFEDBuffer(const FEDRawData &fedBuffer, bool allowBadBuffer=false)
Definition: SiStripFEDBuffer.h:131
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
SiStripFEDCheckPlugin::rawDataTag_
edm::InputTag rawDataTag_
Definition: SiStripFEDDataCheck.cc:76
SiStripFEDCheckPlugin::doPLOTfedNonFatalErrors_
bool doPLOTfedNonFatalErrors_
Definition: SiStripFEDDataCheck.cc:82
SiStripFEDCheckPlugin::fillFatalError
void fillFatalError(unsigned int fedId, bool fatalError)
Definition: SiStripFEDDataCheck.cc:377
eostools.move
def move(src, dest)
Definition: eostools.py:511
Exception
Definition: hltDiff.cc:246
SiStripFEDCheckPlugin::fedNonFatalErrors_
MonitorElement * fedNonFatalErrors_
Definition: SiStripFEDDataCheck.cc:86
SiStripFEDCheckPlugin::eventCount_
unsigned int eventCount_
Definition: SiStripFEDDataCheck.cc:98
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
siStripFEDCheck_cfi.LSMin
LSMin
Definition: siStripFEDCheck_cfi.py:33
SiStripFEDCheckPlugin::conf_
edm::ParameterSet conf_
Definition: SiStripFEDDataCheck.cc:110
siStripFEDCheck_cfi.LSMax
LSMax
Definition: siStripFEDCheck_cfi.py:34
SiStripFEDCheckPlugin::nFEDinVsLS_
MonitorElement * nFEDinVsLS_
Definition: SiStripFEDDataCheck.cc:88
edm::ConfigurationDescriptions::addDefault
void addDefault(ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:99
SiStripFEDCheckPlugin::nFEDinWdataVsLS_
MonitorElement * nFEDinWdataVsLS_
Definition: SiStripFEDDataCheck.cc:89
dqm::impl::MonitorElement::setAxisTitle
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:800
edm::InputTag
Definition: InputTag.h:15
SiStripFEDCheckPlugin::printDebug_
bool printDebug_
Definition: SiStripFEDDataCheck.cc:79
FEDNumbering::MINSiStripFEDID
Definition: FEDNumbering.h:29