CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EERawDataTask.cc
Go to the documentation of this file.
1 /*
2  * \file EERawDataTask.cc
3  *
4  * \author E. Di Marco
5  *
6 */
7 
8 #include <iostream>
9 #include <vector>
10 
14 
16 
18 
24 
26 
28 
30 
31  init_ = false;
32 
34 
35  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
36 
37  subfolder_ = ps.getUntrackedParameter<std::string>("subfolder", "");
38 
39  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
40 
41  mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
42 
43  FEDRawDataCollection_ = consumes<FEDRawDataCollection>(ps.getParameter<edm::InputTag>("FEDRawDataCollection"));
44  EcalRawDataCollection_ = consumes<EcalRawDataCollection>(ps.getParameter<edm::InputTag>("EcalRawDataCollection"));
45 
49  meEECRCErrors_ = 0;
56  meEEL1AFEErrors_ = 0;
62 
64 
66 
67  calibrationBX_ = 3490;
68 
69 }
70 
72 }
73 
75 
76  ievt_ = 0;
77 
78  if ( dqmStore_ ) {
79  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask");
80  if(subfolder_.size())
81  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask/" + subfolder_);
82  dqmStore_->rmdir(prefixME_ + "/EERawDataTask");
83  }
84 
85 }
86 
88 
89  if ( ! init_ ) this->setup();
90 
91  ls_ = _lumi.luminosityBlock();
92 
94 
96  int bin(meEESynchronizationErrorsTrend_->getTH1()->GetXaxis()->FindBin(ls_ - 0.5));
99  }
100 
101 }
102 
104 
105  Numbers::initGeometry(c, false);
106 
107  if ( ! mergeRuns_ ) this->reset();
108 
109  fatalErrors_ = 0.;
110 
112  meEESynchronizationErrorsTrend_->getTH1()->GetXaxis()->SetLimits(0., 50.);
113  }
114 }
115 
117 }
118 
120 
139 }
140 
142 
143  init_ = true;
144 
146 
147  if ( dqmStore_ ) {
148  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask");
149  if(subfolder_.size())
150  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask/" + subfolder_);
151 
152  name = "EERDT event type pre calibration BX";
153  meEEEventTypePreCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
178 
179  name = "EERDT event type calibration BX";
180  meEEEventTypeCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
181  meEEEventTypeCalibrationBX_->setBinLabel(1, "UNKNOWN", 1);
205 
206  name = "EERDT event type post calibration BX";
207  meEEEventTypePostCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
232 
233  name = "EERDT CRC errors";
234  meEECRCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
235  for (int i = 0; i < 18; i++) {
236  meEECRCErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
237  }
238 
239  name = "EERDT run number errors";
240  meEERunNumberErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
241  for (int i = 0; i < 18; i++) {
242  meEERunNumberErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
243  }
244 
245  name = "EERDT orbit number errors";
246  meEEOrbitNumberErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
247  for (int i = 0; i < 18; i++) {
249  }
250 
251  name = "EERDT trigger type errors";
252  meEETriggerTypeErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
253  for (int i = 0; i < 18; i++) {
255  }
256 
257  name = "EERDT calibration event errors";
258  meEECalibrationEventErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
259  for (int i = 0; i < 18; i++) {
261  }
262 
263  name = "EERDT L1A DCC errors";
264  meEEL1ADCCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
265  for (int i = 0; i < 18; i++) {
266  meEEL1ADCCErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
267  }
268 
269  name = "EERDT bunch crossing DCC errors";
270  meEEBunchCrossingDCCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
271  for (int i = 0; i < 18; i++) {
273  }
274 
275  name = "EERDT L1A FE errors";
276  meEEL1AFEErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
277  for (int i = 0; i < 18; i++) {
278  meEEL1AFEErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
279  }
280 
281  name = "EERDT bunch crossing FE errors";
282  meEEBunchCrossingFEErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
283  for (int i = 0; i < 18; i++) {
285  }
286 
287  name = "EERDT L1A TCC errors";
288  meEEL1ATCCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
289  for (int i = 0; i < 18; i++) {
290  meEEL1ATCCErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
291  }
292 
293  name = "EERDT bunch crossing TCC errors";
294  meEEBunchCrossingTCCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
295  for (int i = 0; i < 18; i++) {
297  }
298 
299  name = "EERDT L1A SRP errors";
300  meEEL1ASRPErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
301  for (int i = 0; i < 18; i++) {
302  meEEL1ASRPErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
303  }
304 
305  name = "EERDT bunch crossing SRP errors";
306  meEEBunchCrossingSRPErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
307  for (int i = 0; i < 18; i++) {
309  }
310 
311  name = "EERDT FE synchronization errors by lumi";
312  meEESynchronizationErrorsByLumi_ = dqmStore_->book1D(name, name, 18, 1, 19);
314  for (int i = 0; i < 18; i++) {
316  }
317 
318  name = "EERDT accumulated FE synchronization errors";
319  meEESynchronizationErrorsTrend_ = dqmStore_->book1D(name, name, 50, 0., 50.);
321 
322  }
323 
324 }
325 
327 
328  if ( ! init_ ) return;
329 
330  if ( dqmStore_ ) {
331  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask");
332  if(subfolder_.size())
333  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask/" + subfolder_);
334 
337 
340 
343 
345  meEECRCErrors_ = 0;
346 
349 
352 
355 
358 
360  meEEL1ADCCErrors_ = 0;
361 
364 
366  meEEL1AFEErrors_ = 0;
367 
370 
372  meEEL1ATCCErrors_ = 0;
373 
376 
378  meEEL1ASRPErrors_ = 0;
379 
382 
385 
388  }
389 
390  init_ = false;
391 
392 }
393 
396  if(!me) return;
397  if(ls_ >= 50){
398  for(int ix(1); ix <= 50; ix++)
399  me->setBinContent(ix, me->getBinContent(ix + 1));
400 
401  me->getTH1()->GetXaxis()->SetLimits(ls_ - 49, ls_ + 1);
402  }
403 }
404 
406 
407  edm::LogInfo("EERawDataTask") << "analyzed " << ievt_ << " events";
408 
409  if ( enableCleanup_ ) this->cleanup();
410 
411 }
412 
414 
415  if ( ! init_ ) this->setup();
416 
417  ievt_++;
418 
419  // fill bin 0 with number of events in the lumi
421 
422  float errorsInEvent(0.);
423 
424  int evt_runNumber = e.id().run();
425 
426  int GT_L1A=0, GT_OrbitNumber=0, GT_BunchCrossing=0, GT_TriggerType=0;
427 
428  edm::Handle<FEDRawDataCollection> allFedRawData;
429 
430  int gtFedDataSize = 0;
431 
432  int ECALDCC_L1A_MostFreqId = -1;
433  int ECALDCC_OrbitNumber_MostFreqId = -1;
434  int ECALDCC_BunchCrossing_MostFreqId = -1;
435  int ECALDCC_TriggerType_MostFreqId = -1;
436 
437  if ( e.getByToken(FEDRawDataCollection_, allFedRawData) ) {
438 
439  // GT FED data
440  const FEDRawData& gtFedData = allFedRawData->FEDData(812);
441 
442  gtFedDataSize = gtFedData.size()/sizeof(uint64_t);
443 
444  if ( gtFedDataSize > 0 ) {
445 
446  FEDHeader header(gtFedData.data());
447 
448 #define H_L1_MASK 0xFFFFFF
449 #define H_ORBITCOUNTER_MASK 0xFFFFFFFF
450 #define H_BX_MASK 0xFFF
451 #define H_TTYPE_MASK 0xF
452 
453  GT_L1A = header.lvl1ID() & H_L1_MASK;
454  GT_OrbitNumber = e.orbitNumber() & H_ORBITCOUNTER_MASK;
455  GT_BunchCrossing = e.bunchCrossing() & H_BX_MASK;
456  GT_TriggerType = e.experimentType() & H_TTYPE_MASK;
457 
458  } else {
459 
460  // use the most frequent among the ECAL FEDs
461 
462  std::map<int,int> ECALDCC_L1A_FreqMap;
463  std::map<int,int> ECALDCC_OrbitNumber_FreqMap;
464  std::map<int,int> ECALDCC_BunchCrossing_FreqMap;
465  std::map<int,int> ECALDCC_TriggerType_FreqMap;
466 
467  int ECALDCC_L1A_MostFreqCounts = 0;
468  int ECALDCC_OrbitNumber_MostFreqCounts = 0;
469  int ECALDCC_BunchCrossing_MostFreqCounts = 0;
470  int ECALDCC_TriggerType_MostFreqCounts = 0;
471 
473 
474  if ( e.getByToken(EcalRawDataCollection_, dcchs) ) {
475 
476  for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
477 
478  if ( Numbers::subDet( *dcchItr ) != EcalEndcap ) continue;
479 
480  int ECALDCC_L1A = dcchItr->getLV1();
481  int ECALDCC_OrbitNumber = dcchItr->getOrbit();
482  int ECALDCC_BunchCrossing = dcchItr->getBX();
483  int ECALDCC_TriggerType = dcchItr->getBasicTriggerType();
484 
485  ++ECALDCC_L1A_FreqMap[ECALDCC_L1A];
486  ++ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber];
487  ++ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing];
488  ++ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType];
489 
490  if ( ECALDCC_L1A_FreqMap[ECALDCC_L1A] > ECALDCC_L1A_MostFreqCounts ) {
491  ECALDCC_L1A_MostFreqCounts = ECALDCC_L1A_FreqMap[ECALDCC_L1A];
492  ECALDCC_L1A_MostFreqId = ECALDCC_L1A;
493  }
494 
495  if ( ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber] > ECALDCC_OrbitNumber_MostFreqCounts ) {
496  ECALDCC_OrbitNumber_MostFreqCounts = ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber];
497  ECALDCC_OrbitNumber_MostFreqId = ECALDCC_OrbitNumber;
498  }
499 
500  if ( ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing] > ECALDCC_BunchCrossing_MostFreqCounts ) {
501  ECALDCC_BunchCrossing_MostFreqCounts = ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing];
502  ECALDCC_BunchCrossing_MostFreqId = ECALDCC_BunchCrossing;
503  }
504 
505  if ( ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType] > ECALDCC_TriggerType_MostFreqCounts ) {
506  ECALDCC_TriggerType_MostFreqCounts = ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType];
507  ECALDCC_TriggerType_MostFreqId = ECALDCC_TriggerType;
508  }
509 
510  }
511 
512  } else {
513  edm::LogWarning("EERawDataTask") << "EcalRawDataCollection not available";
514  }
515 
516  }
517 
518  // ECAL endcap FEDs
519  int EEFirstFED[2];
520  EEFirstFED[0] = 601; // EE-
521  EEFirstFED[1] = 646; // EE+
522  for(int zside=0; zside<2; zside++) {
523 
524  int firstFedOnSide=EEFirstFED[zside];
525 
526  for(int i=0; i<9; i++) {
527 
528  const FEDRawData& fedData = allFedRawData->FEDData(firstFedOnSide+i);
529 
530  int length = fedData.size()/sizeof(uint64_t);
531 
532  if ( length > 0 ) {
533 
534  uint64_t * pData = (uint64_t *)(fedData.data());
535  uint64_t * fedTrailer = pData + (length - 1);
536  bool crcError = (*fedTrailer >> 2 ) & 0x1;
537 
538  if (crcError) meEECRCErrors_->Fill( i+1 );
539 
540  }
541 
542  }
543 
544  }
545 
546  } else {
547  edm::LogWarning("EERawDataTask") << "FEDRawDataCollection not available";
548  }
549 
551 
552  if ( e.getByToken(EcalRawDataCollection_, dcchs) ) {
553 
554  for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
555 
556  if ( Numbers::subDet( *dcchItr ) != EcalEndcap ) continue;
557 
558  int ism = Numbers::iSM( *dcchItr, EcalEndcap );
559  float xism = ism+0.5;
560 
561  int ECALDCC_runNumber = dcchItr->getRunNumber();
562 
563  int ECALDCC_L1A = dcchItr->getLV1();
564  int ECALDCC_OrbitNumber = dcchItr->getOrbit();
565  int ECALDCC_BunchCrossing = dcchItr->getBX();
566  int ECALDCC_TriggerType = dcchItr->getBasicTriggerType();
567 
568  if ( evt_runNumber != ECALDCC_runNumber ) meEERunNumberErrors_->Fill( xism );
569 
570  if ( gtFedDataSize > 0 ) {
571 
572  if ( GT_L1A != ECALDCC_L1A ) meEEL1ADCCErrors_->Fill( xism );
573 
574  if ( GT_BunchCrossing != ECALDCC_BunchCrossing ) meEEBunchCrossingDCCErrors_->Fill( xism );
575 
576  if ( GT_TriggerType != ECALDCC_TriggerType ) meEETriggerTypeErrors_->Fill ( xism );
577 
578  } else {
579 
580  if ( ECALDCC_L1A_MostFreqId != ECALDCC_L1A ) meEEL1ADCCErrors_->Fill( xism );
581 
582  if ( ECALDCC_BunchCrossing_MostFreqId != ECALDCC_BunchCrossing ) meEEBunchCrossingDCCErrors_->Fill( xism );
583 
584  if ( ECALDCC_TriggerType_MostFreqId != ECALDCC_TriggerType ) meEETriggerTypeErrors_->Fill ( xism );
585 
586  }
587 
588  if ( gtFedDataSize > 0 ) {
589 
590  if ( GT_OrbitNumber != ECALDCC_OrbitNumber ) meEEOrbitNumberErrors_->Fill ( xism );
591 
592  } else {
593 
594  if ( ECALDCC_OrbitNumber_MostFreqId != ECALDCC_OrbitNumber ) meEEOrbitNumberErrors_->Fill ( xism );
595 
596  }
597 
598  // DCC vs. FE,TCC, SRP syncronization
599  const std::vector<short> feBxs = dcchItr->getFEBxs();
600  const std::vector<short> tccBx = dcchItr->getTCCBx();
601  const short srpBx = dcchItr->getSRPBx();
602  const std::vector<short> status = dcchItr->getFEStatus();
603 
604  std::vector<int> BxSynchStatus;
605  BxSynchStatus.reserve((int)feBxs.size());
606 
607  for(int fe=0; fe<(int)feBxs.size(); fe++) {
608  // look for ACTIVE towers only
609  if(status[fe] != 0) continue;
610  if(feBxs[fe] != ECALDCC_BunchCrossing && feBxs[fe] != -1 && ECALDCC_BunchCrossing != -1) {
611  meEEBunchCrossingFEErrors_->Fill( xism, 1/(float)feBxs.size());
612  BxSynchStatus[fe] = 0;
613  } else BxSynchStatus[fe] = 1;
614  }
615 
616  // vector of TCC channels has 4 elements for both EB and EE.
617  // EB uses [0], EE uses [0-3].
618  if(tccBx.size() == MAX_TCC_SIZE) {
619  for(int tcc=0; tcc<MAX_TCC_SIZE; tcc++) {
620  if(tccBx[tcc] != ECALDCC_BunchCrossing && tccBx[tcc] != -1 && ECALDCC_BunchCrossing != -1) meEEBunchCrossingTCCErrors_->Fill( xism, 1/(float)tccBx.size());
621  }
622  }
623 
624  if(srpBx != ECALDCC_BunchCrossing && srpBx != -1 && ECALDCC_BunchCrossing != -1) meEEBunchCrossingSRPErrors_->Fill( xism );
625 
626  const std::vector<short> feLv1 = dcchItr->getFELv1();
627  const std::vector<short> tccLv1 = dcchItr->getTCCLv1();
628  const short srpLv1 = dcchItr->getSRPLv1();
629 
630  // Lv1 in TCC,SRP,FE are limited to 12 bits(LSB), while in the DCC Lv1 has 24 bits
631  int ECALDCC_L1A_12bit = ECALDCC_L1A & 0xfff;
632  int feLv1Offset = ( e.isRealData() ) ? 1 : 0; // in MC FE Lv1A counter starts from 1, in data from 0
633 
634  for(int fe=0; fe<(int)feLv1.size(); fe++) {
635  // look for ACTIVE towers only
636  if(status[fe] != 0) continue;
637  if(feLv1[fe]+feLv1Offset != ECALDCC_L1A_12bit && feLv1[fe] != -1 && ECALDCC_L1A_12bit - 1 != -1) {
638  meEEL1AFEErrors_->Fill( xism, 1/(float)feLv1.size());
639  meEESynchronizationErrorsByLumi_->Fill( xism, 1/(float)feLv1.size() );
640  errorsInEvent += 1. / feLv1.size();
641  } else if( BxSynchStatus[fe]==0 ){
642  meEESynchronizationErrorsByLumi_->Fill( xism, 1/(float)feLv1.size() );
643  errorsInEvent += 1. / feLv1.size();
644  }
645  }
646 
647  // vector of TCC channels has 4 elements for both EB and EE.
648  // EB uses [0], EE uses [0-3].
649  if(tccLv1.size() == MAX_TCC_SIZE) {
650  for(int tcc=0; tcc<MAX_TCC_SIZE; tcc++) {
651  if(tccLv1[tcc] != ECALDCC_L1A_12bit && tccLv1[tcc] != -1 && ECALDCC_L1A_12bit - 1 != -1) meEEL1ATCCErrors_->Fill( xism, 1/(float)tccLv1.size());
652  }
653  }
654 
655  if(srpLv1 != ECALDCC_L1A_12bit && srpLv1 != -1 && ECALDCC_L1A_12bit - 1 != -1) meEEL1ASRPErrors_->Fill( xism );
656 
657  if ( gtFedDataSize > 0 ) {
658 
659  if ( GT_OrbitNumber != ECALDCC_OrbitNumber ) meEEOrbitNumberErrors_->Fill ( xism );
660 
661  } else {
662 
663  if ( ECALDCC_OrbitNumber_MostFreqId != ECALDCC_OrbitNumber ) meEEOrbitNumberErrors_->Fill ( xism );
664 
665  }
666 
667  float evtType = dcchItr->getRunType();
668 
669  if ( evtType < 0 || evtType > 22 ) evtType = -1;
670 
671  if ( ECALDCC_BunchCrossing < calibrationBX_ ) meEEEventTypePreCalibrationBX_->Fill( evtType+0.5, 1./18. );
672  if ( ECALDCC_BunchCrossing == calibrationBX_ ) meEEEventTypeCalibrationBX_->Fill( evtType+0.5, 1./18. );
673  if ( ECALDCC_BunchCrossing > calibrationBX_ ) meEEEventTypePostCalibrationBX_->Fill ( evtType+0.5, 1./18. );
674 
675  if ( ECALDCC_BunchCrossing != calibrationBX_ ) {
676  if ( evtType != EcalDCCHeaderBlock::COSMIC &&
677  evtType != EcalDCCHeaderBlock::MTCC &&
682  evtType != -1 ) meEECalibrationEventErrors_->Fill( xism );
683  } else {
684  if ( evtType == EcalDCCHeaderBlock::COSMIC ||
685  evtType == EcalDCCHeaderBlock::MTCC ||
690  }
691 
692  }
693 
694  } else {
695  edm::LogWarning("EERawDataTask") << "EcalRawDataCollection not available";
696  }
697 
698  if(errorsInEvent > 0.){
699  meEESynchronizationErrorsTrend_->Fill(ls_ - 0.5, errorsInEvent);
700  fatalErrors_ += errorsInEvent;
701  }
702 }
703 
RunNumber_t run() const
Definition: EventID.h:42
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
const std::string & getName(void) const
get name of ME
static std::string sEE(const unsigned ism)
Definition: Numbers.cc:223
int i
Definition: DBlmapReader.cc:9
DQMStore * dqmStore_
Definition: EERawDataTask.h:67
void endRun(const edm::Run &r, const edm::EventSetup &c)
EndRun.
void beginRun(const edm::Run &r, const edm::EventSetup &c)
BeginRun.
void setBinContent(int binx, double content)
set content of bin (1-D)
void setup(void)
Setup.
std::string subfolder_
Definition: EERawDataTask.h:71
MonitorElement * meEECalibrationEventErrors_
Definition: EERawDataTask.h:87
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:872
void rmdir(const std::string &fullpath)
Definition: DQMStore.cc:2730
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
Some &quot;id&quot; conversions.
MonitorElement * meEETriggerTypeErrors_
Definition: EERawDataTask.h:86
edm::EDGetTokenT< FEDRawDataCollection > FEDRawDataCollection_
Definition: EERawDataTask.h:77
std::vector< EcalDCCHeaderBlock >::const_iterator const_iterator
int bunchCrossing() const
Definition: EventBase.h:62
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
void beginJob(void)
BeginJob.
MonitorElement * meEEL1ATCCErrors_
Definition: EERawDataTask.h:92
bool isRealData() const
Definition: EventBase.h:60
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
void Fill(long long x)
LuminosityBlockNumber_t luminosityBlock() const
edm::EDGetTokenT< EcalRawDataCollection > EcalRawDataCollection_
Definition: EERawDataTask.h:78
MonitorElement * meEECRCErrors_
Definition: EERawDataTask.h:80
EERawDataTask(const edm::ParameterSet &ps)
Constructor.
void removeElement(const std::string &name)
Definition: DQMStore.cc:2772
MonitorElement * meEEEventTypePreCalibrationBX_
Definition: EERawDataTask.h:81
#define H_ORBITCOUNTER_MASK
TH1 * getTH1(void) const
MonitorElement * meEEOrbitNumberErrors_
Definition: EERawDataTask.h:85
int orbitNumber() const
Definition: EventBase.h:63
MonitorElement * meEEL1AFEErrors_
Definition: EERawDataTask.h:90
MonitorElement * meEEL1ASRPErrors_
Definition: EERawDataTask.h:94
#define H_L1_MASK
#define H_BX_MASK
void endJob(void)
EndJob.
MonitorElement * meEEEventTypePostCalibrationBX_
Definition: EERawDataTask.h:83
MonitorElement * meEEBunchCrossingSRPErrors_
Definition: EERawDataTask.h:95
float calibrationBX_
static void initGeometry(const edm::EventSetup &setup, bool verbose=false)
Definition: Numbers.cc:47
unsigned long long uint64_t
Definition: Time.h:15
MonitorElement * meEEBunchCrossingTCCErrors_
Definition: EERawDataTask.h:93
virtual ~EERawDataTask()
Destructor.
MonitorElement * meEESynchronizationErrorsTrend_
Definition: EERawDataTask.h:99
MonitorElement * meEEL1ADCCErrors_
Definition: EERawDataTask.h:88
void cleanup(void)
Cleanup.
double getBinContent(int binx) const
get content of bin (1-D)
edm::EventID id() const
Definition: EventBase.h:56
MonitorElement * meEESynchronizationErrorsByLumi_
Definition: EERawDataTask.h:97
MonitorElement * meEEEventTypeCalibrationBX_
Definition: EERawDataTask.h:82
static unsigned iSM(const unsigned ism, const EcalSubdetector subdet)
Definition: Numbers.cc:243
edm::EventAuxiliary::ExperimentType experimentType() const
Definition: EventBase.h:61
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:28
void endLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
EndLuminosityBlock.
#define MAX_TCC_SIZE
static EcalSubdetector subDet(const EBDetId &id)
Definition: Numbers.cc:142
void reset(void)
Reset.
int lvl1ID()
Level-1 event number generated by the TTC system.
Definition: FEDHeader.cc:20
void setLumiFlag(void)
this ME is meant to be stored for each luminosity section
tuple status
Definition: ntuplemaker.py:245
MonitorElement * meEERunNumberErrors_
Definition: EERawDataTask.h:84
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
void beginLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
BeginLuminosityBlock.
Definition: Run.h:41
MonitorElement * meEEBunchCrossingFEErrors_
Definition: EERawDataTask.h:91
#define H_TTYPE_MASK
MonitorElement * meEEBunchCrossingDCCErrors_
Definition: EERawDataTask.h:89
std::string prefixME_
Definition: EERawDataTask.h:69