CMS 3D CMS Logo

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

#include <DQM/SiStripMonitorHardware/plugins/SiStripFEDMonitor.cc>

Inheritance diagram for SiStripFEDMonitorPlugin:
edm::EDAnalyzer

Public Member Functions

 SiStripFEDMonitorPlugin (const edm::ParameterSet &)
 
 ~SiStripFEDMonitorPlugin ()
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 

Private Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginJob ()
 
virtual void beginLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &context)
 
virtual void endJob ()
 
virtual void endLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &context)
 
void getMajority (const std::vector< std::pair< unsigned int, unsigned int > > &aFeMajVec, unsigned int &aMajorityCounter, std::vector< unsigned int > &afedIds)
 
void updateCabling (const edm::EventSetup &eventSetup)
 

Static Private Member Functions

static bool pairComparison (const std::pair< unsigned int, unsigned int > &pair1, const std::pair< unsigned int, unsigned int > &pair2)
 

Private Attributes

const SiStripFedCablingcabling_
 
uint32_t cablingCacheId_
 
bool doFEMajorityCheck_
 
bool doMedHists_
 
bool doTkHistoMap_
 
DQMStoredqm_
 
std::string dqmStoreFileName_
 
FEDErrors fedErrors_
 
FEDHistograms fedHists_
 
bool fillAllDetailedHistograms_
 
bool fillWithEvtNum_
 
std::string folderName_
 
unsigned int maxFedBufferSize_
 
unsigned int nEvt_
 
unsigned int printDebug_
 
edm::InputTag rawDataTag_
 
bool writeDQMStore_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDAnalyzer
CurrentProcessingContext const * currentContext () const
 

Detailed Description

Description: DQM source application to produce data integrety histograms for SiStrip data

Definition at line 59 of file SiStripFEDMonitor.cc.

Constructor & Destructor Documentation

SiStripFEDMonitorPlugin::SiStripFEDMonitorPlugin ( const edm::ParameterSet iConfig)
explicit

Definition at line 123 of file SiStripFEDMonitor.cc.

References doFEMajorityCheck_, doMedHists_, doTkHistoMap_, dqmStoreFileName_, fedHists_, fillAllDetailedHistograms_, fillWithEvtNum_, folderName_, LogTrace, nEvt_, NULL, printDebug_, rawDataTag_, and writeDQMStore_.

124  : rawDataTag_(iConfig.getUntrackedParameter<edm::InputTag>("RawDataTag",edm::InputTag("source",""))),
125  folderName_(iConfig.getUntrackedParameter<std::string>("HistogramFolderName","SiStrip/ReadoutView/FedSummary")),
126  fillAllDetailedHistograms_(iConfig.getUntrackedParameter<bool>("FillAllDetailedHistograms",false)),
127  fillWithEvtNum_(iConfig.getUntrackedParameter<bool>("FillWithEventNumber",false)),
128  printDebug_(iConfig.getUntrackedParameter<unsigned int>("PrintDebugMessages",1)),
129  //printDebug_(iConfig.getUntrackedParameter<bool>("PrintDebugMessages",false)),
130  writeDQMStore_(iConfig.getUntrackedParameter<bool>("WriteDQMStore",false)),
131  dqmStoreFileName_(iConfig.getUntrackedParameter<std::string>("DQMStoreFileName","DQMStore.root")),
132  dqm_(0),
133  cablingCacheId_(0),
135 {
136  //print config to debug log
137  std::ostringstream debugStream;
138  if (printDebug_>1) {
139  debugStream << "[SiStripFEDMonitorPlugin]Configuration for SiStripFEDMonitorPlugin: " << std::endl
140  << "[SiStripFEDMonitorPlugin]\tRawDataTag: " << rawDataTag_ << std::endl
141  << "[SiStripFEDMonitorPlugin]\tHistogramFolderName: " << folderName_ << std::endl
142  << "[SiStripFEDMonitorPlugin]\tFillAllDetailedHistograms? " << (fillAllDetailedHistograms_ ? "yes" : "no") << std::endl
143  << "[SiStripFEDMonitorPlugin]\tFillWithEventNumber?" << (fillWithEvtNum_ ? "yes" : "no") << std::endl
144  << "[SiStripFEDMonitorPlugin]\tPrintDebugMessages? " << (printDebug_ ? "yes" : "no") << std::endl
145  << "[SiStripFEDMonitorPlugin]\tWriteDQMStore? " << (writeDQMStore_ ? "yes" : "no") << std::endl;
146  if (writeDQMStore_) debugStream << "[SiStripFEDMonitorPlugin]\tDQMStoreFileName: " << dqmStoreFileName_ << std::endl;
147  }
148 
149  //don;t generate debug mesages if debug is disabled
150  std::ostringstream* pDebugStream = (printDebug_>1 ? &debugStream : NULL);
151 
152  fedHists_.initialise(iConfig,pDebugStream);
153 
154  doTkHistoMap_ = fedHists_.tkHistoMapEnabled();
155 
156  doMedHists_ = fedHists_.cmHistosEnabled();
157 
158  doFEMajorityCheck_ = fedHists_.feMajHistosEnabled();
159 
160  if (printDebug_) {
161  LogTrace("SiStripMonitorHardware") << debugStream.str();
162 
163  //debugStream.str("");
164 
165  //debugStream << " -- Quelle est la difference entre un canard ? " << std::endl
166  // << " -- Reponse: c'est qu'il a les deux pattes de la meme longueur, surtout la gauche." << std::endl;
167 
168  //edm::LogError("SiStripMonitorHardware") << debugStream.str();
169  }
170 
171  nEvt_ = 0;
172 
173 }
T getUntrackedParameter(std::string const &, T const &) const
#define NULL
Definition: scimark2.h:8
#define LogTrace(id)
SiStripFEDMonitorPlugin::~SiStripFEDMonitorPlugin ( )

Definition at line 175 of file SiStripFEDMonitor.cc.

176 {
177 }

Member Function Documentation

void SiStripFEDMonitorPlugin::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDAnalyzer.

Definition at line 186 of file SiStripFEDMonitor.cc.

References begin, cabling_, doFEMajorityCheck_, doMedHists_, doTkHistoMap_, end, edm::EventID::event(), edm::HandleBase::failedToGet(), FEDRawDataCollection::FEDData(), fedErrors_, fedHists_, fillWithEvtNum_, edm::Event::getByLabel(), getMajority(), edm::EventBase::id(), edm::HandleBase::isValid(), maxFedBufferSize_, FEDNumbering::MAXSiStripFEDID, FEDNumbering::MINSiStripFEDID, nEvt_, edm::EventBase::orbitNumber(), pairComparison(), printDebug_, rawDataTag_, FEDRawData::size(), findQualityFiles::size, python.multivaluedict::sort(), and updateCabling().

188 {
189  //update cabling
190  updateCabling(iSetup);
191 
192  //get raw data
193  edm::Handle<FEDRawDataCollection> rawDataCollectionHandle;
194  iEvent.getByLabel(rawDataTag_,rawDataCollectionHandle);
195  const FEDRawDataCollection& rawDataCollection = *rawDataCollectionHandle;
196 
197  fedErrors_.initialiseEvent();
198 
199  //add the deltaBX value if the product exist
200 
202  iEvent.getByLabel("consecutiveHEs",he);
203 
204  if(he.isValid() && !he.failedToGet()) {
205  fedErrors_.fillEventProperties(he->deltaBX());
206  }
207 
208  //initialise map of fedId/bad channel number
209  std::map<unsigned int,std::pair<unsigned short,unsigned short> > badChannelFraction;
210 
211  unsigned int lNFEDMonitoring = 0;
212  unsigned int lNFEDUnpacker = 0;
213  unsigned int lNChannelMonitoring = 0;
214  unsigned int lNChannelUnpacker = 0;
215 
216  unsigned int lNTotBadFeds = 0;
217  unsigned int lNTotBadChannels = 0;
218  unsigned int lNTotBadActiveChannels = 0;
219 
220  std::vector<std::vector<std::pair<unsigned int,unsigned int> > > lFeMajFrac;
221  const unsigned int nParts = 4;
222  if (doFEMajorityCheck_){
223  lFeMajFrac.resize(nParts);
224  //max nFE per partition
225  lFeMajFrac[0].reserve(912);
226  lFeMajFrac[1].reserve(1080);
227  lFeMajFrac[2].reserve(768);
228  lFeMajFrac[3].reserve(760);
229  }
230 
231  maxFedBufferSize_ = 0;
232 
233  //loop over siStrip FED IDs
234  for (unsigned int fedId = FEDNumbering::MINSiStripFEDID;
236  fedId++) {//loop over FED IDs
237  const FEDRawData& fedData = rawDataCollection.FEDData(fedId);
238 
239  //create an object to fill all errors
240  fedErrors_.initialiseFED(fedId,cabling_);
241  bool lFullDebug = false;
242 
243  //Do detailed check
244  //first check if data exists
245  bool lDataExist = fedErrors_.checkDataPresent(fedData);
246  if (!lDataExist) {
247  fedHists_.fillFEDHistograms(fedErrors_,0,lFullDebug);
248  continue;
249  }
250 
251 
252 
253  //check for problems and fill detailed histograms
254  fedErrors_.fillFEDErrors(fedData,
255  lFullDebug,
256  printDebug_,
257  lNChannelMonitoring,
258  lNChannelUnpacker,
259  doMedHists_,
260  fedHists_.cmHistPointer(false),
261  fedHists_.cmHistPointer(true),
263  lFeMajFrac
264  );
265 
266  //check filled in previous method.
267  bool lFailUnpackerFEDcheck = fedErrors_.failUnpackerFEDCheck();
268 
269  fedErrors_.incrementFEDCounters();
270  unsigned int lSize = fedData.size();
271  if (lSize > maxFedBufferSize_){
272  maxFedBufferSize_ = lSize;
273  }
274  //std::cout << " -- " << fedId << " " << lSize << std::endl;
275 
276  fedHists_.fillFEDHistograms(fedErrors_,lSize,lFullDebug);
277 
278  bool lFailMonitoringFEDcheck = fedErrors_.failMonitoringFEDCheck();
279  if (lFailMonitoringFEDcheck) lNTotBadFeds++;
280 
281 
282  //sanity check: if something changed in the unpacking code
283  //but wasn't propagated here
284  //print only the summary, and more info if printDebug>1
285  if (lFailMonitoringFEDcheck != lFailUnpackerFEDcheck) {
286  if (printDebug_>1) {
287  std::ostringstream debugStream;
288  debugStream << " --- WARNING: FED " << fedId << std::endl
289  << " ------ Monitoring FED check " ;
290  if (lFailMonitoringFEDcheck) debugStream << "failed." << std::endl;
291  else debugStream << "passed." << std::endl ;
292  debugStream << " ------ Unpacker FED check " ;
293  if (lFailUnpackerFEDcheck) debugStream << "failed." << std::endl;
294  else debugStream << "passed." << std::endl ;
295  edm::LogError("SiStripMonitorHardware") << debugStream.str();
296  }
297 
298  if (lFailMonitoringFEDcheck) lNFEDMonitoring++;
299  else if (lFailUnpackerFEDcheck) lNFEDUnpacker++;
300  }
301 
302 
303  //Fill TkHistoMap:
304  //add an entry for all channels (good = 0),
305  //so that tkHistoMap knows which channels should be there.
306  if (doTkHistoMap_ && !fedHists_.tkHistoMapPointer()) {
307  edm::LogWarning("SiStripMonitorHardware") << " -- Fedid " << fedId
308  << ", TkHistoMap enabled but pointer is null." << std::endl;
309  }
310 
311  fedErrors_.fillBadChannelList(doTkHistoMap_,
312  fedHists_.tkHistoMapPointer(),
313  fedHists_.getFedvsAPVpointer(),
314  lNTotBadChannels,
315  lNTotBadActiveChannels);
316  }//loop over FED IDs
317 
318 
319  if (doFEMajorityCheck_){
320  for (unsigned int iP(0); iP<nParts; ++iP){
321  //std::cout << " -- Partition " << iP << std::endl;
322  //std::cout << " --- Number of elements in vec = " << lFeMajFrac[iP].size() << std::endl;
323  if (lFeMajFrac[iP].size()==0) continue;
324  std::sort(lFeMajFrac[iP].begin(),lFeMajFrac[iP].end(),SiStripFEDMonitorPlugin::pairComparison);
325 
326  unsigned int lMajorityCounter = 0;
327  std::vector<unsigned int> lfedIds;
328 
329  getMajority(lFeMajFrac[iP],lMajorityCounter,lfedIds);
330  //std::cout << " -- Found " << lfedIds.size() << " unique elements not matching the majority." << std::endl;
331  fedHists_.fillMajorityHistograms(iP,static_cast<float>(lMajorityCounter)/lFeMajFrac[iP].size(),lfedIds);
332  }
333  }
334 
335  if ((lNTotBadFeds> 0 || lNTotBadChannels>0) && printDebug_>1) {
336  std::ostringstream debugStream;
337  debugStream << "[SiStripFEDMonitorPlugin] --- Total number of bad feds = "
338  << lNTotBadFeds << std::endl
339  << "[SiStripFEDMonitorPlugin] --- Total number of bad channels = "
340  << lNTotBadChannels << std::endl
341  << "[SiStripFEDMonitorPlugin] --- Total number of bad active channels = "
342  << lNTotBadActiveChannels << std::endl;
343  edm::LogInfo("SiStripMonitorHardware") << debugStream.str();
344  }
345 
346  if ((lNFEDMonitoring > 0 || lNFEDUnpacker > 0 || lNChannelMonitoring > 0 || lNChannelUnpacker > 0) && printDebug_) {
347  std::ostringstream debugStream;
348  debugStream
349  << "[SiStripFEDMonitorPlugin]-------------------------------------------------------------------------" << std::endl
350  << "[SiStripFEDMonitorPlugin]-------------------------------------------------------------------------" << std::endl
351  << "[SiStripFEDMonitorPlugin]-- Summary of differences between unpacker and monitoring at FED level : " << std::endl
352  << "[SiStripFEDMonitorPlugin] ---- Number of times monitoring fails but not unpacking = " << lNFEDMonitoring << std::endl
353  << "[SiStripFEDMonitorPlugin] ---- Number of times unpacking fails but not monitoring = " << lNFEDUnpacker << std::endl
354  << "[SiStripFEDMonitorPlugin]-------------------------------------------------------------------------" << std::endl
355  << "[SiStripFEDMonitorPlugin]-- Summary of differences between unpacker and monitoring at Channel level : " << std::endl
356  << "[SiStripFEDMonitorPlugin] ---- Number of times monitoring fails but not unpacking = " << lNChannelMonitoring << std::endl
357  << "[SiStripFEDMonitorPlugin] ---- Number of times unpacking fails but not monitoring = " << lNChannelUnpacker << std::endl
358  << "[SiStripFEDMonitorPlugin]-------------------------------------------------------------------------" << std::endl
359  << "[SiStripFEDMonitorPlugin]-------------------------------------------------------------------------" << std::endl ;
360  edm::LogError("SiStripMonitorHardware") << debugStream.str();
361 
362  }
363 
364  FEDErrors::getFEDErrorsCounters().nTotalBadChannels = lNTotBadChannels;
365  FEDErrors::getFEDErrorsCounters().nTotalBadActiveChannels = lNTotBadActiveChannels;
366 
367  //fedHists_.fillCountersHistograms(FEDErrors::getFEDErrorsCounters(), nEvt_);
368  //time in seconds since beginning of the run or event number
369  if (fillWithEvtNum_) fedHists_.fillCountersHistograms(FEDErrors::getFEDErrorsCounters(),FEDErrors::getChannelErrorsCounters(),maxFedBufferSize_,iEvent.id().event());
370  else fedHists_.fillCountersHistograms(FEDErrors::getFEDErrorsCounters(),FEDErrors::getChannelErrorsCounters(),maxFedBufferSize_,iEvent.orbitNumber()/11223.);
371 
372  nEvt_++;
373 
374 }//analyze method
EventNumber_t event() const
Definition: EventID.h:44
const SiStripFedCabling * cabling_
void getMajority(const std::vector< std::pair< unsigned int, unsigned int > > &aFeMajVec, unsigned int &aMajorityCounter, std::vector< unsigned int > &afedIds)
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:49
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
#define end
Definition: vmac.h:38
int orbitNumber() const
Definition: EventBase.h:63
bool isValid() const
Definition: HandleBase.h:76
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
bool failedToGet() const
Definition: HandleBase.h:80
edm::EventID id() const
Definition: EventBase.h:56
#define begin
Definition: vmac.h:31
static bool pairComparison(const std::pair< unsigned int, unsigned int > &pair1, const std::pair< unsigned int, unsigned int > &pair2)
tuple size
Write out results.
void updateCabling(const edm::EventSetup &eventSetup)
void SiStripFEDMonitorPlugin::beginJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 451 of file SiStripFEDMonitor.cc.

References dqm_, fedHists_, fillAllDetailedHistograms_, folderName_, nEvt_, and DQMStore::setCurrentFolder().

452 {
453  //get DQM store
456 
457  //this propagates dqm_ to the histoclass, must be called !
458  fedHists_.bookTopLevelHistograms(dqm_);
459 
460  if (fillAllDetailedHistograms_) fedHists_.bookAllFEDHistograms();
461 
462  nEvt_ = 0;
463 
464  //const unsigned int siStripFedIdMin = FEDNumbering::MINSiStripFEDID;
465  //const unsigned int siStripFedIdMax = FEDNumbering::MAXSiStripFEDID;
466 
467  //mark all channels as inactive until they have been 'locked' at least once
468  // activeChannels_.resize(siStripFedIdMax+1);
469  // for (unsigned int fedId = siStripFedIdMin;
470  // fedId <= siStripFedIdMax;
471  // fedId++) {
472  // activeChannels_[fedId].resize(sistrip::FEDCH_PER_FED,false);
473  // }
474 
475 
476 
477 
478 }
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:429
void SiStripFEDMonitorPlugin::beginLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup context 
)
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 490 of file SiStripFEDMonitor.cc.

References fedErrors_.

492 {
493 
494  fedErrors_.initialiseLumiBlock();
495 
496 }
void SiStripFEDMonitorPlugin::endJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 482 of file SiStripFEDMonitor.cc.

References dqm_, dqmStoreFileName_, DQMStore::save(), and writeDQMStore_.

483 {
485 }
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
Definition: DQMStore.cc:2113
void SiStripFEDMonitorPlugin::endLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup context 
)
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 500 of file SiStripFEDMonitor.cc.

References fedErrors_, and fedHists_.

502 {
503  fedHists_.fillLumiHistograms(fedErrors_.getLumiErrors());
504 }
void SiStripFEDMonitorPlugin::getMajority ( const std::vector< std::pair< unsigned int, unsigned int > > &  aFeMajVec,
unsigned int &  aMajorityCounter,
std::vector< unsigned int > &  afedIds 
)
private

Definition at line 382 of file SiStripFEDMonitor.cc.

References gather_cfg::cout, and python.multivaluedict::sort().

Referenced by analyze().

384  {
385 
386 
387  unsigned int lMajAddress = 0;
388  std::vector<std::pair<unsigned int,unsigned int> >::const_iterator lIter = aFeMajVec.begin();
389  unsigned int lMajAddr = (*lIter).second;
390  unsigned int lCounter = 0;
391 
392  //std::cout << " --- First element: addr = " << lMajAddr << " counter = " << lCounter << std::endl;
393  unsigned int iele=0;
394  //bool foundMaj = false;
395  for ( ; lIter != aFeMajVec.end(); ++lIter,++iele) {
396  //std::cout << " ---- Ele " << iele << " " << (*lIter).first << " " << (*lIter).second << " ref " << lMajAddr << std::endl;
397  if ((*lIter).second == lMajAddr) {
398  ++lCounter;
399  //std::cout << " ----- =ref: Counter = " << lCounter << std::endl;
400  }
401  else {
402  //std::cout << " ----- !=ref: Counter = " << lCounter << " Majority = " << aMajorityCounter << std::endl;
403  if (lCounter > aMajorityCounter) {
404  //std::cout << " ------ >Majority: " << std::endl;
405  aMajorityCounter = lCounter;
406  // AV bug here??
407  lMajAddress = lMajAddr;
408  // lMajAddress = (*lIter).second;
409  //foundMaj=true;
410  }
411  lCounter = 0;
412  lMajAddr = (*lIter).second;
413  --lIter;
414  --iele;
415  }
416  }
417  // AV Bug here? The check has to be done regardless foundMaj == false or true
418  // if (!foundMaj) {
419  if (lCounter > aMajorityCounter) {
420  //std::cout << " ------ >Majority: " << std::endl;
421  aMajorityCounter = lCounter;
422  lMajAddress = lMajAddr;
423  }
424  // }
425  //std::cout << " -- found majority value for " << aMajorityCounter << " elements out of " << aFeMajVec.size() << "." << std::endl;
426  //get list of feds with address different from majority in partition:
427  lIter = aFeMajVec.begin();
428  afedIds.reserve(135);
429  for ( ; lIter != aFeMajVec.end(); ++lIter ) {
430  if((*lIter).second != lMajAddress) {
431  afedIds.push_back((*lIter).first);
432  }
433  else {
434  lIter += aMajorityCounter-1;
435  if(lIter >= aFeMajVec.end()) {
436  std::cout << "Here it is a bug: " << aMajorityCounter << " " << aFeMajVec.size() << " " << lIter - aFeMajVec.end() << std::endl;
437  }
438  }
439  }
440  //std::cout << " -- Found " << lfedIds.size() << " elements not matching the majority." << std::endl;
441  if (afedIds.size()>0) {
442  std::sort(afedIds.begin(),afedIds.end());
443  std::vector<unsigned int>::iterator lIt = std::unique(afedIds.begin(),afedIds.end());
444  afedIds.erase(lIt,afedIds.end());
445  }
446 
447 }
tuple cout
Definition: gather_cfg.py:121
bool SiStripFEDMonitorPlugin::pairComparison ( const std::pair< unsigned int, unsigned int > &  pair1,
const std::pair< unsigned int, unsigned int > &  pair2 
)
staticprivate

Definition at line 377 of file SiStripFEDMonitor.cc.

Referenced by analyze().

378  {
379  return (pair1.second < pair2.second) ;
380 }
void SiStripFEDMonitorPlugin::updateCabling ( const edm::EventSetup eventSetup)
private

Definition at line 509 of file SiStripFEDMonitor.cc.

References cabling_, cablingCacheId_, edm::EventSetup::get(), and edm::ESHandle< class >::product().

Referenced by analyze().

510 {
511  uint32_t currentCacheId = eventSetup.get<SiStripFedCablingRcd>().cacheIdentifier();
512  if (cablingCacheId_ != currentCacheId) {
513  edm::ESHandle<SiStripFedCabling> cablingHandle;
514  eventSetup.get<SiStripFedCablingRcd>().get(cablingHandle);
515  cabling_ = cablingHandle.product();
516  cablingCacheId_ = currentCacheId;
517  }
518 }
const SiStripFedCabling * cabling_
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62

Member Data Documentation

const SiStripFedCabling* SiStripFEDMonitorPlugin::cabling_
private

Definition at line 103 of file SiStripFEDMonitor.cc.

Referenced by analyze(), and updateCabling().

uint32_t SiStripFEDMonitorPlugin::cablingCacheId_
private

Definition at line 102 of file SiStripFEDMonitor.cc.

Referenced by updateCabling().

bool SiStripFEDMonitorPlugin::doFEMajorityCheck_
private

Definition at line 108 of file SiStripFEDMonitor.cc.

Referenced by analyze(), and SiStripFEDMonitorPlugin().

bool SiStripFEDMonitorPlugin::doMedHists_
private

Definition at line 107 of file SiStripFEDMonitor.cc.

Referenced by analyze(), and SiStripFEDMonitorPlugin().

bool SiStripFEDMonitorPlugin::doTkHistoMap_
private

Definition at line 106 of file SiStripFEDMonitor.cc.

Referenced by analyze(), and SiStripFEDMonitorPlugin().

DQMStore* SiStripFEDMonitorPlugin::dqm_
private

Definition at line 100 of file SiStripFEDMonitor.cc.

Referenced by beginJob(), and endJob().

std::string SiStripFEDMonitorPlugin::dqmStoreFileName_
private

Definition at line 98 of file SiStripFEDMonitor.cc.

Referenced by endJob(), and SiStripFEDMonitorPlugin().

FEDErrors SiStripFEDMonitorPlugin::fedErrors_
private

Definition at line 114 of file SiStripFEDMonitor.cc.

Referenced by analyze(), beginLuminosityBlock(), and endLuminosityBlock().

FEDHistograms SiStripFEDMonitorPlugin::fedHists_
private
bool SiStripFEDMonitorPlugin::fillAllDetailedHistograms_
private

Definition at line 90 of file SiStripFEDMonitor.cc.

Referenced by beginJob(), and SiStripFEDMonitorPlugin().

bool SiStripFEDMonitorPlugin::fillWithEvtNum_
private

Definition at line 92 of file SiStripFEDMonitor.cc.

Referenced by analyze(), and SiStripFEDMonitorPlugin().

std::string SiStripFEDMonitorPlugin::folderName_
private

Definition at line 88 of file SiStripFEDMonitor.cc.

Referenced by beginJob(), and SiStripFEDMonitorPlugin().

unsigned int SiStripFEDMonitorPlugin::maxFedBufferSize_
private

Definition at line 115 of file SiStripFEDMonitor.cc.

Referenced by analyze().

unsigned int SiStripFEDMonitorPlugin::nEvt_
private

Definition at line 110 of file SiStripFEDMonitor.cc.

Referenced by analyze(), beginJob(), and SiStripFEDMonitorPlugin().

unsigned int SiStripFEDMonitorPlugin::printDebug_
private

Definition at line 94 of file SiStripFEDMonitor.cc.

Referenced by analyze(), and SiStripFEDMonitorPlugin().

edm::InputTag SiStripFEDMonitorPlugin::rawDataTag_
private

Definition at line 84 of file SiStripFEDMonitor.cc.

Referenced by analyze(), and SiStripFEDMonitorPlugin().

bool SiStripFEDMonitorPlugin::writeDQMStore_
private

Definition at line 97 of file SiStripFEDMonitor.cc.

Referenced by endJob(), and SiStripFEDMonitorPlugin().