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  * $Date: 2012/06/28 12:14:30 $
5  * $Revision: 1.45 $
6  * \author E. Di Marco
7  *
8 */
9 
10 #include <iostream>
11 #include <vector>
12 
16 
18 
20 
28 
30 
32 
34 
35  init_ = false;
36 
38 
39  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
40 
41  subfolder_ = ps.getUntrackedParameter<std::string>("subfolder", "");
42 
43  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
44 
45  mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
46 
47  FEDRawDataCollection_ = ps.getParameter<edm::InputTag>("FEDRawDataCollection");
48  EcalRawDataCollection_ = ps.getParameter<edm::InputTag>("EcalRawDataCollection");
49 
53  meEECRCErrors_ = 0;
60  meEEL1AFEErrors_ = 0;
66 
68 
70 
71  calibrationBX_ = 3490;
72 
73 }
74 
76 }
77 
79 
80  ievt_ = 0;
81 
82  if ( dqmStore_ ) {
83  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask");
84  if(subfolder_.size())
85  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask/" + subfolder_);
86  dqmStore_->rmdir(prefixME_ + "/EERawDataTask");
87  }
88 
89 }
90 
92 
93  if ( ! init_ ) this->setup();
94 
95  ls_ = _lumi.luminosityBlock();
96 
98 
100  int bin(meEESynchronizationErrorsTrend_->getTH1()->GetXaxis()->FindBin(ls_ - 0.5));
103  }
104 
105 }
106 
108 
109  Numbers::initGeometry(c, false);
110 
111  if ( ! mergeRuns_ ) this->reset();
112 
113  fatalErrors_ = 0.;
114 
116  meEESynchronizationErrorsTrend_->getTH1()->GetXaxis()->SetLimits(0., 50.);
117  }
118 }
119 
121 }
122 
124 
143 }
144 
146 
147  init_ = true;
148 
149  std::string name;
150 
151  if ( dqmStore_ ) {
152  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask");
153  if(subfolder_.size())
154  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask/" + subfolder_);
155 
156  name = "EERDT event type pre calibration BX";
157  meEEEventTypePreCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
182 
183  name = "EERDT event type calibration BX";
184  meEEEventTypeCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
185  meEEEventTypeCalibrationBX_->setBinLabel(1, "UNKNOWN", 1);
209 
210  name = "EERDT event type post calibration BX";
211  meEEEventTypePostCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
236 
237  name = "EERDT CRC errors";
238  meEECRCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
239  for (int i = 0; i < 18; i++) {
240  meEECRCErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
241  }
242 
243  name = "EERDT run number errors";
244  meEERunNumberErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
245  for (int i = 0; i < 18; i++) {
246  meEERunNumberErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
247  }
248 
249  name = "EERDT orbit number errors";
250  meEEOrbitNumberErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
251  for (int i = 0; i < 18; i++) {
253  }
254 
255  name = "EERDT trigger type errors";
256  meEETriggerTypeErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
257  for (int i = 0; i < 18; i++) {
259  }
260 
261  name = "EERDT calibration event errors";
262  meEECalibrationEventErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
263  for (int i = 0; i < 18; i++) {
265  }
266 
267  name = "EERDT L1A DCC errors";
268  meEEL1ADCCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
269  for (int i = 0; i < 18; i++) {
270  meEEL1ADCCErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
271  }
272 
273  name = "EERDT bunch crossing DCC errors";
274  meEEBunchCrossingDCCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
275  for (int i = 0; i < 18; i++) {
277  }
278 
279  name = "EERDT L1A FE errors";
280  meEEL1AFEErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
281  for (int i = 0; i < 18; i++) {
282  meEEL1AFEErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
283  }
284 
285  name = "EERDT bunch crossing FE errors";
286  meEEBunchCrossingFEErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
287  for (int i = 0; i < 18; i++) {
289  }
290 
291  name = "EERDT L1A TCC errors";
292  meEEL1ATCCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
293  for (int i = 0; i < 18; i++) {
294  meEEL1ATCCErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
295  }
296 
297  name = "EERDT bunch crossing TCC errors";
298  meEEBunchCrossingTCCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
299  for (int i = 0; i < 18; i++) {
301  }
302 
303  name = "EERDT L1A SRP errors";
304  meEEL1ASRPErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
305  for (int i = 0; i < 18; i++) {
306  meEEL1ASRPErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
307  }
308 
309  name = "EERDT bunch crossing SRP errors";
310  meEEBunchCrossingSRPErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
311  for (int i = 0; i < 18; i++) {
313  }
314 
315  name = "EERDT FE synchronization errors by lumi";
316  meEESynchronizationErrorsByLumi_ = dqmStore_->book1D(name, name, 18, 1, 19);
318  for (int i = 0; i < 18; i++) {
320  }
321 
322  name = "EERDT accumulated FE synchronization errors";
323  meEESynchronizationErrorsTrend_ = dqmStore_->book1D(name, name, 50, 0., 50.);
325 
326  }
327 
328 }
329 
331 
332  if ( ! init_ ) return;
333 
334  if ( dqmStore_ ) {
335  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask");
336  if(subfolder_.size())
337  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask/" + subfolder_);
338 
341 
344 
347 
349  meEECRCErrors_ = 0;
350 
353 
356 
359 
362 
364  meEEL1ADCCErrors_ = 0;
365 
368 
370  meEEL1AFEErrors_ = 0;
371 
374 
376  meEEL1ATCCErrors_ = 0;
377 
380 
382  meEEL1ASRPErrors_ = 0;
383 
386 
389 
392  }
393 
394  init_ = false;
395 
396 }
397 
400  if(!me) return;
401  if(ls_ >= 50){
402  for(int ix(1); ix <= 50; ix++)
403  me->setBinContent(ix, me->getBinContent(ix + 1));
404 
405  me->getTH1()->GetXaxis()->SetLimits(ls_ - 49, ls_ + 1);
406  }
407 }
408 
410 
411  edm::LogInfo("EERawDataTask") << "analyzed " << ievt_ << " events";
412 
413  if ( enableCleanup_ ) this->cleanup();
414 
415 }
416 
418 
419  if ( ! init_ ) this->setup();
420 
421  ievt_++;
422 
423  // fill bin 0 with number of events in the lumi
425 
426  float errorsInEvent(0.);
427 
428  int evt_runNumber = e.id().run();
429 
430  int GT_L1A=0, GT_OrbitNumber=0, GT_BunchCrossing=0, GT_TriggerType=0;
431 
432  edm::Handle<FEDRawDataCollection> allFedRawData;
433 
434  int gtFedDataSize = 0;
435 
436  int ECALDCC_L1A_MostFreqId = -1;
437  int ECALDCC_OrbitNumber_MostFreqId = -1;
438  int ECALDCC_BunchCrossing_MostFreqId = -1;
439  int ECALDCC_TriggerType_MostFreqId = -1;
440 
441  if ( e.getByLabel(FEDRawDataCollection_, allFedRawData) ) {
442 
443  // GT FED data
444  const FEDRawData& gtFedData = allFedRawData->FEDData(812);
445 
446  gtFedDataSize = gtFedData.size()/sizeof(uint64_t);
447 
448  if ( gtFedDataSize > 0 ) {
449 
450  FEDHeader header(gtFedData.data());
451 
452 #define H_L1_MASK 0xFFFFFF
453 #define H_ORBITCOUNTER_MASK 0xFFFFFFFF
454 #define H_BX_MASK 0xFFF
455 #define H_TTYPE_MASK 0xF
456 
457  GT_L1A = header.lvl1ID() & H_L1_MASK;
458  GT_OrbitNumber = e.orbitNumber() & H_ORBITCOUNTER_MASK;
459  GT_BunchCrossing = e.bunchCrossing() & H_BX_MASK;
460  GT_TriggerType = e.experimentType() & H_TTYPE_MASK;
461 
462  } else {
463 
464  // use the most frequent among the ECAL FEDs
465 
466  std::map<int,int> ECALDCC_L1A_FreqMap;
467  std::map<int,int> ECALDCC_OrbitNumber_FreqMap;
468  std::map<int,int> ECALDCC_BunchCrossing_FreqMap;
469  std::map<int,int> ECALDCC_TriggerType_FreqMap;
470 
471  int ECALDCC_L1A_MostFreqCounts = 0;
472  int ECALDCC_OrbitNumber_MostFreqCounts = 0;
473  int ECALDCC_BunchCrossing_MostFreqCounts = 0;
474  int ECALDCC_TriggerType_MostFreqCounts = 0;
475 
477 
478  if ( e.getByLabel(EcalRawDataCollection_, dcchs) ) {
479 
480  for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
481 
482  if ( Numbers::subDet( *dcchItr ) != EcalEndcap ) continue;
483 
484  int ECALDCC_L1A = dcchItr->getLV1();
485  int ECALDCC_OrbitNumber = dcchItr->getOrbit();
486  int ECALDCC_BunchCrossing = dcchItr->getBX();
487  int ECALDCC_TriggerType = dcchItr->getBasicTriggerType();
488 
489  ++ECALDCC_L1A_FreqMap[ECALDCC_L1A];
490  ++ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber];
491  ++ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing];
492  ++ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType];
493 
494  if ( ECALDCC_L1A_FreqMap[ECALDCC_L1A] > ECALDCC_L1A_MostFreqCounts ) {
495  ECALDCC_L1A_MostFreqCounts = ECALDCC_L1A_FreqMap[ECALDCC_L1A];
496  ECALDCC_L1A_MostFreqId = ECALDCC_L1A;
497  }
498 
499  if ( ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber] > ECALDCC_OrbitNumber_MostFreqCounts ) {
500  ECALDCC_OrbitNumber_MostFreqCounts = ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber];
501  ECALDCC_OrbitNumber_MostFreqId = ECALDCC_OrbitNumber;
502  }
503 
504  if ( ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing] > ECALDCC_BunchCrossing_MostFreqCounts ) {
505  ECALDCC_BunchCrossing_MostFreqCounts = ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing];
506  ECALDCC_BunchCrossing_MostFreqId = ECALDCC_BunchCrossing;
507  }
508 
509  if ( ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType] > ECALDCC_TriggerType_MostFreqCounts ) {
510  ECALDCC_TriggerType_MostFreqCounts = ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType];
511  ECALDCC_TriggerType_MostFreqId = ECALDCC_TriggerType;
512  }
513 
514  }
515 
516  } else {
517  edm::LogWarning("EERawDataTask") << EcalRawDataCollection_ << " not available";
518  }
519 
520  }
521 
522  // ECAL endcap FEDs
523  int EEFirstFED[2];
524  EEFirstFED[0] = 601; // EE-
525  EEFirstFED[1] = 646; // EE+
526  for(int zside=0; zside<2; zside++) {
527 
528  int firstFedOnSide=EEFirstFED[zside];
529 
530  for(int i=0; i<9; i++) {
531 
532  const FEDRawData& fedData = allFedRawData->FEDData(firstFedOnSide+i);
533 
534  int length = fedData.size()/sizeof(uint64_t);
535 
536  if ( length > 0 ) {
537 
538  uint64_t * pData = (uint64_t *)(fedData.data());
539  uint64_t * fedTrailer = pData + (length - 1);
540  bool crcError = (*fedTrailer >> 2 ) & 0x1;
541 
542  if (crcError) meEECRCErrors_->Fill( i+1 );
543 
544  }
545 
546  }
547 
548  }
549 
550  } else {
551  edm::LogWarning("EERawDataTask") << FEDRawDataCollection_ << " not available";
552  }
553 
555 
556  if ( e.getByLabel(EcalRawDataCollection_, dcchs) ) {
557 
558  for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
559 
560  if ( Numbers::subDet( *dcchItr ) != EcalEndcap ) continue;
561 
562  int ism = Numbers::iSM( *dcchItr, EcalEndcap );
563  float xism = ism+0.5;
564 
565  int ECALDCC_runNumber = dcchItr->getRunNumber();
566 
567  int ECALDCC_L1A = dcchItr->getLV1();
568  int ECALDCC_OrbitNumber = dcchItr->getOrbit();
569  int ECALDCC_BunchCrossing = dcchItr->getBX();
570  int ECALDCC_TriggerType = dcchItr->getBasicTriggerType();
571 
572  if ( evt_runNumber != ECALDCC_runNumber ) meEERunNumberErrors_->Fill( xism );
573 
574  if ( gtFedDataSize > 0 ) {
575 
576  if ( GT_L1A != ECALDCC_L1A ) meEEL1ADCCErrors_->Fill( xism );
577 
578  if ( GT_BunchCrossing != ECALDCC_BunchCrossing ) meEEBunchCrossingDCCErrors_->Fill( xism );
579 
580  if ( GT_TriggerType != ECALDCC_TriggerType ) meEETriggerTypeErrors_->Fill ( xism );
581 
582  } else {
583 
584  if ( ECALDCC_L1A_MostFreqId != ECALDCC_L1A ) meEEL1ADCCErrors_->Fill( xism );
585 
586  if ( ECALDCC_BunchCrossing_MostFreqId != ECALDCC_BunchCrossing ) meEEBunchCrossingDCCErrors_->Fill( xism );
587 
588  if ( ECALDCC_TriggerType_MostFreqId != ECALDCC_TriggerType ) meEETriggerTypeErrors_->Fill ( xism );
589 
590  }
591 
592  if ( gtFedDataSize > 0 ) {
593 
594  if ( GT_OrbitNumber != ECALDCC_OrbitNumber ) meEEOrbitNumberErrors_->Fill ( xism );
595 
596  } else {
597 
598  if ( ECALDCC_OrbitNumber_MostFreqId != ECALDCC_OrbitNumber ) meEEOrbitNumberErrors_->Fill ( xism );
599 
600  }
601 
602  // DCC vs. FE,TCC, SRP syncronization
603  const std::vector<short> feBxs = dcchItr->getFEBxs();
604  const std::vector<short> tccBx = dcchItr->getTCCBx();
605  const short srpBx = dcchItr->getSRPBx();
606  const std::vector<short> status = dcchItr->getFEStatus();
607 
608  std::vector<int> BxSynchStatus;
609  BxSynchStatus.reserve((int)feBxs.size());
610 
611  for(int fe=0; fe<(int)feBxs.size(); fe++) {
612  // look for ACTIVE towers only
613  if(status[fe] != 0) continue;
614  if(feBxs[fe] != ECALDCC_BunchCrossing && feBxs[fe] != -1 && ECALDCC_BunchCrossing != -1) {
615  meEEBunchCrossingFEErrors_->Fill( xism, 1/(float)feBxs.size());
616  BxSynchStatus[fe] = 0;
617  } else BxSynchStatus[fe] = 1;
618  }
619 
620  // vector of TCC channels has 4 elements for both EB and EE.
621  // EB uses [0], EE uses [0-3].
622  if(tccBx.size() == MAX_TCC_SIZE) {
623  for(int tcc=0; tcc<MAX_TCC_SIZE; tcc++) {
624  if(tccBx[tcc] != ECALDCC_BunchCrossing && tccBx[tcc] != -1 && ECALDCC_BunchCrossing != -1) meEEBunchCrossingTCCErrors_->Fill( xism, 1/(float)tccBx.size());
625  }
626  }
627 
628  if(srpBx != ECALDCC_BunchCrossing && srpBx != -1 && ECALDCC_BunchCrossing != -1) meEEBunchCrossingSRPErrors_->Fill( xism );
629 
630  const std::vector<short> feLv1 = dcchItr->getFELv1();
631  const std::vector<short> tccLv1 = dcchItr->getTCCLv1();
632  const short srpLv1 = dcchItr->getSRPLv1();
633 
634  // Lv1 in TCC,SRP,FE are limited to 12 bits(LSB), while in the DCC Lv1 has 24 bits
635  int ECALDCC_L1A_12bit = ECALDCC_L1A & 0xfff;
636  int feLv1Offset = ( e.isRealData() ) ? 1 : 0; // in MC FE Lv1A counter starts from 1, in data from 0
637 
638  for(int fe=0; fe<(int)feLv1.size(); fe++) {
639  // look for ACTIVE towers only
640  if(status[fe] != 0) continue;
641  if(feLv1[fe]+feLv1Offset != ECALDCC_L1A_12bit && feLv1[fe] != -1 && ECALDCC_L1A_12bit - 1 != -1) {
642  meEEL1AFEErrors_->Fill( xism, 1/(float)feLv1.size());
643  meEESynchronizationErrorsByLumi_->Fill( xism, 1/(float)feLv1.size() );
644  errorsInEvent += 1. / feLv1.size();
645  } else if( BxSynchStatus[fe]==0 ){
646  meEESynchronizationErrorsByLumi_->Fill( xism, 1/(float)feLv1.size() );
647  errorsInEvent += 1. / feLv1.size();
648  }
649  }
650 
651  // vector of TCC channels has 4 elements for both EB and EE.
652  // EB uses [0], EE uses [0-3].
653  if(tccLv1.size() == MAX_TCC_SIZE) {
654  for(int tcc=0; tcc<MAX_TCC_SIZE; tcc++) {
655  if(tccLv1[tcc] != ECALDCC_L1A_12bit && tccLv1[tcc] != -1 && ECALDCC_L1A_12bit - 1 != -1) meEEL1ATCCErrors_->Fill( xism, 1/(float)tccLv1.size());
656  }
657  }
658 
659  if(srpLv1 != ECALDCC_L1A_12bit && srpLv1 != -1 && ECALDCC_L1A_12bit - 1 != -1) meEEL1ASRPErrors_->Fill( xism );
660 
661  if ( gtFedDataSize > 0 ) {
662 
663  if ( GT_OrbitNumber != ECALDCC_OrbitNumber ) meEEOrbitNumberErrors_->Fill ( xism );
664 
665  } else {
666 
667  if ( ECALDCC_OrbitNumber_MostFreqId != ECALDCC_OrbitNumber ) meEEOrbitNumberErrors_->Fill ( xism );
668 
669  }
670 
671  float evtType = dcchItr->getRunType();
672 
673  if ( evtType < 0 || evtType > 22 ) evtType = -1;
674 
675  if ( ECALDCC_BunchCrossing < calibrationBX_ ) meEEEventTypePreCalibrationBX_->Fill( evtType+0.5, 1./18. );
676  if ( ECALDCC_BunchCrossing == calibrationBX_ ) meEEEventTypeCalibrationBX_->Fill( evtType+0.5, 1./18. );
677  if ( ECALDCC_BunchCrossing > calibrationBX_ ) meEEEventTypePostCalibrationBX_->Fill ( evtType+0.5, 1./18. );
678 
679  if ( ECALDCC_BunchCrossing != calibrationBX_ ) {
680  if ( evtType != EcalDCCHeaderBlock::COSMIC &&
681  evtType != EcalDCCHeaderBlock::MTCC &&
686  evtType != -1 ) meEECalibrationEventErrors_->Fill( xism );
687  } else {
688  if ( evtType == EcalDCCHeaderBlock::COSMIC ||
689  evtType == EcalDCCHeaderBlock::MTCC ||
694  }
695 
696  }
697 
698  } else {
699  edm::LogWarning("EERawDataTask") << EcalRawDataCollection_ << " not available";
700  }
701 
702  if(errorsInEvent > 0.){
703  meEESynchronizationErrorsTrend_->Fill(ls_ - 0.5, errorsInEvent);
704  fatalErrors_ += errorsInEvent;
705  }
706 }
707 
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:226
int i
Definition: DBlmapReader.cc:9
DQMStore * dqmStore_
Definition: EERawDataTask.h:66
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:70
MonitorElement * meEECalibrationEventErrors_
Definition: EERawDataTask.h:86
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:717
void rmdir(const std::string &fullpath)
Definition: DQMStore.cc:2530
Some &quot;id&quot; conversions.
MonitorElement * meEETriggerTypeErrors_
Definition: EERawDataTask.h:85
std::vector< T >::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:91
bool isRealData() const
Definition: EventBase.h:60
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:49
void Fill(long long x)
LuminosityBlockNumber_t luminosityBlock() const
MonitorElement * meEECRCErrors_
Definition: EERawDataTask.h:79
EERawDataTask(const edm::ParameterSet &ps)
Constructor.
void removeElement(const std::string &name)
Definition: DQMStore.cc:2572
edm::InputTag EcalRawDataCollection_
Definition: EERawDataTask.h:77
MonitorElement * meEEEventTypePreCalibrationBX_
Definition: EERawDataTask.h:80
#define H_ORBITCOUNTER_MASK
TH1 * getTH1(void) const
MonitorElement * meEEOrbitNumberErrors_
Definition: EERawDataTask.h:84
int orbitNumber() const
Definition: EventBase.h:63
MonitorElement * meEEL1AFEErrors_
Definition: EERawDataTask.h:89
MonitorElement * meEEL1ASRPErrors_
Definition: EERawDataTask.h:93
#define H_L1_MASK
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
#define H_BX_MASK
void endJob(void)
EndJob.
MonitorElement * meEEEventTypePostCalibrationBX_
Definition: EERawDataTask.h:82
double & fe
Definition: VDTMath.h:196
MonitorElement * meEEBunchCrossingSRPErrors_
Definition: EERawDataTask.h:94
float calibrationBX_
static void initGeometry(const edm::EventSetup &setup, bool verbose=false)
Definition: Numbers.cc:50
unsigned long long uint64_t
Definition: Time.h:15
MonitorElement * meEEBunchCrossingTCCErrors_
Definition: EERawDataTask.h:92
virtual ~EERawDataTask()
Destructor.
MonitorElement * meEESynchronizationErrorsTrend_
Definition: EERawDataTask.h:98
MonitorElement * meEEL1ADCCErrors_
Definition: EERawDataTask.h:87
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:96
MonitorElement * meEEEventTypeCalibrationBX_
Definition: EERawDataTask.h:81
static unsigned iSM(const unsigned ism, const EcalSubdetector subdet)
Definition: Numbers.cc:246
edm::InputTag FEDRawDataCollection_
Definition: EERawDataTask.h:76
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:29
void endLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
EndLuminosityBlock.
#define MAX_TCC_SIZE
static EcalSubdetector subDet(const EBDetId &id)
Definition: Numbers.cc:145
void reset(void)
Reset.
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:83
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:429
void beginLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
BeginLuminosityBlock.
Definition: Run.h:33
MonitorElement * meEEBunchCrossingFEErrors_
Definition: EERawDataTask.h:90
#define H_TTYPE_MASK
MonitorElement * meEEBunchCrossingDCCErrors_
Definition: EERawDataTask.h:88
std::string prefixME_
Definition: EERawDataTask.h:68