CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Attributes
SiPixelRawDataErrorSource Class Reference

#include <SiPixelRawDataErrorSource.h>

Inheritance diagram for SiPixelRawDataErrorSource:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Types

typedef edm::DetSet
< SiPixelRawDataError >
::const_iterator 
ErrorIterator
 
- Public Types inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
virtual void bookMEs (DQMStore::IBooker &)
 
virtual void buildStructure (edm::EventSetup const &)
 
virtual void dqmBeginRun (const edm::Run &, edm::EventSetup const &)
 
 SiPixelRawDataErrorSource (const edm::ParameterSet &conf)
 
 ~SiPixelRawDataErrorSource ()
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Attributes

bool bladeOn
 
MonitorElementbyLumiErrors
 
edm::ParameterSet conf_
 
MonitorElementerrorRate
 
int eventNo
 
MonitorElementfedcounter
 
bool firstRun
 
edm::EDGetTokenT
< FEDRawDataCollection
inputSourceToken_
 
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_
 

Additional Inherited Members

- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr
< dqmDetails::NoCache
globalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr
< dqmDetails::NoCache
globalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, 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 ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

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 54 of file SiPixelRawDataErrorSource.cc.

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

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

Definition at line 73 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 
)
virtual

Implements edm::stream::EDAnalyzerBase.

Definition at line 103 of file SiPixelRawDataErrorSource.cc.

References bladeOn, byLumiErrors, FEDRawData::data(), errorRate, eventNo, fedcounter, FEDRawDataCollection::FEDData(), MonitorElement::Fill(), edm::Event::getByToken(), i, input, inputSourceToken_, 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  }
114  else{
115  const FEDRawDataCollection& rawDataCollection = *rawDataHandle;
116  for(int i = 0; i != 40; i++){
117  if(rawDataCollection.FEDData(i).size() && rawDataCollection.FEDData(i).data()) fedcounter->setBinContent(i+1,1);
118  }
119  }
120  }
121  // get input data
123  iEvent.getByToken( src_, input );
124  if (!input.isValid()) return;
125 
126  int lumiSection = (int)iEvent.luminosityBlock();
127 
128  int nEventBPIXModuleErrors = 0; int nEventFPIXModuleErrors = 0; int nEventBPIXFEDErrors = 0; int nEventFPIXFEDErrors = 0;
129  int nErrors = 0;
130 
131  std::map<uint32_t,SiPixelRawDataErrorModule*>::iterator struct_iter;
132  std::map<uint32_t,SiPixelRawDataErrorModule*>::iterator struct_iter2;
133  for (struct_iter = thePixelStructure.begin() ; struct_iter != thePixelStructure.end() ; struct_iter++) {
134 
135  int numberOfModuleErrors = (*struct_iter).second->fill(*input, &meMapFEDs_, modOn, ladOn, bladeOn);
136  if(DetId( (*struct_iter).first ).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel)) nEventBPIXModuleErrors = nEventBPIXModuleErrors + numberOfModuleErrors;
137  if(DetId( (*struct_iter).first ).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap)) nEventFPIXModuleErrors = nEventFPIXModuleErrors + numberOfModuleErrors;
138  //cout<<"NErrors: "<<nEventBPIXModuleErrors<<" "<<nEventFPIXModuleErrors<<endl;
139  nErrors = nErrors + numberOfModuleErrors;
140  //if(nErrors>0) cout<<"MODULES: nErrors: "<<nErrors<<endl;
141  }
142  for (struct_iter2 = theFEDStructure.begin() ; struct_iter2 != theFEDStructure.end() ; struct_iter2++) {
143 
144  int numberOfFEDErrors = (*struct_iter2).second->fillFED(*input, &meMapFEDs_);
145  if((*struct_iter2).first <= 31) nEventBPIXFEDErrors = nEventBPIXFEDErrors + numberOfFEDErrors; // (*struct_iter2).first >= 0, since (*struct_iter2).first is unsigned
146  if((*struct_iter2).first >= 32 && (*struct_iter2).first <= 39) nEventFPIXFEDErrors = nEventFPIXFEDErrors + numberOfFEDErrors;
147  //cout<<"NFEDErrors: "<<nEventBPIXFEDErrors<<" "<<nEventFPIXFEDErrors<<endl;
148  nErrors = nErrors + numberOfFEDErrors;
149  //if(nErrors>0) cout<<"FEDS: nErrors: "<<nErrors<<endl;
150  }
151  if(byLumiErrors){
153  //cout<<"NErrors: "<<nEventBPIXModuleErrors<<" "<<nEventFPIXModuleErrors<<" "<<nEventBPIXFEDErrors<<" "<<nEventFPIXFEDErrors<<endl;
154  if(nEventBPIXModuleErrors+nEventBPIXFEDErrors>0) byLumiErrors->Fill(0,1.);
155  if(nEventFPIXModuleErrors+nEventFPIXFEDErrors>0) byLumiErrors->Fill(1,1.);
156  //cout<<"histo: "<<byLumiErrors->getBinContent(0)<<" "<<byLumiErrors->getBinContent(1)<<" "<<byLumiErrors->getBinContent(2)<<endl;
157  }
158 
159  // Rate of errors per lumi section:
160  if(errorRate) errorRate->Fill(lumiSection, nErrors);
161 
162  // slow down...
163  if(slowDown) usleep(100000);
164 
165 }
int i
Definition: DBlmapReader.cc:9
void setBinContent(int binx, double content)
set content of bin (1-D)
std::map< uint32_t, SiPixelRawDataErrorModule * > theFEDStructure
edm::EDGetTokenT< edm::DetSetVector< SiPixelRawDataError > > src_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:62
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
static std::string const input
Definition: EdmProvDump.cc:44
void Fill(long long x)
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
std::map< uint32_t, SiPixelRawDataErrorModule * > thePixelStructure
bool isValid() const
Definition: HandleBase.h:75
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
Definition: DetId.h:18
edm::EDGetTokenT< FEDRawDataCollection > inputSourceToken_
std::map< std::string, MonitorElement ** > meMapFEDs_
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:28
void SiPixelRawDataErrorSource::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  ,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 95 of file SiPixelRawDataErrorSource.cc.

References bookMEs().

95  {
96  // Book Monitoring Elements
97  bookMEs(iBooker);
98 }
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 269 of file SiPixelRawDataErrorSource.cc.

References bladeOn, DQMStore::IBooker::book1D(), byLumiErrors, DQMStore::IBooker::cd(), conf_, errorRate, Exception, fedcounter, edm::ParameterSet::getParameter(), 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(), alcazmumu_cfi::src, AlCaHLTBitMon_QueryRunRegistry::string, groupFilesInBlocks::temp, theFEDStructure, thePixelStructure, indexGen::title, and topFolderName_.

Referenced by bookHistograms().

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

Definition at line 170 of file SiPixelRawDataErrorSource.cc.

References PixelEndcapName::bladeName(), PixelEndcapName::diskName(), stage2BMTFBufferRaw_cfi::fedId, edm::EventSetup::get(), PixelEndcapName::halfCylinder(), isPIB, isUpgrade, LogDebug, FEDNumbering::MAXSiPixelFEDID, FEDNumbering::MINSiPixelFEDID, PixelEndcapName::pannelName(), PixelEndcapName::plaquetteName(), edm::ESHandle< class >::product(), DetId::rawId(), PixelGeomDetUnit::specificTopology(), AlCaHLTBitMon_QueryRunRegistry::string, theFEDStructure, and thePixelStructure.

Referenced by dqmBeginRun().

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

Reimplemented from DQMEDAnalyzer.

Definition at line 80 of file SiPixelRawDataErrorSource.cc.

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

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