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 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
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 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 (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) 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
 
bool firstRun
 
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
 

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::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- 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 53 of file SiPixelRawDataErrorSource.cc.

References firstRun.

53  :
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 {
65  firstRun = true;
66  LogInfo ("PixelDQM") << "SiPixelRawDataErrorSource::SiPixelRawDataErrorSource: Got DQM BackEnd interface"<<endl;
67 }
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)
SiPixelRawDataErrorSource::~SiPixelRawDataErrorSource ( )

Definition at line 70 of file SiPixelRawDataErrorSource.cc.

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

Member Function Documentation

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

Implements edm::stream::EDAnalyzerBase.

Definition at line 100 of file SiPixelRawDataErrorSource.cc.

References bladeOn, byLumiErrors, errorRate, eventNo, MonitorElement::Fill(), edm::Event::getByToken(), input, edm::HandleBase::isValid(), ladOn, edm::EventBase::luminosityBlock(), meMapFEDs_, modOn, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, MonitorElement::setBinContent(), slowDown, src_, DetId::subdetId(), theFEDStructure, and thePixelStructure.

101 {
102  eventNo++;
103 
104  // get input data
106  iEvent.getByToken( src_, input );
107  if (!input.isValid()) return;
108 
109  int lumiSection = (int)iEvent.luminosityBlock();
110 
111  int nEventBPIXModuleErrors = 0; int nEventFPIXModuleErrors = 0; int nEventBPIXFEDErrors = 0; int nEventFPIXFEDErrors = 0;
112  int nErrors = 0;
113 
114  std::map<uint32_t,SiPixelRawDataErrorModule*>::iterator struct_iter;
115  std::map<uint32_t,SiPixelRawDataErrorModule*>::iterator struct_iter2;
116  for (struct_iter = thePixelStructure.begin() ; struct_iter != thePixelStructure.end() ; struct_iter++) {
117 
118  int numberOfModuleErrors = (*struct_iter).second->fill(*input, &meMapFEDs_, modOn, ladOn, bladeOn);
119  if(DetId( (*struct_iter).first ).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel)) nEventBPIXModuleErrors = nEventBPIXModuleErrors + numberOfModuleErrors;
120  if(DetId( (*struct_iter).first ).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap)) nEventFPIXModuleErrors = nEventFPIXModuleErrors + numberOfModuleErrors;
121  //cout<<"NErrors: "<<nEventBPIXModuleErrors<<" "<<nEventFPIXModuleErrors<<endl;
122  nErrors = nErrors + numberOfModuleErrors;
123  //if(nErrors>0) cout<<"MODULES: nErrors: "<<nErrors<<endl;
124  }
125  for (struct_iter2 = theFEDStructure.begin() ; struct_iter2 != theFEDStructure.end() ; struct_iter2++) {
126 
127  int numberOfFEDErrors = (*struct_iter2).second->fillFED(*input, &meMapFEDs_);
128  if((*struct_iter2).first <= 31) nEventBPIXFEDErrors = nEventBPIXFEDErrors + numberOfFEDErrors; // (*struct_iter2).first >= 0, since (*struct_iter2).first is unsigned
129  if((*struct_iter2).first >= 32 && (*struct_iter2).first <= 39) nEventFPIXFEDErrors = nEventFPIXFEDErrors + numberOfFEDErrors;
130  //cout<<"NFEDErrors: "<<nEventBPIXFEDErrors<<" "<<nEventFPIXFEDErrors<<endl;
131  nErrors = nErrors + numberOfFEDErrors;
132  //if(nErrors>0) cout<<"FEDS: nErrors: "<<nErrors<<endl;
133  }
134  if(byLumiErrors){
136  //cout<<"NErrors: "<<nEventBPIXModuleErrors<<" "<<nEventFPIXModuleErrors<<" "<<nEventBPIXFEDErrors<<" "<<nEventFPIXFEDErrors<<endl;
137  if(nEventBPIXModuleErrors+nEventBPIXFEDErrors>0) byLumiErrors->Fill(0,1.);
138  if(nEventFPIXModuleErrors+nEventFPIXFEDErrors>0) byLumiErrors->Fill(1,1.);
139  //cout<<"histo: "<<byLumiErrors->getBinContent(0)<<" "<<byLumiErrors->getBinContent(1)<<" "<<byLumiErrors->getBinContent(2)<<endl;
140  }
141 
142  // Rate of errors per lumi section:
143  if(errorRate) errorRate->Fill(lumiSection, nErrors);
144 
145  // slow down...
146  if(slowDown) usleep(100000);
147 
148 }
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:446
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:59
static std::string const input
Definition: EdmProvDump.cc:44
void Fill(long long x)
std::map< uint32_t, SiPixelRawDataErrorModule * > thePixelStructure
bool isValid() const
Definition: HandleBase.h:76
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
std::map< std::string, MonitorElement ** > meMapFEDs_
void SiPixelRawDataErrorSource::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  ,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 92 of file SiPixelRawDataErrorSource.cc.

References bookMEs().

92  {
93  // Book Monitoring Elements
94  bookMEs(iBooker);
95 }
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 252 of file SiPixelRawDataErrorSource.cc.

References bladeOn, DQMStore::IBooker::book1D(), byLumiErrors, DQMStore::IBooker::cd(), conf_, errorRate, edm::hlt::Exception, 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, and indexGen::title.

Referenced by bookHistograms().

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

References PixelEndcapNameUpgrade::bladeName(), PixelEndcapName::bladeName(), PixelEndcapNameUpgrade::diskName(), PixelEndcapName::diskName(), edm::EventSetup::get(), PixelEndcapNameUpgrade::halfCylinder(), PixelEndcapName::halfCylinder(), isPIB, isUpgrade, LogDebug, FEDNumbering::MAXSiPixelFEDID, FEDNumbering::MINSiPixelFEDID, PixelEndcapNameUpgrade::pannelName(), PixelEndcapName::pannelName(), GeomDetEnumerators::PixelBarrel, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, GeomDetEnumerators::PixelEndcap, PixelEndcapNameUpgrade::plaquetteName(), PixelEndcapName::plaquetteName(), DetId::rawId(), PixelGeomDetUnit::specificTopology(), AlCaHLTBitMon_QueryRunRegistry::string, DetId::subdetId(), theFEDStructure, and thePixelStructure.

Referenced by dqmBeginRun().

153  {
154 
155  LogInfo ("PixelDQM") <<" SiPixelRawDataErrorSource::buildStructure" ;
157  iSetup.get<TrackerDigiGeometryRecord>().get( pDD );
158 
159  LogVerbatim ("PixelDQM") << " *** Geometry node for TrackerGeom is "<<&(*pDD)<<std::endl;
160  LogVerbatim ("PixelDQM") << " *** I have " << pDD->dets().size() <<" detectors"<<std::endl;
161  LogVerbatim ("PixelDQM") << " *** I have " << pDD->detTypes().size() <<" types"<<std::endl;
162 
163  for(TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++){
164 
165  if( ((*it)->subDetector()==GeomDetEnumerators::PixelBarrel) || ((*it)->subDetector()==GeomDetEnumerators::PixelEndcap) ){
166  DetId detId = (*it)->geographicalId();
167  const GeomDetUnit * geoUnit = pDD->idToDetUnit( detId );
168  const PixelGeomDetUnit * pixDet = dynamic_cast<const PixelGeomDetUnit*>(geoUnit);
169  int nrows = (pixDet->specificTopology()).nrows();
170  int ncols = (pixDet->specificTopology()).ncolumns();
171 
172  if(detId.subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel)) {
173  if(isPIB) continue;
174  LogDebug ("PixelDQM") << " ---> Adding Barrel Module " << detId.rawId() << endl;
175  uint32_t id = detId();
176  SiPixelRawDataErrorModule* theModule = new SiPixelRawDataErrorModule(id, ncols, nrows);
177  thePixelStructure.insert(pair<uint32_t,SiPixelRawDataErrorModule*> (id,theModule));
178 
179  } else if( (detId.subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap)) && (!isUpgrade)) {
180  LogDebug ("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl;
181  uint32_t id = detId();
182  SiPixelRawDataErrorModule* theModule = new SiPixelRawDataErrorModule(id, ncols, nrows);
183 
185  int disk = PixelEndcapName(DetId(id)).diskName();
186  int blade = PixelEndcapName(DetId(id)).bladeName();
187  int panel = PixelEndcapName(DetId(id)).pannelName();
189 
190  char sside[80]; sprintf(sside, "HalfCylinder_%i",side);
191  char sdisk[80]; sprintf(sdisk, "Disk_%i",disk);
192  char sblade[80]; sprintf(sblade, "Blade_%02i",blade);
193  char spanel[80]; sprintf(spanel, "Panel_%i",panel);
194  char smodule[80];sprintf(smodule,"Module_%i",module);
195  std::string side_str = sside;
196  std::string disk_str = sdisk;
197  bool mask = side_str.find("HalfCylinder_1")!=string::npos||
198  side_str.find("HalfCylinder_2")!=string::npos||
199  side_str.find("HalfCylinder_4")!=string::npos||
200  disk_str.find("Disk_2")!=string::npos;
201  // clutch to take all of FPIX, but no BPIX:
202  mask = false;
203  if(isPIB && mask) continue;
204 
205  thePixelStructure.insert(pair<uint32_t,SiPixelRawDataErrorModule*> (id,theModule));
206  } else if( (detId.subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap)) && (isUpgrade)) {
207  LogDebug ("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl;
208  uint32_t id = detId();
209  SiPixelRawDataErrorModule* theModule = new SiPixelRawDataErrorModule(id, ncols, nrows);
210 
212  int disk = PixelEndcapNameUpgrade(DetId(id)).diskName();
213  int blade = PixelEndcapNameUpgrade(DetId(id)).bladeName();
214  int panel = PixelEndcapNameUpgrade(DetId(id)).pannelName();
215  int module = PixelEndcapNameUpgrade(DetId(id)).plaquetteName();
216 
217  char sside[80]; sprintf(sside, "HalfCylinder_%i",side);
218  char sdisk[80]; sprintf(sdisk, "Disk_%i",disk);
219  char sblade[80]; sprintf(sblade, "Blade_%02i",blade);
220  char spanel[80]; sprintf(spanel, "Panel_%i",panel);
221  char smodule[80];sprintf(smodule,"Module_%i",module);
222  std::string side_str = sside;
223  std::string disk_str = sdisk;
224  bool mask = side_str.find("HalfCylinder_1")!=string::npos||
225  side_str.find("HalfCylinder_2")!=string::npos||
226  side_str.find("HalfCylinder_4")!=string::npos||
227  disk_str.find("Disk_2")!=string::npos;
228  // clutch to take all of FPIX, but no BPIX:
229  mask = false;
230  if(isPIB && mask) continue;
231 
232  thePixelStructure.insert(pair<uint32_t,SiPixelRawDataErrorModule*> (id,theModule));
233  }//endif(isUpgrade)
234  }
235  }
236  LogDebug ("PixelDQM") << " ---> Adding Module for Additional Errors " << endl;
238  fedIds.first = 0;
239  fedIds.second = 39;
240  for (int fedId = fedIds.first; fedId <= fedIds.second; fedId++) {
241  //std::cout<<"Adding FED module: "<<fedId<<std::endl;
242  uint32_t id = static_cast<uint32_t> (fedId);
244  theFEDStructure.insert(pair<uint32_t,SiPixelRawDataErrorModule*> (id,theModule));
245  }
246 
247  LogInfo ("PixelDQM") << " *** Pixel Structure Size " << thePixelStructure.size() << endl;
248 }
#define LogDebug(id)
int plaquetteName() const
plaquetteId (in pannel)
std::map< uint32_t, SiPixelRawDataErrorModule * > theFEDStructure
int plaquetteName() const
plaquetteId (in pannel)
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
int bladeName() const
blade id
std::map< uint32_t, SiPixelRawDataErrorModule * > thePixelStructure
int bladeName() const
blade id
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
int diskName() const
disk id
Definition: DetId.h:18
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
int pannelName() const
pannel id
int diskName() const
disk id
HalfCylinder halfCylinder() const
HalfCylinder halfCylinder() const
int pannelName() const
pannel id
Definition: vlib.h:208
void SiPixelRawDataErrorSource::dqmBeginRun ( const edm::Run r,
edm::EventSetup const &  iSetup 
)
virtual

Reimplemented from DQMEDAnalyzer.

Definition at line 77 of file SiPixelRawDataErrorSource.cc.

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

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

Member Data Documentation

bool SiPixelRawDataErrorSource::bladeOn
private

Definition at line 77 of file SiPixelRawDataErrorSource.h.

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

MonitorElement* SiPixelRawDataErrorSource::byLumiErrors
private

Definition at line 83 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and bookMEs().

edm::ParameterSet SiPixelRawDataErrorSource::conf_
private

Definition at line 69 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::errorRate
private

Definition at line 84 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and bookMEs().

int SiPixelRawDataErrorSource::eventNo
private

Definition at line 79 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and dqmBeginRun().

bool SiPixelRawDataErrorSource::firstRun
private

Definition at line 82 of file SiPixelRawDataErrorSource.h.

Referenced by dqmBeginRun(), and SiPixelRawDataErrorSource().

bool SiPixelRawDataErrorSource::isPIB
private

Definition at line 72 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs(), and buildStructure().

bool SiPixelRawDataErrorSource::isUpgrade
private

Definition at line 78 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs(), and buildStructure().

bool SiPixelRawDataErrorSource::ladOn
private

Definition at line 76 of file SiPixelRawDataErrorSource.h.

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

MonitorElement* SiPixelRawDataErrorSource::meErrorType_[40]
private

Definition at line 86 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meEvtNbr_[40]
private

Definition at line 91 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meEvtSize_[40]
private

Definition at line 92 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meFedChLErr_[40]
private

Definition at line 95 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meFedChNErr_[40]
private

Definition at line 94 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meFedETypeNErr_[40]
private

Definition at line 96 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meFullType_[40]
private

Definition at line 88 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

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

Definition at line 98 of file SiPixelRawDataErrorSource.h.

Referenced by analyze(), and bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meNErrors_[40]
private

Definition at line 87 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meTBMMessage_[40]
private

Definition at line 89 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

MonitorElement* SiPixelRawDataErrorSource::meTBMType_[40]
private

Definition at line 90 of file SiPixelRawDataErrorSource.h.

Referenced by bookMEs().

bool SiPixelRawDataErrorSource::modOn
private

Definition at line 75 of file SiPixelRawDataErrorSource.h.

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

bool SiPixelRawDataErrorSource::reducedSet
private

Definition at line 74 of file SiPixelRawDataErrorSource.h.

bool SiPixelRawDataErrorSource::saveFile
private

Definition at line 71 of file SiPixelRawDataErrorSource.h.

bool SiPixelRawDataErrorSource::slowDown
private

Definition at line 73 of file SiPixelRawDataErrorSource.h.

Referenced by analyze().

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

Definition at line 70 of file SiPixelRawDataErrorSource.h.

Referenced by analyze().

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

Definition at line 81 of file SiPixelRawDataErrorSource.h.

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

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

Definition at line 80 of file SiPixelRawDataErrorSource.h.

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