CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
SiPixelRawDataErrorSource Class Reference

#include <SiPixelRawDataErrorSource.h>

Inheritance diagram for SiPixelRawDataErrorSource:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Types

typedef edm::DetSet< SiPixelRawDataError >::const_iterator ErrorIterator
 
- 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
 

Public Member Functions

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
 
- 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 Attributes

bool bladeOn
 
MonitorElementbyLumiErrors
 
edm::ParameterSet conf_
 
MonitorElementerrorRate
 
int eventNo
 
MonitorElementfedcounter
 
bool firstRun
 
edm::EDGetTokenT< FEDRawDataCollectioninputSourceToken_
 
bool isPIB
 
bool isUpgrade
 
bool ladOn
 
MonitorElementmeErrorType_ [40]
 
MonitorElementmeEvtNbr_ [40]
 
MonitorElementmeEvtSize_ [40]
 
MonitorElementmeFedChLErr_ [40]
 
MonitorElementmeFedChNErr_ [40]
 
MonitorElementmeFedETypeNErr_ [40]
 
MonitorElementmeFullType_ [40]
 
std::map< std::string, MonitorElement ** > meMapFEDs_
 
MonitorElementmeNErrors_ [40]
 
MonitorElementmeTBMMessage_ [40]
 
MonitorElementmeTBMType_ [40]
 
bool modOn
 
bool reducedSet
 
bool saveFile
 
bool slowDown
 
edm::EDGetTokenT< edm::DetSetVector< SiPixelRawDataError > > src_
 
std::map< uint32_t, SiPixelRawDataErrorModule * > theFEDStructure
 
std::map< uint32_t, SiPixelRawDataErrorModule * > thePixelStructure
 
std::string topFolderName_
 
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordtrackerGeomTokenBeginRun_
 
edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtrackerTopoTokenBeginRun_
 

Additional Inherited Members

- 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

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 41 of file SiPixelRawDataErrorSource.h.

Member Typedef Documentation

◆ ErrorIterator

Definition at line 46 of file SiPixelRawDataErrorSource.h.

Constructor & Destructor Documentation

◆ SiPixelRawDataErrorSource()

SiPixelRawDataErrorSource::SiPixelRawDataErrorSource ( const edm::ParameterSet conf)
explicit

Definition at line 53 of file SiPixelRawDataErrorSource.cc.

54  : conf_(iConfig),
56  saveFile(conf_.getUntrackedParameter<bool>("saveFile", false)),
57  isPIB(conf_.getUntrackedParameter<bool>("isPIB", false)),
58  slowDown(conf_.getUntrackedParameter<bool>("slowDown", false)),
59  reducedSet(conf_.getUntrackedParameter<bool>("reducedSet", false)),
60  modOn(conf_.getUntrackedParameter<bool>("modOn", true)),
61  ladOn(conf_.getUntrackedParameter<bool>("ladOn", false)),
62  bladeOn(conf_.getUntrackedParameter<bool>("bladeOn", false)),
63  isUpgrade(conf_.getUntrackedParameter<bool>("isUpgrade", false)) {
64  firstRun = true;
65  LogInfo("PixelDQM") << "SiPixelRawDataErrorSource::SiPixelRawDataErrorSource:"
66  " Got DQM BackEnd interface"
67  << endl;
68  topFolderName_ = conf_.getParameter<std::string>("TopFolderName");
69  inputSourceToken_ = consumes<FEDRawDataCollection>(conf_.getUntrackedParameter<string>("inputSource", "source"));
70  trackerTopoTokenBeginRun_ = esConsumes<TrackerTopology, TrackerTopologyRcd, edm::Transition::BeginRun>();
71  trackerGeomTokenBeginRun_ = esConsumes<TrackerGeometry, TrackerDigiGeometryRecord, edm::Transition::BeginRun>();
72 }

References conf_, firstRun, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), inputSourceToken_, AlCaHLTBitMon_QueryRunRegistry::string, topFolderName_, trackerGeomTokenBeginRun_, and trackerTopoTokenBeginRun_.

◆ ~SiPixelRawDataErrorSource()

SiPixelRawDataErrorSource::~SiPixelRawDataErrorSource ( )
override

Definition at line 74 of file SiPixelRawDataErrorSource.cc.

74  {
75  // do anything here that needs to be done at desctruction time
76  // (e.g. close files, deallocate resources etc.)
77  LogInfo("PixelDQM") << "SiPixelRawDataErrorSource::~SiPixelRawDataErrorSource: Destructor" << endl;
78 }

Member Function Documentation

◆ analyze()

void SiPixelRawDataErrorSource::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 104 of file SiPixelRawDataErrorSource.cc.

104  {
105  eventNo++;
106  // check feds in readout
107  if (eventNo == 1) {
108  // check if any Pixel FED is in readout:
109  edm::Handle<FEDRawDataCollection> rawDataHandle;
110  iEvent.getByToken(inputSourceToken_, rawDataHandle);
111  if (!rawDataHandle.isValid()) {
112  edm::LogInfo("SiPixelRawDataErrorSource") << "inputsource is empty";
113  } else {
114  const FEDRawDataCollection &rawDataCollection = *rawDataHandle;
115  for (int i = 0; i != 40; i++) {
116  if (rawDataCollection.FEDData(i).size() && rawDataCollection.FEDData(i).data())
117  fedcounter->setBinContent(i + 1, 1);
118  }
119  }
120  }
121  // get input data
123  iEvent.getByToken(src_, input);
124  if (!input.isValid())
125  return;
126 
127  int lumiSection = (int)iEvent.luminosityBlock();
128 
129  int nEventBPIXModuleErrors = 0;
130  int nEventFPIXModuleErrors = 0;
131  int nEventBPIXFEDErrors = 0;
132  int nEventFPIXFEDErrors = 0;
133  int nErrors = 0;
134 
135  std::map<uint32_t, SiPixelRawDataErrorModule *>::iterator struct_iter;
136  std::map<uint32_t, SiPixelRawDataErrorModule *>::iterator struct_iter2;
137  for (struct_iter = thePixelStructure.begin(); struct_iter != thePixelStructure.end(); struct_iter++) {
138  int numberOfModuleErrors = (*struct_iter).second->fill(*input, &meMapFEDs_, modOn, ladOn, bladeOn);
139  if (DetId((*struct_iter).first).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel))
140  nEventBPIXModuleErrors = nEventBPIXModuleErrors + numberOfModuleErrors;
141  if (DetId((*struct_iter).first).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap))
142  nEventFPIXModuleErrors = nEventFPIXModuleErrors + numberOfModuleErrors;
143  // cout<<"NErrors: "<<nEventBPIXModuleErrors<<"
144  // "<<nEventFPIXModuleErrors<<endl;
145  nErrors = nErrors + numberOfModuleErrors;
146  // if(nErrors>0) cout<<"MODULES: nErrors: "<<nErrors<<endl;
147  }
148  for (struct_iter2 = theFEDStructure.begin(); struct_iter2 != theFEDStructure.end(); struct_iter2++) {
149  int numberOfFEDErrors = (*struct_iter2).second->fillFED(*input, &meMapFEDs_);
150  if ((*struct_iter2).first <= 31)
151  nEventBPIXFEDErrors = nEventBPIXFEDErrors + numberOfFEDErrors; // (*struct_iter2).first >= 0, since
152  // (*struct_iter2).first is unsigned
153  if ((*struct_iter2).first >= 32 && (*struct_iter2).first <= 39)
154  nEventFPIXFEDErrors = nEventFPIXFEDErrors + numberOfFEDErrors;
155  // cout<<"NFEDErrors: "<<nEventBPIXFEDErrors<<"
156  // "<<nEventFPIXFEDErrors<<endl;
157  nErrors = nErrors + numberOfFEDErrors;
158  // if(nErrors>0) cout<<"FEDS: nErrors: "<<nErrors<<endl;
159  }
160  if (byLumiErrors) {
162  // cout<<"NErrors: "<<nEventBPIXModuleErrors<<" "<<nEventFPIXModuleErrors<<"
163  // "<<nEventBPIXFEDErrors<<" "<<nEventFPIXFEDErrors<<endl;
164  if (nEventBPIXModuleErrors + nEventBPIXFEDErrors > 0)
165  byLumiErrors->Fill(0, 1.);
166  if (nEventFPIXModuleErrors + nEventFPIXFEDErrors > 0)
167  byLumiErrors->Fill(1, 1.);
168  // cout<<"histo: "<<byLumiErrors->getBinContent(0)<<"
169  // "<<byLumiErrors->getBinContent(1)<<"
170  // "<<byLumiErrors->getBinContent(2)<<endl;
171  }
172 
173  // Rate of errors per lumi section:
174  if (errorRate)
175  errorRate->Fill(lumiSection, nErrors);
176 
177  // slow down...
178  if (slowDown)
179  usleep(100000);
180 }

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.

◆ bookHistograms()

void SiPixelRawDataErrorSource::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  ,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 94 of file SiPixelRawDataErrorSource.cc.

96  {
97  // Book Monitoring Elements
98  bookMEs(iBooker);
99 }

References bookMEs().

◆ bookMEs()

void SiPixelRawDataErrorSource::bookMEs ( DQMStore::IBooker iBooker)
virtual

Create folder tree and book histograms

Create folder tree for errors without detId and book histograms

Definition at line 277 of file SiPixelRawDataErrorSource.cc.

277  {
278  iBooker.setCurrentFolder(topFolderName_ + "/EventInfo/DAQContents");
279  char title0[80];
280  sprintf(title0, "FED isPresent;FED ID;isPresent");
281  fedcounter = iBooker.book1D("fedcounter", title0, 40, -0.5, 39.5);
282  iBooker.setCurrentFolder(topFolderName_ + "/AdditionalPixelErrors");
283  char title[80];
284  sprintf(title, "By-LumiSection Error counters");
285  {
286  auto scope = DQMStore::IBooker::UseLumiScope(iBooker);
287  byLumiErrors = iBooker.book1D("byLumiErrors", title, 2, 0., 2.);
288  }
289  char title1[80];
290  sprintf(title1, "Errors per LumiSection;LumiSection;NErrors");
291  errorRate = iBooker.book1D("errorRate", title1, 5000, 0., 5000.);
292 
293  std::map<uint32_t, SiPixelRawDataErrorModule *>::iterator struct_iter;
294  std::map<uint32_t, SiPixelRawDataErrorModule *>::iterator struct_iter2;
295 
296  SiPixelFolderOrganizer theSiPixelFolder(false);
297 
298  for (struct_iter = thePixelStructure.begin(); struct_iter != thePixelStructure.end(); struct_iter++) {
300 
301  if (modOn) {
302  if (!theSiPixelFolder.setModuleFolder(iBooker, (*struct_iter).first, 0, isUpgrade)) {
303  // std::cout<<"PIB! not booking histograms for non-PIB
304  // modules!"<<std::endl;
305  if (!isPIB)
306  throw cms::Exception("LogicError") << "[SiPixelRawDataErrorSource::bookMEs] Creation of DQM folder "
307  "failed";
308  }
309  }
310 
311  if (ladOn) {
312  if (!theSiPixelFolder.setModuleFolder(iBooker, (*struct_iter).first, 1, isUpgrade)) {
313  LogDebug("PixelDQM") << "PROBLEM WITH LADDER-FOLDER\n";
314  }
315  }
316 
317  if (bladeOn) {
318  if (!theSiPixelFolder.setModuleFolder(iBooker, (*struct_iter).first, 4, isUpgrade)) {
319  LogDebug("PixelDQM") << "PROBLEM WITH BLADE-FOLDER\n";
320  }
321  }
322 
323  } // for loop
324 
325  for (struct_iter2 = theFEDStructure.begin(); struct_iter2 != theFEDStructure.end(); struct_iter2++) {
327  if (!theSiPixelFolder.setFedFolder(iBooker, (*struct_iter2).first)) {
328  throw cms::Exception("LogicError") << "[SiPixelRawDataErrorSource::bookMEs] Creation of DQM folder "
329  "failed";
330  }
331  }
332 
333  // Booking FED histograms
334  std::string hid;
335  // Get collection name and instantiate Histo Id builder
337  SiPixelHistogramId *theHistogramId = new SiPixelHistogramId(src.label());
338 
339  for (uint32_t id = 0; id < 40; id++) {
340  char temp[50];
341  sprintf(temp, (topFolderName_ + "/AdditionalPixelErrors/FED_%d").c_str(), id);
342  iBooker.cd(temp);
343  // Types of errors
344  hid = theHistogramId->setHistoId("errorType", id);
345  meErrorType_[id] = iBooker.book1D(hid, "Type of errors", 15, 24.5, 39.5);
346  meErrorType_[id]->setAxisTitle("Type of errors", 1);
347  // Number of errors
348  hid = theHistogramId->setHistoId("NErrors", id);
349  meNErrors_[id] = iBooker.book1D(hid, "Number of errors", 36, 0., 36.);
350  meNErrors_[id]->setAxisTitle("Number of errors", 1);
351  // Type of FIFO full (errorType = 28). FIFO 1 is 1-5 (where fullType =
352  // channel of FIFO 1), fullType = 6 signifies FIFO 2 nearly full, 7
353  // signifies trigger FIFO nearly full, 8 indicates an unexpected result
354  hid = theHistogramId->setHistoId("fullType", id);
355  meFullType_[id] = iBooker.book1D(hid, "Type of FIFO full", 7, 0.5, 7.5);
356  meFullType_[id]->setAxisTitle("FIFO type", 1);
357  // For error type 30, the type of problem encoded in the TBM trailer
358  // 0 = stack full, 1 = Pre-cal issued, 2 = clear trigger counter, 3 = sync
359  // trigger, 4 = sync trigger error, 5 = reset ROC, 6 = reset TBM, 7 = no
360  // token bit pass
361  hid = theHistogramId->setHistoId("TBMMessage", id);
362  meTBMMessage_[id] = iBooker.book1D(hid, "TBM trailer message", 8, -0.5, 7.5);
363  meTBMMessage_[id]->setAxisTitle("TBM message", 1);
364  // For error type 30, the type of problem encoded in the TBM error trailer 0
365  // = none 1 = data stream too long, 2 = FSM errors, 3 = invalid # of ROCs, 4
366  // = multiple
367  hid = theHistogramId->setHistoId("TBMType", id);
368  meTBMType_[id] = iBooker.book1D(hid, "Type of TBM trailer", 5, -0.5, 4.5);
369  meTBMType_[id]->setAxisTitle("TBM Type", 1);
370  // For error type 31, the event number of the TBM header with the error
371  hid = theHistogramId->setHistoId("EvtNbr", id);
372  meEvtNbr_[id] = iBooker.book1D(hid, "Event number", 1, 0, 1);
373  // For errorType = 34, datastream size according to error word
374  hid = theHistogramId->setHistoId("evtSize", id);
375  meEvtSize_[id] = iBooker.book1D(hid, "Event size", 1, 0, 1);
376  //
377  hid = theHistogramId->setHistoId("FedChNErr", id);
378  meFedChNErr_[id] = iBooker.book1D(hid, "Number of errors per FED channel", 37, 0, 37);
379  meFedChNErr_[id]->setAxisTitle("FED channel", 1);
380  //
381  hid = theHistogramId->setHistoId("FedChLErr", id);
382  meFedChLErr_[id] = iBooker.book1D(hid, "Last error per FED channel", 37, 0, 37);
383  meFedChLErr_[id]->setAxisTitle("FED channel", 1);
384  //
385  hid = theHistogramId->setHistoId("FedETypeNErr", id);
386  meFedETypeNErr_[id] = iBooker.book1D(hid, "Number of errors per type", 21, 0, 21);
387  meFedETypeNErr_[id]->setAxisTitle("Error type", 1);
388  }
389  // Add the booked histograms to the histogram map for booking
390  meMapFEDs_["meErrorType_"] = meErrorType_;
391  meMapFEDs_["meNErrors_"] = meNErrors_;
392  meMapFEDs_["meFullType_"] = meFullType_;
393  meMapFEDs_["meTBMMessage_"] = meTBMMessage_;
394  meMapFEDs_["meTBMType_"] = meTBMType_;
395  meMapFEDs_["meEvtNbr_"] = meEvtNbr_;
396  meMapFEDs_["meEvtSize_"] = meEvtSize_;
397  meMapFEDs_["meFedChNErr_"] = meFedChNErr_;
398  meMapFEDs_["meFedChLErr_"] = meFedChLErr_;
399  meMapFEDs_["meFedETypeNErr_"] = meFedETypeNErr_;
400 
401  // cout<<"...leaving SiPixelRawDataErrorSource::bookMEs now! "<<endl;
402 }

References bladeOn, dqm::implementation::IBooker::book1D(), byLumiErrors, dqm::implementation::NavigatorBase::cd(), 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(), dqm::implementation::NavigatorBase::setCurrentFolder(), SiPixelFolderOrganizer::setFedFolder(), SiPixelFolderOrganizer::setModuleFolder(), TrackRefitter_38T_cff::src, AlCaHLTBitMon_QueryRunRegistry::string, groupFilesInBlocks::temp, theFEDStructure, thePixelStructure, runGCPTkAlMap::title, and topFolderName_.

Referenced by bookHistograms().

◆ buildStructure()

void SiPixelRawDataErrorSource::buildStructure ( edm::EventSetup const &  iSetup)
virtual

Definition at line 185 of file SiPixelRawDataErrorSource.cc.

185  {
186  LogInfo("PixelDQM") << " SiPixelRawDataErrorSource::buildStructure";
187 
189 
190  edm::ESHandle<TrackerTopology> tTopoHandle = iSetup.getHandle(trackerTopoTokenBeginRun_);
191  const TrackerTopology *pTT = tTopoHandle.product();
192 
193  LogVerbatim("PixelDQM") << " *** Geometry node for TrackerGeom is " << &(*pDD) << std::endl;
194  LogVerbatim("PixelDQM") << " *** I have " << pDD->detsPXB().size() << " barrel pixel detectors" << std::endl;
195  LogVerbatim("PixelDQM") << " *** I have " << pDD->detsPXF().size() << " endcap pixel detectors" << std::endl;
196  // LogVerbatim ("PixelDQM") << " *** I have " << pDD->detTypes().size() <<"
197  // types"<<std::endl;
198 
199  for (TrackerGeometry::DetContainer::const_iterator it = pDD->detsPXB().begin(); it != pDD->detsPXB().end(); it++) {
200  const GeomDetUnit *geoUnit = dynamic_cast<const GeomDetUnit *>(*it);
201  // check if it is a detUnit
202  if (geoUnit == nullptr)
203  LogError("PixelDQM") << "Pixel GeomDet is not a GeomDetUnit!" << std::endl;
204  const PixelGeomDetUnit *pixDet = dynamic_cast<const PixelGeomDetUnit *>(geoUnit);
205  int nrows = (pixDet->specificTopology()).nrows();
206  int ncols = (pixDet->specificTopology()).ncolumns();
207 
208  if (isPIB)
209  continue;
210  DetId detId = (*it)->geographicalId();
211  LogDebug("PixelDQM") << " ---> Adding Barrel Module " << detId.rawId() << endl;
212  uint32_t id = detId();
213  SiPixelRawDataErrorModule *theModule = new SiPixelRawDataErrorModule(id, ncols, nrows);
214  thePixelStructure.insert(pair<uint32_t, SiPixelRawDataErrorModule *>(id, theModule));
215  }
216 
217  for (TrackerGeometry::DetContainer::const_iterator it = pDD->detsPXF().begin(); it != pDD->detsPXF().end(); it++) {
218  const GeomDetUnit *geoUnit = dynamic_cast<const GeomDetUnit *>(*it);
219  // check if it is a detUnit
220  if (geoUnit == nullptr)
221  LogError("PixelDQM") << "Pixel GeomDet is not a GeomDetUnit!" << std::endl;
222  const PixelGeomDetUnit *pixDet = dynamic_cast<const PixelGeomDetUnit *>(geoUnit);
223  int nrows = (pixDet->specificTopology()).nrows();
224  int ncols = (pixDet->specificTopology()).ncolumns();
225 
226  DetId detId = (*it)->geographicalId();
227  LogDebug("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl;
228  uint32_t id = detId();
229  SiPixelRawDataErrorModule *theModule = new SiPixelRawDataErrorModule(id, ncols, nrows);
230 
232  int disk = PixelEndcapName(DetId(id), pTT, isUpgrade).diskName();
233  int blade = PixelEndcapName(DetId(id), pTT, isUpgrade).bladeName();
234  int panel = PixelEndcapName(DetId(id), pTT, isUpgrade).pannelName();
235  int module = PixelEndcapName(DetId(id), pTT, isUpgrade).plaquetteName();
236 
237  char sside[80];
238  sprintf(sside, "HalfCylinder_%i", side);
239  char sdisk[80];
240  sprintf(sdisk, "Disk_%i", disk);
241  char sblade[80];
242  sprintf(sblade, "Blade_%02i", blade);
243  char spanel[80];
244  sprintf(spanel, "Panel_%i", panel);
245  char smodule[80];
246  sprintf(smodule, "Module_%i", module);
247  std::string side_str = sside;
248  std::string disk_str = sdisk;
249  bool mask = side_str.find("HalfCylinder_1") != string::npos || side_str.find("HalfCylinder_2") != string::npos ||
250  side_str.find("HalfCylinder_4") != string::npos || disk_str.find("Disk_2") != string::npos;
251  // clutch to take all of FPIX, but no BPIX:
252  mask = false;
253  if (isPIB && mask)
254  continue;
255 
256  thePixelStructure.insert(pair<uint32_t, SiPixelRawDataErrorModule *>(id, theModule));
257  }
258 
259  LogDebug("PixelDQM") << " ---> Adding Module for Additional Errors " << endl;
261 
262  fedIds.first = 0;
263  fedIds.second = 39;
264 
265  for (int fedId = fedIds.first; fedId <= fedIds.second; fedId++) {
266  // std::cout<<"Adding FED module: "<<fedId<<std::endl;
267  uint32_t id = static_cast<uint32_t>(fedId);
269  theFEDStructure.insert(pair<uint32_t, SiPixelRawDataErrorModule *>(id, theModule));
270  }
271 
272  LogInfo("PixelDQM") << " *** Pixel Structure Size " << thePixelStructure.size() << endl;
273 }

References PixelEndcapName::bladeName(), TrackerGeometry::detsPXB(), TrackerGeometry::detsPXF(), PixelEndcapName::diskName(), l1tstage2_dqm_sourceclient-live_cfg::fedId, L1TStage2BMTF_cff::fedIds, edm::EventSetup::getHandle(), 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, thePixelStructure, trackerGeomTokenBeginRun_, and trackerTopoTokenBeginRun_.

Referenced by dqmBeginRun().

◆ dqmBeginRun()

void SiPixelRawDataErrorSource::dqmBeginRun ( const edm::Run r,
edm::EventSetup const &  iSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 80 of file SiPixelRawDataErrorSource.cc.

80  {
81  LogInfo("PixelDQM") << " SiPixelRawDataErrorSource::beginRun - Initialisation ... " << std::endl;
82  LogInfo("PixelDQM") << "Mod/Lad/Blade " << modOn << "/" << ladOn << "/" << bladeOn << std::endl;
83 
84  if (firstRun) {
85  eventNo = 0;
86 
87  firstRun = false;
88  }
89 
90  // Build map
91  buildStructure(iSetup);
92 }

References bladeOn, buildStructure(), eventNo, firstRun, ladOn, and modOn.

Member Data Documentation

◆ bladeOn

bool SiPixelRawDataErrorSource::bladeOn
private

Definition at line 68 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), bookMEs(), and dqmBeginRun().

◆ byLumiErrors

MonitorElement* SiPixelRawDataErrorSource::byLumiErrors
private

Definition at line 74 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and bookMEs().

◆ conf_

edm::ParameterSet SiPixelRawDataErrorSource::conf_
private

Definition at line 56 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs(), and SiPixelRawDataErrorSource().

◆ errorRate

MonitorElement* SiPixelRawDataErrorSource::errorRate
private

Definition at line 75 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and bookMEs().

◆ eventNo

int SiPixelRawDataErrorSource::eventNo
private

Definition at line 70 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and dqmBeginRun().

◆ fedcounter

MonitorElement* SiPixelRawDataErrorSource::fedcounter
private

Definition at line 76 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and bookMEs().

◆ firstRun

bool SiPixelRawDataErrorSource::firstRun
private

Definition at line 73 of file SiPixelRawDataErrorSource.h.

Referenced by dqmBeginRun(), and SiPixelRawDataErrorSource().

◆ inputSourceToken_

edm::EDGetTokenT<FEDRawDataCollection> SiPixelRawDataErrorSource::inputSourceToken_
private

Definition at line 58 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and SiPixelRawDataErrorSource().

◆ isPIB

bool SiPixelRawDataErrorSource::isPIB
private

Definition at line 63 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs(), and buildStructure().

◆ isUpgrade

bool SiPixelRawDataErrorSource::isUpgrade
private

Definition at line 69 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs(), and buildStructure().

◆ ladOn

bool SiPixelRawDataErrorSource::ladOn
private

Definition at line 67 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), bookMEs(), and dqmBeginRun().

◆ meErrorType_

MonitorElement* SiPixelRawDataErrorSource::meErrorType_[40]
private

Definition at line 78 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

◆ meEvtNbr_

MonitorElement* SiPixelRawDataErrorSource::meEvtNbr_[40]
private

Definition at line 83 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

◆ meEvtSize_

MonitorElement* SiPixelRawDataErrorSource::meEvtSize_[40]
private

Definition at line 84 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

◆ meFedChLErr_

MonitorElement* SiPixelRawDataErrorSource::meFedChLErr_[40]
private

Definition at line 87 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

◆ meFedChNErr_

MonitorElement* SiPixelRawDataErrorSource::meFedChNErr_[40]
private

Definition at line 86 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

◆ meFedETypeNErr_

MonitorElement* SiPixelRawDataErrorSource::meFedETypeNErr_[40]
private

Definition at line 88 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

◆ meFullType_

MonitorElement* SiPixelRawDataErrorSource::meFullType_[40]
private

Definition at line 80 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

◆ meMapFEDs_

std::map<std::string, MonitorElement **> SiPixelRawDataErrorSource::meMapFEDs_
private

Definition at line 90 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and bookMEs().

◆ meNErrors_

MonitorElement* SiPixelRawDataErrorSource::meNErrors_[40]
private

Definition at line 79 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

◆ meTBMMessage_

MonitorElement* SiPixelRawDataErrorSource::meTBMMessage_[40]
private

Definition at line 81 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

◆ meTBMType_

MonitorElement* SiPixelRawDataErrorSource::meTBMType_[40]
private

Definition at line 82 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

◆ modOn

bool SiPixelRawDataErrorSource::modOn
private

Definition at line 66 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), bookMEs(), and dqmBeginRun().

◆ reducedSet

bool SiPixelRawDataErrorSource::reducedSet
private

Definition at line 65 of file SiPixelRawDataErrorSource.h.

◆ saveFile

bool SiPixelRawDataErrorSource::saveFile
private

Definition at line 62 of file SiPixelRawDataErrorSource.h.

◆ slowDown

bool SiPixelRawDataErrorSource::slowDown
private

Definition at line 64 of file SiPixelRawDataErrorSource.h.

Referenced by analyze().

◆ src_

edm::EDGetTokenT<edm::DetSetVector<SiPixelRawDataError> > SiPixelRawDataErrorSource::src_
private

Definition at line 57 of file SiPixelRawDataErrorSource.h.

Referenced by analyze().

◆ theFEDStructure

std::map<uint32_t, SiPixelRawDataErrorModule *> SiPixelRawDataErrorSource::theFEDStructure
private

Definition at line 72 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), bookMEs(), and buildStructure().

◆ thePixelStructure

std::map<uint32_t, SiPixelRawDataErrorModule *> SiPixelRawDataErrorSource::thePixelStructure
private

Definition at line 71 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), bookMEs(), and buildStructure().

◆ topFolderName_

std::string SiPixelRawDataErrorSource::topFolderName_
private

Definition at line 61 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs(), and SiPixelRawDataErrorSource().

◆ trackerGeomTokenBeginRun_

edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> SiPixelRawDataErrorSource::trackerGeomTokenBeginRun_
private

Definition at line 60 of file SiPixelRawDataErrorSource.h.

Referenced by buildStructure(), and SiPixelRawDataErrorSource().

◆ trackerTopoTokenBeginRun_

edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> SiPixelRawDataErrorSource::trackerTopoTokenBeginRun_
private

Definition at line 59 of file SiPixelRawDataErrorSource.h.

Referenced by buildStructure(), and SiPixelRawDataErrorSource().

edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
edm::DetSetVector
Definition: DetSetVector.h:61
hgcalPlots.ncols
ncols
Definition: hgcalPlots.py:105
SiPixelRawDataErrorSource::meFedETypeNErr_
MonitorElement * meFedETypeNErr_[40]
Definition: SiPixelRawDataErrorSource.h:88
SiPixelRawDataErrorSource::meFedChLErr_
MonitorElement * meFedChLErr_[40]
Definition: SiPixelRawDataErrorSource.h:87
runGCPTkAlMap.title
string title
Definition: runGCPTkAlMap.py:94
mps_fire.i
i
Definition: mps_fire.py:428
SiPixelRawDataErrorSource::firstRun
bool firstRun
Definition: SiPixelRawDataErrorSource.h:73
input
static const std::string input
Definition: EdmProvDump.cc:48
SiPixelRawDataErrorSource::meErrorType_
MonitorElement * meErrorType_[40]
Definition: SiPixelRawDataErrorSource.h:78
PixelSubdetector::PixelEndcap
Definition: PixelSubdetector.h:11
GeomDet
Definition: GeomDet.h:27
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
SiPixelRawDataErrorSource::buildStructure
virtual void buildStructure(edm::EventSetup const &)
Definition: SiPixelRawDataErrorSource.cc:185
FEDRawDataCollection
Definition: FEDRawDataCollection.h:18
TrackerTopology
Definition: TrackerTopology.h:16
SiPixelRawDataErrorSource::meTBMMessage_
MonitorElement * meTBMMessage_[40]
Definition: SiPixelRawDataErrorSource.h:81
SiPixelRawDataErrorSource::eventNo
int eventNo
Definition: SiPixelRawDataErrorSource.h:70
SiPixelRawDataErrorSource::thePixelStructure
std::map< uint32_t, SiPixelRawDataErrorModule * > thePixelStructure
Definition: SiPixelRawDataErrorSource.h:71
SiPixelRawDataErrorSource::topFolderName_
std::string topFolderName_
Definition: SiPixelRawDataErrorSource.h:61
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
PixelEndcapName::halfCylinder
HalfCylinder halfCylinder() const
Definition: PixelEndcapName.h:42
SiPixelRawDataErrorSource::fedcounter
MonitorElement * fedcounter
Definition: SiPixelRawDataErrorSource.h:76
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
PixelEndcapName::pannelName
int pannelName() const
pannel id
Definition: PixelEndcapName.h:51
edm::Handle< FEDRawDataCollection >
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
PixelEndcapName::bladeName
int bladeName() const
blade id
Definition: PixelEndcapName.h:48
FEDRawData::data
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:24
SiPixelRawDataErrorSource::theFEDStructure
std::map< uint32_t, SiPixelRawDataErrorModule * > theFEDStructure
Definition: SiPixelRawDataErrorSource.h:72
SiPixelRawDataErrorSource::conf_
edm::ParameterSet conf_
Definition: SiPixelRawDataErrorSource.h:56
TrackerGeometry::detsPXB
const DetContainer & detsPXB() const
Definition: TrackerGeometry.cc:171
DetId
Definition: DetId.h:17
SiPixelRawDataErrorSource::slowDown
bool slowDown
Definition: SiPixelRawDataErrorSource.h:64
PixelEndcapName
Definition: PixelEndcapName.h:16
SiPixelRawDataErrorSource::modOn
bool modOn
Definition: SiPixelRawDataErrorSource.h:66
FEDNumbering::MAXSiPixelFEDID
Definition: FEDNumbering.h:28
SiPixelRawDataErrorSource::meTBMType_
MonitorElement * meTBMType_[40]
Definition: SiPixelRawDataErrorSource.h:82
SiPixelRawDataErrorSource::bookMEs
virtual void bookMEs(DQMStore::IBooker &)
Definition: SiPixelRawDataErrorSource.cc:277
PixelGeomDetUnit
Definition: PixelGeomDetUnit.h:15
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
SiPixelRawDataErrorSource::reducedSet
bool reducedSet
Definition: SiPixelRawDataErrorSource.h:65
edm::ESHandle< TrackerGeometry >
dqm::implementation::NavigatorBase::cd
virtual void cd()
Definition: DQMStore.cc:29
TrackerGeometry::detsPXF
const DetContainer & detsPXF() const
Definition: TrackerGeometry.cc:173
SiPixelRawDataErrorSource::saveFile
bool saveFile
Definition: SiPixelRawDataErrorSource.h:62
SiPixelRawDataErrorSource::byLumiErrors
MonitorElement * byLumiErrors
Definition: SiPixelRawDataErrorSource.h:74
FEDRawDataCollection::FEDData
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
Definition: FEDRawDataCollection.cc:19
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiPixelRawDataErrorSource::errorRate
MonitorElement * errorRate
Definition: SiPixelRawDataErrorSource.h:75
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
SiPixelHistogramId
Definition: SiPixelHistogramId.h:25
TrackRefitter_38T_cff.src
src
Definition: TrackRefitter_38T_cff.py:24
SiPixelRawDataErrorSource::ladOn
bool ladOn
Definition: SiPixelRawDataErrorSource.h:67
PixelGeomDetUnit::specificTopology
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
Definition: PixelGeomDetUnit.cc:17
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
SiPixelRawDataErrorSource::trackerTopoTokenBeginRun_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopoTokenBeginRun_
Definition: SiPixelRawDataErrorSource.h:59
dqm::implementation::IBooker::UseLumiScope
UseScope< MonitorElementData::Scope::LUMI > UseLumiScope
Definition: DQMStore.h:463
SiPixelRawDataErrorSource::bladeOn
bool bladeOn
Definition: SiPixelRawDataErrorSource.h:68
l1tstage2_dqm_sourceclient-live_cfg.fedId
fedId
Definition: l1tstage2_dqm_sourceclient-live_cfg.py:88
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
FEDRawData::size
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:45
SiPixelRawDataErrorSource::meEvtSize_
MonitorElement * meEvtSize_[40]
Definition: SiPixelRawDataErrorSource.h:84
FEDNumbering::MINSiPixelFEDID
Definition: FEDNumbering.h:27
SiPixelRawDataErrorSource::meNErrors_
MonitorElement * meNErrors_[40]
Definition: SiPixelRawDataErrorSource.h:79
dqm::impl::MonitorElement::setBinContent
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
Definition: MonitorElement.cc:691
SiPixelRawDataErrorSource::meFullType_
MonitorElement * meFullType_[40]
Definition: SiPixelRawDataErrorSource.h:80
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
PixelEndcapName::HalfCylinder
HalfCylinder
Definition: PixelEndcapName.h:18
PixelEndcapName::diskName
int diskName() const
disk id
Definition: PixelEndcapName.h:45
SiPixelRawDataErrorModule
Definition: SiPixelRawDataErrorModule.h:29
SiPixelRawDataErrorSource::meEvtNbr_
MonitorElement * meEvtNbr_[40]
Definition: SiPixelRawDataErrorSource.h:83
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
SiPixelRawDataErrorSource::src_
edm::EDGetTokenT< edm::DetSetVector< SiPixelRawDataError > > src_
Definition: SiPixelRawDataErrorSource.h:57
Exception
Definition: hltDiff.cc:245
SiPixelFolderOrganizer
Definition: SiPixelFolderOrganizer.h:26
SiPixelRawDataErrorSource::isPIB
bool isPIB
Definition: SiPixelRawDataErrorSource.h:63
L1TStage2BMTF_cff.fedIds
fedIds
Definition: L1TStage2BMTF_cff.py:10
SiPixelRawDataErrorSource::inputSourceToken_
edm::EDGetTokenT< FEDRawDataCollection > inputSourceToken_
Definition: SiPixelRawDataErrorSource.h:58
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
PixelEndcapName::plaquetteName
int plaquetteName() const
plaquetteId (in pannel)
Definition: PixelEndcapName.h:54
SiPixelRawDataErrorSource::isUpgrade
bool isUpgrade
Definition: SiPixelRawDataErrorSource.h:69
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
SiPixelRawDataErrorSource::trackerGeomTokenBeginRun_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeomTokenBeginRun_
Definition: SiPixelRawDataErrorSource.h:60
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
SiPixelRawDataErrorSource::meFedChNErr_
MonitorElement * meFedChNErr_[40]
Definition: SiPixelRawDataErrorSource.h:86
SiPixelRawDataErrorSource::meMapFEDs_
std::map< std::string, MonitorElement ** > meMapFEDs_
Definition: SiPixelRawDataErrorSource.h:90
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98