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:
one::DQMEDAnalyzer< one::DQMLuminosityBlockElements > one::dqmimplementation::DQMBaseClass< T... >

Public Types

typedef edm::DetSet< SiPixelRawDataError >::const_iterator ErrorIterator
 

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 one::DQMEDAnalyzer< one::DQMLuminosityBlockElements >
 DQMEDAnalyzer ()=default
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > &&)=delete
 
 ~DQMEDAnalyzer () override=default
 

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_
 

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

Member Typedef Documentation

Definition at line 58 of file SiPixelRawDataErrorSource.h.

Constructor & Destructor Documentation

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

Definition at line 55 of file SiPixelRawDataErrorSource.cc.

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

56  : conf_(iConfig),
58  saveFile(conf_.getUntrackedParameter<bool>("saveFile", false)),
59  isPIB(conf_.getUntrackedParameter<bool>("isPIB", false)),
60  slowDown(conf_.getUntrackedParameter<bool>("slowDown", false)),
61  reducedSet(conf_.getUntrackedParameter<bool>("reducedSet", false)),
62  modOn(conf_.getUntrackedParameter<bool>("modOn", true)),
63  ladOn(conf_.getUntrackedParameter<bool>("ladOn", false)),
64  bladeOn(conf_.getUntrackedParameter<bool>("bladeOn", false)),
65  isUpgrade(conf_.getUntrackedParameter<bool>("isUpgrade", false)) {
66  firstRun = true;
67  LogInfo("PixelDQM") << "SiPixelRawDataErrorSource::SiPixelRawDataErrorSource:"
68  " Got DQM BackEnd interface"
69  << endl;
70  topFolderName_ = conf_.getParameter<std::string>("TopFolderName");
71  inputSourceToken_ = consumes<FEDRawDataCollection>(conf_.getUntrackedParameter<string>("inputSource", "source"));
72 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< edm::DetSetVector< SiPixelRawDataError > > src_
edm::EDGetTokenT< FEDRawDataCollection > inputSourceToken_
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

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

Definition at line 104 of file SiPixelRawDataErrorSource.cc.

References bladeOn, byLumiErrors, FEDRawData::data(), errorRate, eventNo, fedcounter, FEDRawDataCollection::FEDData(), MonitorElement::Fill(), edm::Event::getByToken(), mps_fire::i, input, inputSourceToken_, createfilelist::int, edm::HandleBase::isValid(), ladOn, edm::EventBase::luminosityBlock(), meMapFEDs_, modOn, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, MonitorElement::setBinContent(), FEDRawData::size(), slowDown, src_, DetId::subdetId(), theFEDStructure, and thePixelStructure.

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 }
void setBinContent(int binx, double content)
set content of bin (1-D)
edm::EDGetTokenT< edm::DetSetVector< SiPixelRawDataError > > src_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:61
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
static std::string const input
Definition: EdmProvDump.cc:48
void Fill(long long x)
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
std::map< uint32_t, SiPixelRawDataErrorModule * > theFEDStructure
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:41
bool isValid() const
Definition: HandleBase.h:74
Definition: DetId.h:18
std::map< uint32_t, SiPixelRawDataErrorModule * > thePixelStructure
edm::EDGetTokenT< FEDRawDataCollection > inputSourceToken_
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:28
std::map< std::string, MonitorElement ** > meMapFEDs_
void SiPixelRawDataErrorSource::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  ,
edm::EventSetup const &  iSetup 
)
override

Definition at line 94 of file SiPixelRawDataErrorSource.cc.

References bookMEs().

96  {
97  // Book Monitoring Elements
98  bookMEs(iBooker);
99 }
virtual void bookMEs(DQMStore::IBooker &)
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 280 of file SiPixelRawDataErrorSource.cc.

References bladeOn, DQMStore::IBooker::book1D(), byLumiErrors, DQMStore::IBooker::cd(), conf_, DEFINE_FWK_MODULE, errorRate, Exception, fedcounter, edm::ParameterSet::getParameter(), triggerObjects_cff::id, isPIB, isUpgrade, edm::InputTag::label(), ladOn, LogDebug, meErrorType_, meEvtNbr_, meEvtSize_, meFedChLErr_, meFedChNErr_, meFedETypeNErr_, meFullType_, meMapFEDs_, meNErrors_, meTBMMessage_, meTBMType_, modOn, MonitorElement::setAxisTitle(), DQMStore::IBooker::setCurrentFolder(), SiPixelFolderOrganizer::setFedFolder(), MonitorElement::setLumiFlag(), SiPixelFolderOrganizer::setModuleFolder(), TrackRefitter_38T_cff::src, AlCaHLTBitMon_QueryRunRegistry::string, groupFilesInBlocks::temp, theFEDStructure, thePixelStructure, fftjetcommon_cfi::title, and topFolderName_.

Referenced by bookHistograms().

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

Definition at line 185 of file SiPixelRawDataErrorSource.cc.

References PixelEndcapName::bladeName(), TrackerGeometry::detsPXB(), TrackerGeometry::detsPXF(), PixelEndcapName::diskName(), l1t::stage2::layer2::fedId, edm::EventSetup::get(), PixelEndcapName::halfCylinder(), isPIB, isUpgrade, LogDebug, RecoTauDiscriminantConfiguration::mask, 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().

185  {
186  LogInfo("PixelDQM") << " SiPixelRawDataErrorSource::buildStructure";
187 
189  edm::ESHandle<TrackerTopology> tTopoHandle;
190 
191  iSetup.get<TrackerDigiGeometryRecord>().get(pDD);
192  iSetup.get<TrackerTopologyRcd>().get(tTopoHandle);
193 
194  const TrackerTopology *pTT = tTopoHandle.product();
195 
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;
199  // LogVerbatim ("PixelDQM") << " *** I have " << pDD->detTypes().size() <<"
200  // types"<<std::endl;
201 
202  for (TrackerGeometry::DetContainer::const_iterator it = pDD->detsPXB().begin(); it != pDD->detsPXB().end(); it++) {
203  const GeomDetUnit *geoUnit = dynamic_cast<const GeomDetUnit *>(*it);
204  // check if it is a detUnit
205  if (geoUnit == nullptr)
206  LogError("PixelDQM") << "Pixel GeomDet is not a GeomDetUnit!" << std::endl;
207  const PixelGeomDetUnit *pixDet = dynamic_cast<const PixelGeomDetUnit *>(geoUnit);
208  int nrows = (pixDet->specificTopology()).nrows();
209  int ncols = (pixDet->specificTopology()).ncolumns();
210 
211  if (isPIB)
212  continue;
213  DetId detId = (*it)->geographicalId();
214  LogDebug("PixelDQM") << " ---> Adding Barrel Module " << detId.rawId() << endl;
215  uint32_t id = detId();
216  SiPixelRawDataErrorModule *theModule = new SiPixelRawDataErrorModule(id, ncols, nrows);
217  thePixelStructure.insert(pair<uint32_t, SiPixelRawDataErrorModule *>(id, theModule));
218  }
219 
220  for (TrackerGeometry::DetContainer::const_iterator it = pDD->detsPXF().begin(); it != pDD->detsPXF().end(); it++) {
221  const GeomDetUnit *geoUnit = dynamic_cast<const GeomDetUnit *>(*it);
222  // check if it is a detUnit
223  if (geoUnit == nullptr)
224  LogError("PixelDQM") << "Pixel GeomDet is not a GeomDetUnit!" << std::endl;
225  const PixelGeomDetUnit *pixDet = dynamic_cast<const PixelGeomDetUnit *>(geoUnit);
226  int nrows = (pixDet->specificTopology()).nrows();
227  int ncols = (pixDet->specificTopology()).ncolumns();
228 
229  DetId detId = (*it)->geographicalId();
230  LogDebug("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl;
231  uint32_t id = detId();
232  SiPixelRawDataErrorModule *theModule = new SiPixelRawDataErrorModule(id, ncols, nrows);
233 
235  int disk = PixelEndcapName(DetId(id), pTT, isUpgrade).diskName();
236  int blade = PixelEndcapName(DetId(id), pTT, isUpgrade).bladeName();
237  int panel = PixelEndcapName(DetId(id), pTT, isUpgrade).pannelName();
239 
240  char sside[80];
241  sprintf(sside, "HalfCylinder_%i", side);
242  char sdisk[80];
243  sprintf(sdisk, "Disk_%i", disk);
244  char sblade[80];
245  sprintf(sblade, "Blade_%02i", blade);
246  char spanel[80];
247  sprintf(spanel, "Panel_%i", panel);
248  char smodule[80];
249  sprintf(smodule, "Module_%i", module);
250  std::string side_str = sside;
251  std::string disk_str = sdisk;
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;
254  // clutch to take all of FPIX, but no BPIX:
255  mask = false;
256  if (isPIB && mask)
257  continue;
258 
259  thePixelStructure.insert(pair<uint32_t, SiPixelRawDataErrorModule *>(id, theModule));
260  }
261 
262  LogDebug("PixelDQM") << " ---> Adding Module for Additional Errors " << endl;
264 
265  fedIds.first = 0;
266  fedIds.second = 39;
267 
268  for (int fedId = fedIds.first; fedId <= fedIds.second; fedId++) {
269  // std::cout<<"Adding FED module: "<<fedId<<std::endl;
270  uint32_t id = static_cast<uint32_t>(fedId);
272  theFEDStructure.insert(pair<uint32_t, SiPixelRawDataErrorModule *>(id, theModule));
273  }
274 
275  LogInfo("PixelDQM") << " *** Pixel Structure Size " << thePixelStructure.size() << endl;
276 }
#define LogDebug(id)
int plaquetteName() const
plaquetteId (in pannel)
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:50
int bladeName() const
blade id
std::map< uint32_t, SiPixelRawDataErrorModule * > theFEDStructure
const DetContainer & detsPXB() const
Definition: DetId.h:18
std::map< uint32_t, SiPixelRawDataErrorModule * > thePixelStructure
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
int pannelName() const
pannel id
const DetContainer & detsPXF() const
int diskName() const
disk id
HalfCylinder halfCylinder() const
T const * product() const
Definition: ESHandle.h:86
Definition: vlib.h:208
void SiPixelRawDataErrorSource::dqmBeginRun ( const edm::Run ,
edm::EventSetup const &   
)
override

Definition at line 80 of file SiPixelRawDataErrorSource.cc.

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

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 }
virtual void buildStructure(edm::EventSetup const &)

Member Data Documentation

bool SiPixelRawDataErrorSource::bladeOn
private

Definition at line 78 of file SiPixelRawDataErrorSource.h.

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

MonitorElement* SiPixelRawDataErrorSource::byLumiErrors
private

Definition at line 84 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and bookMEs().

edm::ParameterSet SiPixelRawDataErrorSource::conf_
private

Definition at line 68 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs(), and SiPixelRawDataErrorSource().

MonitorElement* SiPixelRawDataErrorSource::errorRate
private

Definition at line 85 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and bookMEs().

int SiPixelRawDataErrorSource::eventNo
private

Definition at line 80 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and dqmBeginRun().

MonitorElement* SiPixelRawDataErrorSource::fedcounter
private

Definition at line 86 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and bookMEs().

bool SiPixelRawDataErrorSource::firstRun
private

Definition at line 83 of file SiPixelRawDataErrorSource.h.

Referenced by dqmBeginRun(), and SiPixelRawDataErrorSource().

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

Definition at line 70 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and SiPixelRawDataErrorSource().

bool SiPixelRawDataErrorSource::isPIB
private

Definition at line 73 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs(), and buildStructure().

bool SiPixelRawDataErrorSource::isUpgrade
private

Definition at line 79 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs(), and buildStructure().

bool SiPixelRawDataErrorSource::ladOn
private

Definition at line 77 of file SiPixelRawDataErrorSource.h.

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

MonitorElement* SiPixelRawDataErrorSource::meErrorType_[40]
private

Definition at line 88 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meEvtNbr_[40]
private

Definition at line 93 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meEvtSize_[40]
private

Definition at line 94 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meFedChLErr_[40]
private

Definition at line 97 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meFedChNErr_[40]
private

Definition at line 96 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meFedETypeNErr_[40]
private

Definition at line 98 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meFullType_[40]
private

Definition at line 90 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

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

Definition at line 100 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meNErrors_[40]
private

Definition at line 89 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meTBMMessage_[40]
private

Definition at line 91 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meTBMType_[40]
private

Definition at line 92 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

bool SiPixelRawDataErrorSource::modOn
private

Definition at line 76 of file SiPixelRawDataErrorSource.h.

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

bool SiPixelRawDataErrorSource::reducedSet
private

Definition at line 75 of file SiPixelRawDataErrorSource.h.

bool SiPixelRawDataErrorSource::saveFile
private

Definition at line 72 of file SiPixelRawDataErrorSource.h.

bool SiPixelRawDataErrorSource::slowDown
private

Definition at line 74 of file SiPixelRawDataErrorSource.h.

Referenced by analyze().

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

Definition at line 69 of file SiPixelRawDataErrorSource.h.

Referenced by analyze().

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

Definition at line 82 of file SiPixelRawDataErrorSource.h.

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

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

Definition at line 81 of file SiPixelRawDataErrorSource.h.

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

std::string SiPixelRawDataErrorSource::topFolderName_
private

Definition at line 71 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs(), and SiPixelRawDataErrorSource().