CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EBRawDataTask.cc
Go to the documentation of this file.
1 /*
2  * \file EBRawDataTask.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  meEBCRCErrors_ = 0;
56  meEBL1AFEErrors_ = 0;
62 
64 
66 
67  calibrationBX_ = 3490;
68 
69 }
70 
72 }
73 
75 
76  ievt_ = 0;
77 
78  if ( dqmStore_ ) {
79  dqmStore_->setCurrentFolder(prefixME_ + "/EBRawDataTask");
80  if(subfolder_.size())
81  dqmStore_->setCurrentFolder(prefixME_ + "/EBRawDataTask/" + subfolder_);
82  dqmStore_->rmdir(prefixME_ + "/EBRawDataTask");
83  }
84 
85 }
86 
88 
89  if ( ! init_ ) this->setup();
90 
91  ls_ = _lumi.luminosityBlock();
92 
94 
96  int bin(meEBSynchronizationErrorsTrend_->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  meEBSynchronizationErrorsTrend_->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_ + "/EBRawDataTask");
149  if(subfolder_.size())
150  dqmStore_->setCurrentFolder(prefixME_ + "/EBRawDataTask/" + subfolder_);
151 
152  name = "EBRDT event type pre calibration BX";
153  meEBEventTypePreCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
178 
179  name = "EBRDT event type calibration BX";
180  meEBEventTypeCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
181  meEBEventTypeCalibrationBX_->setBinLabel(1, "UNKNOWN", 1);
205 
206  name = "EBRDT event type post calibration BX";
207  meEBEventTypePostCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
232 
233  name = "EBRDT CRC errors";
234  meEBCRCErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
235  for (int i = 0; i < 36; i++) {
237  }
238 
239  name = "EBRDT run number errors";
240  meEBRunNumberErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
241  for (int i = 0; i < 36; i++) {
243  }
244 
245  name = "EBRDT orbit number errors";
246  meEBOrbitNumberErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
247  for (int i = 0; i < 36; i++) {
249  }
250 
251  name = "EBRDT trigger type errors";
252  meEBTriggerTypeErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
253  for (int i = 0; i < 36; i++) {
255  }
256 
257  name = "EBRDT calibration event errors";
258  meEBCalibrationEventErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
259  for (int i = 0; i < 36; i++) {
261  }
262 
263  name = "EBRDT L1A DCC errors";
264  meEBL1ADCCErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
265  for (int i = 0; i < 36; i++) {
267  }
268 
269  name = "EBRDT bunch crossing DCC errors";
270  meEBBunchCrossingDCCErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
271  for (int i = 0; i < 36; i++) {
273  }
274 
275  name = "EBRDT L1A FE errors";
276  meEBL1AFEErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
277  for (int i = 0; i < 36; i++) {
279  }
280 
281  name = "EBRDT bunch crossing FE errors";
282  meEBBunchCrossingFEErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
283  for (int i = 0; i < 36; i++) {
285  }
286 
287  name = "EBRDT L1A TCC errors";
288  meEBL1ATCCErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
289  for (int i = 0; i < 36; i++) {
291  }
292 
293  name = "EBRDT bunch crossing TCC errors";
294  meEBBunchCrossingTCCErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
295  for (int i = 0; i < 36; i++) {
297  }
298 
299  name = "EBRDT L1A SRP errors";
300  meEBL1ASRPErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
301  for (int i = 0; i < 36; i++) {
303  }
304 
305  name = "EBRDT bunch crossing SRP errors";
306  meEBBunchCrossingSRPErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
307  for (int i = 0; i < 36; i++) {
309  }
310 
311  name = "EBRDT FE synchronization errors by lumi";
312  meEBSynchronizationErrorsByLumi_ = dqmStore_->book1D(name, name, 36, 1, 37);
314  for (int i = 0; i < 36; i++) {
316  }
317 
318  name = "EBRDT accumulated FE synchronization errors";
319  meEBSynchronizationErrorsTrend_ = 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_ + "/EBRawDataTask");
332  if(subfolder_.size())
333  dqmStore_->setCurrentFolder(prefixME_ + "/EBRawDataTask/" + subfolder_);
334 
337 
340 
343 
345  meEBCRCErrors_ = 0;
346 
349 
352 
355 
358 
360  meEBL1ADCCErrors_ = 0;
361 
364 
366  meEBL1AFEErrors_ = 0;
367 
370 
372  meEBL1ATCCErrors_ = 0;
373 
376 
378  meEBL1ASRPErrors_ = 0;
379 
382 
385 
388  }
389 
390  init_ = false;
391 
392 }
393 
395 
397  if(!me) return;
398  if(ls_ >= 50){
399  for(int ix(1); ix <= 50; ix++)
400  me->setBinContent(ix, me->getBinContent(ix + 1));
401 
402  me->getTH1()->GetXaxis()->SetLimits(ls_ - 49, ls_ + 1);
403  }
404 }
405 
407 
408  edm::LogInfo("EBRawDataTask") << "analyzed " << ievt_ << " events";
409 
410  if ( enableCleanup_ ) this->cleanup();
411 
412 }
413 
415 
416  ievt_++;
417 
418  // fill bin 0 with number of events in the lumi
420 
421  float errorsInEvent(0.);
422 
423  int evt_runNumber = e.id().run();
424 
425  int GT_L1A=0, GT_OrbitNumber=0, GT_BunchCrossing=0, GT_TriggerType=0;
426 
427  edm::Handle<FEDRawDataCollection> allFedRawData;
428 
429  int gtFedDataSize = 0;
430 
431  int ECALDCC_L1A_MostFreqId = -1;
432  int ECALDCC_OrbitNumber_MostFreqId = -1;
433  int ECALDCC_BunchCrossing_MostFreqId = -1;
434  int ECALDCC_TriggerType_MostFreqId = -1;
435 
436  if ( e.getByToken(FEDRawDataCollection_, allFedRawData) ) {
437 
438  // GT FED data
439  const FEDRawData& gtFedData = allFedRawData->FEDData(812);
440 
441  gtFedDataSize = gtFedData.size()/sizeof(uint64_t);
442 
443  if ( gtFedDataSize > 0 ) {
444 
445  FEDHeader header(gtFedData.data());
446 
447 #define H_L1_MASK 0xFFFFFF
448 #define H_ORBITCOUNTER_MASK 0xFFFFFFFF
449 #define H_BX_MASK 0xFFF
450 #define H_TTYPE_MASK 0xF
451 
452  GT_L1A = header.lvl1ID() & H_L1_MASK;
453  GT_OrbitNumber = e.orbitNumber() & H_ORBITCOUNTER_MASK;
454  GT_BunchCrossing = e.bunchCrossing() & H_BX_MASK;
455  GT_TriggerType = e.experimentType() & H_TTYPE_MASK;
456 
457  } else {
458 
459  // use the most frequent among the ECAL FEDs
460 
461  std::map<int,int> ECALDCC_L1A_FreqMap;
462  std::map<int,int> ECALDCC_OrbitNumber_FreqMap;
463  std::map<int,int> ECALDCC_BunchCrossing_FreqMap;
464  std::map<int,int> ECALDCC_TriggerType_FreqMap;
465 
466  int ECALDCC_L1A_MostFreqCounts = 0;
467  int ECALDCC_OrbitNumber_MostFreqCounts = 0;
468  int ECALDCC_BunchCrossing_MostFreqCounts = 0;
469  int ECALDCC_TriggerType_MostFreqCounts = 0;
470 
472 
473  if ( e.getByToken(EcalRawDataCollection_, dcchs) ) {
474 
475  for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
476 
477  if ( Numbers::subDet( *dcchItr ) != EcalBarrel ) continue;
478 
479  int ECALDCC_L1A = dcchItr->getLV1();
480  int ECALDCC_OrbitNumber = dcchItr->getOrbit();
481  int ECALDCC_BunchCrossing = dcchItr->getBX();
482  int ECALDCC_TriggerType = dcchItr->getBasicTriggerType();
483 
484  ++ECALDCC_L1A_FreqMap[ECALDCC_L1A];
485  ++ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber];
486  ++ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing];
487  ++ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType];
488 
489  if ( ECALDCC_L1A_FreqMap[ECALDCC_L1A] > ECALDCC_L1A_MostFreqCounts ) {
490  ECALDCC_L1A_MostFreqCounts = ECALDCC_L1A_FreqMap[ECALDCC_L1A];
491  ECALDCC_L1A_MostFreqId = ECALDCC_L1A;
492  }
493 
494  if ( ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber] > ECALDCC_OrbitNumber_MostFreqCounts ) {
495  ECALDCC_OrbitNumber_MostFreqCounts = ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber];
496  ECALDCC_OrbitNumber_MostFreqId = ECALDCC_OrbitNumber;
497  }
498 
499  if ( ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing] > ECALDCC_BunchCrossing_MostFreqCounts ) {
500  ECALDCC_BunchCrossing_MostFreqCounts = ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing];
501  ECALDCC_BunchCrossing_MostFreqId = ECALDCC_BunchCrossing;
502  }
503 
504  if ( ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType] > ECALDCC_TriggerType_MostFreqCounts ) {
505  ECALDCC_TriggerType_MostFreqCounts = ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType];
506  ECALDCC_TriggerType_MostFreqId = ECALDCC_TriggerType;
507  }
508 
509  }
510 
511  } else {
512  edm::LogWarning("EBRawDataTask") << "EcalRawDataCollection not available";
513  }
514 
515  }
516 
517  // ECAL barrel FEDs
518  int EBFirstFED=610;
519  for(int i=0; i<36; i++) {
520 
521  const FEDRawData& fedData = allFedRawData->FEDData(EBFirstFED+i);
522 
523  int length = fedData.size()/sizeof(uint64_t);
524 
525  if ( length > 0 ) {
526 
527  uint64_t * pData = (uint64_t *)(fedData.data());
528  uint64_t * fedTrailer = pData + (length - 1);
529  bool crcError = (*fedTrailer >> 2 ) & 0x1;
530 
531  if (crcError) meEBCRCErrors_->Fill( i+1 );
532 
533  }
534 
535  }
536 
537  } else {
538  edm::LogWarning("EBRawDataTask") << "FEDRawDataCollection not available";
539  }
540 
542 
543  if ( e.getByToken(EcalRawDataCollection_, dcchs) ) {
544 
545  for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
546 
547  if ( Numbers::subDet( *dcchItr ) != EcalBarrel ) continue;
548 
549  int ism = Numbers::iSM( *dcchItr, EcalBarrel );
550  float xism = ism+0.5;
551 
552  int ECALDCC_runNumber = dcchItr->getRunNumber();
553 
554  int ECALDCC_L1A = dcchItr->getLV1();
555  int ECALDCC_OrbitNumber = dcchItr->getOrbit();
556  int ECALDCC_BunchCrossing = dcchItr->getBX();
557  int ECALDCC_TriggerType = dcchItr->getBasicTriggerType();
558 
559  if ( evt_runNumber != ECALDCC_runNumber ) meEBRunNumberErrors_->Fill( xism );
560 
561  if ( gtFedDataSize > 0 ) {
562 
563  if ( GT_L1A != ECALDCC_L1A ) meEBL1ADCCErrors_->Fill( xism );
564 
565  if ( GT_BunchCrossing != ECALDCC_BunchCrossing ) meEBBunchCrossingDCCErrors_->Fill( xism );
566 
567  if ( GT_TriggerType != ECALDCC_TriggerType ) meEBTriggerTypeErrors_->Fill ( xism );
568 
569  } else {
570 
571  if ( ECALDCC_L1A_MostFreqId != ECALDCC_L1A ) meEBL1ADCCErrors_->Fill( xism );
572 
573  if ( ECALDCC_BunchCrossing_MostFreqId != ECALDCC_BunchCrossing ) meEBBunchCrossingDCCErrors_->Fill( xism );
574 
575  if ( ECALDCC_TriggerType_MostFreqId != ECALDCC_TriggerType ) meEBTriggerTypeErrors_->Fill ( xism );
576 
577  }
578 
579  if ( gtFedDataSize == 0 ) {
580 
581  if ( GT_OrbitNumber != ECALDCC_OrbitNumber ) meEBOrbitNumberErrors_->Fill ( xism );
582 
583  } else {
584 
585  if ( ECALDCC_OrbitNumber_MostFreqId != ECALDCC_OrbitNumber ) meEBOrbitNumberErrors_->Fill ( xism );
586 
587  }
588 
589  // DCC vs. FE,TCC, SRP syncronization
590  const std::vector<short> feBxs = dcchItr->getFEBxs();
591  const std::vector<short> tccBx = dcchItr->getTCCBx();
592  const short srpBx = dcchItr->getSRPBx();
593  const std::vector<short> status = dcchItr->getFEStatus();
594 
595  std::vector<int> BxSynchStatus;
596  BxSynchStatus.reserve((int)feBxs.size());
597 
598  for(int fe=0; fe<(int)feBxs.size(); fe++) {
599  // look for ACTIVE towers only
600  if(status[fe] != 0) continue;
601  if(feBxs[fe] != ECALDCC_BunchCrossing && feBxs[fe] != -1 && ECALDCC_BunchCrossing != -1) {
602  meEBBunchCrossingFEErrors_->Fill( xism, 1/(float)feBxs.size() );
603  BxSynchStatus[fe] = 0;
604  } else BxSynchStatus[fe] = 1;
605  }
606 
607  // vector of TCC channels has 4 elements for both EB and EE.
608  // EB uses [0], EE uses [0-3].
609  if(tccBx.size() == MAX_TCC_SIZE) {
610  if(tccBx[0] != ECALDCC_BunchCrossing && tccBx[0] != -1 && ECALDCC_BunchCrossing != -1) meEBBunchCrossingTCCErrors_->Fill( xism );
611  }
612 
613  if(srpBx != ECALDCC_BunchCrossing && srpBx != -1 && ECALDCC_BunchCrossing != -1) meEBBunchCrossingSRPErrors_->Fill( xism );
614 
615  const std::vector<short> feLv1 = dcchItr->getFELv1();
616  const std::vector<short> tccLv1 = dcchItr->getTCCLv1();
617  const short srpLv1 = dcchItr->getSRPLv1();
618 
619  // Lv1 in TCC,SRP,FE are limited to 12 bits(LSB), while in the DCC Lv1 has 24 bits
620  int ECALDCC_L1A_12bit = ECALDCC_L1A & 0xfff;
621  int feLv1Offset = ( e.isRealData() ) ? 1 : 0; // in MC FE Lv1A counter starts from 1, in data from 0
622 
623  for(int fe=0; fe<(int)feLv1.size(); fe++) {
624  // look for ACTIVE towers only
625  if(status[fe] != 0) continue;
626  if(feLv1[fe]+feLv1Offset != ECALDCC_L1A_12bit && feLv1[fe] != -1 && ECALDCC_L1A_12bit - 1 != -1) {
627  meEBL1AFEErrors_->Fill( xism, 1/(float)feLv1.size() );
628  meEBSynchronizationErrorsByLumi_->Fill( xism, 1/(float)feLv1.size() );
629  errorsInEvent += 1. / feLv1.size();
630  } else if( BxSynchStatus[fe]==0 ){
631  meEBSynchronizationErrorsByLumi_->Fill( xism, 1/(float)feLv1.size() );
632  errorsInEvent += 1. / feLv1.size();
633  }
634  }
635 
636  // vector of TCC channels has 4 elements for both EB and EE.
637  // EB uses [0], EE uses [0-3].
638  if(tccLv1.size() == MAX_TCC_SIZE) {
639  if(tccLv1[0] != ECALDCC_L1A_12bit && tccLv1[0] != -1 && ECALDCC_L1A_12bit - 1 != -1) meEBL1ATCCErrors_->Fill( xism );
640  }
641 
642  if(srpLv1 != ECALDCC_L1A_12bit && srpLv1 != -1 && ECALDCC_L1A_12bit - 1 != -1) meEBL1ASRPErrors_->Fill( xism );
643 
644  if ( gtFedDataSize == 0 ) {
645 
646  if ( GT_OrbitNumber != ECALDCC_OrbitNumber ) meEBOrbitNumberErrors_->Fill ( xism );
647 
648  } else {
649 
650  if ( ECALDCC_OrbitNumber_MostFreqId != ECALDCC_OrbitNumber ) meEBOrbitNumberErrors_->Fill ( xism );
651 
652  }
653 
654  float evtType = dcchItr->getRunType();
655 
656  if ( evtType < 0 || evtType > 22 ) evtType = -1;
657 
658  if ( ECALDCC_BunchCrossing < calibrationBX_ ) meEBEventTypePreCalibrationBX_->Fill( evtType+0.5, 1./36. );
659  if ( ECALDCC_BunchCrossing == calibrationBX_ ) meEBEventTypeCalibrationBX_->Fill( evtType+0.5, 1./36. );
660  if ( ECALDCC_BunchCrossing > calibrationBX_ ) meEBEventTypePostCalibrationBX_->Fill ( evtType+0.5, 1./36. );
661 
662  if ( ECALDCC_BunchCrossing != calibrationBX_ ) {
663  if ( evtType != EcalDCCHeaderBlock::COSMIC &&
664  evtType != EcalDCCHeaderBlock::MTCC &&
669  evtType != -1 ) meEBCalibrationEventErrors_->Fill( xism );
670  } else {
671  if ( evtType == EcalDCCHeaderBlock::COSMIC ||
672  evtType == EcalDCCHeaderBlock::MTCC ||
677  }
678 
679  }
680 
681  } else {
682  edm::LogWarning("EBRawDataTask") << "EcalRawDataCollection not available";
683  }
684 
685  if(errorsInEvent > 0.){
686  meEBSynchronizationErrorsTrend_->Fill(ls_ - 0.5, errorsInEvent);
687  fatalErrors_ += errorsInEvent;
688  }
689 }
690 
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
int i
Definition: DBlmapReader.cc:9
void setBinContent(int binx, double content)
set content of bin (1-D)
DQMStore * dqmStore_
Definition: EBRawDataTask.h:67
MonitorElement * meEBSynchronizationErrorsByLumi_
Definition: EBRawDataTask.h:97
void endRun(const edm::Run &r, const edm::EventSetup &c)
EndRun.
EBRawDataTask(const edm::ParameterSet &ps)
Constructor.
MonitorElement * meEBTriggerTypeErrors_
Definition: EBRawDataTask.h:86
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:872
MonitorElement * meEBEventTypePreCalibrationBX_
Definition: EBRawDataTask.h:81
MonitorElement * meEBCRCErrors_
Definition: EBRawDataTask.h:80
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 * meEBCalibrationEventErrors_
Definition: EBRawDataTask.h:87
static std::string sEB(const unsigned ism)
Definition: Numbers.cc:91
float calibrationBX_
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)
MonitorElement * meEBL1ATCCErrors_
Definition: EBRawDataTask.h:92
edm::EDGetTokenT< FEDRawDataCollection > FEDRawDataCollection_
Definition: EBRawDataTask.h:77
MonitorElement * meEBOrbitNumberErrors_
Definition: EBRawDataTask.h:85
void beginLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
BeginLuminosityBlock.
bool isRealData() const
Definition: EventBase.h:60
MonitorElement * meEBRunNumberErrors_
Definition: EBRawDataTask.h:84
std::string subfolder_
Definition: EBRawDataTask.h:71
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
MonitorElement * meEBL1ADCCErrors_
Definition: EBRawDataTask.h:88
MonitorElement * meEBBunchCrossingDCCErrors_
Definition: EBRawDataTask.h:89
void Fill(long long x)
LuminosityBlockNumber_t luminosityBlock() const
MonitorElement * meEBL1ASRPErrors_
Definition: EBRawDataTask.h:94
void beginJob(void)
BeginJob.
MonitorElement * meEBEventTypePostCalibrationBX_
Definition: EBRawDataTask.h:83
MonitorElement * meEBBunchCrossingTCCErrors_
Definition: EBRawDataTask.h:93
void removeElement(const std::string &name)
Definition: DQMStore.cc:2772
MonitorElement * meEBL1AFEErrors_
Definition: EBRawDataTask.h:90
#define H_ORBITCOUNTER_MASK
void endJob(void)
EndJob.
TH1 * getTH1(void) const
void endLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
EndLuminosityBlock.
int orbitNumber() const
Definition: EventBase.h:63
#define H_L1_MASK
MonitorElement * meEBSynchronizationErrorsTrend_
Definition: EBRawDataTask.h:99
#define H_BX_MASK
MonitorElement * meEBBunchCrossingFEErrors_
Definition: EBRawDataTask.h:91
static void initGeometry(const edm::EventSetup &setup, bool verbose=false)
Definition: Numbers.cc:47
unsigned long long uint64_t
Definition: Time.h:15
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
virtual ~EBRawDataTask()
Destructor.
void cleanup(void)
Cleanup.
double getBinContent(int binx) const
get content of bin (1-D)
edm::EventID id() const
Definition: EventBase.h:56
std::string prefixME_
Definition: EBRawDataTask.h:69
static unsigned iSM(const unsigned ism, const EcalSubdetector subdet)
Definition: Numbers.cc:243
MonitorElement * meEBEventTypeCalibrationBX_
Definition: EBRawDataTask.h:82
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
#define MAX_TCC_SIZE
MonitorElement * meEBBunchCrossingSRPErrors_
Definition: EBRawDataTask.h:95
void reset(void)
Reset.
static EcalSubdetector subDet(const EBDetId &id)
Definition: Numbers.cc:142
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
edm::EDGetTokenT< EcalRawDataCollection > EcalRawDataCollection_
Definition: EBRawDataTask.h:78
void setup(void)
Setup.
void beginRun(const edm::Run &r, const edm::EventSetup &c)
BeginRun.
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
Definition: Run.h:41
#define H_TTYPE_MASK