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  * $Date: 2012/06/28 12:14:29 $
5  * $Revision: 1.48 $
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  meEBCRCErrors_ = 0;
60  meEBL1AFEErrors_ = 0;
66 
68 
70 
71  calibrationBX_ = 3490;
72 
73 }
74 
76 }
77 
79 
80  ievt_ = 0;
81 
82  if ( dqmStore_ ) {
83  dqmStore_->setCurrentFolder(prefixME_ + "/EBRawDataTask");
84  if(subfolder_.size())
85  dqmStore_->setCurrentFolder(prefixME_ + "/EBRawDataTask/" + subfolder_);
86  dqmStore_->rmdir(prefixME_ + "/EBRawDataTask");
87  }
88 
89 }
90 
92 
93  if ( ! init_ ) this->setup();
94 
95  ls_ = _lumi.luminosityBlock();
96 
98 
100  int bin(meEBSynchronizationErrorsTrend_->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  meEBSynchronizationErrorsTrend_->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_ + "/EBRawDataTask");
153  if(subfolder_.size())
154  dqmStore_->setCurrentFolder(prefixME_ + "/EBRawDataTask/" + subfolder_);
155 
156  name = "EBRDT event type pre calibration BX";
157  meEBEventTypePreCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
182 
183  name = "EBRDT event type calibration BX";
184  meEBEventTypeCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
185  meEBEventTypeCalibrationBX_->setBinLabel(1, "UNKNOWN", 1);
209 
210  name = "EBRDT event type post calibration BX";
211  meEBEventTypePostCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
236 
237  name = "EBRDT CRC errors";
238  meEBCRCErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
239  for (int i = 0; i < 36; i++) {
241  }
242 
243  name = "EBRDT run number errors";
244  meEBRunNumberErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
245  for (int i = 0; i < 36; i++) {
247  }
248 
249  name = "EBRDT orbit number errors";
250  meEBOrbitNumberErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
251  for (int i = 0; i < 36; i++) {
253  }
254 
255  name = "EBRDT trigger type errors";
256  meEBTriggerTypeErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
257  for (int i = 0; i < 36; i++) {
259  }
260 
261  name = "EBRDT calibration event errors";
262  meEBCalibrationEventErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
263  for (int i = 0; i < 36; i++) {
265  }
266 
267  name = "EBRDT L1A DCC errors";
268  meEBL1ADCCErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
269  for (int i = 0; i < 36; i++) {
271  }
272 
273  name = "EBRDT bunch crossing DCC errors";
274  meEBBunchCrossingDCCErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
275  for (int i = 0; i < 36; i++) {
277  }
278 
279  name = "EBRDT L1A FE errors";
280  meEBL1AFEErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
281  for (int i = 0; i < 36; i++) {
283  }
284 
285  name = "EBRDT bunch crossing FE errors";
286  meEBBunchCrossingFEErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
287  for (int i = 0; i < 36; i++) {
289  }
290 
291  name = "EBRDT L1A TCC errors";
292  meEBL1ATCCErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
293  for (int i = 0; i < 36; i++) {
295  }
296 
297  name = "EBRDT bunch crossing TCC errors";
298  meEBBunchCrossingTCCErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
299  for (int i = 0; i < 36; i++) {
301  }
302 
303  name = "EBRDT L1A SRP errors";
304  meEBL1ASRPErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
305  for (int i = 0; i < 36; i++) {
307  }
308 
309  name = "EBRDT bunch crossing SRP errors";
310  meEBBunchCrossingSRPErrors_ = dqmStore_->book1D(name, name, 36, 1, 37);
311  for (int i = 0; i < 36; i++) {
313  }
314 
315  name = "EBRDT FE synchronization errors by lumi";
316  meEBSynchronizationErrorsByLumi_ = dqmStore_->book1D(name, name, 36, 1, 37);
318  for (int i = 0; i < 36; i++) {
320  }
321 
322  name = "EBRDT accumulated FE synchronization errors";
323  meEBSynchronizationErrorsTrend_ = 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_ + "/EBRawDataTask");
336  if(subfolder_.size())
337  dqmStore_->setCurrentFolder(prefixME_ + "/EBRawDataTask/" + subfolder_);
338 
341 
344 
347 
349  meEBCRCErrors_ = 0;
350 
353 
356 
359 
362 
364  meEBL1ADCCErrors_ = 0;
365 
368 
370  meEBL1AFEErrors_ = 0;
371 
374 
376  meEBL1ATCCErrors_ = 0;
377 
380 
382  meEBL1ASRPErrors_ = 0;
383 
386 
389 
392  }
393 
394  init_ = false;
395 
396 }
397 
399 
401  if(!me) return;
402  if(ls_ >= 50){
403  for(int ix(1); ix <= 50; ix++)
404  me->setBinContent(ix, me->getBinContent(ix + 1));
405 
406  me->getTH1()->GetXaxis()->SetLimits(ls_ - 49, ls_ + 1);
407  }
408 }
409 
411 
412  edm::LogInfo("EBRawDataTask") << "analyzed " << ievt_ << " events";
413 
414  if ( enableCleanup_ ) this->cleanup();
415 
416 }
417 
419 
420  ievt_++;
421 
422  // fill bin 0 with number of events in the lumi
424 
425  float errorsInEvent(0.);
426 
427  int evt_runNumber = e.id().run();
428 
429  int GT_L1A=0, GT_OrbitNumber=0, GT_BunchCrossing=0, GT_TriggerType=0;
430 
431  edm::Handle<FEDRawDataCollection> allFedRawData;
432 
433  int gtFedDataSize = 0;
434 
435  int ECALDCC_L1A_MostFreqId = -1;
436  int ECALDCC_OrbitNumber_MostFreqId = -1;
437  int ECALDCC_BunchCrossing_MostFreqId = -1;
438  int ECALDCC_TriggerType_MostFreqId = -1;
439 
440  if ( e.getByLabel(FEDRawDataCollection_, allFedRawData) ) {
441 
442  // GT FED data
443  const FEDRawData& gtFedData = allFedRawData->FEDData(812);
444 
445  gtFedDataSize = gtFedData.size()/sizeof(uint64_t);
446 
447  if ( gtFedDataSize > 0 ) {
448 
449  FEDHeader header(gtFedData.data());
450 
451 #define H_L1_MASK 0xFFFFFF
452 #define H_ORBITCOUNTER_MASK 0xFFFFFFFF
453 #define H_BX_MASK 0xFFF
454 #define H_TTYPE_MASK 0xF
455 
456  GT_L1A = header.lvl1ID() & H_L1_MASK;
457  GT_OrbitNumber = e.orbitNumber() & H_ORBITCOUNTER_MASK;
458  GT_BunchCrossing = e.bunchCrossing() & H_BX_MASK;
459  GT_TriggerType = e.experimentType() & H_TTYPE_MASK;
460 
461  } else {
462 
463  // use the most frequent among the ECAL FEDs
464 
465  std::map<int,int> ECALDCC_L1A_FreqMap;
466  std::map<int,int> ECALDCC_OrbitNumber_FreqMap;
467  std::map<int,int> ECALDCC_BunchCrossing_FreqMap;
468  std::map<int,int> ECALDCC_TriggerType_FreqMap;
469 
470  int ECALDCC_L1A_MostFreqCounts = 0;
471  int ECALDCC_OrbitNumber_MostFreqCounts = 0;
472  int ECALDCC_BunchCrossing_MostFreqCounts = 0;
473  int ECALDCC_TriggerType_MostFreqCounts = 0;
474 
476 
477  if ( e.getByLabel(EcalRawDataCollection_, dcchs) ) {
478 
479  for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
480 
481  if ( Numbers::subDet( *dcchItr ) != EcalBarrel ) continue;
482 
483  int ECALDCC_L1A = dcchItr->getLV1();
484  int ECALDCC_OrbitNumber = dcchItr->getOrbit();
485  int ECALDCC_BunchCrossing = dcchItr->getBX();
486  int ECALDCC_TriggerType = dcchItr->getBasicTriggerType();
487 
488  ++ECALDCC_L1A_FreqMap[ECALDCC_L1A];
489  ++ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber];
490  ++ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing];
491  ++ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType];
492 
493  if ( ECALDCC_L1A_FreqMap[ECALDCC_L1A] > ECALDCC_L1A_MostFreqCounts ) {
494  ECALDCC_L1A_MostFreqCounts = ECALDCC_L1A_FreqMap[ECALDCC_L1A];
495  ECALDCC_L1A_MostFreqId = ECALDCC_L1A;
496  }
497 
498  if ( ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber] > ECALDCC_OrbitNumber_MostFreqCounts ) {
499  ECALDCC_OrbitNumber_MostFreqCounts = ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber];
500  ECALDCC_OrbitNumber_MostFreqId = ECALDCC_OrbitNumber;
501  }
502 
503  if ( ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing] > ECALDCC_BunchCrossing_MostFreqCounts ) {
504  ECALDCC_BunchCrossing_MostFreqCounts = ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing];
505  ECALDCC_BunchCrossing_MostFreqId = ECALDCC_BunchCrossing;
506  }
507 
508  if ( ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType] > ECALDCC_TriggerType_MostFreqCounts ) {
509  ECALDCC_TriggerType_MostFreqCounts = ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType];
510  ECALDCC_TriggerType_MostFreqId = ECALDCC_TriggerType;
511  }
512 
513  }
514 
515  } else {
516  edm::LogWarning("EBRawDataTask") << EcalRawDataCollection_ << " not available";
517  }
518 
519  }
520 
521  // ECAL barrel FEDs
522  int EBFirstFED=610;
523  for(int i=0; i<36; i++) {
524 
525  const FEDRawData& fedData = allFedRawData->FEDData(EBFirstFED+i);
526 
527  int length = fedData.size()/sizeof(uint64_t);
528 
529  if ( length > 0 ) {
530 
531  uint64_t * pData = (uint64_t *)(fedData.data());
532  uint64_t * fedTrailer = pData + (length - 1);
533  bool crcError = (*fedTrailer >> 2 ) & 0x1;
534 
535  if (crcError) meEBCRCErrors_->Fill( i+1 );
536 
537  }
538 
539  }
540 
541  } else {
542  edm::LogWarning("EBRawDataTask") << FEDRawDataCollection_ << " not available";
543  }
544 
546 
547  if ( e.getByLabel(EcalRawDataCollection_, dcchs) ) {
548 
549  for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
550 
551  if ( Numbers::subDet( *dcchItr ) != EcalBarrel ) continue;
552 
553  int ism = Numbers::iSM( *dcchItr, EcalBarrel );
554  float xism = ism+0.5;
555 
556  int ECALDCC_runNumber = dcchItr->getRunNumber();
557 
558  int ECALDCC_L1A = dcchItr->getLV1();
559  int ECALDCC_OrbitNumber = dcchItr->getOrbit();
560  int ECALDCC_BunchCrossing = dcchItr->getBX();
561  int ECALDCC_TriggerType = dcchItr->getBasicTriggerType();
562 
563  if ( evt_runNumber != ECALDCC_runNumber ) meEBRunNumberErrors_->Fill( xism );
564 
565  if ( gtFedDataSize > 0 ) {
566 
567  if ( GT_L1A != ECALDCC_L1A ) meEBL1ADCCErrors_->Fill( xism );
568 
569  if ( GT_BunchCrossing != ECALDCC_BunchCrossing ) meEBBunchCrossingDCCErrors_->Fill( xism );
570 
571  if ( GT_TriggerType != ECALDCC_TriggerType ) meEBTriggerTypeErrors_->Fill ( xism );
572 
573  } else {
574 
575  if ( ECALDCC_L1A_MostFreqId != ECALDCC_L1A ) meEBL1ADCCErrors_->Fill( xism );
576 
577  if ( ECALDCC_BunchCrossing_MostFreqId != ECALDCC_BunchCrossing ) meEBBunchCrossingDCCErrors_->Fill( xism );
578 
579  if ( ECALDCC_TriggerType_MostFreqId != ECALDCC_TriggerType ) meEBTriggerTypeErrors_->Fill ( xism );
580 
581  }
582 
583  if ( gtFedDataSize == 0 ) {
584 
585  if ( GT_OrbitNumber != ECALDCC_OrbitNumber ) meEBOrbitNumberErrors_->Fill ( xism );
586 
587  } else {
588 
589  if ( ECALDCC_OrbitNumber_MostFreqId != ECALDCC_OrbitNumber ) meEBOrbitNumberErrors_->Fill ( xism );
590 
591  }
592 
593  // DCC vs. FE,TCC, SRP syncronization
594  const std::vector<short> feBxs = dcchItr->getFEBxs();
595  const std::vector<short> tccBx = dcchItr->getTCCBx();
596  const short srpBx = dcchItr->getSRPBx();
597  const std::vector<short> status = dcchItr->getFEStatus();
598 
599  std::vector<int> BxSynchStatus;
600  BxSynchStatus.reserve((int)feBxs.size());
601 
602  for(int fe=0; fe<(int)feBxs.size(); fe++) {
603  // look for ACTIVE towers only
604  if(status[fe] != 0) continue;
605  if(feBxs[fe] != ECALDCC_BunchCrossing && feBxs[fe] != -1 && ECALDCC_BunchCrossing != -1) {
606  meEBBunchCrossingFEErrors_->Fill( xism, 1/(float)feBxs.size() );
607  BxSynchStatus[fe] = 0;
608  } else BxSynchStatus[fe] = 1;
609  }
610 
611  // vector of TCC channels has 4 elements for both EB and EE.
612  // EB uses [0], EE uses [0-3].
613  if(tccBx.size() == MAX_TCC_SIZE) {
614  if(tccBx[0] != ECALDCC_BunchCrossing && tccBx[0] != -1 && ECALDCC_BunchCrossing != -1) meEBBunchCrossingTCCErrors_->Fill( xism );
615  }
616 
617  if(srpBx != ECALDCC_BunchCrossing && srpBx != -1 && ECALDCC_BunchCrossing != -1) meEBBunchCrossingSRPErrors_->Fill( xism );
618 
619  const std::vector<short> feLv1 = dcchItr->getFELv1();
620  const std::vector<short> tccLv1 = dcchItr->getTCCLv1();
621  const short srpLv1 = dcchItr->getSRPLv1();
622 
623  // Lv1 in TCC,SRP,FE are limited to 12 bits(LSB), while in the DCC Lv1 has 24 bits
624  int ECALDCC_L1A_12bit = ECALDCC_L1A & 0xfff;
625  int feLv1Offset = ( e.isRealData() ) ? 1 : 0; // in MC FE Lv1A counter starts from 1, in data from 0
626 
627  for(int fe=0; fe<(int)feLv1.size(); fe++) {
628  // look for ACTIVE towers only
629  if(status[fe] != 0) continue;
630  if(feLv1[fe]+feLv1Offset != ECALDCC_L1A_12bit && feLv1[fe] != -1 && ECALDCC_L1A_12bit - 1 != -1) {
631  meEBL1AFEErrors_->Fill( xism, 1/(float)feLv1.size() );
632  meEBSynchronizationErrorsByLumi_->Fill( xism, 1/(float)feLv1.size() );
633  errorsInEvent += 1. / feLv1.size();
634  } else if( BxSynchStatus[fe]==0 ){
635  meEBSynchronizationErrorsByLumi_->Fill( xism, 1/(float)feLv1.size() );
636  errorsInEvent += 1. / feLv1.size();
637  }
638  }
639 
640  // vector of TCC channels has 4 elements for both EB and EE.
641  // EB uses [0], EE uses [0-3].
642  if(tccLv1.size() == MAX_TCC_SIZE) {
643  if(tccLv1[0] != ECALDCC_L1A_12bit && tccLv1[0] != -1 && ECALDCC_L1A_12bit - 1 != -1) meEBL1ATCCErrors_->Fill( xism );
644  }
645 
646  if(srpLv1 != ECALDCC_L1A_12bit && srpLv1 != -1 && ECALDCC_L1A_12bit - 1 != -1) meEBL1ASRPErrors_->Fill( xism );
647 
648  if ( gtFedDataSize == 0 ) {
649 
650  if ( GT_OrbitNumber != ECALDCC_OrbitNumber ) meEBOrbitNumberErrors_->Fill ( xism );
651 
652  } else {
653 
654  if ( ECALDCC_OrbitNumber_MostFreqId != ECALDCC_OrbitNumber ) meEBOrbitNumberErrors_->Fill ( xism );
655 
656  }
657 
658  float evtType = dcchItr->getRunType();
659 
660  if ( evtType < 0 || evtType > 22 ) evtType = -1;
661 
662  if ( ECALDCC_BunchCrossing < calibrationBX_ ) meEBEventTypePreCalibrationBX_->Fill( evtType+0.5, 1./36. );
663  if ( ECALDCC_BunchCrossing == calibrationBX_ ) meEBEventTypeCalibrationBX_->Fill( evtType+0.5, 1./36. );
664  if ( ECALDCC_BunchCrossing > calibrationBX_ ) meEBEventTypePostCalibrationBX_->Fill ( evtType+0.5, 1./36. );
665 
666  if ( ECALDCC_BunchCrossing != calibrationBX_ ) {
667  if ( evtType != EcalDCCHeaderBlock::COSMIC &&
668  evtType != EcalDCCHeaderBlock::MTCC &&
673  evtType != -1 ) meEBCalibrationEventErrors_->Fill( xism );
674  } else {
675  if ( evtType == EcalDCCHeaderBlock::COSMIC ||
676  evtType == EcalDCCHeaderBlock::MTCC ||
681  }
682 
683  }
684 
685  } else {
686  edm::LogWarning("EBRawDataTask") << EcalRawDataCollection_ << " not available";
687  }
688 
689  if(errorsInEvent > 0.){
690  meEBSynchronizationErrorsTrend_->Fill(ls_ - 0.5, errorsInEvent);
691  fatalErrors_ += errorsInEvent;
692  }
693 }
694 
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:66
MonitorElement * meEBSynchronizationErrorsByLumi_
Definition: EBRawDataTask.h:96
void endRun(const edm::Run &r, const edm::EventSetup &c)
EndRun.
EBRawDataTask(const edm::ParameterSet &ps)
Constructor.
MonitorElement * meEBTriggerTypeErrors_
Definition: EBRawDataTask.h:85
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:717
MonitorElement * meEBEventTypePreCalibrationBX_
Definition: EBRawDataTask.h:80
MonitorElement * meEBCRCErrors_
Definition: EBRawDataTask.h:79
void rmdir(const std::string &fullpath)
Definition: DQMStore.cc:2530
Some &quot;id&quot; conversions.
MonitorElement * meEBCalibrationEventErrors_
Definition: EBRawDataTask.h:86
static std::string sEB(const unsigned ism)
Definition: Numbers.cc:94
float calibrationBX_
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)
MonitorElement * meEBL1ATCCErrors_
Definition: EBRawDataTask.h:91
MonitorElement * meEBOrbitNumberErrors_
Definition: EBRawDataTask.h:84
void beginLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
BeginLuminosityBlock.
bool isRealData() const
Definition: EventBase.h:60
MonitorElement * meEBRunNumberErrors_
Definition: EBRawDataTask.h:83
std::string subfolder_
Definition: EBRawDataTask.h:70
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:49
MonitorElement * meEBL1ADCCErrors_
Definition: EBRawDataTask.h:87
MonitorElement * meEBBunchCrossingDCCErrors_
Definition: EBRawDataTask.h:88
void Fill(long long x)
LuminosityBlockNumber_t luminosityBlock() const
MonitorElement * meEBL1ASRPErrors_
Definition: EBRawDataTask.h:93
void beginJob(void)
BeginJob.
MonitorElement * meEBEventTypePostCalibrationBX_
Definition: EBRawDataTask.h:82
MonitorElement * meEBBunchCrossingTCCErrors_
Definition: EBRawDataTask.h:92
void removeElement(const std::string &name)
Definition: DQMStore.cc:2572
edm::InputTag EcalRawDataCollection_
Definition: EBRawDataTask.h:77
MonitorElement * meEBL1AFEErrors_
Definition: EBRawDataTask.h:89
#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
edm::InputTag FEDRawDataCollection_
Definition: EBRawDataTask.h:76
#define H_L1_MASK
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
MonitorElement * meEBSynchronizationErrorsTrend_
Definition: EBRawDataTask.h:98
#define H_BX_MASK
double & fe
Definition: VDTMath.h:196
MonitorElement * meEBBunchCrossingFEErrors_
Definition: EBRawDataTask.h:90
static void initGeometry(const edm::EventSetup &setup, bool verbose=false)
Definition: Numbers.cc:50
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:68
static unsigned iSM(const unsigned ism, const EcalSubdetector subdet)
Definition: Numbers.cc:246
MonitorElement * meEBEventTypeCalibrationBX_
Definition: EBRawDataTask.h:81
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
#define MAX_TCC_SIZE
MonitorElement * meEBBunchCrossingSRPErrors_
Definition: EBRawDataTask.h:94
void reset(void)
Reset.
static EcalSubdetector subDet(const EBDetId &id)
Definition: Numbers.cc:145
void setLumiFlag(void)
this ME is meant to be stored for each luminosity section
tuple status
Definition: ntuplemaker.py:245
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:429
Definition: Run.h:33
#define H_TTYPE_MASK