|
void | analyze (const edm::Event &, const edm::EventSetup &) override |
|
void | bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override |
|
virtual void | bookMEs (DQMStore::IBooker &) |
|
virtual void | buildStructure (edm::EventSetup const &) |
|
void | dqmBeginRun (const edm::Run &, edm::EventSetup const &) override |
|
| SiPixelRawDataErrorSource (const edm::ParameterSet &conf) |
|
| ~SiPixelRawDataErrorSource () override |
|
void | accumulate (edm::Event const &event, edm::EventSetup const &setup) override |
|
void | beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final |
|
| DQMOneLumiEDAnalyzer () |
|
void | endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final |
|
void | endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final |
|
bool | getCanSaveByLumi () override |
|
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 |
|
| EDProducer ()=default |
|
SerialTaskQueue * | globalLuminosityBlocksQueue () final |
|
SerialTaskQueue * | globalRunsQueue () 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 |
|
| EDProducerBase () |
|
ModuleDescription const & | moduleDescription () const |
|
bool | wantsStreamLuminosityBlocks () const |
|
bool | wantsStreamRuns () const |
|
| ~EDProducerBase () override |
|
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 |
|
std::vector< ConsumesInfo > | consumesInfo () 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 |
|
EDConsumerBase & | operator= (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 const std::string & | baseType () |
|
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
|
static void | prevalidate (ConfigurationDescriptions &descriptions) |
|
virtual void | dqmBeginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) |
|
virtual void | dqmEndLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) |
|
virtual void | bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)=0 |
|
virtual void | dqmEndRun (edm::Run const &, edm::EventSetup const &) |
|
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 () |
|
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) |
|
edm::EDPutTokenT< DQMToken > | lumiToken_ |
|
edm::EDPutTokenT< DQMToken > | runToken_ |
|
Description: Produces histograms for error information generated at the raw2digi stage for the pixel tracker.
Usage: Takes a DetSetVector<SiPixelRawDataError> as input, and uses it to populate a folder hierarchy (organized by detId) with histograms containing information about the errors. Uses SiPixelRawDataErrorModule class to book and fill individual folders. Note that this source is different than other DQM sources in the creation of an unphysical detId folder (detId=0xffffffff) to hold information about errors for which there is no detId available (except the dummy detId given to it at raw2digi).
Definition at line 52 of file SiPixelRawDataErrorSource.h.
Reimplemented from DQMOneEDAnalyzer< edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, Args... >.
Definition at line 104 of file SiPixelRawDataErrorSource.cc.
111 if (!rawDataHandle.
isValid()) {
112 edm::LogInfo(
"SiPixelRawDataErrorSource") <<
"inputsource is empty";
115 for (
int i = 0;
i != 40;
i++) {
124 if (!
input.isValid())
127 int lumiSection = (
int)
iEvent.luminosityBlock();
129 int nEventBPIXModuleErrors = 0;
130 int nEventFPIXModuleErrors = 0;
131 int nEventBPIXFEDErrors = 0;
132 int nEventFPIXFEDErrors = 0;
135 std::map<uint32_t, SiPixelRawDataErrorModule *>::iterator struct_iter;
136 std::map<uint32_t, SiPixelRawDataErrorModule *>::iterator struct_iter2;
140 nEventBPIXModuleErrors = nEventBPIXModuleErrors + numberOfModuleErrors;
142 nEventFPIXModuleErrors = nEventFPIXModuleErrors + numberOfModuleErrors;
145 nErrors = nErrors + numberOfModuleErrors;
149 int numberOfFEDErrors = (*struct_iter2).second->fillFED(*
input, &
meMapFEDs_);
150 if ((*struct_iter2).first <= 31)
151 nEventBPIXFEDErrors = nEventBPIXFEDErrors + numberOfFEDErrors;
153 if ((*struct_iter2).first >= 32 && (*struct_iter2).first <= 39)
154 nEventFPIXFEDErrors = nEventFPIXFEDErrors + numberOfFEDErrors;
157 nErrors = nErrors + numberOfFEDErrors;
164 if (nEventBPIXModuleErrors + nEventBPIXFEDErrors > 0)
166 if (nEventFPIXModuleErrors + nEventFPIXFEDErrors > 0)
References bladeOn, byLumiErrors, FEDRawData::data(), errorRate, eventNo, fedcounter, FEDRawDataCollection::FEDData(), dqm::impl::MonitorElement::Fill(), mps_fire::i, iEvent, input, inputSourceToken_, createfilelist::int, edm::HandleBase::isValid(), ladOn, meMapFEDs_, modOn, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, dqm::impl::MonitorElement::setBinContent(), FEDRawData::size(), slowDown, src_, DetId::subdetId(), theFEDStructure, and thePixelStructure.
Create folder tree and book histograms
Create folder tree for errors without detId and book histograms
Definition at line 280 of file SiPixelRawDataErrorSource.cc.
281 iBooker.setCurrentFolder(
topFolderName_ +
"/EventInfo/DAQContents");
283 sprintf(title0,
"FED isPresent;FED ID;isPresent");
284 fedcounter = iBooker.book1D(
"fedcounter", title0, 40, -0.5, 39.5);
285 iBooker.setCurrentFolder(
topFolderName_ +
"/AdditionalPixelErrors");
287 sprintf(
title,
"By-LumiSection Error counters");
293 sprintf(title1,
"Errors per LumiSection;LumiSection;NErrors");
294 errorRate = iBooker.book1D(
"errorRate", title1, 5000, 0., 5000.);
296 std::map<uint32_t, SiPixelRawDataErrorModule *>::iterator struct_iter;
297 std::map<uint32_t, SiPixelRawDataErrorModule *>::iterator struct_iter2;
305 if (!theSiPixelFolder.setModuleFolder(iBooker, (*struct_iter).first, 0,
isUpgrade)) {
309 throw cms::Exception(
"LogicError") <<
"[SiPixelRawDataErrorSource::bookMEs] Creation of DQM folder "
315 if (!theSiPixelFolder.setModuleFolder(iBooker, (*struct_iter).first, 1,
isUpgrade)) {
316 LogDebug(
"PixelDQM") <<
"PROBLEM WITH LADDER-FOLDER\n";
321 if (!theSiPixelFolder.setModuleFolder(iBooker, (*struct_iter).first, 4,
isUpgrade)) {
322 LogDebug(
"PixelDQM") <<
"PROBLEM WITH BLADE-FOLDER\n";
330 if (!theSiPixelFolder.setFedFolder(iBooker, (*struct_iter2).first)) {
331 throw cms::Exception(
"LogicError") <<
"[SiPixelRawDataErrorSource::bookMEs] Creation of DQM folder "
342 for (uint32_t
id = 0;
id < 40;
id++) {
347 hid = theHistogramId->setHistoId(
"errorType",
id);
348 meErrorType_[
id] = iBooker.book1D(hid,
"Type of errors", 15, 24.5, 39.5);
351 hid = theHistogramId->setHistoId(
"NErrors",
id);
352 meNErrors_[
id] = iBooker.book1D(hid,
"Number of errors", 36, 0., 36.);
357 hid = theHistogramId->setHistoId(
"fullType",
id);
358 meFullType_[
id] = iBooker.book1D(hid,
"Type of FIFO full", 7, 0.5, 7.5);
364 hid = theHistogramId->setHistoId(
"TBMMessage",
id);
365 meTBMMessage_[
id] = iBooker.book1D(hid,
"TBM trailer message", 8, -0.5, 7.5);
370 hid = theHistogramId->setHistoId(
"TBMType",
id);
371 meTBMType_[
id] = iBooker.book1D(hid,
"Type of TBM trailer", 5, -0.5, 4.5);
374 hid = theHistogramId->setHistoId(
"EvtNbr",
id);
375 meEvtNbr_[
id] = iBooker.book1D(hid,
"Event number", 1, 0, 1);
377 hid = theHistogramId->setHistoId(
"evtSize",
id);
378 meEvtSize_[
id] = iBooker.book1D(hid,
"Event size", 1, 0, 1);
380 hid = theHistogramId->setHistoId(
"FedChNErr",
id);
381 meFedChNErr_[
id] = iBooker.book1D(hid,
"Number of errors per FED channel", 37, 0, 37);
384 hid = theHistogramId->setHistoId(
"FedChLErr",
id);
385 meFedChLErr_[
id] = iBooker.book1D(hid,
"Last error per FED channel", 37, 0, 37);
388 hid = theHistogramId->setHistoId(
"FedETypeNErr",
id);
389 meFedETypeNErr_[
id] = iBooker.book1D(hid,
"Number of errors per type", 21, 0, 21);
References bladeOn, byLumiErrors, conf_, errorRate, Exception, fedcounter, edm::ParameterSet::getParameter(), triggerObjects_cff::id, isPIB, isUpgrade, ladOn, LogDebug, meErrorType_, meEvtNbr_, meEvtSize_, meFedChLErr_, meFedChNErr_, meFedETypeNErr_, meFullType_, meMapFEDs_, meNErrors_, meTBMMessage_, meTBMType_, modOn, dqm::impl::MonitorElement::setAxisTitle(), SiPixelFolderOrganizer::setFedFolder(), SiPixelFolderOrganizer::setModuleFolder(), TrackRefitter_38T_cff::src, AlCaHLTBitMon_QueryRunRegistry::string, groupFilesInBlocks::temp, theFEDStructure, thePixelStructure, overlapproblemtsosanalyzer_cfi::title, and topFolderName_.
Referenced by bookHistograms().
void SiPixelRawDataErrorSource::buildStructure |
( |
edm::EventSetup const & |
iSetup | ) |
|
|
virtual |
Definition at line 185 of file SiPixelRawDataErrorSource.cc.
186 LogInfo(
"PixelDQM") <<
" SiPixelRawDataErrorSource::buildStructure";
196 LogVerbatim(
"PixelDQM") <<
" *** Geometry node for TrackerGeom is " << &(*pDD) << std::endl;
197 LogVerbatim(
"PixelDQM") <<
" *** I have " << pDD->
detsPXB().size() <<
" barrel pixel detectors" << std::endl;
198 LogVerbatim(
"PixelDQM") <<
" *** I have " << pDD->
detsPXF().size() <<
" endcap pixel detectors" << std::endl;
202 for (TrackerGeometry::DetContainer::const_iterator it = pDD->
detsPXB().begin(); it != pDD->
detsPXB().end(); it++) {
203 const GeomDetUnit *geoUnit = dynamic_cast<const GeomDetUnit *>(*it);
205 if (geoUnit ==
nullptr)
206 LogError(
"PixelDQM") <<
"Pixel GeomDet is not a GeomDetUnit!" << std::endl;
207 const PixelGeomDetUnit *pixDet = dynamic_cast<const PixelGeomDetUnit *>(geoUnit);
213 DetId detId = (*it)->geographicalId();
214 LogDebug(
"PixelDQM") <<
" ---> Adding Barrel Module " << detId.
rawId() << endl;
215 uint32_t
id = detId();
217 thePixelStructure.insert(pair<uint32_t, SiPixelRawDataErrorModule *>(
id, theModule));
220 for (TrackerGeometry::DetContainer::const_iterator it = pDD->
detsPXF().begin(); it != pDD->
detsPXF().end(); it++) {
221 const GeomDetUnit *geoUnit = dynamic_cast<const GeomDetUnit *>(*it);
223 if (geoUnit ==
nullptr)
224 LogError(
"PixelDQM") <<
"Pixel GeomDet is not a GeomDetUnit!" << std::endl;
225 const PixelGeomDetUnit *pixDet = dynamic_cast<const PixelGeomDetUnit *>(geoUnit);
229 DetId detId = (*it)->geographicalId();
230 LogDebug(
"PixelDQM") <<
" ---> Adding Endcap Module " << detId.
rawId() << endl;
231 uint32_t
id = detId();
241 sprintf(sside,
"HalfCylinder_%i", side);
243 sprintf(sdisk,
"Disk_%i", disk);
245 sprintf(sblade,
"Blade_%02i", blade);
247 sprintf(spanel,
"Panel_%i", panel);
249 sprintf(smodule,
"Module_%i",
module);
252 bool mask = side_str.find(
"HalfCylinder_1") != string::npos || side_str.find(
"HalfCylinder_2") != string::npos ||
253 side_str.find(
"HalfCylinder_4") != string::npos || disk_str.find(
"Disk_2") != string::npos;
259 thePixelStructure.insert(pair<uint32_t, SiPixelRawDataErrorModule *>(
id, theModule));
262 LogDebug(
"PixelDQM") <<
" ---> Adding Module for Additional Errors " << endl;
270 uint32_t
id = static_cast<uint32_t>(
fedId);
272 theFEDStructure.insert(pair<uint32_t, SiPixelRawDataErrorModule *>(
id, theModule));
References PixelEndcapName::bladeName(), TrackerGeometry::detsPXB(), TrackerGeometry::detsPXF(), PixelEndcapName::diskName(), l1tstage2_dqm_sourceclient-live_cfg::fedId, L1TStage2BMTF_cff::fedIds, edm::EventSetup::get(), get, PixelEndcapName::halfCylinder(), isPIB, isUpgrade, LogDebug, FEDNumbering::MAXSiPixelFEDID, FEDNumbering::MINSiPixelFEDID, hgcalPlots::ncols, PixelEndcapName::pannelName(), PixelEndcapName::plaquetteName(), edm::ESHandle< T >::product(), DetId::rawId(), PixelGeomDetUnit::specificTopology(), AlCaHLTBitMon_QueryRunRegistry::string, theFEDStructure, and thePixelStructure.
Referenced by dqmBeginRun().